diff --git a/packages/horizon/README.md b/packages/horizon/README.md index 4b0954953..fa1a0410e 100644 --- a/packages/horizon/README.md +++ b/packages/horizon/README.md @@ -4,14 +4,16 @@ Graph Horizon is the next evolution of the Graph Protocol. ## Deployment -We use Hardhat Ignition to deploy the contracts. To build and deploy the contracts run the following commands: +We use Hardhat Ignition to deploy the contracts. To build and deploy Graph Horizon run the following commands: ```bash yarn install yarn build npx hardhat ignition deploy ./ignition/modules/horizon.ts \ - --parameters ./ignition/configs/horizon.hardhat.json \ + --parameters ./ignition/configs/horizon.hardhat.json5 \ --network hardhat ``` -You can use any network defined in `hardhat.config.ts` by replacing `hardhat` with the network name. \ No newline at end of file +You can use any network defined in `hardhat.config.ts` by replacing `hardhat` with the network name. + +Note that this will deploy a standalone version of Graph Horizon contracts, meaning the Subgraph Service or any other data service will not be deployed. If you want to deploy the Subgraph Service please refer to the [Subgraph Service README](../subgraph-service/README.md) for deploy instructions. diff --git a/packages/horizon/contracts/data-service/DataService.sol b/packages/horizon/contracts/data-service/DataService.sol index 8a06ad4ea..7923f1903 100644 --- a/packages/horizon/contracts/data-service/DataService.sol +++ b/packages/horizon/contracts/data-service/DataService.sol @@ -25,6 +25,8 @@ import { ProvisionManager } from "./utilities/ProvisionManager.sol"; * - If the data service implementation is NOT upgradeable, it must initialize the contract by calling * {__DataService_init} or {__DataService_init_unchained} in the constructor. Note that the `initializer` * will be required in the constructor. + * - Note that in both cases if using {__DataService_init_unchained} variant the corresponding parent + * initializers must be called in the implementation. */ abstract contract DataService is GraphDirectory, ProvisionManager, DataServiceV1Storage, IDataService { /** diff --git a/packages/horizon/contracts/data-service/DataServiceStorage.sol b/packages/horizon/contracts/data-service/DataServiceStorage.sol index a0271443c..3d8e84f82 100644 --- a/packages/horizon/contracts/data-service/DataServiceStorage.sol +++ b/packages/horizon/contracts/data-service/DataServiceStorage.sol @@ -3,5 +3,6 @@ pragma solidity 0.8.27; abstract contract DataServiceV1Storage { /// @dev Gap to allow adding variables in future upgrades + /// Note that this contract is not upgradeable but might be inherited by an upgradeable contract uint256[50] private __gap; } diff --git a/packages/horizon/contracts/data-service/extensions/DataServiceFees.sol b/packages/horizon/contracts/data-service/extensions/DataServiceFees.sol index 09102dd4a..6685dc5a7 100644 --- a/packages/horizon/contracts/data-service/extensions/DataServiceFees.sol +++ b/packages/horizon/contracts/data-service/extensions/DataServiceFees.sol @@ -14,6 +14,8 @@ import { DataServiceFeesV1Storage } from "./DataServiceFeesStorage.sol"; * @dev Implementation of the {IDataServiceFees} interface. * @notice Extension for the {IDataService} contract to handle payment collateralization * using a Horizon provision. See {IDataServiceFees} for more details. + * @dev This contract inherits from {DataService} which needs to be initialized, please see + * {DataService} for detailed instructions. */ abstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDataServiceFees { using ProvisionTracker for mapping(address => uint256); @@ -127,9 +129,7 @@ abstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDat * @param _claimId The ID of the stake claim */ function _getNextStakeClaim(bytes32 _claimId) private view returns (bytes32) { - StakeClaim memory claim = claims[_claimId]; - require(claim.createdAt != 0, DataServiceFeesClaimNotFound(_claimId)); - return claim.nextClaim; + return claims[_claimId].nextClaim; } /** diff --git a/packages/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol b/packages/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol index cb4f908dc..853b57209 100644 --- a/packages/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol +++ b/packages/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol @@ -18,5 +18,6 @@ abstract contract DataServiceFeesV1Storage { mapping(address serviceProvider => LinkedList.List list) public claimsLists; /// @dev Gap to allow adding variables in future upgrades + /// Note that this contract is not upgradeable but might be inherited by an upgradeable contract uint256[50] private __gap; } diff --git a/packages/horizon/contracts/data-service/extensions/DataServicePausable.sol b/packages/horizon/contracts/data-service/extensions/DataServicePausable.sol index 3c83fbb0e..475614454 100644 --- a/packages/horizon/contracts/data-service/extensions/DataServicePausable.sol +++ b/packages/horizon/contracts/data-service/extensions/DataServicePausable.sol @@ -14,6 +14,8 @@ import { DataService } from "../DataService.sol"; * pause guardians. * @dev Note that this extension does not provide an external function to set pause * guardians. This should be implemented in the derived contract. + * @dev This contract inherits from {DataService} which needs to be initialized, please see + * {DataService} for detailed instructions. */ abstract contract DataServicePausable is Pausable, DataService, IDataServicePausable { /// @notice List of pause guardians and their allowed status @@ -51,6 +53,10 @@ abstract contract DataServicePausable is Pausable, DataService, IDataServicePaus * @param _allowed The allowed status of the pause guardian */ function _setPauseGuardian(address _pauseGuardian, bool _allowed) internal { + require( + pauseGuardians[_pauseGuardian] == !_allowed, + DataServicePausablePauseGuardianNoChange(_pauseGuardian, _allowed) + ); pauseGuardians[_pauseGuardian] = _allowed; emit PauseGuardianSet(_pauseGuardian, _allowed); } diff --git a/packages/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol b/packages/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol index 82d7cc63b..2cecdedb6 100644 --- a/packages/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol +++ b/packages/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol @@ -10,11 +10,16 @@ import { DataService } from "../DataService.sol"; * @title DataServicePausableUpgradeable contract * @dev Implementation of the {IDataServicePausable} interface. * @dev Upgradeable version of the {DataServicePausable} contract. + * @dev This contract inherits from {DataService} which needs to be initialized, please see + * {DataService} for detailed instructions. */ abstract contract DataServicePausableUpgradeable is PausableUpgradeable, DataService, IDataServicePausable { /// @notice List of pause guardians and their allowed status mapping(address pauseGuardian => bool allowed) public pauseGuardians; + /// @dev Gap to allow adding variables in future upgrades + uint256[50] private __gap; + /** * @notice Checks if the caller is a pause guardian. */ @@ -61,7 +66,11 @@ abstract contract DataServicePausableUpgradeable is PausableUpgradeable, DataSer * @param _pauseGuardian The address of the pause guardian * @param _allowed The allowed status of the pause guardian */ - function _setPauseGuardian(address _pauseGuardian, bool _allowed) internal whenNotPaused { + function _setPauseGuardian(address _pauseGuardian, bool _allowed) internal { + require( + pauseGuardians[_pauseGuardian] == !_allowed, + DataServicePausablePauseGuardianNoChange(_pauseGuardian, _allowed) + ); pauseGuardians[_pauseGuardian] = _allowed; emit PauseGuardianSet(_pauseGuardian, _allowed); } diff --git a/packages/horizon/contracts/data-service/extensions/DataServiceRescuable.sol b/packages/horizon/contracts/data-service/extensions/DataServiceRescuable.sol index 0d2f0750d..0f57862d5 100644 --- a/packages/horizon/contracts/data-service/extensions/DataServiceRescuable.sol +++ b/packages/horizon/contracts/data-service/extensions/DataServiceRescuable.sol @@ -17,11 +17,17 @@ import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.s * that calls this contract's _rescueTokens. * @dev Note that this extension does not provide an external function to set * rescuers. This should be implemented in the derived contract. + * @dev This contract inherits from {DataService} which needs to be initialized, please see + * {DataService} for detailed instructions. */ abstract contract DataServiceRescuable is DataService, IDataServiceRescuable { /// @notice List of rescuers and their allowed status mapping(address rescuer => bool allowed) public rescuers; + /// @dev Gap to allow adding variables in future upgrades + /// Note that this contract is not upgradeable but might be inherited by an upgradeable contract + uint256[50] private __gap; + /** * @notice Checks if the caller is a rescuer. */ diff --git a/packages/horizon/contracts/data-service/interfaces/IDataServicePausable.sol b/packages/horizon/contracts/data-service/interfaces/IDataServicePausable.sol index bd27ca848..0579c6649 100644 --- a/packages/horizon/contracts/data-service/interfaces/IDataServicePausable.sol +++ b/packages/horizon/contracts/data-service/interfaces/IDataServicePausable.sol @@ -23,6 +23,13 @@ interface IDataServicePausable is IDataService { */ error DataServicePausableNotPauseGuardian(address account); + /** + * @notice Emitted when a pause guardian is set to the same allowed status + * @param account The address of the pause guardian + * @param allowed The allowed status of the pause guardian + */ + error DataServicePausablePauseGuardianNoChange(address account, bool allowed); + /** * @notice Pauses the data service. * @dev Note that only functions using the modifiers `whenNotPaused` diff --git a/packages/horizon/contracts/data-service/utilities/ProvisionManager.sol b/packages/horizon/contracts/data-service/utilities/ProvisionManager.sol index a3f96794c..68ac2813d 100644 --- a/packages/horizon/contracts/data-service/utilities/ProvisionManager.sol +++ b/packages/horizon/contracts/data-service/utilities/ProvisionManager.sol @@ -202,10 +202,16 @@ abstract contract ProvisionManager is Initializable, GraphDirectory, ProvisionMa /** * @notice Checks if the provision tokens of a service provider are within the valid range. + * Note that thawing tokens are not considered in this check. * @param _provision The provision to check. */ function _checkProvisionTokens(IHorizonStaking.Provision memory _provision) internal view virtual { - _checkValueInRange(_provision.tokens, minimumProvisionTokens, maximumProvisionTokens, "tokens"); + _checkValueInRange( + _provision.tokens - _provision.tokensThawing, + minimumProvisionTokens, + maximumProvisionTokens, + "tokens" + ); } /** diff --git a/packages/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol b/packages/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol index 0a6bed2be..0732afc9a 100644 --- a/packages/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol +++ b/packages/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol @@ -28,5 +28,6 @@ abstract contract ProvisionManagerV1Storage { uint32 public delegationRatio; /// @dev Gap to allow adding variables in future upgrades + /// Note that this contract is not upgradeable but might be inherited by an upgradeable contract uint256[50] private __gap; } diff --git a/packages/horizon/contracts/interfaces/IGraphPayments.sol b/packages/horizon/contracts/interfaces/IGraphPayments.sol index f446d6f52..eaac08ae4 100644 --- a/packages/horizon/contracts/interfaces/IGraphPayments.sol +++ b/packages/horizon/contracts/interfaces/IGraphPayments.sol @@ -23,27 +23,30 @@ interface IGraphPayments { * @param payer The address of the payer * @param receiver The address of the receiver * @param dataService The address of the data service - * @param tokensReceiver Amount of tokens for the receiver - * @param tokensDelegationPool Amount of tokens for delegators - * @param tokensDataService Amount of tokens for the data service + * @param tokens The total amount of tokens being collected * @param tokensProtocol Amount of tokens charged as protocol tax + * @param tokensDataService Amount of tokens for the data service + * @param tokensDelegationPool Amount of tokens for delegators + * @param tokensReceiver Amount of tokens for the receiver */ - event PaymentCollected( + event GraphPaymentCollected( address indexed payer, address indexed receiver, address indexed dataService, - uint256 tokensReceiver, - uint256 tokensDelegationPool, + uint256 tokens, + uint256 tokensProtocol, uint256 tokensDataService, - uint256 tokensProtocol + uint256 tokensDelegationPool, + uint256 tokensReceiver ); /** - * @notice Thrown when there are insufficient tokens to pay the required amount - * @param tokens The amount of tokens available - * @param minTokens The amount of tokens being collected + * @notice Thrown when the calculated amount of tokens to be paid out to all parties is + * not the same as the amount of tokens being collected + * @param tokens The amount of tokens being collected + * @param tokensCalculated The sum of all the tokens to be paid out */ - error GraphPaymentsInsufficientTokens(uint256 tokens, uint256 minTokens); + error GraphPaymentsBadAccounting(uint256 tokens, uint256 tokensCalculated); /** * @notice Thrown when the protocol payment cut is invalid @@ -51,6 +54,12 @@ interface IGraphPayments { */ error GraphPaymentsInvalidProtocolPaymentCut(uint256 protocolPaymentCut); + /** + * @notice Thrown when trying to use a cut that is not expressed in PPM + * @param cut The cut + */ + error GraphPaymentsInvalidCut(uint256 cut); + /** * @notice Collects funds from a payer. * It will pay cuts to all relevant parties and forward the rest to the receiver. @@ -58,13 +67,13 @@ interface IGraphPayments { * @param receiver The address of the receiver * @param tokens The amount of tokens being collected * @param dataService The address of the data service - * @param tokensDataService The amount of tokens that should be sent to the data service + * @param dataServiceCut The data service cut in PPM */ function collect( PaymentTypes paymentType, address receiver, uint256 tokens, address dataService, - uint256 tokensDataService + uint256 dataServiceCut ) external; } diff --git a/packages/horizon/contracts/interfaces/IPaymentsCollector.sol b/packages/horizon/contracts/interfaces/IPaymentsCollector.sol index 85d09d59f..61854bb71 100644 --- a/packages/horizon/contracts/interfaces/IPaymentsCollector.sol +++ b/packages/horizon/contracts/interfaces/IPaymentsCollector.sol @@ -19,17 +19,15 @@ interface IPaymentsCollector { * @param paymentType The payment type collected as defined by {IGraphPayments} * @param payer The address of the payer * @param receiver The address of the receiver - * @param tokensReceiver The amount of tokens received by the receiver * @param dataService The address of the data service - * @param tokensDataService The amount of tokens received by the data service + * @param tokens The amount of tokens being collected */ event PaymentCollected( IGraphPayments.PaymentTypes indexed paymentType, address indexed payer, address receiver, - uint256 tokensReceiver, address indexed dataService, - uint256 tokensDataService + uint256 tokens ); /** diff --git a/packages/horizon/contracts/interfaces/IPaymentsEscrow.sol b/packages/horizon/contracts/interfaces/IPaymentsEscrow.sol index c1eb7707a..760a086a7 100644 --- a/packages/horizon/contracts/interfaces/IPaymentsEscrow.sol +++ b/packages/horizon/contracts/interfaces/IPaymentsEscrow.sol @@ -25,50 +25,6 @@ interface IPaymentsEscrow { uint256 thawEndTimestamp; } - /// @notice Details for a payer-collector pair - /// @dev Collectors can be removed only after a thawing period - struct Collector { - // Amount of tokens the collector is allowed to collect - uint256 allowance; - // Timestamp at which the collector thawing period ends (zero if not thawing) - uint256 thawEndTimestamp; - } - - /** - * @notice Emitted when a payer authorizes a collector to collect funds - * @param payer The address of the payer - * @param collector The address of the collector - * @param addedAllowance The amount of tokens added to the collector's allowance - * @param newTotalAllowance The new total allowance after addition - */ - event AuthorizedCollector( - address indexed payer, - address indexed collector, - uint256 addedAllowance, - uint256 newTotalAllowance - ); - - /** - * @notice Emitted when a payer thaws a collector - * @param payer The address of the payer - * @param collector The address of the collector - */ - event ThawCollector(address indexed payer, address indexed collector); - - /** - * @notice Emitted when a payer cancels the thawing of a collector - * @param payer The address of the payer - * @param collector The address of the collector - */ - event CancelThawCollector(address indexed payer, address indexed collector); - - /** - * @notice Emitted when a payer revokes a collector authorization. - * @param payer The address of the payer - * @param collector The address of the collector - */ - event RevokeCollector(address indexed payer, address indexed collector); - /** * @notice Emitted when a payer deposits funds into the escrow for a payer-collector-receiver tuple * @param payer The address of the payer @@ -152,13 +108,6 @@ interface IPaymentsEscrow { */ error PaymentsEscrowThawingPeriodTooLong(uint256 thawingPeriod, uint256 maxWaitPeriod); - /** - * @notice Thrown when a collector has insufficient allowance to collect funds - * @param allowance The current allowance - * @param minAllowance The minimum required allowance - */ - error PaymentsEscrowInsufficientAllowance(uint256 allowance, uint256 minAllowance); - /** * @notice Thrown when the contract balance is not consistent with the collection amount * @param balanceBefore The balance before the collection @@ -172,54 +121,6 @@ interface IPaymentsEscrow { */ error PaymentsEscrowInvalidZeroTokens(); - /** - * @notice Authorize a collector to collect funds from the payer's escrow - * @dev This function can only be used to increase the allowance of a collector. - * To reduce it the authorization must be revoked and a new one must be created. - * - * Requirements: - * - `allowance` must be greater than zero - * - * Emits an {AuthorizedCollector} event - * - * @param collector The address of the collector - * @param allowance The amount of tokens to add to the collector's allowance - */ - function approveCollector(address collector, uint256 allowance) external; - - /** - * @notice Thaw a collector's collector authorization - * @dev The thawing period is defined by the `REVOKE_COLLECTOR_THAWING_PERIOD` constant - * - * Emits a {ThawCollector} event - * - * @param collector The address of the collector - */ - function thawCollector(address collector) external; - - /** - * @notice Cancel a collector's authorization thawing - * @dev Requirements: - * - `collector` must be thawing - * - * Emits a {CancelThawCollector} event - * - * @param collector The address of the collector - */ - function cancelThawCollector(address collector) external; - - /** - * @notice Revoke a collector's authorization. - * Removes the collector from the list of authorized collectors. - * @dev Requirements: - * - `collector` must have thawed - * - * Emits a {RevokeCollector} event - * - * @param collector The address of the collector - */ - function revokeCollector(address collector) external; - /** * @notice Deposits funds into the escrow for a payer-collector-receiver tuple, where * the payer is the transaction caller. @@ -277,8 +178,6 @@ interface IPaymentsEscrow { * @notice Collects funds from the payer-collector-receiver's escrow and sends them to {GraphPayments} for * distribution using the Graph Horizon Payments protocol. * The function will revert if there are not enough funds in the escrow. - * @dev Requirements: - * - `collector` needs to be authorized by the payer and have enough allowance * * Emits an {EscrowCollected} event * @@ -287,7 +186,7 @@ interface IPaymentsEscrow { * @param receiver The address of the receiver * @param tokens The amount of tokens to collect * @param dataService The address of the data service - * @param tokensDataService The amount of tokens that {GraphPayments} should send to the data service + * @param dataServiceCut The data service cut in PPM that {GraphPayments} should send */ function collect( IGraphPayments.PaymentTypes paymentType, @@ -295,11 +194,12 @@ interface IPaymentsEscrow { address receiver, uint256 tokens, address dataService, - uint256 tokensDataService + uint256 dataServiceCut ) external; /** * @notice Get the balance of a payer-collector-receiver tuple + * This function will return 0 if the current balance is less than the amount of funds being thawed. * @param payer The address of the payer * @param collector The address of the collector * @param receiver The address of the receiver diff --git a/packages/horizon/contracts/interfaces/ITAPCollector.sol b/packages/horizon/contracts/interfaces/ITAPCollector.sol index dd557de53..194edb11a 100644 --- a/packages/horizon/contracts/interfaces/ITAPCollector.sol +++ b/packages/horizon/contracts/interfaces/ITAPCollector.sol @@ -2,6 +2,7 @@ pragma solidity 0.8.27; import { IPaymentsCollector } from "./IPaymentsCollector.sol"; +import { IGraphPayments } from "./IGraphPayments.sol"; /** * @title Interface for the {TAPCollector} contract @@ -18,10 +19,14 @@ interface ITAPCollector is IPaymentsCollector { address payer; // Timestamp at which thawing period ends (zero if not thawing) uint256 thawEndTimestamp; + // Whether the signer authorization was revoked + bool revoked; } /// @notice The Receipt Aggregate Voucher (RAV) struct struct ReceiptAggregateVoucher { + // The address of the payer the RAV was issued by + address payer; // The address of the data service the RAV was issued to address dataService; // The address of the service provider the RAV was issued to @@ -119,6 +124,19 @@ interface ITAPCollector is IPaymentsCollector { */ error TAPCollectorSignerNotAuthorizedByPayer(address payer, address signer); + /** + * Thrown when the attempting to revoke a signer that was already revoked + * @param signer The address of the signer + */ + error TAPCollectorAuthorizationAlreadyRevoked(address payer, address signer); + + /** + * Thrown when attempting to thaw a signer that is already thawing + * @param signer The address of the signer + * @param thawEndTimestamp The timestamp at which the thawing period ends + */ + error TAPCollectorSignerAlreadyThawing(address signer, uint256 thawEndTimestamp); + /** * Thrown when the signer is not thawing * @param signer The address of the signer @@ -137,6 +155,19 @@ interface ITAPCollector is IPaymentsCollector { */ error TAPCollectorInvalidRAVSigner(); + /** + * Thrown when the RAV payer does not match the signers authorized payer + * @param authorizedPayer The address of the authorized payer + * @param ravPayer The address of the RAV payer + */ + error TAPCollectorInvalidRAVPayer(address authorizedPayer, address ravPayer); + + /** + * Thrown when the RAV is for a data service the service provider has no provision for + * @param dataService The address of the data service + */ + error TAPCollectorUnauthorizedDataService(address dataService); + /** * Thrown when the caller is not the data service the RAV was issued to * @param caller The address of the caller @@ -153,7 +184,15 @@ interface ITAPCollector is IPaymentsCollector { error TAPCollectorInconsistentRAVTokens(uint256 tokens, uint256 tokensCollected); /** - * @notice Authorize a signer to sign on behalf of the payer + * Thrown when the attempting to collect more tokens than what it's owed + * @param tokensToCollect The amount of tokens to collect + * @param maxTokensToCollect The maximum amount of tokens to collect + */ + error TAPCollectorInvalidTokensToCollectAmount(uint256 tokensToCollect, uint256 maxTokensToCollect); + + /** + * @notice Authorize a signer to sign on behalf of the payer. + * A signer can not be authorized for multiple payers even after revoking previous authorizations. * @dev Requirements: * - `signer` must not be already authorized * - `proofDeadline` must be greater than the current timestamp @@ -213,4 +252,21 @@ interface ITAPCollector is IPaymentsCollector { * @return The hash of the RAV. */ function encodeRAV(ReceiptAggregateVoucher calldata rav) external view returns (bytes32); + + /** + * @notice See {IPaymentsCollector.collect} + * This variant adds the ability to partially collect a RAV by specifying the amount of tokens to collect. + * + * Requirements: + * - The amount of tokens to collect must be less than or equal to the total amount of tokens in the RAV minus + * the tokens already collected. + * @param paymentType The payment type to collect + * @param data Additional data required for the payment collection + * @param tokensToCollect The amount of tokens to collect + */ + function collect( + IGraphPayments.PaymentTypes paymentType, + bytes calldata data, + uint256 tokensToCollect + ) external returns (uint256); } diff --git a/packages/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol b/packages/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol index e221dc2cf..0145dac16 100644 --- a/packages/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol +++ b/packages/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol @@ -24,6 +24,11 @@ interface IHorizonStakingBase { */ event StakeDeposited(address indexed serviceProvider, uint256 tokens); + /** + * @notice Thrown when using an invalid thaw request type. + */ + error HorizonStakingInvalidThawRequestType(); + /** * @notice Gets the details of a service provider. * @param serviceProvider The address of the service provider. @@ -134,21 +139,27 @@ interface IHorizonStakingBase { /** * @notice Gets a thaw request. + * @param thawRequestType The type of thaw request. * @param thawRequestId The id of the thaw request. * @return The thaw request details. */ - function getThawRequest(bytes32 thawRequestId) external view returns (IHorizonStakingTypes.ThawRequest memory); + function getThawRequest( + IHorizonStakingTypes.ThawRequestType thawRequestType, + bytes32 thawRequestId + ) external view returns (IHorizonStakingTypes.ThawRequest memory); /** * @notice Gets the metadata of a thaw request list. * Service provider and delegators each have their own thaw request list per provision. * Metadata includes the head and tail of the list, plus the total number of thaw requests. + * @param thawRequestType The type of thaw request. * @param serviceProvider The address of the service provider. * @param verifier The address of the verifier. * @param owner The owner of the thaw requests. Use either the service provider or delegator address. * @return The thaw requests list metadata. */ function getThawRequestList( + IHorizonStakingTypes.ThawRequestType thawRequestType, address serviceProvider, address verifier, address owner @@ -156,12 +167,18 @@ interface IHorizonStakingBase { /** * @notice Gets the amount of thawed tokens for a given provision. + * @param thawRequestType The type of thaw request. * @param serviceProvider The address of the service provider. * @param verifier The address of the verifier. * @param owner The owner of the thaw requests. Use either the service provider or delegator address. * @return The amount of thawed tokens. */ - function getThawedTokens(address serviceProvider, address verifier, address owner) external view returns (uint256); + function getThawedTokens( + IHorizonStakingTypes.ThawRequestType thawRequestType, + address serviceProvider, + address verifier, + address owner + ) external view returns (uint256); /** * @notice Gets the maximum allowed thawing period for a provision. diff --git a/packages/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol b/packages/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol index a0b2dc1af..84318f536 100644 --- a/packages/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol +++ b/packages/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol @@ -77,6 +77,12 @@ interface IHorizonStakingExtension is IRewardsIssuer { uint256 delegationRewards ); + /** + * @dev Emitted when `indexer` was slashed for a total of `tokens` amount. + * Tracks `reward` amount of tokens given to `beneficiary`. + */ + event StakeSlashed(address indexed indexer, uint256 tokens, uint256 reward, address beneficiary); + /** * @notice Close an allocation and free the staked tokens. * To be eligible for rewards a proof of indexing must be presented. @@ -148,4 +154,14 @@ interface IHorizonStakingExtension is IRewardsIssuer { */ // solhint-disable-next-line func-name-mixedcase function __DEPRECATED_getThawingPeriod() external view returns (uint64); + + /** + * @notice Slash the indexer stake. Delegated tokens are not subject to slashing. + * @dev Can only be called by the slasher role. + * @param indexer Address of indexer to slash + * @param tokens Amount of tokens to slash from the indexer stake + * @param reward Amount of reward tokens to send to a beneficiary + * @param beneficiary Address of a beneficiary to receive a reward for the slashing + */ + function legacySlash(address indexer, uint256 tokens, uint256 reward, address beneficiary) external; } diff --git a/packages/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol b/packages/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol index b144b0ce6..50ca90fc3 100644 --- a/packages/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol +++ b/packages/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol @@ -3,6 +3,7 @@ pragma solidity 0.8.27; import { IGraphPayments } from "../../interfaces/IGraphPayments.sol"; +import { IHorizonStakingTypes } from "./IHorizonStakingTypes.sol"; /** * @title Inferface for the {HorizonStaking} contract. @@ -205,6 +206,15 @@ interface IHorizonStakingMain { uint256 tokens ); + /** + * @notice Emitted when `delegator` withdrew delegated `tokens` from `indexer` using `withdrawDelegated`. + * @dev This event is for the legacy `withdrawDelegated` function. + * @param indexer The address of the indexer + * @param delegator The address of the delegator + * @param tokens The amount of tokens withdrawn + */ + event StakeDelegatedWithdrawn(address indexed indexer, address indexed delegator, uint256 tokens); + /** * @notice Emitted when tokens are added to a delegation pool's reserve. * @param serviceProvider The address of the service provider @@ -271,13 +281,15 @@ interface IHorizonStakingMain { * @param owner The address of the owner of the thaw requests * @param thawRequestsFulfilled The number of thaw requests fulfilled * @param tokens The total amount of tokens being released + * @param requestType The type of thaw request */ event ThawRequestsFulfilled( address indexed serviceProvider, address indexed verifier, address indexed owner, uint256 thawRequestsFulfilled, - uint256 tokens + uint256 tokens, + IHorizonStakingTypes.ThawRequestType requestType ); // -- Events: governance -- @@ -303,9 +315,8 @@ interface IHorizonStakingMain { /** * @notice Emitted when the delegation slashing global flag is set. - * @param enabled Whether delegation slashing is enabled or disabled. */ - event DelegationSlashingEnabled(bool enabled); + event DelegationSlashingEnabled(); // -- Errors: tokens @@ -415,6 +426,20 @@ interface IHorizonStakingMain { */ error HorizonStakingInvalidDelegationPool(address serviceProvider, address verifier); + /** + * @notice Thrown when the minimum token amount required for delegation is not met. + * @param tokens The actual token amount + * @param minTokens The minimum required token amount + */ + error HorizonStakingInsufficientDelegationTokens(uint256 tokens, uint256 minTokens); + + /** + * @notice Thrown when the minimum token amount required for undelegation with beneficiary is not met. + * @param tokens The actual token amount + * @param minTokens The minimum required token amount + */ + error HorizonStakingInsufficientUndelegationTokens(uint256 tokens, uint256 minTokens); + /** * @notice Thrown when attempting to undelegate with a beneficiary that is the zero address. */ @@ -515,6 +540,8 @@ interface IHorizonStakingMain { * - During the transition period it's locked for a period of time before it can be withdrawn * by calling {withdraw}. * - After the transition period it's immediately withdrawn. + * Note that after the transition period if there are tokens still locked they will have to be + * withdrawn by calling {withdraw}. * @dev Requirements: * - `_tokens` cannot be zero. * - `_serviceProvider` must have enough idle stake to cover the staking amount and any @@ -747,7 +774,7 @@ interface IHorizonStakingMain { * @param beneficiary The address where the tokens will be withdrawn after thawing * @return The ID of the thaw request */ - function undelegate( + function undelegateWithBeneficiary( address serviceProvider, address verifier, uint256 shares, @@ -772,6 +799,28 @@ interface IHorizonStakingMain { */ function withdrawDelegated(address serviceProvider, address verifier, uint256 nThawRequests) external; + /** + * @notice Withdraw undelegated with beneficiary tokens from a provision after thawing. + * @dev The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw + * requests in the event that fulfilling all of them results in a gas limit error. + * @dev If the delegation pool was completely slashed before withdrawing, calling this function will fulfill + * the thaw requests with an amount equal to zero. + * + * Requirements: + * - Must have previously initiated a thaw request using {undelegateWithBeneficiary}. + * + * Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {DelegatedTokensWithdrawn} events. + * + * @param serviceProvider The service provider address + * @param verifier The verifier address + * @param nThawRequests The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests. + */ + function withdrawDelegatedWithBeneficiary( + address serviceProvider, + address verifier, + uint256 nThawRequests + ) external; + /** * @notice Re-delegate undelegated tokens from a provision after thawing to a `newServiceProvider` and `newVerifier`. * @dev The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw @@ -838,13 +887,14 @@ interface IHorizonStakingMain { /** * @notice Withdraw undelegated tokens from the subgraph data service provision after thawing. * This function is for backwards compatibility with the legacy staking contract. - * It only allows withdrawing from the subgraph data service and DOES NOT have slippage protection in - * case the caller opts for re-delegating. + * It only allows withdrawing tokens undelegated before horizon upgrade. * @dev See {delegate}. * @param serviceProvider The service provider address - * @param newServiceProvider The address of a new service provider, if the delegator wants to re-delegate */ - function withdrawDelegated(address serviceProvider, address newServiceProvider) external; + function withdrawDelegated( + address serviceProvider, + address // newServiceProvider, deprecated + ) external returns (uint256); /** * @notice Slash a service provider. This can only be called by a verifier to which diff --git a/packages/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol b/packages/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol index 0dfc6c774..e2376bf18 100644 --- a/packages/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol +++ b/packages/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol @@ -131,6 +131,17 @@ interface IHorizonStakingTypes { uint256 __DEPRECATED_tokensLockedUntil; } + /** + * @dev Enum to specify the type of thaw request. + * @param Provision Represents a thaw request for a provision. + * @param Delegation Represents a thaw request for a delegation. + */ + enum ThawRequestType { + Provision, + Delegation, + DelegationWithBeneficiary + } + /** * @notice Details of a stake thawing operation. * @dev ThawRequests are stored in linked lists by service provider/delegator, @@ -146,4 +157,42 @@ interface IHorizonStakingTypes { // Used to invalidate unfulfilled thaw requests uint256 thawingNonce; } + + /** + * @notice Parameters to fulfill thaw requests. + * @dev This struct is used to avoid stack too deep error in the `fulfillThawRequests` function. + * @param requestType The type of thaw request (Provision or Delegation) + * @param serviceProvider The address of the service provider + * @param verifier The address of the verifier + * @param owner The address of the owner of the thaw request + * @param tokensThawing The current amount of tokens already thawing + * @param sharesThawing The current amount of shares already thawing + * @param nThawRequests The number of thaw requests to fulfill. If set to 0, all thaw requests are fulfilled. + * @param thawingNonce The current valid thawing nonce. Any thaw request with a different nonce is invalid and should be ignored. + */ + struct FulfillThawRequestsParams { + ThawRequestType requestType; + address serviceProvider; + address verifier; + address owner; + uint256 tokensThawing; + uint256 sharesThawing; + uint256 nThawRequests; + uint256 thawingNonce; + } + + /** + * @notice Results of the traversal of thaw requests. + * @dev This struct is used to avoid stack too deep error in the `fulfillThawRequests` function. + * @param requestsFulfilled The number of thaw requests fulfilled + * @param tokensThawed The total amount of tokens thawed + * @param tokensThawing The total amount of tokens thawing + * @param sharesThawing The total amount of shares thawing + */ + struct TraverseThawRequestsResults { + uint256 requestsFulfilled; + uint256 tokensThawed; + uint256 tokensThawing; + uint256 sharesThawing; + } } diff --git a/packages/horizon/contracts/payments/GraphPayments.sol b/packages/horizon/contracts/payments/GraphPayments.sol index 0ebe566a5..0dd06ef72 100644 --- a/packages/horizon/contracts/payments/GraphPayments.sol +++ b/packages/horizon/contracts/payments/GraphPayments.sol @@ -32,7 +32,7 @@ contract GraphPayments is Initializable, MulticallUpgradeable, GraphDirectory, I * @param protocolPaymentCut The protocol tax in PPM */ constructor(address controller, uint256 protocolPaymentCut) GraphDirectory(controller) { - require(PPMMath.isValidPPM(protocolPaymentCut), GraphPaymentsInvalidProtocolPaymentCut(protocolPaymentCut)); + require(PPMMath.isValidPPM(protocolPaymentCut), GraphPaymentsInvalidCut(protocolPaymentCut)); PROTOCOL_PAYMENT_CUT = protocolPaymentCut; _disableInitializers(); } @@ -52,41 +52,54 @@ contract GraphPayments is Initializable, MulticallUpgradeable, GraphDirectory, I address receiver, uint256 tokens, address dataService, - uint256 tokensDataService + uint256 dataServiceCut ) external { + require(PPMMath.isValidPPM(dataServiceCut), GraphPaymentsInvalidCut(dataServiceCut)); + + // Pull tokens from the sender _graphToken().pullTokens(msg.sender, tokens); - // Calculate cuts - uint256 tokensProtocol = tokens.mulPPM(PROTOCOL_PAYMENT_CUT); - uint256 delegationFeeCut = _graphStaking().getDelegationFeeCut(receiver, dataService, paymentType); - uint256 tokensDelegationPool = tokens.mulPPM(delegationFeeCut); - uint256 totalCut = tokensProtocol + tokensDataService + tokensDelegationPool; - require(tokens >= totalCut, GraphPaymentsInsufficientTokens(tokens, totalCut)); + // Calculate token amounts for each party + // Order matters: protocol -> data service -> delegators -> receiver + // Note the substractions should not underflow as we are only deducting a percentage of the remainder + uint256 tokensRemaining = tokens; + + uint256 tokensProtocol = tokensRemaining.mulPPMRoundUp(PROTOCOL_PAYMENT_CUT); + tokensRemaining = tokensRemaining - tokensProtocol; + + uint256 tokensDataService = tokensRemaining.mulPPMRoundUp(dataServiceCut); + tokensRemaining = tokensRemaining - tokensDataService; + + uint256 tokensDelegationPool = tokensRemaining.mulPPMRoundUp( + _graphStaking().getDelegationFeeCut(receiver, dataService, paymentType) + ); + tokensRemaining = tokensRemaining - tokensDelegationPool; + + // Ensure accounting is correct + uint256 tokensTotal = tokensProtocol + tokensDataService + tokensDelegationPool + tokensRemaining; + require(tokens == tokensTotal, GraphPaymentsBadAccounting(tokens, tokensTotal)); - // Pay protocol cut + // Pay all parties _graphToken().burnTokens(tokensProtocol); - // Pay data service cut _graphToken().pushTokens(dataService, tokensDataService); - // Pay delegators if (tokensDelegationPool > 0) { _graphToken().approve(address(_graphStaking()), tokensDelegationPool); _graphStaking().addToDelegationPool(receiver, dataService, tokensDelegationPool); } - // Pay receiver - uint256 tokensReceiverRemaining = tokens - totalCut; - _graphToken().pushTokens(receiver, tokensReceiverRemaining); + _graphToken().pushTokens(receiver, tokensRemaining); - emit PaymentCollected( + emit GraphPaymentCollected( msg.sender, receiver, dataService, - tokensReceiverRemaining, - tokensDelegationPool, + tokens, + tokensProtocol, tokensDataService, - tokensProtocol + tokensDelegationPool, + tokensRemaining ); } } diff --git a/packages/horizon/contracts/payments/PaymentsEscrow.sol b/packages/horizon/contracts/payments/PaymentsEscrow.sol index 7cf7e9e38..6f4252873 100644 --- a/packages/horizon/contracts/payments/PaymentsEscrow.sol +++ b/packages/horizon/contracts/payments/PaymentsEscrow.sol @@ -23,10 +23,6 @@ import { GraphDirectory } from "../utilities/GraphDirectory.sol"; contract PaymentsEscrow is Initializable, MulticallUpgradeable, GraphDirectory, IPaymentsEscrow { using TokenUtils for IGraphToken; - /// @notice Authorization details for payer-collector pairs - mapping(address payer => mapping(address collector => IPaymentsEscrow.Collector collectorDetails)) - public authorizedCollectors; - /// @notice Escrow account details for payer-collector-receiver tuples mapping(address payer => mapping(address collector => mapping(address receiver => IPaymentsEscrow.EscrowAccount escrowAccount))) public escrowAccounts; @@ -35,9 +31,6 @@ contract PaymentsEscrow is Initializable, MulticallUpgradeable, GraphDirectory, /// @dev This is a precautionary measure to avoid inadvertedly locking funds for too long uint256 public constant MAX_WAIT_PERIOD = 90 days; - /// @notice Thawing period in seconds for authorized collectors - uint256 public immutable REVOKE_COLLECTOR_THAWING_PERIOD; - /// @notice Thawing period in seconds for escrow funds withdrawal uint256 public immutable WITHDRAW_ESCROW_THAWING_PERIOD; @@ -49,24 +42,14 @@ contract PaymentsEscrow is Initializable, MulticallUpgradeable, GraphDirectory, /** * @notice Construct the PaymentsEscrow contract * @param controller The address of the controller - * @param revokeCollectorThawingPeriod Thawing period in seconds for authorized collectors * @param withdrawEscrowThawingPeriod Thawing period in seconds for escrow funds withdrawal */ - constructor( - address controller, - uint256 revokeCollectorThawingPeriod, - uint256 withdrawEscrowThawingPeriod - ) GraphDirectory(controller) { - require( - revokeCollectorThawingPeriod <= MAX_WAIT_PERIOD, - PaymentsEscrowThawingPeriodTooLong(revokeCollectorThawingPeriod, MAX_WAIT_PERIOD) - ); + constructor(address controller, uint256 withdrawEscrowThawingPeriod) GraphDirectory(controller) { require( withdrawEscrowThawingPeriod <= MAX_WAIT_PERIOD, PaymentsEscrowThawingPeriodTooLong(withdrawEscrowThawingPeriod, MAX_WAIT_PERIOD) ); - REVOKE_COLLECTOR_THAWING_PERIOD = revokeCollectorThawingPeriod; WITHDRAW_ESCROW_THAWING_PERIOD = withdrawEscrowThawingPeriod; } @@ -77,52 +60,6 @@ contract PaymentsEscrow is Initializable, MulticallUpgradeable, GraphDirectory, __Multicall_init(); } - /** - * @notice See {IPaymentsEscrow-approveCollector} - */ - function approveCollector(address collector_, uint256 allowance) external override notPaused { - require(allowance != 0, PaymentsEscrowInvalidZeroTokens()); - Collector storage collector = authorizedCollectors[msg.sender][collector_]; - collector.allowance += allowance; - emit AuthorizedCollector(msg.sender, collector_, allowance, collector.allowance); - } - - /** - * @notice See {IPaymentsEscrow-thawCollector} - */ - function thawCollector(address collector) external override notPaused { - authorizedCollectors[msg.sender][collector].thawEndTimestamp = - block.timestamp + - REVOKE_COLLECTOR_THAWING_PERIOD; - emit ThawCollector(msg.sender, collector); - } - - /** - * @notice See {IPaymentsEscrow-cancelThawCollector} - */ - function cancelThawCollector(address collector) external override notPaused { - require(authorizedCollectors[msg.sender][collector].thawEndTimestamp != 0, PaymentsEscrowNotThawing()); - - authorizedCollectors[msg.sender][collector].thawEndTimestamp = 0; - emit CancelThawCollector(msg.sender, collector); - } - - /** - * @notice See {IPaymentsEscrow-revokeCollector} - */ - function revokeCollector(address collector_) external override notPaused { - Collector storage collector = authorizedCollectors[msg.sender][collector_]; - - require(collector.thawEndTimestamp != 0, PaymentsEscrowNotThawing()); - require( - collector.thawEndTimestamp < block.timestamp, - PaymentsEscrowStillThawing(block.timestamp, collector.thawEndTimestamp) - ); - - delete authorizedCollectors[msg.sender][collector_]; - emit RevokeCollector(msg.sender, collector_); - } - /** * @notice See {IPaymentsEscrow-deposit} */ @@ -192,27 +129,19 @@ contract PaymentsEscrow is Initializable, MulticallUpgradeable, GraphDirectory, address receiver, uint256 tokens, address dataService, - uint256 tokensDataService + uint256 dataServiceCut ) external override notPaused { - // Check if collector is authorized and has enough funds - Collector storage collectorDetails = authorizedCollectors[payer][msg.sender]; - require( - collectorDetails.allowance >= tokens, - PaymentsEscrowInsufficientAllowance(collectorDetails.allowance, tokens) - ); - // Check if there are enough funds in the escrow account EscrowAccount storage account = escrowAccounts[payer][msg.sender][receiver]; require(account.balance >= tokens, PaymentsEscrowInsufficientBalance(account.balance, tokens)); - // Reduce amount from approved collector and account balance - collectorDetails.allowance -= tokens; + // Reduce amount from account balance account.balance -= tokens; uint256 balanceBefore = _graphToken().balanceOf(address(this)); _graphToken().approve(address(_graphPayments()), tokens); - _graphPayments().collect(paymentType, receiver, tokens, dataService, tokensDataService); + _graphPayments().collect(paymentType, receiver, tokens, dataService, dataServiceCut); uint256 balanceAfter = _graphToken().balanceOf(address(this)); require( @@ -228,6 +157,9 @@ contract PaymentsEscrow is Initializable, MulticallUpgradeable, GraphDirectory, */ function getBalance(address payer, address collector, address receiver) external view override returns (uint256) { EscrowAccount storage account = escrowAccounts[payer][collector][receiver]; + if (account.balance <= account.tokensThawing) { + return 0; + } return account.balance - account.tokensThawing; } diff --git a/packages/horizon/contracts/payments/collectors/TAPCollector.sol b/packages/horizon/contracts/payments/collectors/TAPCollector.sol index 57588a042..c8b42b87f 100644 --- a/packages/horizon/contracts/payments/collectors/TAPCollector.sol +++ b/packages/horizon/contracts/payments/collectors/TAPCollector.sol @@ -18,6 +18,8 @@ import { MessageHashUtils } from "@openzeppelin/contracts/utils/cryptography/Mes * @dev Note that the contract expects the RAV aggregate value to be monotonically increasing, each successive RAV for the same * (data service-payer-receiver) tuple should have a value greater than the previous one. The contract will keep track of the tokens * already collected and calculate the difference to collect. + * @dev The contract also implements a mechanism to authorize signers to sign RAVs on behalf of a payer. Signers cannot be reused + * for different payers. * @custom:security-contact Please email security+contracts@thegraph.com if you find any * bugs. We may have an active bug bounty program. */ @@ -27,7 +29,7 @@ contract TAPCollector is EIP712, GraphDirectory, ITAPCollector { /// @notice The EIP712 typehash for the ReceiptAggregateVoucher struct bytes32 private constant EIP712_RAV_TYPEHASH = keccak256( - "ReceiptAggregateVoucher(address dataService,address serviceProvider,uint64 timestampNs,uint128 valueAggregate,bytes metadata)" + "ReceiptAggregateVoucher(address payer,address dataService,address serviceProvider,uint64 timestampNs,uint128 valueAggregate,bytes metadata)" ); /// @notice Authorization details for payer-signer pairs @@ -79,6 +81,11 @@ contract TAPCollector is EIP712, GraphDirectory, ITAPCollector { PayerAuthorization storage authorization = authorizedSigners[signer]; require(authorization.payer == msg.sender, TAPCollectorSignerNotAuthorizedByPayer(msg.sender, signer)); + require(!authorization.revoked, TAPCollectorAuthorizationAlreadyRevoked(msg.sender, signer)); + require( + authorization.thawEndTimestamp == 0, + TAPCollectorSignerAlreadyThawing(signer, authorization.thawEndTimestamp) + ); authorization.thawEndTimestamp = block.timestamp + REVOKE_SIGNER_THAWING_PERIOD; emit SignerThawing(msg.sender, signer, authorization.thawEndTimestamp); @@ -110,7 +117,7 @@ contract TAPCollector is EIP712, GraphDirectory, ITAPCollector { TAPCollectorSignerStillThawing(block.timestamp, authorization.thawEndTimestamp) ); - delete authorizedSigners[signer]; + authorization.revoked = true; emit SignerRevoked(msg.sender, signer); } @@ -118,19 +125,19 @@ contract TAPCollector is EIP712, GraphDirectory, ITAPCollector { * @notice Initiate a payment collection through the payments protocol * See {IGraphPayments.collect}. * @dev Caller must be the data service the RAV was issued to. + * @dev Service provider must have an active provision with the data service to collect payments * @notice REVERT: This function may revert if ECDSA.recover fails, check ECDSA library for details. */ function collect(IGraphPayments.PaymentTypes paymentType, bytes memory data) external override returns (uint256) { - (SignedRAV memory signedRAV, uint256 dataServiceCut) = abi.decode(data, (SignedRAV, uint256)); - require( - signedRAV.rav.dataService == msg.sender, - TAPCollectorCallerNotDataService(msg.sender, signedRAV.rav.dataService) - ); - - address signer = _recoverRAVSigner(signedRAV); - require(authorizedSigners[signer].payer != address(0), TAPCollectorInvalidRAVSigner()); + return _collect(paymentType, data, 0); + } - return _collect(paymentType, authorizedSigners[signer].payer, signedRAV, dataServiceCut); + function collect( + IGraphPayments.PaymentTypes paymentType, + bytes memory data, + uint256 tokensToCollect + ) external override returns (uint256) { + return _collect(paymentType, data, tokensToCollect); } /** @@ -152,44 +159,75 @@ contract TAPCollector is EIP712, GraphDirectory, ITAPCollector { */ function _collect( IGraphPayments.PaymentTypes _paymentType, - address _payer, - SignedRAV memory _signedRAV, - uint256 _dataServiceCut + bytes memory _data, + uint256 _tokensToCollect ) private returns (uint256) { - address dataService = _signedRAV.rav.dataService; - address receiver = _signedRAV.rav.serviceProvider; + // Ensure caller is the RAV data service + (SignedRAV memory signedRAV, uint256 dataServiceCut) = abi.decode(_data, (SignedRAV, uint256)); + require( + signedRAV.rav.dataService == msg.sender, + TAPCollectorCallerNotDataService(msg.sender, signedRAV.rav.dataService) + ); - uint256 tokensRAV = _signedRAV.rav.valueAggregate; - uint256 tokensAlreadyCollected = tokensCollected[dataService][receiver][_payer]; + // Ensure RAV signer is authorized for a payer + address signer = _recoverRAVSigner(signedRAV); require( - tokensRAV > tokensAlreadyCollected, - TAPCollectorInconsistentRAVTokens(tokensRAV, tokensAlreadyCollected) + authorizedSigners[signer].payer != address(0) && !authorizedSigners[signer].revoked, + TAPCollectorInvalidRAVSigner() ); - uint256 tokensToCollect = tokensRAV - tokensAlreadyCollected; - uint256 tokensDataService = tokensToCollect.mulPPM(_dataServiceCut); + // Ensure RAV payer matches the authorized payer + address payer = authorizedSigners[signer].payer; + require(signedRAV.rav.payer == payer, TAPCollectorInvalidRAVPayer(payer, signedRAV.rav.payer)); - if (tokensToCollect > 0) { - tokensCollected[dataService][receiver][_payer] = tokensRAV; - _graphPaymentsEscrow().collect( - _paymentType, - _payer, - receiver, - tokensToCollect, - dataService, - tokensDataService + address dataService = signedRAV.rav.dataService; + address receiver = signedRAV.rav.serviceProvider; + + // Check the service provider has an active provision with the data service + // This prevents an attack where the payer can deny the service provider from collecting payments + // by using a signer as data service to syphon off the tokens in the escrow to an account they control + { + uint256 tokensAvailable = _graphStaking().getProviderTokensAvailable( + signedRAV.rav.serviceProvider, + signedRAV.rav.dataService ); + require(tokensAvailable > 0, TAPCollectorUnauthorizedDataService(signedRAV.rav.dataService)); + } + + uint256 tokensToCollect = 0; + { + uint256 tokensRAV = signedRAV.rav.valueAggregate; + uint256 tokensAlreadyCollected = tokensCollected[dataService][receiver][payer]; + require( + tokensRAV > tokensAlreadyCollected, + TAPCollectorInconsistentRAVTokens(tokensRAV, tokensAlreadyCollected) + ); + + if (_tokensToCollect == 0) { + tokensToCollect = tokensRAV - tokensAlreadyCollected; + } else { + require( + _tokensToCollect <= tokensRAV - tokensAlreadyCollected, + TAPCollectorInvalidTokensToCollectAmount(_tokensToCollect, tokensRAV - tokensAlreadyCollected) + ); + tokensToCollect = _tokensToCollect; + } + } + + if (tokensToCollect > 0) { + tokensCollected[dataService][receiver][payer] += tokensToCollect; + _graphPaymentsEscrow().collect(_paymentType, payer, receiver, tokensToCollect, dataService, dataServiceCut); } - emit PaymentCollected(_paymentType, _payer, receiver, tokensToCollect, dataService, tokensDataService); + emit PaymentCollected(_paymentType, payer, receiver, dataService, tokensToCollect); emit RAVCollected( - _payer, + payer, dataService, receiver, - _signedRAV.rav.timestampNs, - _signedRAV.rav.valueAggregate, - _signedRAV.rav.metadata, - _signedRAV.signature + signedRAV.rav.timestampNs, + signedRAV.rav.valueAggregate, + signedRAV.rav.metadata, + signedRAV.signature ); return tokensToCollect; } @@ -211,6 +249,7 @@ contract TAPCollector is EIP712, GraphDirectory, ITAPCollector { keccak256( abi.encode( EIP712_RAV_TYPEHASH, + _rav.payer, _rav.dataService, _rav.serviceProvider, _rav.timestampNs, diff --git a/packages/horizon/contracts/staking/HorizonStaking.sol b/packages/horizon/contracts/staking/HorizonStaking.sol index 8df8f20f6..3414fe555 100644 --- a/packages/horizon/contracts/staking/HorizonStaking.sol +++ b/packages/horizon/contracts/staking/HorizonStaking.sol @@ -4,6 +4,7 @@ pragma solidity 0.8.27; import { IGraphToken } from "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; import { IHorizonStakingMain } from "../interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingExtension } from "../interfaces/internal/IHorizonStakingExtension.sol"; import { IGraphPayments } from "../interfaces/IGraphPayments.sol"; import { TokenUtils } from "@graphprotocol/contracts/contracts/utils/TokenUtils.sol"; @@ -35,11 +36,17 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { uint256 private constant FIXED_POINT_PRECISION = 1e18; /// @dev Maximum number of simultaneous stake thaw requests (per provision) or undelegations (per delegation) - uint256 private constant MAX_THAW_REQUESTS = 100; + uint256 private constant MAX_THAW_REQUESTS = 1_000; /// @dev Address of the staking extension contract address private immutable STAKING_EXTENSION_ADDRESS; + /// @dev Minimum amount of delegation. + uint256 private constant MIN_DELEGATION = 1e18; + + /// @dev Minimum amount of undelegation with beneficiary. + uint256 private constant MIN_UNDELEGATION_WITH_BENEFICIARY = 10e18; + /** * @notice Checks that the caller is authorized to operate over a provision. * @param serviceProvider The address of the service provider. @@ -297,20 +304,20 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { address verifier, uint256 shares ) external override notPaused returns (bytes32) { - return _undelegate(serviceProvider, verifier, shares, msg.sender); + return _undelegate(ThawRequestType.Delegation, serviceProvider, verifier, shares, msg.sender); } /** * @notice See {IHorizonStakingMain-undelegate}. */ - function undelegate( + function undelegateWithBeneficiary( address serviceProvider, address verifier, uint256 shares, address beneficiary ) external override notPaused returns (bytes32) { require(beneficiary != address(0), HorizonStakingInvalidBeneficiaryZeroAddress()); - return _undelegate(serviceProvider, verifier, shares, beneficiary); + return _undelegate(ThawRequestType.DelegationWithBeneficiary, serviceProvider, verifier, shares, beneficiary); } /** @@ -321,7 +328,34 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { address verifier, uint256 nThawRequests ) external override notPaused { - _withdrawDelegated(serviceProvider, verifier, address(0), address(0), 0, nThawRequests); + _withdrawDelegated( + ThawRequestType.Delegation, + serviceProvider, + verifier, + address(0), + address(0), + 0, + nThawRequests + ); + } + + /** + * @notice See {IHorizonStakingMain-withdrawDelegatedWithBeneficiary}. + */ + function withdrawDelegatedWithBeneficiary( + address serviceProvider, + address verifier, + uint256 nThawRequests + ) external override notPaused { + _withdrawDelegated( + ThawRequestType.DelegationWithBeneficiary, + serviceProvider, + verifier, + address(0), + address(0), + 0, + nThawRequests + ); } /** @@ -338,6 +372,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { require(newServiceProvider != address(0), HorizonStakingInvalidServiceProviderZeroAddress()); require(newVerifier != address(0), HorizonStakingInvalidVerifierZeroAddress()); _withdrawDelegated( + ThawRequestType.Delegation, oldServiceProvider, oldVerifier, newServiceProvider, @@ -374,21 +409,43 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { * @notice See {IHorizonStakingMain-undelegate}. */ function undelegate(address serviceProvider, uint256 shares) external override notPaused { - _undelegate(serviceProvider, SUBGRAPH_DATA_SERVICE_ADDRESS, shares, msg.sender); + _undelegate(ThawRequestType.Delegation, serviceProvider, SUBGRAPH_DATA_SERVICE_ADDRESS, shares, msg.sender); } /** * @notice See {IHorizonStakingMain-withdrawDelegated}. */ - function withdrawDelegated(address serviceProvider, address newServiceProvider) external override notPaused { - _withdrawDelegated( - serviceProvider, - SUBGRAPH_DATA_SERVICE_ADDRESS, - newServiceProvider, - SUBGRAPH_DATA_SERVICE_ADDRESS, - 0, - 0 - ); + function withdrawDelegated( + address serviceProvider, + address // newServiceProvider, deprecated + ) external override notPaused returns (uint256) { + // Get the delegation pool of the indexer + address delegator = msg.sender; + DelegationPoolInternal storage pool = _legacyDelegationPools[serviceProvider]; + DelegationInternal storage delegation = pool.delegators[delegator]; + + // Validation + uint256 tokensToWithdraw = 0; + uint256 currentEpoch = _graphEpochManager().currentEpoch(); + if ( + delegation.__DEPRECATED_tokensLockedUntil > 0 && currentEpoch >= delegation.__DEPRECATED_tokensLockedUntil + ) { + tokensToWithdraw = delegation.__DEPRECATED_tokensLocked; + } + require(tokensToWithdraw > 0, "!tokens"); + + // Reset lock + delegation.__DEPRECATED_tokensLocked = 0; + delegation.__DEPRECATED_tokensLockedUntil = 0; + + emit StakeDelegatedWithdrawn(serviceProvider, delegator, tokensToWithdraw); + + // -- Interactions -- + + // Return tokens to the delegator + _graphToken().pushTokens(delegator, tokensToWithdraw); + + return tokensToWithdraw; } /* @@ -404,6 +461,23 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { uint256 tokensVerifier, address verifierDestination ) external override notPaused { + // TODO remove after the transition period + // Check if sender is authorized to slash on the deprecated list + if (__DEPRECATED_slashers[msg.sender]) { + // Forward call to staking extension + (bool success, ) = STAKING_EXTENSION_ADDRESS.delegatecall( + abi.encodeWithSelector( + IHorizonStakingExtension.legacySlash.selector, + serviceProvider, + tokens, + tokensVerifier, + verifierDestination + ) + ); + require(success, "Delegatecall to legacySlash failed"); + return; + } + address verifier = msg.sender; Provision storage prov = _provisions[serviceProvider][verifier]; DelegationPoolInternal storage pool = _getDelegationPool(serviceProvider, verifier); @@ -432,8 +506,8 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { _graphToken().burnTokens(providerTokensSlashed - tokensVerifier); // Provision accounting - // TODO check for rounding issues - uint256 provisionFractionSlashed = (providerTokensSlashed * FIXED_POINT_PRECISION) / prov.tokens; + uint256 provisionFractionSlashed = (providerTokensSlashed * FIXED_POINT_PRECISION + prov.tokens - 1) / + prov.tokens; prov.tokensThawing = (prov.tokensThawing * (FIXED_POINT_PRECISION - provisionFractionSlashed)) / (FIXED_POINT_PRECISION); @@ -468,7 +542,8 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { _graphToken().burnTokens(tokensToSlash); // Delegation pool accounting - uint256 delegationFractionSlashed = (tokensToSlash * FIXED_POINT_PRECISION) / pool.tokens; + uint256 delegationFractionSlashed = (tokensToSlash * FIXED_POINT_PRECISION + pool.tokens - 1) / + pool.tokens; pool.tokens = pool.tokens - tokensToSlash; pool.tokensThawing = (pool.tokensThawing * (FIXED_POINT_PRECISION - delegationFractionSlashed)) / @@ -534,7 +609,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { */ function setDelegationSlashingEnabled() external override onlyGovernor { _delegationSlashingEnabled = true; - emit DelegationSlashingEnabled(_delegationSlashingEnabled); + emit DelegationSlashingEnabled(); } /** @@ -663,7 +738,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { } /** - * @notice See {IHorizonStakingMain-createProvision}. + * @notice See {IHorizonStakingMain-provision}. */ function _createProvision( address _serviceProvider, @@ -732,15 +807,17 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { // Calculate shares to issue // Thawing pool is reset/initialized when the pool is empty: prov.tokensThawing == 0 + // Round thawing shares up to ensure fairness and avoid undervaluing the shares due to rounding down. uint256 thawingShares = prov.tokensThawing == 0 ? _tokens - : ((prov.sharesThawing * _tokens) / prov.tokensThawing); + : ((prov.sharesThawing * _tokens + prov.tokensThawing - 1) / prov.tokensThawing); uint64 thawingUntil = uint64(block.timestamp + uint256(prov.thawingPeriod)); prov.sharesThawing = prov.sharesThawing + thawingShares; prov.tokensThawing = prov.tokensThawing + _tokens; bytes32 thawRequestId = _createThawRequest( + ThawRequestType.Provision, _serviceProvider, _verifier, _serviceProvider, @@ -765,15 +842,18 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { uint256 tokensThawed_ = 0; uint256 sharesThawing = prov.sharesThawing; uint256 tokensThawing = prov.tokensThawing; - (tokensThawed_, tokensThawing, sharesThawing) = _fulfillThawRequests( - _serviceProvider, - _verifier, - _serviceProvider, - tokensThawing, - sharesThawing, - _nThawRequests, - prov.thawingNonce - ); + + FulfillThawRequestsParams memory params = FulfillThawRequestsParams({ + requestType: ThawRequestType.Provision, + serviceProvider: _serviceProvider, + verifier: _verifier, + owner: _serviceProvider, + tokensThawing: tokensThawing, + sharesThawing: sharesThawing, + nThawRequests: _nThawRequests, + thawingNonce: prov.thawingNonce + }); + (tokensThawed_, tokensThawing, sharesThawing) = _fulfillThawRequests(params); prov.tokens = prov.tokens - tokensThawed_; prov.sharesThawing = sharesThawing; @@ -790,6 +870,9 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { * have been done before calling this function. */ function _delegate(address _serviceProvider, address _verifier, uint256 _tokens, uint256 _minSharesOut) private { + // Enforces a minimum delegation amount to prevent share manipulation attacks. + // This stops attackers from inflating share value and blocking other delegators. + require(_tokens >= MIN_DELEGATION, HorizonStakingInsufficientDelegationTokens(_tokens, MIN_DELEGATION)); require( _provisions[_serviceProvider][_verifier].createdAt != 0, HorizonStakingInvalidProvision(_serviceProvider, _verifier) @@ -833,6 +916,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { * that were not thawing will be preserved. */ function _undelegate( + ThawRequestType _requestType, address _serviceProvider, address _verifier, uint256 _shares, @@ -850,6 +934,18 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { // delegation pool shares -> delegation pool tokens -> thawing pool shares // Thawing pool is reset/initialized when the pool is empty: prov.tokensThawing == 0 uint256 tokens = (_shares * (pool.tokens - pool.tokensThawing)) / pool.shares; + + // Since anyone can undelegate for any beneficiary, we require a minimum amount to prevent + // malicious actors from flooding the thaw request list with tiny amounts and causing a + // denial of service attack by hitting the MAX_THAW_REQUESTS limit + if (_requestType == ThawRequestType.DelegationWithBeneficiary) { + require( + tokens >= MIN_UNDELEGATION_WITH_BENEFICIARY, + HorizonStakingInsufficientUndelegationTokens(tokens, MIN_UNDELEGATION_WITH_BENEFICIARY) + ); + } + + // Thawing shares are rounded down to protect the pool and avoid taking extra tokens from other participants. uint256 thawingShares = pool.tokensThawing == 0 ? tokens : ((tokens * pool.sharesThawing) / pool.tokensThawing); uint64 thawingUntil = uint64(block.timestamp + uint256(_provisions[_serviceProvider][_verifier].thawingPeriod)); @@ -858,8 +954,16 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { pool.shares = pool.shares - _shares; delegation.shares = delegation.shares - _shares; + if (delegation.shares != 0) { + uint256 remainingTokens = (delegation.shares * (pool.tokens - pool.tokensThawing)) / pool.shares; + require( + remainingTokens >= MIN_DELEGATION, + HorizonStakingInsufficientTokens(remainingTokens, MIN_DELEGATION) + ); + } bytes32 thawRequestId = _createThawRequest( + _requestType, _serviceProvider, _verifier, _beneficiary, @@ -876,6 +980,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { * @notice See {IHorizonStakingMain-withdrawDelegated}. */ function _withdrawDelegated( + ThawRequestType _requestType, address _serviceProvider, address _verifier, address _newServiceProvider, @@ -894,15 +999,18 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { uint256 tokensThawed = 0; uint256 sharesThawing = pool.sharesThawing; uint256 tokensThawing = pool.tokensThawing; - (tokensThawed, tokensThawing, sharesThawing) = _fulfillThawRequests( - _serviceProvider, - _verifier, - msg.sender, - tokensThawing, - sharesThawing, - _nThawRequests, - pool.thawingNonce - ); + + FulfillThawRequestsParams memory params = FulfillThawRequestsParams({ + requestType: _requestType, + serviceProvider: _serviceProvider, + verifier: _verifier, + owner: msg.sender, + tokensThawing: tokensThawing, + sharesThawing: sharesThawing, + nThawRequests: _nThawRequests, + thawingNonce: pool.thawingNonce + }); + (tokensThawed, tokensThawing, sharesThawing) = _fulfillThawRequests(params); // The next subtraction should never revert becase: pool.tokens >= pool.tokensThawing and pool.tokensThawing >= tokensThawed // In the event the pool gets completely slashed tokensThawed will fulfil to 0. @@ -936,6 +1044,7 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { * @return The ID of the thaw request */ function _createThawRequest( + ThawRequestType _requestType, address _serviceProvider, address _verifier, address _owner, @@ -943,18 +1052,23 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { uint64 _thawingUntil, uint256 _thawingNonce ) private returns (bytes32) { - LinkedList.List storage thawRequestList = _thawRequestLists[_serviceProvider][_verifier][_owner]; + require(_shares != 0, HorizonStakingInvalidZeroShares()); + LinkedList.List storage thawRequestList = _getThawRequestList( + _requestType, + _serviceProvider, + _verifier, + _owner + ); require(thawRequestList.count < MAX_THAW_REQUESTS, HorizonStakingTooManyThawRequests()); bytes32 thawRequestId = keccak256(abi.encodePacked(_serviceProvider, _verifier, _owner, thawRequestList.nonce)); - _thawRequests[thawRequestId] = ThawRequest({ - shares: _shares, - thawingUntil: _thawingUntil, - next: bytes32(0), - thawingNonce: _thawingNonce - }); + ThawRequest storage thawRequest = _getThawRequest(_requestType, thawRequestId); + thawRequest.shares = _shares; + thawRequest.thawingUntil = _thawingUntil; + thawRequest.next = bytes32(0); + thawRequest.thawingNonce = _thawingNonce; - if (thawRequestList.count != 0) _thawRequests[thawRequestList.tail].next = thawRequestId; + if (thawRequestList.count != 0) _getThawRequest(_requestType, thawRequestList.tail).next = thawRequestId; thawRequestList.addTail(thawRequestId); emit ThawRequestCreated(_serviceProvider, _verifier, _owner, _shares, _thawingUntil, thawRequestId); @@ -964,41 +1078,74 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { /** * @notice Traverses a thaw request list and fulfills expired thaw requests. * @dev Emits a {ThawRequestsFulfilled} event and a {ThawRequestFulfilled} event for each thaw request fulfilled. - * @param _serviceProvider The address of the service provider - * @param _verifier The address of the verifier - * @param _owner The address of the owner of the thaw request - * @param _tokensThawing The current amount of tokens already thawing - * @param _sharesThawing The current amount of shares already thawing - * @param _nThawRequests The number of thaw requests to fulfill. If set to 0, all thaw requests are fulfilled. - * @param _thawingNonce The current valid thawing nonce. Any thaw request with a different nonce is invalid and should be ignored. + * @param params The parameters for fulfilling thaw requests * @return The amount of thawed tokens * @return The amount of tokens still thawing * @return The amount of shares still thawing */ - function _fulfillThawRequests( - address _serviceProvider, - address _verifier, - address _owner, - uint256 _tokensThawing, - uint256 _sharesThawing, - uint256 _nThawRequests, - uint256 _thawingNonce - ) private returns (uint256, uint256, uint256) { - LinkedList.List storage thawRequestList = _thawRequestLists[_serviceProvider][_verifier][_owner]; + function _fulfillThawRequests(FulfillThawRequestsParams memory params) private returns (uint256, uint256, uint256) { + LinkedList.List storage thawRequestList = _getThawRequestList( + params.requestType, + params.serviceProvider, + params.verifier, + params.owner + ); require(thawRequestList.count > 0, HorizonStakingNothingThawing()); - uint256 tokensThawed = 0; + TraverseThawRequestsResults memory results = _traverseThawRequests(params, thawRequestList); + + emit ThawRequestsFulfilled( + params.serviceProvider, + params.verifier, + params.owner, + results.requestsFulfilled, + results.tokensThawed, + params.requestType + ); + + return (results.tokensThawed, results.tokensThawing, results.sharesThawing); + } + + /** + * @notice Traverses a thaw request list and fulfills expired thaw requests. + * @param params The parameters for fulfilling thaw requests + * @param thawRequestList The list of thaw requests to traverse + * @return The results of the traversal + */ + function _traverseThawRequests( + FulfillThawRequestsParams memory params, + LinkedList.List storage thawRequestList + ) private returns (TraverseThawRequestsResults memory) { + function(bytes32) view returns (bytes32) getNextItem = _getNextThawRequest(params.requestType); + function(bytes32) deleteItem = _getDeleteThawRequest(params.requestType); + + bytes memory acc = abi.encode( + params.requestType, + uint256(0), + params.tokensThawing, + params.sharesThawing, + params.thawingNonce + ); (uint256 thawRequestsFulfilled, bytes memory data) = thawRequestList.traverse( - _getNextThawRequest, + getNextItem, _fulfillThawRequest, - _deleteThawRequest, - abi.encode(tokensThawed, _tokensThawing, _sharesThawing, _thawingNonce), - _nThawRequests + deleteItem, + acc, + params.nThawRequests ); - (tokensThawed, _tokensThawing, _sharesThawing) = abi.decode(data, (uint256, uint256, uint256)); - emit ThawRequestsFulfilled(_serviceProvider, _verifier, _owner, thawRequestsFulfilled, tokensThawed); - return (tokensThawed, _tokensThawing, _sharesThawing); + (, uint256 tokensThawed, uint256 tokensThawing, uint256 sharesThawing) = abi.decode( + data, + (ThawRequestType, uint256, uint256, uint256) + ); + + return + TraverseThawRequestsResults({ + requestsFulfilled: thawRequestsFulfilled, + tokensThawed: tokensThawed, + tokensThawing: tokensThawing, + sharesThawing: sharesThawing + }); } /** @@ -1013,19 +1160,22 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { * @return The updated accumulator data */ function _fulfillThawRequest(bytes32 _thawRequestId, bytes memory _acc) private returns (bool, bytes memory) { - ThawRequest storage thawRequest = _thawRequests[_thawRequestId]; + // decode + ( + ThawRequestType requestType, + uint256 tokensThawed, + uint256 tokensThawing, + uint256 sharesThawing, + uint256 thawingNonce + ) = abi.decode(_acc, (ThawRequestType, uint256, uint256, uint256, uint256)); + + ThawRequest storage thawRequest = _getThawRequest(requestType, _thawRequestId); // early exit if (thawRequest.thawingUntil > block.timestamp) { return (true, LinkedList.NULL_BYTES); } - // decode - (uint256 tokensThawed, uint256 tokensThawing, uint256 sharesThawing, uint256 thawingNonce) = abi.decode( - _acc, - (uint256, uint256, uint256, uint256) - ); - // process - only fulfill thaw requests for the current valid nonce uint256 tokens = 0; bool validThawRequest = thawRequest.thawingNonce == thawingNonce; @@ -1044,17 +1194,49 @@ contract HorizonStaking is HorizonStakingBase, IHorizonStakingMain { ); // encode - _acc = abi.encode(tokensThawed, tokensThawing, sharesThawing, thawingNonce); + _acc = abi.encode(requestType, tokensThawed, tokensThawing, sharesThawing, thawingNonce); return (false, _acc); } /** - * @notice Deletes a ThawRequest. - * @dev This function is used as a callback in the thaw requests linked list traversal. - * @param _thawRequestId The ID of the thaw request to delete + * @notice Determines the correct callback function for `deleteItem` based on the request type. + * @param _requestType The type of thaw request (Provision or Delegation). + * @return A function pointer to the appropriate `deleteItem` callback. + */ + function _getDeleteThawRequest(ThawRequestType _requestType) private pure returns (function(bytes32)) { + if (_requestType == ThawRequestType.Provision) { + return _deleteProvisionThawRequest; + } else if (_requestType == ThawRequestType.Delegation) { + return _deleteDelegationThawRequest; + } else if (_requestType == ThawRequestType.DelegationWithBeneficiary) { + return _deleteDelegationWithBeneficiaryThawRequest; + } else { + revert HorizonStakingInvalidThawRequestType(); + } + } + + /** + * @notice Deletes a thaw request for a provision. + * @param _thawRequestId The ID of the thaw request to delete. + */ + function _deleteProvisionThawRequest(bytes32 _thawRequestId) private { + delete _thawRequests[ThawRequestType.Provision][_thawRequestId]; + } + + /** + * @notice Deletes a thaw request for a delegation. + * @param _thawRequestId The ID of the thaw request to delete. + */ + function _deleteDelegationThawRequest(bytes32 _thawRequestId) private { + delete _thawRequests[ThawRequestType.Delegation][_thawRequestId]; + } + + /** + * @notice Deletes a thaw request for a delegation with a beneficiary. + * @param _thawRequestId The ID of the thaw request to delete. */ - function _deleteThawRequest(bytes32 _thawRequestId) private { - delete _thawRequests[_thawRequestId]; + function _deleteDelegationWithBeneficiaryThawRequest(bytes32 _thawRequestId) private { + delete _thawRequests[ThawRequestType.DelegationWithBeneficiary][_thawRequestId]; } /** diff --git a/packages/horizon/contracts/staking/HorizonStakingBase.sol b/packages/horizon/contracts/staking/HorizonStakingBase.sol index d29d3edec..5f2808255 100644 --- a/packages/horizon/contracts/staking/HorizonStakingBase.sol +++ b/packages/horizon/contracts/staking/HorizonStakingBase.sol @@ -173,48 +173,58 @@ abstract contract HorizonStakingBase is /** * @notice See {IHorizonStakingBase-getThawRequest}. */ - function getThawRequest(bytes32 thawRequestId) external view override returns (ThawRequest memory) { - return _thawRequests[thawRequestId]; + function getThawRequest( + ThawRequestType requestType, + bytes32 thawRequestId + ) external view override returns (ThawRequest memory) { + return _getThawRequest(requestType, thawRequestId); } /** * @notice See {IHorizonStakingBase-getThawRequestList}. */ function getThawRequestList( + ThawRequestType requestType, address serviceProvider, address verifier, address owner ) external view override returns (LinkedList.List memory) { - return _thawRequestLists[serviceProvider][verifier][owner]; + return _getThawRequestList(requestType, serviceProvider, verifier, owner); } /** * @notice See {IHorizonStakingBase-getThawedTokens}. */ function getThawedTokens( + ThawRequestType requestType, address serviceProvider, address verifier, address owner ) external view override returns (uint256) { - LinkedList.List storage thawRequestList = _thawRequestLists[serviceProvider][verifier][owner]; + LinkedList.List storage thawRequestList = _getThawRequestList(requestType, serviceProvider, verifier, owner); if (thawRequestList.count == 0) { return 0; } - uint256 tokens = 0; + uint256 thawedTokens = 0; Provision storage prov = _provisions[serviceProvider][verifier]; + uint256 tokensThawing = prov.tokensThawing; + uint256 sharesThawing = prov.sharesThawing; bytes32 thawRequestId = thawRequestList.head; while (thawRequestId != bytes32(0)) { - ThawRequest storage thawRequest = _thawRequests[thawRequestId]; + ThawRequest storage thawRequest = _getThawRequest(requestType, thawRequestId); if (thawRequest.thawingUntil <= block.timestamp) { - tokens += (thawRequest.shares * prov.tokensThawing) / prov.sharesThawing; + uint256 tokens = (thawRequest.shares * tokensThawing) / sharesThawing; + tokensThawing = tokensThawing - tokens; + sharesThawing = sharesThawing - thawRequest.shares; + thawedTokens = thawedTokens + tokens; } else { break; } thawRequestId = thawRequest.next; } - return tokens; + return thawedTokens; } /** @@ -258,11 +268,11 @@ abstract contract HorizonStakingBase is * TODO: update the calculation after the transition period. */ function _getIdleStake(address _serviceProvider) internal view returns (uint256) { - return - _serviceProviders[_serviceProvider].tokensStaked - - _serviceProviders[_serviceProvider].tokensProvisioned - - _serviceProviders[_serviceProvider].__DEPRECATED_tokensAllocated - + uint256 tokensUsed = _serviceProviders[_serviceProvider].tokensProvisioned + + _serviceProviders[_serviceProvider].__DEPRECATED_tokensAllocated + _serviceProviders[_serviceProvider].__DEPRECATED_tokensLocked; + uint256 tokensStaked = _serviceProviders[_serviceProvider].tokensStaked; + return tokensStaked > tokensUsed ? tokensStaked - tokensUsed : 0; } /** @@ -289,11 +299,83 @@ abstract contract HorizonStakingBase is } /** - * @notice Gets the next thaw request after `_thawRequestId`. - * @dev This function is used as a callback in the thaw requests linked list traversal. + * @notice Determines the correct callback function for `getNextItem` based on the request type. + * @param _requestType The type of thaw request (Provision or Delegation). + * @return A function pointer to the appropriate `getNextItem` callback. */ - function _getNextThawRequest(bytes32 _thawRequestId) internal view returns (bytes32) { - return _thawRequests[_thawRequestId].next; + function _getNextThawRequest( + ThawRequestType _requestType + ) internal pure returns (function(bytes32) view returns (bytes32)) { + if (_requestType == ThawRequestType.Provision) { + return _getNextProvisionThawRequest; + } else if (_requestType == ThawRequestType.Delegation) { + return _getNextDelegationThawRequest; + } else if (_requestType == ThawRequestType.DelegationWithBeneficiary) { + return _getNextDelegationWithBeneficiaryThawRequest; + } else { + revert HorizonStakingInvalidThawRequestType(); + } + } + + /** + * @notice Retrieves the next thaw request for a provision. + * @param _thawRequestId The ID of the current thaw request. + * @return The ID of the next thaw request in the list. + */ + function _getNextProvisionThawRequest(bytes32 _thawRequestId) internal view returns (bytes32) { + return _thawRequests[ThawRequestType.Provision][_thawRequestId].next; + } + + /** + * @notice Retrieves the next thaw request for a delegation. + * @param _thawRequestId The ID of the current thaw request. + * @return The ID of the next thaw request in the list. + */ + function _getNextDelegationThawRequest(bytes32 _thawRequestId) internal view returns (bytes32) { + return _thawRequests[ThawRequestType.Delegation][_thawRequestId].next; + } + + /** + * @notice Retrieves the next thaw request for a delegation with a beneficiary. + * @param _thawRequestId The ID of the current thaw request. + * @return The ID of the next thaw request in the list. + */ + function _getNextDelegationWithBeneficiaryThawRequest(bytes32 _thawRequestId) internal view returns (bytes32) { + return _thawRequests[ThawRequestType.DelegationWithBeneficiary][_thawRequestId].next; + } + + /** + * @notice Retrieves the thaw request list for the given request type. + * @dev Uses the `ThawRequestType` to determine which mapping to access. + * Reverts if the request type is unknown. + * @param _requestType The type of thaw request (Provision or Delegation). + * @param _serviceProvider The address of the service provider. + * @param _verifier The address of the verifier. + * @param _owner The address of the owner of the thaw request. + * @return The linked list of thaw requests for the specified request type. + */ + function _getThawRequestList( + ThawRequestType _requestType, + address _serviceProvider, + address _verifier, + address _owner + ) internal view returns (LinkedList.List storage) { + return _thawRequestLists[_requestType][_serviceProvider][_verifier][_owner]; + } + + /** + * @notice Retrieves a specific thaw request for the given request type. + * @dev Uses the `ThawRequestType` to determine which mapping to access. + * Reverts if the request type is unknown. + * @param _requestType The type of thaw request (Provision or Delegation). + * @param _thawRequestId The unique ID of the thaw request. + * @return The thaw request data for the specified request type and ID. + */ + function _getThawRequest( + ThawRequestType _requestType, + bytes32 _thawRequestId + ) internal view returns (IHorizonStakingTypes.ThawRequest storage) { + return _thawRequests[_requestType][_thawRequestId]; } /** diff --git a/packages/horizon/contracts/staking/HorizonStakingExtension.sol b/packages/horizon/contracts/staking/HorizonStakingExtension.sol index bc878a4f5..3b42ebf1a 100644 --- a/packages/horizon/contracts/staking/HorizonStakingExtension.sol +++ b/packages/horizon/contracts/staking/HorizonStakingExtension.sol @@ -19,8 +19,8 @@ import { HorizonStakingBase } from "./HorizonStakingBase.sol"; * to the Horizon Staking contract. It allows indexers to close allocations and collect pending query fees, but it * does not allow for the creation of new allocations. This should allow indexers to migrate to a subgraph data service * without losing rewards or having service interruptions. - * @dev TODO: Once the transition period passes this contract can be removed. It's expected the transition period to - * last for a full allocation cycle (28 epochs). + * @dev TODO: Once the transition period passes this contract can be removed (note that an upgrade to the RewardsManager + * will also be required). It's expected the transition period to last for a full allocation cycle (28 epochs). * @custom:security-contact Please email security+contracts@thegraph.com if you find any * bugs. We may have an active bug bounty program. */ @@ -36,6 +36,14 @@ contract HorizonStakingExtension is HorizonStakingBase, IHorizonStakingExtension _; } + /** + * @dev Check if the caller is the slasher. + */ + modifier onlySlasher() { + require(__DEPRECATED_slashers[msg.sender] == true, "!slasher"); + _; + } + /** * @dev The staking contract is upgradeable however we still use the constructor to set * a few immutable variables. @@ -255,6 +263,54 @@ contract HorizonStakingExtension is HorizonStakingBase, IHorizonStakingExtension return __DEPRECATED_thawingPeriod; } + function legacySlash( + address indexer, + uint256 tokens, + uint256 reward, + address beneficiary + ) external override onlySlasher notPaused { + ServiceProviderInternal storage indexerStake = _serviceProviders[indexer]; + + // Only able to slash a non-zero number of tokens + require(tokens > 0, "!tokens"); + + // Rewards comes from tokens slashed balance + require(tokens >= reward, "rewards>slash"); + + // Cannot slash stake of an indexer without any or enough stake + require(indexerStake.tokensStaked > 0, "!stake"); + require(tokens <= indexerStake.tokensStaked, "slash>stake"); + + // Validate beneficiary of slashed tokens + require(beneficiary != address(0), "!beneficiary"); + + // Slashing more tokens than freely available (over allocation condition) + // Unlock locked tokens to avoid the indexer to withdraw them + uint256 tokensUsed = indexerStake.__DEPRECATED_tokensAllocated + indexerStake.__DEPRECATED_tokensLocked; + uint256 tokensAvailable = tokensUsed > indexerStake.tokensStaked ? 0 : indexerStake.tokensStaked - tokensUsed; + if (tokens > tokensAvailable && indexerStake.__DEPRECATED_tokensLocked > 0) { + uint256 tokensOverAllocated = tokens - tokensAvailable; + uint256 tokensToUnlock = MathUtils.min(tokensOverAllocated, indexerStake.__DEPRECATED_tokensLocked); + indexerStake.__DEPRECATED_tokensLocked = indexerStake.__DEPRECATED_tokensLocked - tokensToUnlock; + if (indexerStake.__DEPRECATED_tokensLocked == 0) { + indexerStake.__DEPRECATED_tokensLockedUntil = 0; + } + } + + // Remove tokens to slash from the stake + indexerStake.tokensStaked = indexerStake.tokensStaked - tokens; + + // -- Interactions -- + + // Set apart the reward for the beneficiary and burn remaining slashed stake + _graphToken().burnTokens(tokens - reward); + + // Give the beneficiary a reward for slashing + _graphToken().pushTokens(beneficiary, reward); + + emit StakeSlashed(indexer, tokens, reward, beneficiary); + } + /** * @notice (Legacy) Return true if operator is allowed for the service provider on the subgraph data service. * @dev TODO: Delete after the transition period @@ -349,8 +405,7 @@ contract HorizonStakingExtension is HorizonStakingBase, IHorizonStakingExtension // Anyone is allowed to close ONLY under two concurrent conditions // - After maxAllocationEpochs passed // - When the allocation is for non-zero amount of tokens - bool isIndexerOrOperator = msg.sender == alloc.indexer || - isOperator(alloc.indexer, SUBGRAPH_DATA_SERVICE_ADDRESS); + bool isIndexerOrOperator = msg.sender == alloc.indexer || isOperator(msg.sender, alloc.indexer); if (epochs <= __DEPRECATED_maxAllocationEpochs || alloc.tokens == 0) { require(isIndexerOrOperator, "!auth"); } diff --git a/packages/horizon/contracts/staking/HorizonStakingStorage.sol b/packages/horizon/contracts/staking/HorizonStakingStorage.sol index ce2755468..a470ac363 100644 --- a/packages/horizon/contracts/staking/HorizonStakingStorage.sol +++ b/packages/horizon/contracts/staking/HorizonStakingStorage.sol @@ -149,11 +149,12 @@ abstract contract HorizonStakingV1Storage { /// @dev Thaw requests /// Details for each thawing operation in the staking contract (for both service providers and delegators). - mapping(bytes32 thawRequestId => IHorizonStakingTypes.ThawRequest thawRequest) internal _thawRequests; + mapping(IHorizonStakingTypes.ThawRequestType thawRequestType => mapping(bytes32 thawRequestId => IHorizonStakingTypes.ThawRequest thawRequest)) + internal _thawRequests; /// @dev Thaw request lists /// Metadata defining linked lists of thaw requests for each service provider or delegator (owner) - mapping(address serviceProvider => mapping(address verifier => mapping(address owner => LinkedList.List list))) + mapping(IHorizonStakingTypes.ThawRequestType thawRequestType => mapping(address serviceProvider => mapping(address verifier => mapping(address owner => LinkedList.List list)))) internal _thawRequestLists; /// @dev Operator allow list diff --git a/packages/horizon/ignition/configs/horizon.hardhat.json b/packages/horizon/ignition/configs/horizon.hardhat.json5 similarity index 56% rename from packages/horizon/ignition/configs/horizon.hardhat.json rename to packages/horizon/ignition/configs/horizon.hardhat.json5 index ef16c8136..c06f27ad0 100644 --- a/packages/horizon/ignition/configs/horizon.hardhat.json +++ b/packages/horizon/ignition/configs/horizon.hardhat.json5 @@ -1,42 +1,31 @@ { - "GraphProxyAdmin": { - "governor": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0" - }, - "Controller": { + "$global": { "governor": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0", - "pauseGuardian": "0x95cED938F7991cd0dFcb48F0a06a40FA1aF46EBC" - }, - "RewardsManager": { + "pauseGuardian": "0x95cED938F7991cd0dFcb48F0a06a40FA1aF46EBC", "subgraphAvailabilityOracle": "0xd03ea8624C8C5987235048901fB614fDcA89b117", - "issuancePerBlock": "114155251141552511415n", + // Placeholder address for a standalone Horizon deployment, see README.md for more details "subgraphServiceAddress": "0x0000000000000000000000000000000000000000" }, + "RewardsManager": { + "issuancePerBlock": "114155251141552511415n" + }, "EpochManager": { "epochLength": 60 }, - "GraphTokenGateway": { - "pauseGuardian": "0x95cED938F7991cd0dFcb48F0a06a40FA1aF46EBC" - }, "Curation": { "curationTaxPercentage": 10000, "minimumCurationDeposit": 1 }, "GraphToken": { - "initialSupply": "10000000000000000000000000000n", - "governor": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0" + "initialSupply": "10000000000000000000000000000n" }, "HorizonStaking": { - "subgraphServiceAddress": "0x0000000000000000000000000000000000000000", "maxThawingPeriod": 2419200 }, - "HorizonStakingExtension": { - "subgraphServiceAddress": "0x0000000000000000000000000000000000000000" - }, "GraphPayments": { "protocolPaymentCut": 10000 }, "PaymentsEscrow": { - "revokeCollectorThawingPeriod": 10000, "withdrawEscrowThawingPeriod": 10000 }, "TAPCollector": { diff --git a/packages/horizon/ignition/modules/core/PaymentsEscrow.ts b/packages/horizon/ignition/modules/core/PaymentsEscrow.ts index 1dbd07088..7c7948a7e 100644 --- a/packages/horizon/ignition/modules/core/PaymentsEscrow.ts +++ b/packages/horizon/ignition/modules/core/PaymentsEscrow.ts @@ -10,13 +10,12 @@ export default buildModule('PaymentsEscrow', (m) => { const { Controller, PeripheryRegistered } = m.useModule(GraphPeripheryModule) const { PaymentsEscrowProxyAdmin, PaymentsEscrowProxy, HorizonRegistered } = m.useModule(HorizonProxiesModule) - const revokeCollectorThawingPeriod = m.getParameter('revokeCollectorThawingPeriod') const withdrawEscrowThawingPeriod = m.getParameter('withdrawEscrowThawingPeriod') // Deploy PaymentsEscrow implementation const PaymentsEscrowImplementation = m.contract('PaymentsEscrow', PaymentsEscrowArtifact, - [Controller, revokeCollectorThawingPeriod, withdrawEscrowThawingPeriod], + [Controller, withdrawEscrowThawingPeriod], { after: [PeripheryRegistered, HorizonRegistered], }, diff --git a/packages/horizon/package.json b/packages/horizon/package.json index 99966ddb1..ba3ff93c9 100644 --- a/packages/horizon/package.json +++ b/packages/horizon/package.json @@ -23,12 +23,12 @@ "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", "@nomicfoundation/hardhat-ethers": "^3.0.8", "@nomicfoundation/hardhat-foundry": "^1.1.1", - "@nomicfoundation/hardhat-ignition": "^0.15.5", - "@nomicfoundation/hardhat-ignition-ethers": "^0.15.5", + "@nomicfoundation/hardhat-ignition": "^0.15.8", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.8", "@nomicfoundation/hardhat-network-helpers": "^1.0.0", "@nomicfoundation/hardhat-toolbox": "^4.0.0", "@nomicfoundation/hardhat-verify": "^2.0.10", - "@nomicfoundation/ignition-core": "^0.15.5", + "@nomicfoundation/ignition-core": "^0.15.8", "@openzeppelin/contracts": "^5.0.2", "@openzeppelin/contracts-upgradeable": "^5.0.2", "@typechain/ethers-v6": "^0.5.0", diff --git a/packages/horizon/scripts/deploy.ts b/packages/horizon/scripts/deploy.ts index 5a94398d2..4af1f769e 100644 --- a/packages/horizon/scripts/deploy.ts +++ b/packages/horizon/scripts/deploy.ts @@ -1,16 +1,33 @@ +require('json5/lib/register') + import { ignition } from 'hardhat' -import Parameters from '../ignition/configs/horizon.hardhat.json' -import PeripheryModule from '../ignition/modules/periphery' +import HorizonModule from '../ignition/modules/horizon' async function main() { - await ignition.deploy(PeripheryModule, { - parameters: Parameters, + const HorizonConfig = removeNFromBigInts(require('../ignition/configs/horizon.hardhat.json5')) + + // Deploy Horizon + await ignition.deploy(HorizonModule, { + parameters: HorizonConfig, }) } +main().catch((error) => { + console.error(error) + process.exit(1) +}) -main() - .catch((error) => { - console.error(error) - process.exit(1) - }) +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function removeNFromBigInts(obj: any): any { + // Ignition requires "n" suffix for bigints, but not here + if (typeof obj === 'string') { + return obj.replace(/(\d+)n/g, '$1') + } else if (Array.isArray(obj)) { + return obj.map(removeNFromBigInts) + } else if (typeof obj === 'object' && obj !== null) { + for (const key in obj) { + obj[key] = removeNFromBigInts(obj[key]) + } + } + return obj +} diff --git a/packages/horizon/test/GraphBase.t.sol b/packages/horizon/test/GraphBase.t.sol index 7aa44d6f5..b2eef0dd9 100644 --- a/packages/horizon/test/GraphBase.t.sol +++ b/packages/horizon/test/GraphBase.t.sol @@ -71,7 +71,8 @@ abstract contract GraphBaseTest is IHorizonStakingTypes, Utils, Constants { operator: createUser("operator"), gateway: createUser("gateway"), verifier: createUser("verifier"), - delegator: createUser("delegator") + delegator: createUser("delegator"), + legacySlasher: createUser("legacySlasher") }); // Deploy protocol contracts @@ -116,7 +117,7 @@ abstract contract GraphBaseTest is IHorizonStakingTypes, Utils, Constants { // PaymentsEscrow bytes memory escrowImplementationParameters = abi.encode( address(controller), - revokeCollectorThawingPeriod,withdrawEscrowThawingPeriod + withdrawEscrowThawingPeriod ); bytes memory escrowImplementationBytecode = abi.encodePacked( type(PaymentsEscrow).creationCode, diff --git a/packages/horizon/test/data-service/DataService.t.sol b/packages/horizon/test/data-service/DataService.t.sol index c535c6dea..d18e49ba9 100644 --- a/packages/horizon/test/data-service/DataService.t.sol +++ b/packages/horizon/test/data-service/DataService.t.sol @@ -65,6 +65,25 @@ contract DataServiceTest is HorizonStakingSharedTest { assertEq(max, dataServiceOverride.PROVISION_TOKENS_MAX()); } + function test_ProvisionTokens_WhenCheckingAValidProvision_WithThawing(uint256 tokens, uint256 tokensThaw) external useIndexer { + dataService.setProvisionTokensRange(dataService.PROVISION_TOKENS_MIN(), dataService.PROVISION_TOKENS_MAX()); + tokens = bound(tokens, dataService.PROVISION_TOKENS_MIN(), dataService.PROVISION_TOKENS_MAX()); + tokensThaw = bound(tokensThaw, tokens - dataService.PROVISION_TOKENS_MIN() + 1, tokens); + + _createProvision(users.indexer, address(dataService), tokens, 0, 0); + staking.thaw(users.indexer, address(dataService), tokensThaw); + vm.expectRevert( + abi.encodeWithSelector( + ProvisionManager.ProvisionManagerInvalidValue.selector, + "tokens", + tokens - tokensThaw, + dataService.PROVISION_TOKENS_MIN(), + dataService.PROVISION_TOKENS_MAX() + ) + ); + dataService.checkProvisionTokens(users.indexer); + } + function test_ProvisionTokens_WhenCheckingAValidProvision(uint256 tokens) external useIndexer { dataService.setProvisionTokensRange(dataService.PROVISION_TOKENS_MIN(), dataService.PROVISION_TOKENS_MAX()); tokens = bound(tokens, dataService.PROVISION_TOKENS_MIN(), dataService.PROVISION_TOKENS_MAX()); diff --git a/packages/horizon/test/data-service/extensions/DataServicePausable.t.sol b/packages/horizon/test/data-service/extensions/DataServicePausable.t.sol index 111838fe4..46cded2eb 100644 --- a/packages/horizon/test/data-service/extensions/DataServicePausable.t.sol +++ b/packages/horizon/test/data-service/extensions/DataServicePausable.t.sol @@ -70,6 +70,23 @@ contract DataServicePausableTest is HorizonStakingSharedTest { _assert_setPauseGuardian(address(this), false); } + function test_SetPauseGuardian_RevertWhen_AlreadyPauseGuardian() external { + _assert_setPauseGuardian(address(this), true); + vm.expectRevert( + abi.encodeWithSignature("DataServicePausablePauseGuardianNoChange(address,bool)", address(this), true) + ); + dataService.setPauseGuardian(address(this), true); + } + + function test_SetPauseGuardian_RevertWhen_AlreadyNotPauseGuardian() external { + _assert_setPauseGuardian(address(this), true); + _assert_setPauseGuardian(address(this), false); + vm.expectRevert( + abi.encodeWithSignature("DataServicePausablePauseGuardianNoChange(address,bool)", address(this), false) + ); + dataService.setPauseGuardian(address(this), false); + } + function test_PausedProtectedFn_RevertWhen_TheProtocolIsPaused() external { _assert_setPauseGuardian(address(this), true); _assert_pause(); diff --git a/packages/horizon/test/escrow/GraphEscrow.t.sol b/packages/horizon/test/escrow/GraphEscrow.t.sol index d3ffd21da..120713c6c 100644 --- a/packages/horizon/test/escrow/GraphEscrow.t.sol +++ b/packages/horizon/test/escrow/GraphEscrow.t.sol @@ -2,11 +2,15 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; +import { IPaymentsEscrow } from "../../contracts/interfaces/IPaymentsEscrow.sol"; +import { IGraphPayments } from "../../contracts/interfaces/IGraphPayments.sol"; import { HorizonStakingSharedTest } from "../shared/horizon-staking/HorizonStakingShared.t.sol"; import { PaymentsEscrowSharedTest } from "../shared/payments-escrow/PaymentsEscrowShared.t.sol"; +import { PPMMath } from "../../contracts/libraries/PPMMath.sol"; contract GraphEscrowTest is HorizonStakingSharedTest, PaymentsEscrowSharedTest { + using PPMMath for uint256; /* * MODIFIERS @@ -24,12 +28,6 @@ contract GraphEscrowTest is HorizonStakingSharedTest, PaymentsEscrowSharedTest { _; } - modifier useCollector(uint256 tokens) { - vm.assume(tokens > 0); - escrow.approveCollector(users.verifier, tokens); - _; - } - modifier depositAndThawTokens(uint256 amount, uint256 thawAmount) { vm.assume(thawAmount > 0); vm.assume(amount > thawAmount); @@ -45,4 +43,101 @@ contract GraphEscrowTest is HorizonStakingSharedTest, PaymentsEscrowSharedTest { function _approveEscrow(uint256 tokens) internal { token.approve(address(escrow), tokens); } -} \ No newline at end of file + + function _thawEscrow(address collector, address receiver, uint256 amount) internal { + (, address msgSender, ) = vm.readCallers(); + uint256 expectedThawEndTimestamp = block.timestamp + withdrawEscrowThawingPeriod; + vm.expectEmit(address(escrow)); + emit IPaymentsEscrow.Thaw(msgSender, collector, receiver, amount, expectedThawEndTimestamp); + escrow.thaw(collector, receiver, amount); + + (, uint256 amountThawing, uint256 thawEndTimestamp) = escrow.escrowAccounts(msgSender, collector, receiver); + assertEq(amountThawing, amount); + assertEq(thawEndTimestamp, expectedThawEndTimestamp); + } + + struct CollectPaymentData { + uint256 escrowBalance; + uint256 paymentsBalance; + uint256 receiverBalance; + uint256 delegationPoolBalance; + uint256 dataServiceBalance; + uint256 payerEscrowBalance; + } + + function _collectEscrow( + IGraphPayments.PaymentTypes _paymentType, + address _payer, + address _receiver, + uint256 _tokens, + address _dataService, + uint256 _dataServiceCut + ) internal { + (, address _collector, ) = vm.readCallers(); + + // Previous balances + CollectPaymentData memory previousBalances = CollectPaymentData({ + escrowBalance: token.balanceOf(address(escrow)), + paymentsBalance: token.balanceOf(address(payments)), + receiverBalance: token.balanceOf(_receiver), + delegationPoolBalance: staking.getDelegatedTokensAvailable(_receiver, _dataService), + dataServiceBalance: token.balanceOf(_dataService), + payerEscrowBalance: 0 + }); + + { + (uint256 payerEscrowBalance, , ) = escrow.escrowAccounts(_payer, _collector, _receiver); + previousBalances.payerEscrowBalance = payerEscrowBalance; + } + + vm.expectEmit(address(escrow)); + emit IPaymentsEscrow.EscrowCollected(_payer, _collector, _receiver, _tokens); + escrow.collect(_paymentType, _payer, _receiver, _tokens, _dataService, _dataServiceCut); + + // Calculate cuts + // this is nasty but stack is indeed too deep + uint256 tokensDataService = (_tokens - _tokens.mulPPMRoundUp(payments.PROTOCOL_PAYMENT_CUT())).mulPPMRoundUp( + _dataServiceCut + ); + uint256 tokensDelegation = (_tokens - + _tokens.mulPPMRoundUp(payments.PROTOCOL_PAYMENT_CUT()) - + tokensDataService).mulPPMRoundUp(staking.getDelegationFeeCut(_receiver, _dataService, _paymentType)); + uint256 receiverExpectedPayment = _tokens - + _tokens.mulPPMRoundUp(payments.PROTOCOL_PAYMENT_CUT()) - + tokensDataService - + tokensDelegation; + + // After balances + CollectPaymentData memory afterBalances = CollectPaymentData({ + escrowBalance: token.balanceOf(address(escrow)), + paymentsBalance: token.balanceOf(address(payments)), + receiverBalance: token.balanceOf(_receiver), + delegationPoolBalance: staking.getDelegatedTokensAvailable(_receiver, _dataService), + dataServiceBalance: token.balanceOf(_dataService), + payerEscrowBalance: 0 + }); + { + (uint256 afterPayerEscrowBalance, , ) = escrow.escrowAccounts(_payer, _collector, _receiver); + afterBalances.payerEscrowBalance = afterPayerEscrowBalance; + } + + // Check receiver balance after payment + assertEq(afterBalances.receiverBalance - previousBalances.receiverBalance, receiverExpectedPayment); + assertEq(token.balanceOf(address(payments)), 0); + + // Check delegation pool balance after payment + assertEq(afterBalances.delegationPoolBalance - previousBalances.delegationPoolBalance, tokensDelegation); + + // Check that the escrow account has been updated + assertEq(previousBalances.escrowBalance, afterBalances.escrowBalance + _tokens); + + // Check that payments balance didn't change + assertEq(previousBalances.paymentsBalance, afterBalances.paymentsBalance); + + // Check data service balance after payment + assertEq(afterBalances.dataServiceBalance - previousBalances.dataServiceBalance, tokensDataService); + + // Check payers escrow balance after payment + assertEq(previousBalances.payerEscrowBalance - _tokens, afterBalances.payerEscrowBalance); + } +} diff --git a/packages/horizon/test/escrow/collect.t.sol b/packages/horizon/test/escrow/collect.t.sol index 72b795ee9..55f378b3a 100644 --- a/packages/horizon/test/escrow/collect.t.sol +++ b/packages/horizon/test/escrow/collect.t.sol @@ -5,89 +5,10 @@ import "forge-std/Test.sol"; import { IHorizonStakingMain } from "../../contracts/interfaces/internal/IHorizonStakingMain.sol"; import { IGraphPayments } from "../../contracts/interfaces/IGraphPayments.sol"; -import { IPaymentsEscrow } from "../../contracts/interfaces/IPaymentsEscrow.sol"; import { GraphEscrowTest } from "./GraphEscrow.t.sol"; contract GraphEscrowCollectTest is GraphEscrowTest { - - struct CollectPaymentData { - uint256 escrowBalance; - uint256 paymentsBalance; - uint256 receiverBalance; - uint256 delegationPoolBalance; - uint256 dataServiceBalance; - } - - function _collect( - IGraphPayments.PaymentTypes _paymentType, - address _payer, - address _receiver, - uint256 _tokens, - address _dataService, - uint256 _tokensDataService - ) private { - (, address _collector, ) = vm.readCallers(); - - // Previous balances - (uint256 previousPayerEscrowBalance,,) = escrow.escrowAccounts(_payer, _collector, _receiver); - CollectPaymentData memory previousBalances = CollectPaymentData({ - escrowBalance: token.balanceOf(address(escrow)), - paymentsBalance: token.balanceOf(address(payments)), - receiverBalance: token.balanceOf(_receiver), - delegationPoolBalance: staking.getDelegatedTokensAvailable( - _receiver, - _dataService - ), - dataServiceBalance: token.balanceOf(_dataService) - }); - - vm.expectEmit(address(escrow)); - emit IPaymentsEscrow.EscrowCollected(_payer, _collector, _receiver, _tokens); - escrow.collect(_paymentType, _payer, _receiver, _tokens, _dataService, _tokensDataService); - - // Calculate cuts - uint256 protocolPaymentCut = payments.PROTOCOL_PAYMENT_CUT(); - uint256 delegatorCut = staking.getDelegationFeeCut( - _receiver, - _dataService, - _paymentType - ); - - // After balances - (uint256 afterPayerEscrowBalance,,) = escrow.escrowAccounts(_payer, _collector, _receiver); - CollectPaymentData memory afterBalances = CollectPaymentData({ - escrowBalance: token.balanceOf(address(escrow)), - paymentsBalance: token.balanceOf(address(payments)), - receiverBalance: token.balanceOf(_receiver), - delegationPoolBalance: staking.getDelegatedTokensAvailable( - _receiver, - _dataService - ), - dataServiceBalance: token.balanceOf(_dataService) - }); - - // Check receiver balance after payment - uint256 receiverExpectedPayment = _tokens - _tokensDataService - _tokens * protocolPaymentCut / MAX_PPM - _tokens * delegatorCut / MAX_PPM; - assertEq(afterBalances.receiverBalance - previousBalances.receiverBalance, receiverExpectedPayment); - assertEq(token.balanceOf(address(payments)), 0); - - // Check delegation pool balance after payment - assertEq(afterBalances.delegationPoolBalance - previousBalances.delegationPoolBalance, _tokens * delegatorCut / MAX_PPM); - - // Check that the escrow account has been updated - assertEq(previousBalances.escrowBalance, afterBalances.escrowBalance + _tokens); - - // Check that payments balance didn't change - assertEq(previousBalances.paymentsBalance, afterBalances.paymentsBalance); - - // Check data service balance after payment - assertEq(afterBalances.dataServiceBalance - previousBalances.dataServiceBalance, _tokensDataService); - - // Check payers escrow balance after payment - assertEq(previousPayerEscrowBalance - _tokens, afterPayerEscrowBalance); - } - /* * TESTS */ @@ -95,83 +16,87 @@ contract GraphEscrowCollectTest is GraphEscrowTest { function testCollect_Tokens( uint256 tokens, uint256 delegationTokens, - uint256 tokensDataService - ) public useIndexer useProvision(tokens, 0, 0) useDelegationFeeCut(IGraphPayments.PaymentTypes.QueryFee, delegationFeeCut) { - uint256 tokensProtocol = tokens * protocolPaymentCut / MAX_PPM; - uint256 tokensDelegatoion = tokens * delegationFeeCut / MAX_PPM; - vm.assume(tokensDataService < tokens - tokensProtocol - tokensDelegatoion); + uint256 dataServiceCut + ) + public + useIndexer + useProvision(tokens, 0, 0) + useDelegationFeeCut(IGraphPayments.PaymentTypes.QueryFee, delegationFeeCut) + { + dataServiceCut = bound(dataServiceCut, 0, MAX_PPM); + delegationTokens = bound(delegationTokens, MIN_DELEGATION, MAX_STAKING_TOKENS); - delegationTokens = bound(delegationTokens, 1, MAX_STAKING_TOKENS); resetPrank(users.delegator); _delegate(users.indexer, subgraphDataServiceAddress, delegationTokens, 0); resetPrank(users.gateway); - escrow.approveCollector(users.verifier, tokens); _depositTokens(users.verifier, users.indexer, tokens); resetPrank(users.verifier); - _collect(IGraphPayments.PaymentTypes.QueryFee, users.gateway, users.indexer, tokens, subgraphDataServiceAddress, tokensDataService); - } - - function testCollect_RevertWhen_CollectorNotAuthorized(uint256 amount) public { - vm.assume(amount > 0); - vm.startPrank(users.verifier); - uint256 dataServiceCut = 30000; // 3% - bytes memory expectedError = abi.encodeWithSelector( - IPaymentsEscrow.PaymentsEscrowInsufficientAllowance.selector, - 0, - amount + _collectEscrow( + IGraphPayments.PaymentTypes.QueryFee, + users.gateway, + users.indexer, + tokens, + subgraphDataServiceAddress, + dataServiceCut ); - vm.expectRevert(expectedError); - escrow.collect(IGraphPayments.PaymentTypes.QueryFee, users.gateway, users.indexer, amount, subgraphDataServiceAddress, dataServiceCut); - vm.stopPrank(); } - function testCollect_RevertWhen_CollectorHasInsufficientAmount( + function testCollect_RevertWhen_SenderHasInsufficientAmountInEscrow( uint256 amount, uint256 insufficientAmount - ) public useGateway useCollector(insufficientAmount) useDeposit(amount) { + ) public useGateway useDeposit(insufficientAmount) { + vm.assume(amount > 0); vm.assume(insufficientAmount < amount); vm.startPrank(users.verifier); bytes memory expectedError = abi.encodeWithSignature( - "PaymentsEscrowInsufficientAllowance(uint256,uint256)", - insufficientAmount, + "PaymentsEscrowInsufficientBalance(uint256,uint256)", + insufficientAmount, amount ); vm.expectRevert(expectedError); - escrow.collect(IGraphPayments.PaymentTypes.QueryFee, users.gateway, users.indexer, amount, subgraphDataServiceAddress, 0); - } - - function testCollect_RevertWhen_SenderHasInsufficientAmountInEscrow( - uint256 amount, - uint256 insufficientAmount - ) public useGateway useCollector(amount) useDeposit(insufficientAmount) { - vm.assume(insufficientAmount < amount); - - vm.startPrank(users.verifier); - bytes memory expectedError = abi.encodeWithSignature("PaymentsEscrowInsufficientBalance(uint256,uint256)", insufficientAmount, amount); - vm.expectRevert(expectedError); - escrow.collect(IGraphPayments.PaymentTypes.QueryFee, users.gateway, users.indexer, amount, subgraphDataServiceAddress, 0); + escrow.collect( + IGraphPayments.PaymentTypes.QueryFee, + users.gateway, + users.indexer, + amount, + subgraphDataServiceAddress, + 0 + ); vm.stopPrank(); } function testCollect_RevertWhen_InvalidPool( uint256 amount - ) public useIndexer useProvision(amount, 0, 0) useDelegationFeeCut(IGraphPayments.PaymentTypes.QueryFee, delegationFeeCut) { + ) + public + useIndexer + useProvision(amount, 0, 0) + useDelegationFeeCut(IGraphPayments.PaymentTypes.QueryFee, delegationFeeCut) + { vm.assume(amount > 1 ether); resetPrank(users.gateway); - escrow.approveCollector(users.verifier, amount); _depositTokens(users.verifier, users.indexer, amount); resetPrank(users.verifier); - vm.expectRevert(abi.encodeWithSelector( - IHorizonStakingMain.HorizonStakingInvalidDelegationPool.selector, + vm.expectRevert( + abi.encodeWithSelector( + IHorizonStakingMain.HorizonStakingInvalidDelegationPool.selector, + users.indexer, + subgraphDataServiceAddress + ) + ); + escrow.collect( + IGraphPayments.PaymentTypes.QueryFee, + users.gateway, users.indexer, - subgraphDataServiceAddress - )); - escrow.collect(IGraphPayments.PaymentTypes.QueryFee, users.gateway, users.indexer, amount, subgraphDataServiceAddress, 1); + amount, + subgraphDataServiceAddress, + 1 + ); } function testCollect_RevertWhen_InvalidProvision( @@ -179,17 +104,25 @@ contract GraphEscrowCollectTest is GraphEscrowTest { ) public useIndexer useDelegationFeeCut(IGraphPayments.PaymentTypes.QueryFee, delegationFeeCut) { vm.assume(amount > 1 ether); vm.assume(amount <= MAX_STAKING_TOKENS); - + resetPrank(users.gateway); - escrow.approveCollector(users.verifier, amount); _depositTokens(users.verifier, users.indexer, amount); resetPrank(users.verifier); - vm.expectRevert(abi.encodeWithSelector( - IHorizonStakingMain.HorizonStakingInvalidProvision.selector, + vm.expectRevert( + abi.encodeWithSelector( + IHorizonStakingMain.HorizonStakingInvalidProvision.selector, + users.indexer, + subgraphDataServiceAddress + ) + ); + escrow.collect( + IGraphPayments.PaymentTypes.QueryFee, + users.gateway, users.indexer, - subgraphDataServiceAddress - )); - escrow.collect(IGraphPayments.PaymentTypes.QueryFee, users.gateway, users.indexer, amount, subgraphDataServiceAddress, 1); + amount, + subgraphDataServiceAddress, + 1 + ); } -} \ No newline at end of file +} diff --git a/packages/horizon/test/escrow/collector.t.sol b/packages/horizon/test/escrow/collector.t.sol deleted file mode 100644 index d6cb3bc0f..000000000 --- a/packages/horizon/test/escrow/collector.t.sol +++ /dev/null @@ -1,108 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.27; - -import "forge-std/Test.sol"; - -import { IPaymentsEscrow } from "../../contracts/interfaces/IPaymentsEscrow.sol"; - -import { GraphEscrowTest } from "./GraphEscrow.t.sol"; - -contract GraphEscrowCollectorTest is GraphEscrowTest { - - /* - * HELPERS - */ - - function _thawCollector() internal { - (uint256 beforeAllowance,) = escrow.authorizedCollectors(users.gateway, users.verifier); - vm.expectEmit(address(escrow)); - emit IPaymentsEscrow.ThawCollector(users.gateway, users.verifier); - escrow.thawCollector(users.verifier); - - (uint256 allowance, uint256 thawEndTimestamp) = escrow.authorizedCollectors(users.gateway, users.verifier); - assertEq(allowance, beforeAllowance); - assertEq(thawEndTimestamp, block.timestamp + revokeCollectorThawingPeriod); - } - - function _cancelThawCollector() internal { - (uint256 beforeAllowance, uint256 beforeThawEndTimestamp) = escrow.authorizedCollectors(users.gateway, users.verifier); - assertTrue(beforeThawEndTimestamp != 0, "Collector should be thawing"); - vm.expectEmit(address(escrow)); - emit IPaymentsEscrow.CancelThawCollector(users.gateway, users.verifier); - escrow.cancelThawCollector(users.verifier); - - (uint256 allowance, uint256 thawEndTimestamp) = escrow.authorizedCollectors(users.gateway, users.verifier); - assertEq(allowance, beforeAllowance); - assertEq(thawEndTimestamp, 0); - } - - function _revokeCollector() internal { - vm.expectEmit(address(escrow)); - emit IPaymentsEscrow.RevokeCollector(users.gateway, users.verifier); - escrow.revokeCollector(users.verifier); - - (uint256 allowance, uint256 thawEndTimestamp) = escrow.authorizedCollectors(users.gateway, users.verifier); - assertEq(allowance, 0); - assertEq(thawEndTimestamp, 0); - } - - /* - * TESTS - */ - - function testCollector_Approve( - uint256 tokens, - uint256 approveSteps - ) public useGateway { - approveSteps = bound(approveSteps, 1, 100); - vm.assume(tokens > approveSteps); - - uint256 approveTokens = tokens / approveSteps; - for (uint i = 0; i < approveSteps; i++) { - _approveCollector(users.verifier, approveTokens); - } - } - - function testCollector_RevertWhen_ApprovingForZeroAllowance( - uint256 amount - ) public useGateway useCollector(amount) { - bytes memory expectedError = abi.encodeWithSelector(IPaymentsEscrow.PaymentsEscrowInvalidZeroTokens.selector); - vm.expectRevert(expectedError); - escrow.approveCollector(users.verifier, 0); - } - - function testCollector_Thaw(uint256 amount) public useGateway useCollector(amount) { - _thawCollector(); - } - - function testCollector_CancelThaw(uint256 amount) public useGateway useCollector(amount) { - _thawCollector(); - _cancelThawCollector(); - } - - function testCollector_RevertWhen_CancelThawIsNotThawing(uint256 amount) public useGateway useCollector(amount) { - bytes memory expectedError = abi.encodeWithSignature("PaymentsEscrowNotThawing()"); - vm.expectRevert(expectedError); - escrow.cancelThawCollector(users.verifier); - vm.stopPrank(); - } - - function testCollector_Revoke(uint256 amount) public useGateway useCollector(amount) { - _thawCollector(); - skip(revokeCollectorThawingPeriod + 1); - _revokeCollector(); - } - - function testCollector_RevertWhen_RevokeIsNotThawing(uint256 amount) public useGateway useCollector(amount) { - bytes memory expectedError = abi.encodeWithSignature("PaymentsEscrowNotThawing()"); - vm.expectRevert(expectedError); - escrow.revokeCollector(users.verifier); - } - - function testCollector_RevertWhen_RevokeIsStillThawing(uint256 amount) public useGateway useCollector(amount) { - escrow.thawCollector(users.verifier); - bytes memory expectedError = abi.encodeWithSignature("PaymentsEscrowStillThawing(uint256,uint256)", block.timestamp, block.timestamp + revokeCollectorThawingPeriod); - vm.expectRevert(expectedError); - escrow.revokeCollector(users.verifier); - } -} \ No newline at end of file diff --git a/packages/horizon/test/escrow/getters.t.sol b/packages/horizon/test/escrow/getters.t.sol new file mode 100644 index 000000000..6434e1b30 --- /dev/null +++ b/packages/horizon/test/escrow/getters.t.sol @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.27; + +import "forge-std/Test.sol"; +import { IGraphPayments } from "../../contracts/interfaces/IGraphPayments.sol"; + +import { GraphEscrowTest } from "./GraphEscrow.t.sol"; + +contract GraphEscrowGettersTest is GraphEscrowTest { + /* + * TESTS + */ + + function testGetBalance(uint256 amount) public useGateway useDeposit(amount) { + uint256 balance = escrow.getBalance(users.gateway, users.verifier, users.indexer); + assertEq(balance, amount); + } + + function testGetBalance_WhenThawing( + uint256 amountDeposit, + uint256 amountThawing + ) public useGateway useDeposit(amountDeposit) { + vm.assume(amountThawing > 0); + vm.assume(amountDeposit >= amountThawing); + + // thaw some funds + _thawEscrow(users.verifier, users.indexer, amountThawing); + + uint256 balance = escrow.getBalance(users.gateway, users.verifier, users.indexer); + assertEq(balance, amountDeposit - amountThawing); + } + + function testGetBalance_WhenCollectedOverThawing( + uint256 amountDeposit, + uint256 amountThawing, + uint256 amountCollected + ) public useGateway useDeposit(amountDeposit) { + vm.assume(amountThawing > 0); + vm.assume(amountDeposit > 0); + vm.assume(amountDeposit >= amountThawing); + vm.assume(amountDeposit >= amountCollected); + vm.assume(amountDeposit - amountCollected < amountThawing); + + // thaw some funds + _thawEscrow(users.verifier, users.indexer, amountThawing); + + // users start with max uint256 balance so we burn to avoid overflow + // TODO: we should modify all tests to consider users have a max balance thats less than max uint256 + resetPrank(users.indexer); + token.burn(amountCollected); + + // collect some funds to get the balance of the account below the amount thawing + resetPrank(users.verifier); + _collectEscrow( + IGraphPayments.PaymentTypes.QueryFee, + users.gateway, + users.indexer, + amountCollected, + subgraphDataServiceAddress, + 0 + ); + + // balance should always be 0 since thawing funds > available funds + uint256 balance = escrow.getBalance(users.gateway, users.verifier, users.indexer); + assertEq(balance, 0); + } +} diff --git a/packages/horizon/test/escrow/paused.t.sol b/packages/horizon/test/escrow/paused.t.sol index a993da883..6019b5c15 100644 --- a/packages/horizon/test/escrow/paused.t.sol +++ b/packages/horizon/test/escrow/paused.t.sol @@ -63,26 +63,4 @@ contract GraphEscrowPausedTest is GraphEscrowTest { vm.expectRevert(abi.encodeWithSelector(IPaymentsEscrow.PaymentsEscrowIsPaused.selector)); escrow.collect(IGraphPayments.PaymentTypes.QueryFee, users.gateway, users.indexer, tokens, subgraphDataServiceAddress, tokensDataService); } - - // Collectors - - function testPaused_RevertWhen_ApproveCollector(uint256 tokens) public useGateway usePaused(true) { - vm.expectRevert(abi.encodeWithSelector(IPaymentsEscrow.PaymentsEscrowIsPaused.selector)); - escrow.approveCollector(users.verifier, tokens); - } - - function testPaused_RevertWhen_ThawCollector(uint256 tokens) public useGateway useCollector(tokens) usePaused(true) { - vm.expectRevert(abi.encodeWithSelector(IPaymentsEscrow.PaymentsEscrowIsPaused.selector)); - escrow.thawCollector(users.verifier); - } - - function testPaused_RevertWhen_CancelThawCollector(uint256 tokens) public useGateway useCollector(tokens) usePaused(true) { - vm.expectRevert(abi.encodeWithSelector(IPaymentsEscrow.PaymentsEscrowIsPaused.selector)); - escrow.cancelThawCollector(users.verifier); - } - - function testPaused_RevertWhen_RevokeCollector(uint256 tokens) public useGateway useCollector(tokens) usePaused(true) { - vm.expectRevert(abi.encodeWithSelector(IPaymentsEscrow.PaymentsEscrowIsPaused.selector)); - escrow.revokeCollector(users.verifier); - } } \ No newline at end of file diff --git a/packages/horizon/test/escrow/thaw.t.sol b/packages/horizon/test/escrow/thaw.t.sol index 8e2674e00..017c3291f 100644 --- a/packages/horizon/test/escrow/thaw.t.sol +++ b/packages/horizon/test/escrow/thaw.t.sol @@ -3,8 +3,6 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IPaymentsEscrow } from "../../contracts/interfaces/IPaymentsEscrow.sol"; - import { GraphEscrowTest } from "./GraphEscrow.t.sol"; contract GraphEscrowThawTest is GraphEscrowTest { @@ -14,14 +12,7 @@ contract GraphEscrowThawTest is GraphEscrowTest { */ function testThaw_Tokens(uint256 amount) public useGateway useDeposit(amount) { - uint256 expectedThawEndTimestamp = block.timestamp + withdrawEscrowThawingPeriod; - vm.expectEmit(address(escrow)); - emit IPaymentsEscrow.Thaw(users.gateway, users.verifier, users.indexer, amount, expectedThawEndTimestamp); - escrow.thaw(users.verifier, users.indexer, amount); - - (, uint256 amountThawing,uint256 thawEndTimestamp) = escrow.escrowAccounts(users.gateway, users.verifier, users.indexer); - assertEq(amountThawing, amount); - assertEq(thawEndTimestamp, expectedThawEndTimestamp); + _thawEscrow(users.verifier, users.indexer, amount); } function testThaw_RevertWhen_InsufficientThawAmount( diff --git a/packages/horizon/test/payments/GraphPayments.t.sol b/packages/horizon/test/payments/GraphPayments.t.sol index 19028bde1..494a7912a 100644 --- a/packages/horizon/test/payments/GraphPayments.t.sol +++ b/packages/horizon/test/payments/GraphPayments.t.sol @@ -8,8 +8,10 @@ import { IGraphPayments } from "../../contracts/interfaces/IGraphPayments.sol"; import { GraphPayments } from "../../contracts/payments/GraphPayments.sol"; import { HorizonStakingSharedTest } from "../shared/horizon-staking/HorizonStakingShared.t.sol"; +import { PPMMath } from "../../contracts/libraries/PPMMath.sol"; contract GraphPaymentsTest is HorizonStakingSharedTest { + using PPMMath for uint256; struct CollectPaymentData { uint256 escrowBalance; @@ -24,54 +26,52 @@ contract GraphPaymentsTest is HorizonStakingSharedTest { address _receiver, uint256 _tokens, address _dataService, - uint256 _tokensDataService + uint256 _dataServiceCut ) private { // Previous balances CollectPaymentData memory previousBalances = CollectPaymentData({ escrowBalance: token.balanceOf(address(escrow)), paymentsBalance: token.balanceOf(address(payments)), receiverBalance: token.balanceOf(_receiver), - delegationPoolBalance: staking.getDelegatedTokensAvailable( - _receiver, - _dataService - ), + delegationPoolBalance: staking.getDelegatedTokensAvailable(_receiver, _dataService), dataServiceBalance: token.balanceOf(_dataService) }); // Calculate cuts - uint256 protocolPaymentCut = payments.PROTOCOL_PAYMENT_CUT(); - uint256 delegatorCut = staking.getDelegationFeeCut( - _receiver, - _dataService, - _paymentType + uint256 tokensProtocol = _tokens.mulPPMRoundUp(payments.PROTOCOL_PAYMENT_CUT()); + uint256 tokensDataService = (_tokens - tokensProtocol).mulPPMRoundUp(_dataServiceCut); + uint256 tokensDelegation = (_tokens - tokensProtocol - tokensDataService).mulPPMRoundUp( + staking.getDelegationFeeCut(_receiver, _dataService, _paymentType) ); - uint256 tokensProtocol = _tokens * protocolPaymentCut / MAX_PPM; - uint256 tokensDelegation = _tokens * delegatorCut / MAX_PPM; - uint256 receiverExpectedPayment = _tokens - _tokensDataService - tokensProtocol - tokensDelegation; + uint256 receiverExpectedPayment = _tokens - tokensProtocol - tokensDataService - tokensDelegation; - (,address msgSender, ) = vm.readCallers(); + (, address msgSender, ) = vm.readCallers(); vm.expectEmit(address(payments)); - emit IGraphPayments.PaymentCollected( + emit IGraphPayments.GraphPaymentCollected( msgSender, _receiver, _dataService, - receiverExpectedPayment, + _tokens, + tokensProtocol, + tokensDataService, tokensDelegation, - _tokensDataService, - tokensProtocol + receiverExpectedPayment + ); + payments.collect( + _paymentType, + _receiver, + _tokens, + _dataService, + _dataServiceCut ); - payments.collect(_paymentType, _receiver, _tokens, _dataService, _tokensDataService); // After balances CollectPaymentData memory afterBalances = CollectPaymentData({ escrowBalance: token.balanceOf(address(escrow)), paymentsBalance: token.balanceOf(address(payments)), receiverBalance: token.balanceOf(_receiver), - delegationPoolBalance: staking.getDelegatedTokensAvailable( - _receiver, - _dataService - ), + delegationPoolBalance: staking.getDelegatedTokensAvailable(_receiver, _dataService), dataServiceBalance: token.balanceOf(_dataService) }); @@ -89,7 +89,7 @@ contract GraphPaymentsTest is HorizonStakingSharedTest { assertEq(previousBalances.paymentsBalance, afterBalances.paymentsBalance); // Check data service balance after payment - assertEq(afterBalances.dataServiceBalance - previousBalances.dataServiceBalance, _tokensDataService); + assertEq(afterBalances.dataServiceBalance - previousBalances.dataServiceBalance, tokensDataService); } /* @@ -97,11 +97,11 @@ contract GraphPaymentsTest is HorizonStakingSharedTest { */ function testConstructor_RevertIf_InvalidProtocolPaymentCut(uint256 protocolPaymentCut) public { - protocolPaymentCut = bound(protocolPaymentCut, MAX_PPM + 1, MAX_PPM + 100); + protocolPaymentCut = bound(protocolPaymentCut, MAX_PPM + 1, type(uint256).max); resetPrank(users.deployer); bytes memory expectedError = abi.encodeWithSelector( - IGraphPayments.GraphPaymentsInvalidProtocolPaymentCut.selector, + IGraphPayments.GraphPaymentsInvalidCut.selector, protocolPaymentCut ); vm.expectRevert(expectedError); @@ -110,16 +110,19 @@ contract GraphPaymentsTest is HorizonStakingSharedTest { function testCollect( uint256 amount, - uint256 tokensDataService, + uint256 dataServiceCut, uint256 tokensDelegate - ) public useIndexer useProvision(amount, 0, 0) useDelegationFeeCut(IGraphPayments.PaymentTypes.QueryFee, delegationFeeCut) { - uint256 tokensProtocol = amount * protocolPaymentCut / MAX_PPM; - uint256 tokensDelegation = amount * delegationFeeCut / MAX_PPM; - vm.assume(tokensDataService < amount - tokensProtocol - tokensDelegation); + ) + public + useIndexer + useProvision(amount, 0, 0) + useDelegationFeeCut(IGraphPayments.PaymentTypes.QueryFee, delegationFeeCut) + { + dataServiceCut = bound(dataServiceCut, 0, MAX_PPM); address escrowAddress = address(escrow); // Delegate tokens - tokensDelegate = bound(tokensDelegate, 1, MAX_STAKING_TOKENS); + tokensDelegate = bound(tokensDelegate, MIN_DELEGATION, MAX_STAKING_TOKENS); vm.startPrank(users.delegator); _delegate(users.indexer, subgraphDataServiceAddress, tokensDelegate, 0); @@ -129,35 +132,50 @@ contract GraphPaymentsTest is HorizonStakingSharedTest { approve(address(payments), amount); // Collect payments through GraphPayments - _collect(IGraphPayments.PaymentTypes.QueryFee, users.indexer, amount, subgraphDataServiceAddress, tokensDataService); + _collect( + IGraphPayments.PaymentTypes.QueryFee, + users.indexer, + amount, + subgraphDataServiceAddress, + dataServiceCut + ); vm.stopPrank(); } - function testCollect_RevertWhen_InsufficientAmount( + function testCollect_RevertWhen_InvalidDataServiceCut( uint256 amount, - uint256 tokensDataService - ) public useIndexer useProvision(amount, 0, 0) useDelegationFeeCut(IGraphPayments.PaymentTypes.QueryFee, delegationFeeCut) { - tokensDataService = bound(tokensDataService, amount + 1, MAX_STAKING_TOKENS + 1); - - address escrowAddress = address(escrow); - mint(escrowAddress, amount); - vm.startPrank(escrowAddress); - approve(address(payments), amount); + uint256 dataServiceCut + ) + public + useIndexer + useProvision(amount, 0, 0) + useDelegationFeeCut(IGraphPayments.PaymentTypes.QueryFee, delegationFeeCut) + { + dataServiceCut = bound(dataServiceCut, MAX_PPM + 1, type(uint256).max); - bytes memory expectedError; - { - uint256 tokensProtocol = amount * protocolPaymentCut / MAX_PPM; - uint256 tokensDelegatoion = amount * delegationFeeCut / MAX_PPM; - uint256 requiredAmount = tokensDataService + tokensProtocol + tokensDelegatoion; - expectedError = abi.encodeWithSignature("GraphPaymentsInsufficientTokens(uint256,uint256)", amount, requiredAmount); - } + resetPrank(users.deployer); + bytes memory expectedError = abi.encodeWithSelector( + IGraphPayments.GraphPaymentsInvalidCut.selector, + dataServiceCut + ); vm.expectRevert(expectedError); - payments.collect(IGraphPayments.PaymentTypes.QueryFee, users.indexer, amount, subgraphDataServiceAddress, tokensDataService); + payments.collect( + IGraphPayments.PaymentTypes.QueryFee, + users.indexer, + amount, + subgraphDataServiceAddress, + dataServiceCut + ); } function testCollect_RevertWhen_InvalidPool( uint256 amount - ) public useIndexer useProvision(amount, 0, 0) useDelegationFeeCut(IGraphPayments.PaymentTypes.QueryFee, delegationFeeCut) { + ) + public + useIndexer + useProvision(amount, 0, 0) + useDelegationFeeCut(IGraphPayments.PaymentTypes.QueryFee, delegationFeeCut) + { vm.assume(amount > 1 ether); address escrowAddress = address(escrow); @@ -167,11 +185,13 @@ contract GraphPaymentsTest is HorizonStakingSharedTest { approve(address(payments), amount); // Collect payments through GraphPayments - vm.expectRevert(abi.encodeWithSelector( - IHorizonStakingMain.HorizonStakingInvalidDelegationPool.selector, - users.indexer, - subgraphDataServiceAddress - )); + vm.expectRevert( + abi.encodeWithSelector( + IHorizonStakingMain.HorizonStakingInvalidDelegationPool.selector, + users.indexer, + subgraphDataServiceAddress + ) + ); payments.collect(IGraphPayments.PaymentTypes.QueryFee, users.indexer, amount, subgraphDataServiceAddress, 1); } @@ -181,18 +201,20 @@ contract GraphPaymentsTest is HorizonStakingSharedTest { vm.assume(amount > 1 ether); vm.assume(amount <= MAX_STAKING_TOKENS); address escrowAddress = address(escrow); - + // Add tokens in escrow mint(escrowAddress, amount); vm.startPrank(escrowAddress); approve(address(payments), amount); // Collect payments through GraphPayments - vm.expectRevert(abi.encodeWithSelector( - IHorizonStakingMain.HorizonStakingInvalidProvision.selector, - users.indexer, - subgraphDataServiceAddress - )); + vm.expectRevert( + abi.encodeWithSelector( + IHorizonStakingMain.HorizonStakingInvalidProvision.selector, + users.indexer, + subgraphDataServiceAddress + ) + ); payments.collect(IGraphPayments.PaymentTypes.QueryFee, users.indexer, amount, subgraphDataServiceAddress, 1); } } diff --git a/packages/horizon/test/payments/tap-collector/TAPCollector.t.sol b/packages/horizon/test/payments/tap-collector/TAPCollector.t.sol index 25b4c901c..362cff8af 100644 --- a/packages/horizon/test/payments/tap-collector/TAPCollector.t.sol +++ b/packages/horizon/test/payments/tap-collector/TAPCollector.t.sol @@ -60,15 +60,16 @@ contract TAPCollectorTest is HorizonStakingSharedTest, PaymentsEscrowSharedTest function _authorizeSigner(address _signer, uint256 _proofDeadline, bytes memory _proof) internal { (, address msgSender, ) = vm.readCallers(); - + vm.expectEmit(address(tapCollector)); emit ITAPCollector.SignerAuthorized(msgSender, _signer); - + tapCollector.authorizeSigner(_signer, _proofDeadline, _proof); - - (address _payer, uint256 thawEndTimestamp) = tapCollector.authorizedSigners(_signer); + + (address _payer, uint256 thawEndTimestamp, bool revoked) = tapCollector.authorizedSigners(_signer); assertEq(_payer, msgSender); assertEq(thawEndTimestamp, 0); + assertEq(revoked, false); } function _thawSigner(address _signer) internal { @@ -80,9 +81,10 @@ contract TAPCollectorTest is HorizonStakingSharedTest, PaymentsEscrowSharedTest tapCollector.thawSigner(_signer); - (address _payer, uint256 thawEndTimestamp) = tapCollector.authorizedSigners(_signer); + (address _payer, uint256 thawEndTimestamp, bool revoked) = tapCollector.authorizedSigners(_signer); assertEq(_payer, msgSender); assertEq(thawEndTimestamp, expectedThawEndTimestamp); + assertEq(revoked, false); } function _cancelThawSigner(address _signer) internal { @@ -93,42 +95,69 @@ contract TAPCollectorTest is HorizonStakingSharedTest, PaymentsEscrowSharedTest tapCollector.cancelThawSigner(_signer); - (address _payer, uint256 thawEndTimestamp) = tapCollector.authorizedSigners(_signer); + (address _payer, uint256 thawEndTimestamp, bool revoked) = tapCollector.authorizedSigners(_signer); assertEq(_payer, msgSender); assertEq(thawEndTimestamp, 0); + assertEq(revoked, false); } function _revokeAuthorizedSigner(address _signer) internal { (, address msgSender, ) = vm.readCallers(); + (address beforePayer, uint256 beforeThawEndTimestamp, ) = tapCollector.authorizedSigners(_signer); + vm.expectEmit(address(tapCollector)); emit ITAPCollector.SignerRevoked(msgSender, _signer); tapCollector.revokeAuthorizedSigner(_signer); - (address _payer, uint256 thawEndTimestamp) = tapCollector.authorizedSigners(_signer); - assertEq(_payer, address(0)); - assertEq(thawEndTimestamp, 0); + (address afterPayer, uint256 afterThawEndTimestamp, bool afterRevoked) = tapCollector.authorizedSigners( + _signer + ); + + assertEq(beforePayer, afterPayer); + assertEq(beforeThawEndTimestamp, afterThawEndTimestamp); + assertEq(afterRevoked, true); } function _collect(IGraphPayments.PaymentTypes _paymentType, bytes memory _data) internal { - (ITAPCollector.SignedRAV memory signedRAV, uint256 dataServiceCut) = abi.decode(_data, (ITAPCollector.SignedRAV, uint256)); + __collect(_paymentType, _data, 0); + } + + function _collect(IGraphPayments.PaymentTypes _paymentType, bytes memory _data, uint256 _tokensToCollect) internal { + __collect(_paymentType, _data, _tokensToCollect); + } + + function __collect( + IGraphPayments.PaymentTypes _paymentType, + bytes memory _data, + uint256 _tokensToCollect + ) internal { + (ITAPCollector.SignedRAV memory signedRAV, ) = abi.decode( + _data, + (ITAPCollector.SignedRAV, uint256) + ); bytes32 messageHash = tapCollector.encodeRAV(signedRAV.rav); address _signer = ECDSA.recover(messageHash, signedRAV.signature); - (address _payer, ) = tapCollector.authorizedSigners(_signer); - uint256 tokensAlreadyCollected = tapCollector.tokensCollected(signedRAV.rav.dataService, signedRAV.rav.serviceProvider, _payer); - uint256 tokensToCollect = signedRAV.rav.valueAggregate - tokensAlreadyCollected; - uint256 tokensDataService = tokensToCollect.mulPPM(dataServiceCut); - + (address _payer, , ) = tapCollector.authorizedSigners(_signer); + uint256 tokensAlreadyCollected = tapCollector.tokensCollected( + signedRAV.rav.dataService, + signedRAV.rav.serviceProvider, + _payer + ); + uint256 tokensToCollect = _tokensToCollect == 0 + ? signedRAV.rav.valueAggregate - tokensAlreadyCollected + : _tokensToCollect; + vm.expectEmit(address(tapCollector)); emit IPaymentsCollector.PaymentCollected( - _paymentType, + _paymentType, _payer, signedRAV.rav.serviceProvider, - tokensToCollect, signedRAV.rav.dataService, - tokensDataService + tokensToCollect ); + vm.expectEmit(address(tapCollector)); emit ITAPCollector.RAVCollected( _payer, signedRAV.rav.dataService, @@ -138,11 +167,19 @@ contract TAPCollectorTest is HorizonStakingSharedTest, PaymentsEscrowSharedTest signedRAV.rav.metadata, signedRAV.signature ); - - uint256 tokensCollected = tapCollector.collect(_paymentType, _data); - assertEq(tokensCollected, tokensToCollect); + uint256 tokensCollected = _tokensToCollect == 0 + ? tapCollector.collect(_paymentType, _data) + : tapCollector.collect(_paymentType, _data, _tokensToCollect); - uint256 tokensCollectedAfter = tapCollector.tokensCollected(signedRAV.rav.dataService, signedRAV.rav.serviceProvider, _payer); - assertEq(tokensCollectedAfter, signedRAV.rav.valueAggregate); + uint256 tokensCollectedAfter = tapCollector.tokensCollected( + signedRAV.rav.dataService, + signedRAV.rav.serviceProvider, + _payer + ); + assertEq(tokensCollected, tokensToCollect); + assertEq( + tokensCollectedAfter, + _tokensToCollect == 0 ? signedRAV.rav.valueAggregate : tokensAlreadyCollected + _tokensToCollect + ); } } diff --git a/packages/horizon/test/payments/tap-collector/collect/collect.t.sol b/packages/horizon/test/payments/tap-collector/collect/collect.t.sol index 06b0e027a..a4e1eafa7 100644 --- a/packages/horizon/test/payments/tap-collector/collect/collect.t.sol +++ b/packages/horizon/test/payments/tap-collector/collect/collect.t.sol @@ -9,18 +9,18 @@ import { IGraphPayments } from "../../../../contracts/interfaces/IGraphPayments. import { TAPCollectorTest } from "../TAPCollector.t.sol"; contract TAPCollectorCollectTest is TAPCollectorTest { - /* - * HELPERS - */ + * HELPERS + */ function _getQueryFeeEncodedData( uint256 _signerPrivateKey, + address _payer, address _indexer, address _collector, uint128 _tokens ) private view returns (bytes memory) { - ITAPCollector.ReceiptAggregateVoucher memory rav = _getRAV(_indexer, _collector, _tokens); + ITAPCollector.ReceiptAggregateVoucher memory rav = _getRAV(_payer, _indexer, _collector, _tokens); bytes32 messageHash = tapCollector.encodeRAV(rav); (uint8 v, bytes32 r, bytes32 s) = vm.sign(_signerPrivateKey, messageHash); bytes memory signature = abi.encodePacked(r, s, v); @@ -29,12 +29,14 @@ contract TAPCollectorCollectTest is TAPCollectorTest { } function _getRAV( + address _payer, address _indexer, address _collector, uint128 _tokens ) private pure returns (ITAPCollector.ReceiptAggregateVoucher memory rav) { return ITAPCollector.ReceiptAggregateVoucher({ + payer: _payer, dataService: _collector, serviceProvider: _indexer, timestampNs: 0, @@ -47,43 +49,149 @@ contract TAPCollectorCollectTest is TAPCollectorTest { * TESTS */ - function testTAPCollector_Collect(uint256 tokens) public useGateway useSigner { + function testTAPCollector_Collect( + uint256 tokens + ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { tokens = bound(tokens, 1, type(uint128).max); - - _approveCollector(address(tapCollector), tokens); + _depositTokens(address(tapCollector), users.indexer, tokens); - - bytes memory data = _getQueryFeeEncodedData(signerPrivateKey, users.indexer, users.verifier, uint128(tokens)); + + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(tokens) + ); resetPrank(users.verifier); _collect(IGraphPayments.PaymentTypes.QueryFee, data); } - function testTAPCollector_Collect_Multiple(uint256 tokens, uint8 steps) public useGateway useSigner { + function testTAPCollector_Collect_Multiple( + uint256 tokens, + uint8 steps + ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { steps = uint8(bound(steps, 1, 100)); tokens = bound(tokens, steps, type(uint128).max); - - _approveCollector(address(tapCollector), tokens); + _depositTokens(address(tapCollector), users.indexer, tokens); resetPrank(users.verifier); uint256 payed = 0; uint256 tokensPerStep = tokens / steps; for (uint256 i = 0; i < steps; i++) { - bytes memory data = _getQueryFeeEncodedData(signerPrivateKey, users.indexer, users.verifier, uint128(payed + tokensPerStep)); + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(payed + tokensPerStep) + ); _collect(IGraphPayments.PaymentTypes.QueryFee, data); payed += tokensPerStep; } } + function testTAPCollector_Collect_RevertWhen_NoProvision(uint256 tokens) public useGateway useSigner { + tokens = bound(tokens, 1, type(uint128).max); + + _depositTokens(address(tapCollector), users.indexer, tokens); + + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(tokens) + ); + + resetPrank(users.verifier); + bytes memory expectedError = abi.encodeWithSelector( + ITAPCollector.TAPCollectorUnauthorizedDataService.selector, + users.verifier + ); + vm.expectRevert(expectedError); + tapCollector.collect(IGraphPayments.PaymentTypes.QueryFee, data); + } + + function testTAPCollector_Collect_RevertWhen_ProvisionEmpty( + uint256 tokens + ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { + // thaw tokens from the provision + resetPrank(users.indexer); + staking.thaw(users.indexer, users.verifier, 100); + + tokens = bound(tokens, 1, type(uint128).max); + + resetPrank(users.gateway); + _depositTokens(address(tapCollector), users.indexer, tokens); + + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(tokens) + ); + + resetPrank(users.verifier); + bytes memory expectedError = abi.encodeWithSelector( + ITAPCollector.TAPCollectorUnauthorizedDataService.selector, + users.verifier + ); + vm.expectRevert(expectedError); + tapCollector.collect(IGraphPayments.PaymentTypes.QueryFee, data); + } + + function testTAPCollector_Collect_PreventSignerAttack( + uint256 tokens + ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { + tokens = bound(tokens, 1, type(uint128).max); + + resetPrank(users.gateway); + _depositTokens(address(tapCollector), users.indexer, tokens); + + // The sender authorizes another signer + (address anotherSigner, uint256 anotherSignerPrivateKey) = makeAddrAndKey("anotherSigner"); + { + uint256 proofDeadline = block.timestamp + 1; + bytes memory anotherSignerProof = _getSignerProof(proofDeadline, anotherSignerPrivateKey); + _authorizeSigner(anotherSigner, proofDeadline, anotherSignerProof); + } + + // And crafts a RAV using the new signer as the data service + bytes memory data = _getQueryFeeEncodedData( + anotherSignerPrivateKey, + users.gateway, + users.indexer, + anotherSigner, + uint128(tokens) + ); + + // the call should revert because the service provider has no provision with the "data service" + resetPrank(anotherSigner); + bytes memory expectedError = abi.encodeWithSelector( + ITAPCollector.TAPCollectorUnauthorizedDataService.selector, + anotherSigner + ); + vm.expectRevert(expectedError); + tapCollector.collect(IGraphPayments.PaymentTypes.QueryFee, data); + } + function testTAPCollector_Collect_RevertWhen_CallerNotDataService(uint256 tokens) public useGateway useSigner { tokens = bound(tokens, 1, type(uint128).max); - + resetPrank(users.gateway); - _approveCollector(address(tapCollector), tokens); _depositTokens(address(tapCollector), users.indexer, tokens); - bytes memory data = _getQueryFeeEncodedData(signerPrivateKey, users.indexer, users.verifier, uint128(tokens)); + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(tokens) + ); resetPrank(users.indexer); bytes memory expectedError = abi.encodeWithSelector( @@ -95,49 +203,93 @@ contract TAPCollectorCollectTest is TAPCollectorTest { tapCollector.collect(IGraphPayments.PaymentTypes.QueryFee, data); } - function testTAPCollector_Collect_RevertWhen_InconsistentRAVTokens(uint256 tokens) public useGateway useSigner { + function testTAPCollector_Collect_RevertWhen_PayerMismatch( + uint256 tokens + ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { tokens = bound(tokens, 1, type(uint128).max); - - _approveCollector(address(tapCollector), tokens); + + resetPrank(users.gateway); _depositTokens(address(tapCollector), users.indexer, tokens); - bytes memory data = _getQueryFeeEncodedData(signerPrivateKey, users.indexer, users.verifier, uint128(tokens)); + + (address anotherPayer, ) = makeAddrAndKey("anotherPayer"); + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + anotherPayer, + users.indexer, + users.verifier, + uint128(tokens) + ); + + resetPrank(users.verifier); + bytes memory expectedError = abi.encodeWithSelector( + ITAPCollector.TAPCollectorInvalidRAVPayer.selector, + users.gateway, + anotherPayer + ); + vm.expectRevert(expectedError); + tapCollector.collect(IGraphPayments.PaymentTypes.QueryFee, data); + } + + function testTAPCollector_Collect_RevertWhen_InconsistentRAVTokens( + uint256 tokens + ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { + tokens = bound(tokens, 1, type(uint128).max); + + _depositTokens(address(tapCollector), users.indexer, tokens); + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(tokens) + ); resetPrank(users.verifier); _collect(IGraphPayments.PaymentTypes.QueryFee, data); // Attempt to collect again - vm.expectRevert(abi.encodeWithSelector( - ITAPCollector.TAPCollectorInconsistentRAVTokens.selector, - tokens, - tokens - )); + vm.expectRevert( + abi.encodeWithSelector(ITAPCollector.TAPCollectorInconsistentRAVTokens.selector, tokens, tokens) + ); tapCollector.collect(IGraphPayments.PaymentTypes.QueryFee, data); } function testTAPCollector_Collect_RevertWhen_SignerNotAuthorized(uint256 tokens) public useGateway { tokens = bound(tokens, 1, type(uint128).max); - - _approveCollector(address(tapCollector), tokens); + _depositTokens(address(tapCollector), users.indexer, tokens); - - bytes memory data = _getQueryFeeEncodedData(signerPrivateKey, users.indexer, users.verifier, uint128(tokens)); + + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(tokens) + ); resetPrank(users.verifier); vm.expectRevert(abi.encodeWithSelector(ITAPCollector.TAPCollectorInvalidRAVSigner.selector)); tapCollector.collect(IGraphPayments.PaymentTypes.QueryFee, data); } - function testTAPCollector_Collect_ThawingSigner(uint256 tokens) public useGateway useSigner { + function testTAPCollector_Collect_ThawingSigner( + uint256 tokens + ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { tokens = bound(tokens, 1, type(uint128).max); - - _approveCollector(address(tapCollector), tokens); + _depositTokens(address(tapCollector), users.indexer, tokens); // Start thawing signer _thawSigner(signer); skip(revokeSignerThawingPeriod + 1); - - bytes memory data = _getQueryFeeEncodedData(signerPrivateKey, users.indexer, users.verifier, uint128(tokens)); + + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(tokens) + ); resetPrank(users.verifier); _collect(IGraphPayments.PaymentTypes.QueryFee, data); @@ -145,36 +297,99 @@ contract TAPCollectorCollectTest is TAPCollectorTest { function testTAPCollector_Collect_RevertIf_SignerWasRevoked(uint256 tokens) public useGateway useSigner { tokens = bound(tokens, 1, type(uint128).max); - - _approveCollector(address(tapCollector), tokens); + _depositTokens(address(tapCollector), users.indexer, tokens); // Start thawing signer _thawSigner(signer); skip(revokeSignerThawingPeriod + 1); _revokeAuthorizedSigner(signer); - - bytes memory data = _getQueryFeeEncodedData(signerPrivateKey, users.indexer, users.verifier, uint128(tokens)); + + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(tokens) + ); resetPrank(users.verifier); vm.expectRevert(abi.encodeWithSelector(ITAPCollector.TAPCollectorInvalidRAVSigner.selector)); tapCollector.collect(IGraphPayments.PaymentTypes.QueryFee, data); } - function testTAPCollector_Collect_ThawingSignerCanceled(uint256 tokens) public useGateway useSigner { + function testTAPCollector_Collect_ThawingSignerCanceled( + uint256 tokens + ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { tokens = bound(tokens, 1, type(uint128).max); - - _approveCollector(address(tapCollector), tokens); + _depositTokens(address(tapCollector), users.indexer, tokens); // Start thawing signer _thawSigner(signer); skip(revokeSignerThawingPeriod + 1); _cancelThawSigner(signer); - - bytes memory data = _getQueryFeeEncodedData(signerPrivateKey, users.indexer, users.verifier, uint128(tokens)); + + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(tokens) + ); resetPrank(users.verifier); _collect(IGraphPayments.PaymentTypes.QueryFee, data); } + + function testTAPCollector_CollectPartial( + uint256 tokens, + uint256 tokensToCollect + ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { + tokens = bound(tokens, 1, type(uint128).max); + tokensToCollect = bound(tokensToCollect, 1, tokens); + + _depositTokens(address(tapCollector), users.indexer, tokens); + + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(tokens) + ); + + resetPrank(users.verifier); + _collect(IGraphPayments.PaymentTypes.QueryFee, data, tokensToCollect); + } + + function testTAPCollector_CollectPartial_RevertWhen_AmountTooHigh( + uint256 tokens, + uint256 tokensToCollect + ) public useIndexer useProvisionDataService(users.verifier, 100, 0, 0) useGateway useSigner { + tokens = bound(tokens, 1, type(uint128).max - 1); + + _depositTokens(address(tapCollector), users.indexer, tokens); + + bytes memory data = _getQueryFeeEncodedData( + signerPrivateKey, + users.gateway, + users.indexer, + users.verifier, + uint128(tokens) + ); + + resetPrank(users.verifier); + uint256 tokensAlreadyCollected = tapCollector.tokensCollected(users.verifier, users.indexer, users.gateway); + tokensToCollect = bound(tokensToCollect, tokens - tokensAlreadyCollected + 1, type(uint128).max); + + vm.expectRevert( + abi.encodeWithSelector( + ITAPCollector.TAPCollectorInvalidTokensToCollectAmount.selector, + tokensToCollect, + tokens - tokensAlreadyCollected + ) + ); + tapCollector.collect(IGraphPayments.PaymentTypes.QueryFee, data, tokensToCollect); + } } diff --git a/packages/horizon/test/payments/tap-collector/signer/authorizeSigner.t.sol b/packages/horizon/test/payments/tap-collector/signer/authorizeSigner.t.sol index b337c48c7..30ffd4610 100644 --- a/packages/horizon/test/payments/tap-collector/signer/authorizeSigner.t.sol +++ b/packages/horizon/test/payments/tap-collector/signer/authorizeSigner.t.sol @@ -49,6 +49,27 @@ contract TAPCollectorAuthorizeSignerTest is TAPCollectorTest { tapCollector.authorizeSigner(signer, proofDeadline, signerProof); } + function testTAPCollector_AuthorizeSigner_RevertWhen_AlreadyAuthroizedAfterRevoking() public useGateway { + // Authorize signer + uint256 proofDeadline = block.timestamp + 1; + bytes memory signerProof = _getSignerProof(proofDeadline, signerPrivateKey); + _authorizeSigner(signer, proofDeadline, signerProof); + + // Revoke signer + _thawSigner(signer); + skip(revokeSignerThawingPeriod + 1); + _revokeAuthorizedSigner(signer); + + // Attempt to authorize signer again + bytes memory expectedError = abi.encodeWithSelector( + ITAPCollector.TAPCollectorSignerAlreadyAuthorized.selector, + users.gateway, + signer + ); + vm.expectRevert(expectedError); + tapCollector.authorizeSigner(signer, proofDeadline, signerProof); + } + function testTAPCollector_AuthorizeSigner_RevertWhen_ProofExpired() public useGateway { // Sign proof with payer uint256 proofDeadline = block.timestamp - 1; diff --git a/packages/horizon/test/payments/tap-collector/signer/thawSigner.t.sol b/packages/horizon/test/payments/tap-collector/signer/thawSigner.t.sol index fb47c37fb..def79d831 100644 --- a/packages/horizon/test/payments/tap-collector/signer/thawSigner.t.sol +++ b/packages/horizon/test/payments/tap-collector/signer/thawSigner.t.sol @@ -26,4 +26,31 @@ contract TAPCollectorThawSignerTest is TAPCollectorTest { vm.expectRevert(expectedError); tapCollector.thawSigner(signer); } + + function testTAPCollector_ThawSigner_RevertWhen_AlreadyRevoked() public useGateway useSigner { + _thawSigner(signer); + skip(revokeSignerThawingPeriod + 1); + _revokeAuthorizedSigner(signer); + + bytes memory expectedError = abi.encodeWithSelector( + ITAPCollector.TAPCollectorAuthorizationAlreadyRevoked.selector, + users.gateway, + signer + ); + vm.expectRevert(expectedError); + tapCollector.thawSigner(signer); + } + + function testTAPCollector_ThawSigner_RevertWhen_AlreadyThawing() public useGateway useSigner { + _thawSigner(signer); + + (,uint256 thawEndTimestamp,) = tapCollector.authorizedSigners(signer); + bytes memory expectedError = abi.encodeWithSelector( + ITAPCollector.TAPCollectorSignerAlreadyThawing.selector, + signer, + thawEndTimestamp + ); + vm.expectRevert(expectedError); + tapCollector.thawSigner(signer); + } } diff --git a/packages/horizon/test/shared/horizon-staking/HorizonStakingShared.t.sol b/packages/horizon/test/shared/horizon-staking/HorizonStakingShared.t.sol index 1fe4ceba3..3be6633fb 100644 --- a/packages/horizon/test/shared/horizon-staking/HorizonStakingShared.t.sol +++ b/packages/horizon/test/shared/horizon-staking/HorizonStakingShared.t.sol @@ -8,6 +8,7 @@ import { IGraphPayments } from "../../../contracts/interfaces/IGraphPayments.sol import { IHorizonStakingBase } from "../../../contracts/interfaces/internal/IHorizonStakingBase.sol"; import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; import { IHorizonStakingExtension } from "../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; +import { IHorizonStakingTypes } from "../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; import { LinkedList } from "../../../contracts/libraries/LinkedList.sol"; import { MathUtils } from "../../../contracts/libraries/MathUtils.sol"; @@ -400,6 +401,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { // before Provision memory beforeProvision = staking.getProvision(serviceProvider, verifier); LinkedList.List memory beforeThawRequestList = staking.getThawRequestList( + IHorizonStakingTypes.ThawRequestType.Provision, serviceProvider, verifier, serviceProvider @@ -428,13 +430,9 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { // after Provision memory afterProvision = staking.getProvision(serviceProvider, verifier); - ThawRequest memory afterThawRequest = staking.getThawRequest(thawRequestId); - LinkedList.List memory afterThawRequestList = staking.getThawRequestList( - serviceProvider, - verifier, - serviceProvider - ); - ThawRequest memory afterPreviousTailThawRequest = staking.getThawRequest(beforeThawRequestList.tail); + ThawRequest memory afterThawRequest = staking.getThawRequest(IHorizonStakingTypes.ThawRequestType.Provision, thawRequestId); + LinkedList.List memory afterThawRequestList = _getThawRequestList(IHorizonStakingTypes.ThawRequestType.Provision, serviceProvider, verifier, serviceProvider); + ThawRequest memory afterPreviousTailThawRequest = staking.getThawRequest(IHorizonStakingTypes.ThawRequestType.Provision, beforeThawRequestList.tail); // assert assertEq(afterProvision.tokens, beforeProvision.tokens); @@ -472,18 +470,21 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { Provision memory beforeProvision = staking.getProvision(serviceProvider, verifier); ServiceProviderInternal memory beforeServiceProvider = _getStorage_ServiceProviderInternal(serviceProvider); LinkedList.List memory beforeThawRequestList = staking.getThawRequestList( + IHorizonStakingTypes.ThawRequestType.Provision, serviceProvider, verifier, serviceProvider ); - CalcValues_ThawRequestData memory calcValues = calcThawRequestData( - serviceProvider, - verifier, - serviceProvider, - nThawRequests, - false - ); + Params_CalcThawRequestData memory params = Params_CalcThawRequestData({ + thawRequestType: IHorizonStakingTypes.ThawRequestType.Provision, + serviceProvider: serviceProvider, + verifier: verifier, + owner: serviceProvider, + iterations: nThawRequests, + delegation: false + }); + CalcValues_ThawRequestData memory calcValues = calcThawRequestData(params); // deprovision for (uint i = 0; i < calcValues.thawRequestsFulfilledList.length; i++) { @@ -503,7 +504,8 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { verifier, serviceProvider, calcValues.thawRequestsFulfilledList.length, - calcValues.tokensThawed + calcValues.tokensThawed, + IHorizonStakingTypes.ThawRequestType.Provision ); vm.expectEmit(address(staking)); emit IHorizonStakingMain.TokensDeprovisioned(serviceProvider, verifier, calcValues.tokensThawed); @@ -513,6 +515,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { Provision memory afterProvision = staking.getProvision(serviceProvider, verifier); ServiceProviderInternal memory afterServiceProvider = _getStorage_ServiceProviderInternal(serviceProvider); LinkedList.List memory afterThawRequestList = staking.getThawRequestList( + IHorizonStakingTypes.ThawRequestType.Provision, serviceProvider, verifier, serviceProvider @@ -540,7 +543,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { beforeServiceProvider.__DEPRECATED_tokensLockedUntil ); for (uint i = 0; i < calcValues.thawRequestsFulfilledListIds.length; i++) { - ThawRequest memory thawRequest = staking.getThawRequest(calcValues.thawRequestsFulfilledListIds[i]); + ThawRequest memory thawRequest = staking.getThawRequest(IHorizonStakingTypes.ThawRequestType.Provision, calcValues.thawRequestsFulfilledListIds[i]); assertEq(thawRequest.shares, 0); assertEq(thawRequest.thawingUntil, 0); assertEq(thawRequest.next, bytes32(0)); @@ -583,17 +586,19 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { provision: staking.getProvision(serviceProvider, verifier), provisionNewVerifier: staking.getProvision(serviceProvider, newVerifier), serviceProvider: _getStorage_ServiceProviderInternal(serviceProvider), - thawRequestList: staking.getThawRequestList(serviceProvider, verifier, serviceProvider) + thawRequestList: staking.getThawRequestList(IHorizonStakingTypes.ThawRequestType.Provision, serviceProvider, verifier, serviceProvider) }); // calc - CalcValues_ThawRequestData memory calcValues = calcThawRequestData( - serviceProvider, - verifier, - serviceProvider, - nThawRequests, - false - ); + Params_CalcThawRequestData memory params = Params_CalcThawRequestData({ + thawRequestType: IHorizonStakingTypes.ThawRequestType.Provision, + serviceProvider: serviceProvider, + verifier: verifier, + owner: serviceProvider, + iterations: nThawRequests, + delegation: false + }); + CalcValues_ThawRequestData memory calcValues = calcThawRequestData(params); // reprovision for (uint i = 0; i < calcValues.thawRequestsFulfilledList.length; i++) { @@ -613,7 +618,8 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { verifier, serviceProvider, calcValues.thawRequestsFulfilledList.length, - calcValues.tokensThawed + calcValues.tokensThawed, + IHorizonStakingTypes.ThawRequestType.Provision ); vm.expectEmit(address(staking)); emit IHorizonStakingMain.TokensDeprovisioned(serviceProvider, verifier, calcValues.tokensThawed); @@ -626,6 +632,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { Provision memory afterProvisionNewVerifier = staking.getProvision(serviceProvider, newVerifier); ServiceProviderInternal memory afterServiceProvider = _getStorage_ServiceProviderInternal(serviceProvider); LinkedList.List memory afterThawRequestList = staking.getThawRequestList( + IHorizonStakingTypes.ThawRequestType.Provision, serviceProvider, verifier, serviceProvider @@ -680,7 +687,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { // assert: thaw request list old verifier for (uint i = 0; i < calcValues.thawRequestsFulfilledListIds.length; i++) { - ThawRequest memory thawRequest = staking.getThawRequest(calcValues.thawRequestsFulfilledListIds[i]); + ThawRequest memory thawRequest = staking.getThawRequest(IHorizonStakingTypes.ThawRequestType.Provision, calcValues.thawRequestsFulfilledListIds[i]); assertEq(thawRequest.shares, 0); assertEq(thawRequest.thawingUntil, 0); assertEq(thawRequest.next, bytes32(0)); @@ -882,8 +889,8 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { uint256 deltaShares = afterDelegation.shares - beforeDelegation.shares; // assertions - assertEq(beforePool.tokens + tokens, afterPool.tokens); - assertEq(beforePool.shares + calcShares, afterPool.shares); + assertEq(beforePool.tokens + tokens, afterPool.tokens, "afterPool.tokens FAIL"); + assertEq(beforePool.shares + calcShares, afterPool.shares, "afterPool.shares FAIL"); assertEq(beforePool.tokensThawing, afterPool.tokensThawing); assertEq(beforePool.sharesThawing, afterPool.sharesThawing); assertEq(beforePool.thawingNonce, afterPool.thawingNonce); @@ -898,16 +905,30 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { function _undelegate(address serviceProvider, address verifier, uint256 shares) internal { (, address caller, ) = vm.readCallers(); - __undelegate(serviceProvider, verifier, shares, false, caller); + __undelegate(IHorizonStakingTypes.ThawRequestType.Delegation, serviceProvider, verifier, shares, false, caller); } - function _undelegate(address serviceProvider, address verifier, uint256 shares, address beneficiary) internal { - __undelegate(serviceProvider, verifier, shares, false, beneficiary); + function _undelegateWithBeneficiary(address serviceProvider, address verifier, uint256 shares, address beneficiary) internal { + __undelegate( + IHorizonStakingTypes.ThawRequestType.DelegationWithBeneficiary, + serviceProvider, + verifier, + shares, + false, + beneficiary + ); } function _undelegate(address serviceProvider, uint256 shares) internal { (, address caller, ) = vm.readCallers(); - __undelegate(serviceProvider, subgraphDataServiceLegacyAddress, shares, true, caller); + __undelegate( + IHorizonStakingTypes.ThawRequestType.Delegation, + serviceProvider, + subgraphDataServiceLegacyAddress, + shares, + true, + caller + ); } struct BeforeValues_Undelegate { @@ -923,14 +944,21 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { bytes32 thawRequestId; } - function __undelegate(address serviceProvider, address verifier, uint256 shares, bool legacy, address beneficiary) private { + function __undelegate( + IHorizonStakingTypes.ThawRequestType thawRequestType, + address serviceProvider, + address verifier, + uint256 shares, + bool legacy, + address beneficiary + ) private { (, address delegator, ) = vm.readCallers(); // before BeforeValues_Undelegate memory beforeValues; beforeValues.pool = _getStorage_DelegationPoolInternal(serviceProvider, verifier, legacy); beforeValues.delegation = _getStorage_Delegation(serviceProvider, verifier, delegator, legacy); - beforeValues.thawRequestList = staking.getThawRequestList(serviceProvider, verifier, delegator); + beforeValues.thawRequestList = staking.getThawRequestList(thawRequestType, serviceProvider, verifier, delegator); beforeValues.delegatedTokens = staking.getDelegatedTokensAvailable(serviceProvider, verifier); // calc @@ -962,8 +990,12 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { emit IHorizonStakingMain.TokensUndelegated(serviceProvider, verifier, delegator, calcValues.tokens); if (legacy) { staking.undelegate(serviceProvider, shares); + } else if (thawRequestType == IHorizonStakingTypes.ThawRequestType.Delegation) { + staking.undelegate(serviceProvider, verifier, shares); + } else if (thawRequestType == IHorizonStakingTypes.ThawRequestType.DelegationWithBeneficiary) { + staking.undelegateWithBeneficiary(serviceProvider, verifier, shares, beneficiary); } else { - staking.undelegate(serviceProvider, verifier, shares, beneficiary); + revert("Invalid thaw request type"); } // after @@ -978,8 +1010,8 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { beneficiary, legacy ); - LinkedList.List memory afterThawRequestList = staking.getThawRequestList(serviceProvider, verifier, beneficiary); - ThawRequest memory afterThawRequest = staking.getThawRequest(calcValues.thawRequestId); + LinkedList.List memory afterThawRequestList = staking.getThawRequestList(thawRequestType, serviceProvider, verifier, beneficiary); + ThawRequest memory afterThawRequest = staking.getThawRequest(thawRequestType, calcValues.thawRequestId); uint256 afterDelegatedTokens = staking.getDelegatedTokensAvailable(serviceProvider, verifier); // assertions @@ -1008,15 +1040,35 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { address verifier, uint256 nThawRequests ) internal { - __withdrawDelegated( - serviceProvider, - verifier, - address(0), - address(0), - 0, - nThawRequests, - false - ); + Params_WithdrawDelegated memory params = Params_WithdrawDelegated({ + thawRequestType: IHorizonStakingTypes.ThawRequestType.Delegation, + serviceProvider: serviceProvider, + verifier: verifier, + newServiceProvider: address(0), + newVerifier: address(0), + minSharesForNewProvider: 0, + nThawRequests: nThawRequests, + legacy: verifier == subgraphDataServiceLegacyAddress + }); + __withdrawDelegated(params); + } + + function _withdrawDelegatedWithBeneficiary( + address serviceProvider, + address verifier, + uint256 nThawRequests + ) internal { + Params_WithdrawDelegated memory params = Params_WithdrawDelegated({ + thawRequestType: IHorizonStakingTypes.ThawRequestType.DelegationWithBeneficiary, + serviceProvider: serviceProvider, + verifier: verifier, + newServiceProvider: address(0), + newVerifier: address(0), + minSharesForNewProvider: 0, + nThawRequests: nThawRequests, + legacy: false + }); + __withdrawDelegated(params); } function _redelegate( @@ -1027,19 +1079,17 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { uint256 minSharesForNewProvider, uint256 nThawRequests ) internal { - __withdrawDelegated( - serviceProvider, - verifier, - newServiceProvider, - newVerifier, - minSharesForNewProvider, - nThawRequests, - false - ); - } - - function _withdrawDelegated(address serviceProvider, address newServiceProvider) internal { - __withdrawDelegated(serviceProvider, subgraphDataServiceLegacyAddress, newServiceProvider, subgraphDataServiceLegacyAddress, 0, 0, true); + Params_WithdrawDelegated memory params = Params_WithdrawDelegated({ + thawRequestType: IHorizonStakingTypes.ThawRequestType.Delegation, + serviceProvider: serviceProvider, + verifier: verifier, + newServiceProvider: newServiceProvider, + newVerifier: newVerifier, + minSharesForNewProvider: minSharesForNewProvider, + nThawRequests: nThawRequests, + legacy: false + }); + __withdrawDelegated(params); } struct BeforeValues_WithdrawDelegated { @@ -1059,35 +1109,40 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { uint256 stakingBalance; } - function __withdrawDelegated( - address _serviceProvider, - address _verifier, - address _newServiceProvider, - address _newVerifier, - uint256 _minSharesForNewProvider, - uint256 _nThawRequests, - bool legacy - ) private { + struct Params_WithdrawDelegated { + IHorizonStakingTypes.ThawRequestType thawRequestType; + address serviceProvider; + address verifier; + address newServiceProvider; + address newVerifier; + uint256 minSharesForNewProvider; + uint256 nThawRequests; + bool legacy; + } + + function __withdrawDelegated(Params_WithdrawDelegated memory params) private { (, address msgSender, ) = vm.readCallers(); - bool reDelegate = _newServiceProvider != address(0) && _newVerifier != address(0); + bool reDelegate = params.newServiceProvider != address(0) && params.newVerifier != address(0); // before BeforeValues_WithdrawDelegated memory beforeValues; - beforeValues.pool = _getStorage_DelegationPoolInternal(_serviceProvider, _verifier, legacy); - beforeValues.newPool = _getStorage_DelegationPoolInternal(_newServiceProvider, _newVerifier, legacy); - beforeValues.newDelegation = _getStorage_Delegation(_newServiceProvider, _newVerifier, msgSender, legacy); - beforeValues.thawRequestList = staking.getThawRequestList(_serviceProvider, _verifier, msgSender); + beforeValues.pool = _getStorage_DelegationPoolInternal(params.serviceProvider, params.verifier, params.legacy); + beforeValues.newPool = _getStorage_DelegationPoolInternal(params.newServiceProvider, params.newVerifier, params.legacy); + beforeValues.newDelegation = _getStorage_Delegation(params.newServiceProvider, params.newVerifier, msgSender, params.legacy); + beforeValues.thawRequestList = staking.getThawRequestList(params.thawRequestType, params.serviceProvider, params.verifier, msgSender); beforeValues.senderBalance = token.balanceOf(msgSender); beforeValues.stakingBalance = token.balanceOf(address(staking)); - CalcValues_ThawRequestData memory calcValues = calcThawRequestData( - _serviceProvider, - _verifier, - msgSender, - _nThawRequests, - true - ); + Params_CalcThawRequestData memory paramsCalc = Params_CalcThawRequestData({ + thawRequestType: params.thawRequestType, + serviceProvider: params.serviceProvider, + verifier: params.verifier, + owner: msgSender, + iterations: params.nThawRequests, + delegation: true + }); + CalcValues_ThawRequestData memory calcValues = calcThawRequestData(paramsCalc); // withdrawDelegated for (uint i = 0; i < calcValues.thawRequestsFulfilledList.length; i++) { @@ -1103,18 +1158,19 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { } vm.expectEmit(address(staking)); emit IHorizonStakingMain.ThawRequestsFulfilled( - _serviceProvider, - _verifier, + params.serviceProvider, + params.verifier, msgSender, calcValues.thawRequestsFulfilledList.length, - calcValues.tokensThawed + calcValues.tokensThawed, + params.thawRequestType ); if (calcValues.tokensThawed != 0) { vm.expectEmit(); if (reDelegate) { emit IHorizonStakingMain.TokensDelegated( - _newServiceProvider, - _newVerifier, + params.newServiceProvider, + params.newVerifier, msgSender, calcValues.tokensThawed ); @@ -1125,32 +1181,34 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { vm.expectEmit(); emit IHorizonStakingMain.DelegatedTokensWithdrawn( - _serviceProvider, - _verifier, + params.serviceProvider, + params.verifier, msgSender, calcValues.tokensThawed ); - if (legacy) { - staking.withdrawDelegated(_serviceProvider, _newServiceProvider); - } else if (reDelegate) { + if (reDelegate) { staking.redelegate( - _serviceProvider, - _verifier, - _newServiceProvider, - _newVerifier, - _minSharesForNewProvider, - _nThawRequests + params.serviceProvider, + params.verifier, + params.newServiceProvider, + params.newVerifier, + params.minSharesForNewProvider, + params.nThawRequests ); + } else if (params.thawRequestType == IHorizonStakingTypes.ThawRequestType.Delegation) { + staking.withdrawDelegated(params.serviceProvider, params.verifier, params.nThawRequests); + } else if (params.thawRequestType == IHorizonStakingTypes.ThawRequestType.DelegationWithBeneficiary) { + staking.withdrawDelegatedWithBeneficiary(params.serviceProvider, params.verifier, params.nThawRequests); } else { - staking.withdrawDelegated(_serviceProvider, _verifier, _nThawRequests); + revert("Invalid thaw request type"); } // after AfterValues_WithdrawDelegated memory afterValues; - afterValues.pool = _getStorage_DelegationPoolInternal(_serviceProvider, _verifier, legacy); - afterValues.newPool = _getStorage_DelegationPoolInternal(_newServiceProvider, _newVerifier, legacy); - afterValues.newDelegation = _getStorage_Delegation(_newServiceProvider, _newVerifier, msgSender, legacy); - afterValues.thawRequestList = staking.getThawRequestList(_serviceProvider, _verifier, msgSender); + afterValues.pool = _getStorage_DelegationPoolInternal(params.serviceProvider, params.verifier, params.legacy); + afterValues.newPool = _getStorage_DelegationPoolInternal(params.newServiceProvider, params.newVerifier, params.legacy); + afterValues.newDelegation = _getStorage_Delegation(params.newServiceProvider, params.newVerifier, msgSender, params.legacy); + afterValues.thawRequestList = staking.getThawRequestList(params.thawRequestType, params.serviceProvider, params.verifier, msgSender); afterValues.senderBalance = token.balanceOf(msgSender); afterValues.stakingBalance = token.balanceOf(address(staking)); @@ -1162,7 +1220,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { assertEq(afterValues.pool.thawingNonce, beforeValues.pool.thawingNonce); for (uint i = 0; i < calcValues.thawRequestsFulfilledListIds.length; i++) { - ThawRequest memory thawRequest = staking.getThawRequest(calcValues.thawRequestsFulfilledListIds[i]); + ThawRequest memory thawRequest = staking.getThawRequest(params.thawRequestType, calcValues.thawRequestsFulfilledListIds[i]); assertEq(thawRequest.shares, 0); assertEq(thawRequest.thawingUntil, 0); assertEq(thawRequest.next, bytes32(0)); @@ -1210,7 +1268,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { afterValues.newDelegation.__DEPRECATED_tokensLockedUntil, beforeValues.newDelegation.__DEPRECATED_tokensLockedUntil ); - assertGe(deltaShares, _minSharesForNewProvider); + assertGe(deltaShares, params.minSharesForNewProvider); assertEq(calcShares, deltaShares); assertEq(afterValues.senderBalance - beforeValues.senderBalance, 0); assertEq(beforeValues.stakingBalance - afterValues.stakingBalance, 0); @@ -1296,7 +1354,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { function _setDelegationSlashingEnabled() internal { // setDelegationSlashingEnabled vm.expectEmit(); - emit IHorizonStakingMain.DelegationSlashingEnabled(true); + emit IHorizonStakingMain.DelegationSlashingEnabled(); staking.setDelegationSlashingEnabled(); // after @@ -1417,7 +1475,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { uint256 tokensSlashed = calcValues.providerTokensSlashed + (isDelegationSlashingEnabled ? calcValues.delegationTokensSlashed : 0); uint256 provisionThawingTokens = (before.provision.tokensThawing * - (1e18 - ((calcValues.providerTokensSlashed * 1e18) / before.provision.tokens))) / (1e18); + (1e18 - ((calcValues.providerTokensSlashed * 1e18 + before.provision.tokens - 1) / before.provision.tokens))) / (1e18); // assert assertEq(afterProvision.tokens + calcValues.providerTokensSlashed, before.provision.tokens); @@ -1435,7 +1493,7 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { (before.provision.sharesThawing != 0 && afterProvision.sharesThawing == 0) ? before.provision.thawingNonce + 1 : before.provision.thawingNonce); if (isDelegationSlashingEnabled) { uint256 poolThawingTokens = (before.pool.tokensThawing * - (1e18 - ((calcValues.delegationTokensSlashed * 1e18) / before.pool.tokens))) / (1e18); + (1e18 - ((calcValues.delegationTokensSlashed * 1e18 + before.pool.tokens - 1) / before.pool.tokens))) / (1e18); assertEq(afterPool.tokens + calcValues.delegationTokensSlashed, before.pool.tokens); assertEq(afterPool.shares, before.pool.shares); assertEq(afterPool.tokensThawing, poolThawingTokens); @@ -2207,34 +2265,49 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { uint256[] thawRequestsFulfilledListTokens; } - function calcThawRequestData( - address serviceProvider, - address verifier, - address owner, - uint256 iterations, - bool delegation - ) private view returns (CalcValues_ThawRequestData memory) { - LinkedList.List memory thawRequestList = staking.getThawRequestList(serviceProvider, verifier, owner); + struct ThawingData { + uint256 tokensThawed; + uint256 tokensThawing; + uint256 sharesThawing; + uint256 thawRequestsFulfilled; + } + + struct Params_CalcThawRequestData { + IHorizonStakingTypes.ThawRequestType thawRequestType; + address serviceProvider; + address verifier; + address owner; + uint256 iterations; + bool delegation; + } + + function calcThawRequestData(Params_CalcThawRequestData memory params) private view returns (CalcValues_ThawRequestData memory) { + LinkedList.List memory thawRequestList = _getThawRequestList( + params.thawRequestType, + params.serviceProvider, + params.verifier, + params.owner + ); if (thawRequestList.count == 0) { return CalcValues_ThawRequestData(0, 0, 0, new ThawRequest[](0), new bytes32[](0), new uint256[](0)); } - Provision memory prov = staking.getProvision(serviceProvider, verifier); - DelegationPool memory pool = staking.getDelegationPool(serviceProvider, verifier); + Provision memory prov = staking.getProvision(params.serviceProvider, params.verifier); + DelegationPool memory pool = staking.getDelegationPool(params.serviceProvider, params.verifier); uint256 tokensThawed = 0; - uint256 tokensThawing = delegation ? pool.tokensThawing : prov.tokensThawing; - uint256 sharesThawing = delegation ? pool.sharesThawing : prov.sharesThawing; + uint256 tokensThawing = params.delegation ? pool.tokensThawing : prov.tokensThawing; + uint256 sharesThawing = params.delegation ? pool.sharesThawing : prov.sharesThawing; uint256 thawRequestsFulfilled = 0; bytes32 thawRequestId = thawRequestList.head; - while (thawRequestId != bytes32(0) && (iterations == 0 || thawRequestsFulfilled < iterations)) { - ThawRequest memory thawRequest = staking.getThawRequest(thawRequestId); - bool isThawRequestValid = thawRequest.thawingNonce == (delegation ? pool.thawingNonce : prov.thawingNonce); + while (thawRequestId != bytes32(0) && (params.iterations == 0 || thawRequestsFulfilled < params.iterations)) { + ThawRequest memory thawRequest = _getThawRequest(params.thawRequestType, thawRequestId); + bool isThawRequestValid = thawRequest.thawingNonce == (params.delegation ? pool.thawingNonce : prov.thawingNonce); if (thawRequest.thawingUntil <= block.timestamp) { thawRequestsFulfilled++; if (isThawRequestValid) { - uint256 tokens = delegation + uint256 tokens = params.delegation ? (thawRequest.shares * pool.tokensThawing) / pool.sharesThawing : (thawRequest.shares * prov.tokensThawing) / prov.sharesThawing; tokensThawed += tokens; @@ -2248,24 +2321,28 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { } // we need to do a second pass because solidity doesnt allow dynamic arrays on memory - ThawRequest[] memory thawRequestsFulfilledList = new ThawRequest[](thawRequestsFulfilled); - bytes32[] memory thawRequestsFulfilledListIds = new bytes32[](thawRequestsFulfilled); - uint256[] memory thawRequestsFulfilledListTokens = new uint256[](thawRequestsFulfilled); + CalcValues_ThawRequestData memory thawRequestData; + thawRequestData.tokensThawed = tokensThawed; + thawRequestData.tokensThawing = tokensThawing; + thawRequestData.sharesThawing = sharesThawing; + thawRequestData.thawRequestsFulfilledList = new ThawRequest[](thawRequestsFulfilled); + thawRequestData.thawRequestsFulfilledListIds = new bytes32[](thawRequestsFulfilled); + thawRequestData.thawRequestsFulfilledListTokens = new uint256[](thawRequestsFulfilled); uint256 i = 0; thawRequestId = thawRequestList.head; - while (thawRequestId != bytes32(0) && (iterations == 0 || i < iterations)) { - ThawRequest memory thawRequest = staking.getThawRequest(thawRequestId); - bool isThawRequestValid = thawRequest.thawingNonce == (delegation ? pool.thawingNonce : prov.thawingNonce); + while (thawRequestId != bytes32(0) && (params.iterations == 0 || i < params.iterations)) { + ThawRequest memory thawRequest = _getThawRequest(params.thawRequestType, thawRequestId); + bool isThawRequestValid = thawRequest.thawingNonce == (params.delegation ? pool.thawingNonce : prov.thawingNonce); if (thawRequest.thawingUntil <= block.timestamp) { if (isThawRequestValid) { - thawRequestsFulfilledListTokens[i] = delegation + thawRequestData.thawRequestsFulfilledListTokens[i] = params.delegation ? (thawRequest.shares * pool.tokensThawing) / pool.sharesThawing : (thawRequest.shares * prov.tokensThawing) / prov.sharesThawing; } - thawRequestsFulfilledListIds[i] = thawRequestId; - thawRequestsFulfilledList[i] = staking.getThawRequest(thawRequestId); - thawRequestId = thawRequestsFulfilledList[i].next; + thawRequestData.thawRequestsFulfilledListIds[i] = thawRequestId; + thawRequestData.thawRequestsFulfilledList[i] = _getThawRequest(params.thawRequestType, thawRequestId); + thawRequestId = thawRequestData.thawRequestsFulfilledList[i].next; i++; } else { break; @@ -2273,18 +2350,34 @@ abstract contract HorizonStakingSharedTest is GraphBaseTest { thawRequestId = thawRequest.next; } - assertEq(thawRequestsFulfilled, thawRequestsFulfilledList.length); - assertEq(thawRequestsFulfilled, thawRequestsFulfilledListIds.length); - assertEq(thawRequestsFulfilled, thawRequestsFulfilledListTokens.length); - - return - CalcValues_ThawRequestData( - tokensThawed, - tokensThawing, - sharesThawing, - thawRequestsFulfilledList, - thawRequestsFulfilledListIds, - thawRequestsFulfilledListTokens - ); + assertEq(thawRequestsFulfilled, thawRequestData.thawRequestsFulfilledList.length); + assertEq(thawRequestsFulfilled, thawRequestData.thawRequestsFulfilledListIds.length); + assertEq(thawRequestsFulfilled, thawRequestData.thawRequestsFulfilledListTokens.length); + + return thawRequestData; + } + + function _getThawRequestList( + IHorizonStakingTypes.ThawRequestType thawRequestType, + address serviceProvider, + address verifier, + address owner + ) private view returns (LinkedList.List memory) { + return staking.getThawRequestList( + thawRequestType, + serviceProvider, + verifier, + owner + ); + } + + function _getThawRequest( + IHorizonStakingTypes.ThawRequestType thawRequestType, + bytes32 thawRequestId + ) private view returns (ThawRequest memory) { + return staking.getThawRequest( + thawRequestType, + thawRequestId + ); } } diff --git a/packages/horizon/test/shared/payments-escrow/PaymentsEscrowShared.t.sol b/packages/horizon/test/shared/payments-escrow/PaymentsEscrowShared.t.sol index 2bc435f7a..c3714dfd6 100644 --- a/packages/horizon/test/shared/payments-escrow/PaymentsEscrowShared.t.sol +++ b/packages/horizon/test/shared/payments-escrow/PaymentsEscrowShared.t.sol @@ -22,22 +22,6 @@ abstract contract PaymentsEscrowSharedTest is GraphBaseTest { * HELPERS */ - function _approveCollector(address _verifier, uint256 _tokens) internal { - (, address msgSender, ) = vm.readCallers(); - (uint256 beforeAllowance,) = escrow.authorizedCollectors(msgSender, _verifier); - vm.expectEmit(address(escrow)); - emit IPaymentsEscrow.AuthorizedCollector( - msgSender, // payer - _verifier, // collector - _tokens, // addedAllowance - beforeAllowance + _tokens // newTotalAllowance after the added allowance - ); - escrow.approveCollector(_verifier, _tokens); - (uint256 allowance, uint256 thawEndTimestamp) = escrow.authorizedCollectors(msgSender, _verifier); - assertEq(allowance - beforeAllowance, _tokens); - assertEq(thawEndTimestamp, 0); - } - function _depositTokens(address _collector, address _receiver, uint256 _tokens) internal { (, address msgSender, ) = vm.readCallers(); (uint256 escrowBalanceBefore,,) = escrow.escrowAccounts(msgSender, _collector, _receiver); diff --git a/packages/horizon/test/staking/HorizonStaking.t.sol b/packages/horizon/test/staking/HorizonStaking.t.sol index b1b45d118..d57b1c1b8 100644 --- a/packages/horizon/test/staking/HorizonStaking.t.sol +++ b/packages/horizon/test/staking/HorizonStaking.t.sol @@ -31,7 +31,7 @@ contract HorizonStakingTest is HorizonStakingSharedTest { modifier useDelegation(uint256 delegationAmount) { address msgSender; (, msgSender, ) = vm.readCallers(); - vm.assume(delegationAmount > 1); + vm.assume(delegationAmount >= MIN_DELEGATION); vm.assume(delegationAmount <= MAX_STAKING_TOKENS); vm.startPrank(users.delegator); _delegate(users.indexer, subgraphDataServiceAddress, delegationAmount, 0); @@ -56,4 +56,30 @@ contract HorizonStakingTest is HorizonStakingSharedTest { resetPrank(msgSender); _; } + + modifier useUndelegate(uint256 shares) { + resetPrank(users.delegator); + + DelegationPoolInternalTest memory pool = _getStorage_DelegationPoolInternal( + users.indexer, + subgraphDataServiceAddress, + false + ); + DelegationInternal memory delegation = _getStorage_Delegation( + users.indexer, + subgraphDataServiceAddress, + users.delegator, + false + ); + + shares = bound(shares, 1, delegation.shares); + uint256 tokens = (shares * (pool.tokens - pool.tokensThawing)) / pool.shares; + if (shares < delegation.shares) { + uint256 remainingTokens = (shares * (pool.tokens - pool.tokensThawing - tokens)) / pool.shares; + vm.assume(remainingTokens >= MIN_DELEGATION); + } + + _undelegate(users.indexer, subgraphDataServiceAddress, shares); + _; + } } diff --git a/packages/horizon/test/staking/allocation/close.t.sol b/packages/horizon/test/staking/allocation/close.t.sol index ce3cab273..6257e30ec 100644 --- a/packages/horizon/test/staking/allocation/close.t.sol +++ b/packages/horizon/test/staking/allocation/close.t.sol @@ -12,6 +12,18 @@ contract HorizonStakingCloseAllocationTest is HorizonStakingTest { bytes32 internal constant _poi = keccak256("poi"); + /* + * MODIFIERS + */ + + modifier useLegacyOperator() { + resetPrank(users.indexer); + _setOperator(subgraphDataServiceLegacyAddress, users.operator, true); + vm.startPrank(users.operator); + _; + vm.stopPrank(); + } + /* * TESTS */ @@ -26,6 +38,16 @@ contract HorizonStakingCloseAllocationTest is HorizonStakingTest { _closeAllocation(_allocationId, _poi); } + function testCloseAllocation_Operator(uint256 tokens) public useLegacyOperator() useAllocation(1 ether) { + tokens = bound(tokens, 1, MAX_STAKING_TOKENS); + _createProvision(users.indexer, subgraphDataServiceLegacyAddress, tokens, 0, 0); + + // Skip 15 epochs + vm.roll(15); + + _closeAllocation(_allocationId, _poi); + } + function testCloseAllocation_WithBeneficiaryAddress(uint256 tokens) public useIndexer useAllocation(1 ether) { tokens = bound(tokens, 1, MAX_STAKING_TOKENS); _createProvision(users.indexer, subgraphDataServiceLegacyAddress, tokens, 0, 0); diff --git a/packages/horizon/test/staking/delegation/addToPool.t.sol b/packages/horizon/test/staking/delegation/addToPool.t.sol index ff5b957ca..2bd73f28f 100644 --- a/packages/horizon/test/staking/delegation/addToPool.t.sol +++ b/packages/horizon/test/staking/delegation/addToPool.t.sol @@ -10,6 +10,7 @@ contract HorizonStakingDelegationAddToPoolTest is HorizonStakingTest { modifier useValidDelegationAmount(uint256 tokens) { vm.assume(tokens <= MAX_STAKING_TOKENS); + vm.assume(tokens >= MIN_DELEGATION); _; } @@ -93,7 +94,7 @@ contract HorizonStakingDelegationAddToPoolTest is HorizonStakingTest { uint256 recoverAmount ) public useIndexer useProvision(tokens, 0, 0) useDelegationSlashing() { recoverAmount = bound(recoverAmount, 1, MAX_STAKING_TOKENS); - delegationTokens = bound(delegationTokens, 1, MAX_STAKING_TOKENS); + delegationTokens = bound(delegationTokens, MIN_DELEGATION, MAX_STAKING_TOKENS); // create delegation pool resetPrank(users.delegator); @@ -116,7 +117,7 @@ contract HorizonStakingDelegationAddToPoolTest is HorizonStakingTest { uint256 recoverAmount ) public useIndexer useProvision(tokens, 0, 0) useDelegationSlashing() { recoverAmount = bound(recoverAmount, 1, MAX_STAKING_TOKENS); - delegationTokens = bound(delegationTokens, 1, MAX_STAKING_TOKENS); + delegationTokens = bound(delegationTokens, MIN_DELEGATION, MAX_STAKING_TOKENS); // create delegation pool resetPrank(users.delegator); diff --git a/packages/horizon/test/staking/delegation/delegate.t.sol b/packages/horizon/test/staking/delegation/delegate.t.sol index ab58e4bde..043453e10 100644 --- a/packages/horizon/test/staking/delegation/delegate.t.sol +++ b/packages/horizon/test/staking/delegation/delegate.t.sol @@ -59,9 +59,25 @@ contract HorizonStakingDelegateTest is HorizonStakingTest { staking.delegate(users.indexer, subgraphDataServiceAddress, 0, 0); } + function testDelegate_RevertWhen_UnderMinDelegation( + uint256 amount, + uint256 delegationAmount + ) public useIndexer useProvision(amount, 0, 0) { + delegationAmount = bound(delegationAmount, 1, MIN_DELEGATION - 1); + vm.startPrank(users.delegator); + token.approve(address(staking), delegationAmount); + bytes memory expectedError = abi.encodeWithSelector( + IHorizonStakingMain.HorizonStakingInsufficientDelegationTokens.selector, + delegationAmount, + MIN_DELEGATION + ); + vm.expectRevert(expectedError); + staking.delegate(users.indexer, subgraphDataServiceAddress, delegationAmount, 0); + } + function testDelegate_LegacySubgraphService(uint256 amount, uint256 delegationAmount) public useIndexer { amount = bound(amount, 1 ether, MAX_STAKING_TOKENS); - delegationAmount = bound(delegationAmount, 1, MAX_STAKING_TOKENS); + delegationAmount = bound(delegationAmount, MIN_DELEGATION, MAX_STAKING_TOKENS); _createProvision(users.indexer, subgraphDataServiceLegacyAddress, amount, 0, 0); resetPrank(users.delegator); @@ -72,7 +88,7 @@ contract HorizonStakingDelegateTest is HorizonStakingTest { uint256 tokens, uint256 delegationTokens ) public useIndexer useProvision(tokens, 0, 0) useDelegationSlashing() { - delegationTokens = bound(delegationTokens, 1, MAX_STAKING_TOKENS); + delegationTokens = bound(delegationTokens, MIN_DELEGATION, MAX_STAKING_TOKENS); resetPrank(users.delegator); _delegate(users.indexer, subgraphDataServiceAddress, delegationTokens, 0); @@ -96,7 +112,7 @@ contract HorizonStakingDelegateTest is HorizonStakingTest { uint256 tokens, uint256 delegationTokens ) public useIndexer useProvision(tokens, 0, 0) useDelegationSlashing() { - delegationTokens = bound(delegationTokens, 2, MAX_STAKING_TOKENS); + delegationTokens = bound(delegationTokens, MIN_DELEGATION * 2, MAX_STAKING_TOKENS); resetPrank(users.delegator); _delegate(users.indexer, subgraphDataServiceAddress, delegationTokens, 0); @@ -126,7 +142,7 @@ contract HorizonStakingDelegateTest is HorizonStakingTest { uint256 recoverAmount ) public useIndexer useProvision(tokens, 0, 0) useDelegationSlashing() { recoverAmount = bound(recoverAmount, 1, MAX_STAKING_TOKENS); - delegationTokens = bound(delegationTokens, 1, MAX_STAKING_TOKENS); + delegationTokens = bound(delegationTokens, MIN_DELEGATION, MAX_STAKING_TOKENS); // create delegation pool resetPrank(users.delegator); diff --git a/packages/horizon/test/staking/delegation/legacyWithdraw.t.sol b/packages/horizon/test/staking/delegation/legacyWithdraw.t.sol new file mode 100644 index 000000000..c90fa1200 --- /dev/null +++ b/packages/horizon/test/staking/delegation/legacyWithdraw.t.sol @@ -0,0 +1,98 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.27; + +import "forge-std/Test.sol"; + +import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingTypes } from "../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IHorizonStakingExtension } from "../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; +import { LinkedList } from "../../../contracts/libraries/LinkedList.sol"; + +import { HorizonStakingTest } from "../HorizonStaking.t.sol"; + +contract HorizonStakingLegacyWithdrawDelegationTest is HorizonStakingTest { + /* + * MODIFIERS + */ + + modifier useDelegator() { + resetPrank(users.delegator); + _; + } + + /* + * HELPERS + */ + + function _setLegacyDelegation( + address _indexer, + address _delegator, + uint256 _shares, + uint256 __DEPRECATED_tokensLocked, + uint256 __DEPRECATED_tokensLockedUntil + ) public { + // Calculate the base storage slot for the serviceProvider in the mapping + bytes32 baseSlot = keccak256(abi.encode(_indexer, uint256(20))); + + // Calculate the slot for the delegator's DelegationInternal struct + bytes32 delegatorSlot = keccak256(abi.encode(_delegator, bytes32(uint256(baseSlot) + 4))); + + // Use vm.store to set each field of the struct + vm.store(address(staking), bytes32(uint256(delegatorSlot)), bytes32(_shares)); + vm.store(address(staking), bytes32(uint256(delegatorSlot) + 1), bytes32(__DEPRECATED_tokensLocked)); + vm.store(address(staking), bytes32(uint256(delegatorSlot) + 2), bytes32(__DEPRECATED_tokensLockedUntil)); + } + + /* + * ACTIONS + */ + + function _legacyWithdrawDelegated(address _indexer) internal { + (, address delegator, ) = vm.readCallers(); + IHorizonStakingTypes.DelegationPool memory pool = staking.getDelegationPool(_indexer, subgraphDataServiceLegacyAddress); + uint256 beforeStakingBalance = token.balanceOf(address(staking)); + uint256 beforeDelegatorBalance = token.balanceOf(users.delegator); + + vm.expectEmit(address(staking)); + emit IHorizonStakingMain.StakeDelegatedWithdrawn(_indexer, delegator, pool.tokens); + staking.withdrawDelegated(users.indexer, address(0)); + + uint256 afterStakingBalance = token.balanceOf(address(staking)); + uint256 afterDelegatorBalance = token.balanceOf(users.delegator); + + assertEq(afterStakingBalance, beforeStakingBalance - pool.tokens); + assertEq(afterDelegatorBalance - pool.tokens, beforeDelegatorBalance); + + DelegationInternal memory delegation = _getStorage_Delegation( + _indexer, + subgraphDataServiceLegacyAddress, + delegator, + true + ); + assertEq(delegation.shares, 0); + assertEq(delegation.__DEPRECATED_tokensLocked, 0); + assertEq(delegation.__DEPRECATED_tokensLockedUntil, 0); + } + + /* + * TESTS + */ + + function testWithdraw_Legacy(uint256 tokensLocked) public useDelegator { + vm.assume(tokensLocked > 0); + + _setStorage_DelegationPool(users.indexer, tokensLocked, 0, 0); + _setLegacyDelegation(users.indexer, users.delegator, 0, tokensLocked, 1); + token.transfer(address(staking), tokensLocked); + + _legacyWithdrawDelegated(users.indexer); + } + + function testWithdraw_Legacy_RevertWhen_NoTokens() public useDelegator { + _setStorage_DelegationPool(users.indexer, 0, 0, 0); + _setLegacyDelegation(users.indexer, users.delegator, 0, 0, 0); + + vm.expectRevert("!tokens"); + staking.withdrawDelegated(users.indexer, address(0)); + } +} diff --git a/packages/horizon/test/staking/delegation/redelegate.t.sol b/packages/horizon/test/staking/delegation/redelegate.t.sol index 605e6601f..6e30348c4 100644 --- a/packages/horizon/test/staking/delegation/redelegate.t.sol +++ b/packages/horizon/test/staking/delegation/redelegate.t.sol @@ -9,19 +9,6 @@ import { HorizonStakingTest } from "../HorizonStaking.t.sol"; contract HorizonStakingWithdrawDelegationTest is HorizonStakingTest { - /* - * MODIFIERS - */ - - modifier useUndelegate(uint256 shares) { - resetPrank(users.delegator); - DelegationInternal memory delegation = _getStorage_Delegation(users.indexer, subgraphDataServiceAddress, users.delegator, false); - shares = bound(shares, 1, delegation.shares); - - _undelegate(users.indexer, subgraphDataServiceAddress, shares); - _; - } - /* * HELPERS */ diff --git a/packages/horizon/test/staking/delegation/undelegate.t.sol b/packages/horizon/test/staking/delegation/undelegate.t.sol index 4cad2e0c3..e23fdadb8 100644 --- a/packages/horizon/test/staking/delegation/undelegate.t.sol +++ b/packages/horizon/test/staking/delegation/undelegate.t.sol @@ -32,7 +32,7 @@ contract HorizonStakingUndelegateTest is HorizonStakingTest { uint256 undelegateSteps ) public useIndexer useProvision(amount, 0, 0) { undelegateSteps = bound(undelegateSteps, 1, 10); - delegationAmount = bound(delegationAmount, 10 wei, MAX_STAKING_TOKENS); + delegationAmount = bound(delegationAmount, MIN_DELEGATION * undelegateSteps, MAX_STAKING_TOKENS); resetPrank(users.delegator); _delegate(users.indexer, subgraphDataServiceAddress, delegationAmount, 0); @@ -44,9 +44,17 @@ contract HorizonStakingUndelegateTest is HorizonStakingTest { ); uint256 undelegateAmount = delegation.shares / undelegateSteps; - for (uint i = 0; i < undelegateSteps; i++) { + for (uint i = 0; i < undelegateSteps - 1; i++) { _undelegate(users.indexer, subgraphDataServiceAddress, undelegateAmount); } + + delegation = _getStorage_Delegation( + users.indexer, + subgraphDataServiceAddress, + users.delegator, + false + ); + _undelegate(users.indexer, subgraphDataServiceAddress, delegation.shares); } function testUndelegate_WithBeneficiary( @@ -55,16 +63,40 @@ contract HorizonStakingUndelegateTest is HorizonStakingTest { address beneficiary ) public useIndexer useProvision(amount, 0, 0) useDelegation(delegationAmount) { vm.assume(beneficiary != address(0)); + vm.assume(delegationAmount >= MIN_UNDELEGATION_WITH_BENEFICIARY); resetPrank(users.delegator); DelegationInternal memory delegation = _getStorage_Delegation(users.indexer, subgraphDataServiceAddress, users.delegator, false); - _undelegate(users.indexer, subgraphDataServiceAddress, delegation.shares, beneficiary); + _undelegateWithBeneficiary(users.indexer, subgraphDataServiceAddress, delegation.shares, beneficiary); + } + + function testUndelegate_RevertWhen_InsuficientTokens( + uint256 amount, + uint256 delegationAmount, + uint256 undelegateAmount + ) public useIndexer useProvision(amount, 0, 0) useDelegation(delegationAmount) { + undelegateAmount = bound(undelegateAmount, 1, delegationAmount); + resetPrank(users.delegator); + DelegationInternal memory delegation = _getStorage_Delegation( + users.indexer, + subgraphDataServiceAddress, + users.delegator, + false + ); + undelegateAmount = bound(undelegateAmount, delegation.shares - MIN_DELEGATION + 1, delegation.shares - 1); + bytes memory expectedError = abi.encodeWithSelector( + IHorizonStakingMain.HorizonStakingInsufficientTokens.selector, + delegation.shares - undelegateAmount, + MIN_DELEGATION + ); + vm.expectRevert(expectedError); + staking.undelegate(users.indexer, subgraphDataServiceAddress, undelegateAmount); } function testUndelegate_RevertWhen_TooManyUndelegations() public useIndexer useProvision(1000 ether, 0, 0) - useDelegation(1000 ether) + useDelegation(10000 ether) { resetPrank(users.delegator); @@ -112,7 +144,7 @@ contract HorizonStakingUndelegateTest is HorizonStakingTest { function testUndelegate_LegacySubgraphService(uint256 amount, uint256 delegationAmount) public useIndexer { amount = bound(amount, 1, MAX_STAKING_TOKENS); - delegationAmount = bound(delegationAmount, 1, MAX_STAKING_TOKENS); + delegationAmount = bound(delegationAmount, MIN_DELEGATION, MAX_STAKING_TOKENS); _createProvision(users.indexer, subgraphDataServiceLegacyAddress, amount, 0, 0); resetPrank(users.delegator); @@ -131,7 +163,7 @@ contract HorizonStakingUndelegateTest is HorizonStakingTest { uint256 tokens, uint256 delegationTokens ) public useIndexer useProvision(tokens, 0, 0) useDelegationSlashing() { - delegationTokens = bound(delegationTokens, 1, MAX_STAKING_TOKENS); + delegationTokens = bound(delegationTokens, MIN_DELEGATION, MAX_STAKING_TOKENS); resetPrank(users.delegator); _delegate(users.indexer, subgraphDataServiceAddress, delegationTokens, 0); @@ -162,7 +194,7 @@ contract HorizonStakingUndelegateTest is HorizonStakingTest { uint256 tokens, uint256 delegationTokens ) public useIndexer useProvision(tokens, 0, 0) useDelegationSlashing { - delegationTokens = bound(delegationTokens, 1, MAX_STAKING_TOKENS); + delegationTokens = bound(delegationTokens, MIN_DELEGATION, MAX_STAKING_TOKENS); // delegate resetPrank(users.delegator); @@ -232,6 +264,6 @@ contract HorizonStakingUndelegateTest is HorizonStakingTest { DelegationInternal memory delegation = _getStorage_Delegation(users.indexer, subgraphDataServiceAddress, users.delegator, false); bytes memory expectedError = abi.encodeWithSelector(IHorizonStakingMain.HorizonStakingInvalidBeneficiaryZeroAddress.selector); vm.expectRevert(expectedError); - staking.undelegate(users.indexer, subgraphDataServiceAddress, delegation.shares, address(0)); + staking.undelegateWithBeneficiary(users.indexer, subgraphDataServiceAddress, delegation.shares, address(0)); } } diff --git a/packages/horizon/test/staking/delegation/withdraw.t.sol b/packages/horizon/test/staking/delegation/withdraw.t.sol index c9aa04dbc..ab286c279 100644 --- a/packages/horizon/test/staking/delegation/withdraw.t.sol +++ b/packages/horizon/test/staking/delegation/withdraw.t.sol @@ -4,28 +4,12 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { IHorizonStakingMain } from "../../../contracts/interfaces/internal/IHorizonStakingMain.sol"; +import { IHorizonStakingTypes } from "../../../contracts/interfaces/internal/IHorizonStakingTypes.sol"; import { LinkedList } from "../../../contracts/libraries/LinkedList.sol"; import { HorizonStakingTest } from "../HorizonStaking.t.sol"; contract HorizonStakingWithdrawDelegationTest is HorizonStakingTest { - /* - * MODIFIERS - */ - - modifier useUndelegate(uint256 shares) { - resetPrank(users.delegator); - DelegationInternal memory delegation = _getStorage_Delegation( - users.indexer, - subgraphDataServiceAddress, - users.delegator, - false - ); - shares = bound(shares, 1, delegation.shares); - - _undelegate(users.indexer, subgraphDataServiceAddress, shares); - _; - } /* * TESTS @@ -42,11 +26,12 @@ contract HorizonStakingWithdrawDelegationTest is HorizonStakingTest { useUndelegate(withdrawShares) { LinkedList.List memory thawingRequests = staking.getThawRequestList( + IHorizonStakingTypes.ThawRequestType.Delegation, users.indexer, subgraphDataServiceAddress, users.delegator ); - ThawRequest memory thawRequest = staking.getThawRequest(thawingRequests.tail); + ThawRequest memory thawRequest = staking.getThawRequest(IHorizonStakingTypes.ThawRequestType.Delegation, thawingRequests.tail); skip(thawRequest.thawingUntil + 1); @@ -79,7 +64,7 @@ contract HorizonStakingWithdrawDelegationTest is HorizonStakingTest { } function testWithdrawDelegation_LegacySubgraphService(uint256 delegationAmount) public useIndexer { - delegationAmount = bound(delegationAmount, 1, MAX_STAKING_TOKENS); + delegationAmount = bound(delegationAmount, MIN_DELEGATION, MAX_STAKING_TOKENS); _createProvision(users.indexer, subgraphDataServiceLegacyAddress, 10_000_000 ether, 0, MAX_THAWING_PERIOD); resetPrank(users.delegator); @@ -93,22 +78,23 @@ contract HorizonStakingWithdrawDelegationTest is HorizonStakingTest { _undelegate(users.indexer, delegation.shares); LinkedList.List memory thawingRequests = staking.getThawRequestList( + IHorizonStakingTypes.ThawRequestType.Delegation, users.indexer, subgraphDataServiceLegacyAddress, users.delegator ); - ThawRequest memory thawRequest = staking.getThawRequest(thawingRequests.tail); + ThawRequest memory thawRequest = staking.getThawRequest(IHorizonStakingTypes.ThawRequestType.Delegation, thawingRequests.tail); skip(thawRequest.thawingUntil + 1); - _withdrawDelegated(users.indexer, address(0)); + _withdrawDelegated(users.indexer, subgraphDataServiceLegacyAddress, 0); } function testWithdrawDelegation_RevertWhen_InvalidPool( uint256 tokens, uint256 delegationTokens ) public useIndexer useProvision(tokens, 0, MAX_THAWING_PERIOD) useDelegationSlashing() { - delegationTokens = bound(delegationTokens, 2, MAX_STAKING_TOKENS); + delegationTokens = bound(delegationTokens, MIN_DELEGATION * 2, MAX_STAKING_TOKENS); resetPrank(users.delegator); _delegate(users.indexer, subgraphDataServiceAddress, delegationTokens, 0); @@ -180,22 +166,24 @@ contract HorizonStakingWithdrawDelegationTest is HorizonStakingTest { useDelegation(delegationAmount) { vm.assume(beneficiary != address(0)); + vm.assume(beneficiary != address(staking)); + vm.assume(delegationAmount >= MIN_UNDELEGATION_WITH_BENEFICIARY); // Skip beneficiary if balance will overflow vm.assume(token.balanceOf(beneficiary) < type(uint256).max - delegationAmount); // Delegator undelegates to beneficiary resetPrank(users.delegator); DelegationInternal memory delegation = _getStorage_Delegation(users.indexer, subgraphDataServiceAddress, users.delegator, false); - _undelegate(users.indexer, subgraphDataServiceAddress, delegation.shares, beneficiary); + _undelegateWithBeneficiary(users.indexer, subgraphDataServiceAddress, delegation.shares, beneficiary); // Thawing period ends - LinkedList.List memory thawingRequests = staking.getThawRequestList(users.indexer, subgraphDataServiceAddress, beneficiary); - ThawRequest memory thawRequest = staking.getThawRequest(thawingRequests.tail); + LinkedList.List memory thawingRequests = staking.getThawRequestList(IHorizonStakingTypes.ThawRequestType.Delegation, users.indexer, subgraphDataServiceAddress, beneficiary); + ThawRequest memory thawRequest = staking.getThawRequest(IHorizonStakingTypes.ThawRequestType.Delegation, thawingRequests.tail); skip(thawRequest.thawingUntil + 1); // Beneficiary withdraws delegated tokens resetPrank(beneficiary); - _withdrawDelegated(users.indexer, subgraphDataServiceAddress, 1); + _withdrawDelegatedWithBeneficiary(users.indexer, subgraphDataServiceAddress, 1); } function testWithdrawDelegation_RevertWhen_PreviousOwnerAttemptsToWithdraw( @@ -209,15 +197,16 @@ contract HorizonStakingWithdrawDelegationTest is HorizonStakingTest { { vm.assume(beneficiary != address(0)); vm.assume(beneficiary != users.delegator); + vm.assume(delegationAmount >= MIN_UNDELEGATION_WITH_BENEFICIARY); // Delegator undelegates to beneficiary resetPrank(users.delegator); DelegationInternal memory delegation = _getStorage_Delegation(users.indexer, subgraphDataServiceAddress, users.delegator, false); - _undelegate(users.indexer, subgraphDataServiceAddress, delegation.shares, beneficiary); + _undelegateWithBeneficiary(users.indexer, subgraphDataServiceAddress, delegation.shares, beneficiary); // Thawing period ends - LinkedList.List memory thawingRequests = staking.getThawRequestList(users.indexer, subgraphDataServiceAddress, users.delegator); - ThawRequest memory thawRequest = staking.getThawRequest(thawingRequests.tail); + LinkedList.List memory thawingRequests = staking.getThawRequestList(IHorizonStakingTypes.ThawRequestType.Delegation, users.indexer, subgraphDataServiceAddress, users.delegator); + ThawRequest memory thawRequest = staking.getThawRequest(IHorizonStakingTypes.ThawRequestType.Delegation, thawingRequests.tail); skip(thawRequest.thawingUntil + 1); // Delegator attempts to withdraw delegated tokens, should revert since beneficiary is the thaw request owner diff --git a/packages/horizon/test/staking/provision/deprovision.t.sol b/packages/horizon/test/staking/provision/deprovision.t.sol index ff022e1aa..4fa97da6c 100644 --- a/packages/horizon/test/staking/provision/deprovision.t.sol +++ b/packages/horizon/test/staking/provision/deprovision.t.sol @@ -17,7 +17,7 @@ contract HorizonStakingDeprovisionTest is HorizonStakingTest { uint256 thawCount, uint256 deprovisionCount ) public useIndexer useProvision(amount, maxVerifierCut, thawingPeriod) { - thawCount = bound(thawCount, 1, MAX_THAW_REQUESTS); + thawCount = bound(thawCount, 1, 100); deprovisionCount = bound(deprovisionCount, 0, thawCount); vm.assume(amount >= thawCount); // ensure the provision has at least 1 token for each thaw step uint256 individualThawAmount = amount / thawCount; @@ -37,7 +37,7 @@ contract HorizonStakingDeprovisionTest is HorizonStakingTest { uint64 thawingPeriod, uint256 thawCount ) public useIndexer useProvision(amount, maxVerifierCut, thawingPeriod) { - thawCount = bound(thawCount, 2, MAX_THAW_REQUESTS); + thawCount = bound(thawCount, 2, 100); vm.assume(amount >= thawCount); // ensure the provision has at least 1 token for each thaw step uint256 individualThawAmount = amount / thawCount; diff --git a/packages/horizon/test/staking/provision/thaw.t.sol b/packages/horizon/test/staking/provision/thaw.t.sol index c3b4d6903..eb58e8e86 100644 --- a/packages/horizon/test/staking/provision/thaw.t.sol +++ b/packages/horizon/test/staking/provision/thaw.t.sol @@ -26,7 +26,7 @@ contract HorizonStakingThawTest is HorizonStakingTest { uint64 thawingPeriod, uint256 thawCount ) public useIndexer useProvision(amount, 0, thawingPeriod) { - thawCount = bound(thawCount, 1, MAX_THAW_REQUESTS); + thawCount = bound(thawCount, 1, 100); vm.assume(amount >= thawCount); // ensure the provision has at least 1 token for each thaw step uint256 individualThawAmount = amount / thawCount; @@ -72,13 +72,8 @@ contract HorizonStakingThawTest is HorizonStakingTest { staking.thaw(users.indexer, subgraphDataServiceAddress, thawAmount); } - function testThaw_RevertWhen_OverMaxThawRequests( - uint256 amount, - uint64 thawingPeriod, - uint256 thawAmount - ) public useIndexer useProvision(amount, 0, thawingPeriod) { - vm.assume(amount >= MAX_THAW_REQUESTS + 1); - thawAmount = bound(thawAmount, 1, amount / (MAX_THAW_REQUESTS + 1)); + function testThaw_RevertWhen_OverMaxThawRequests() public useIndexer useProvision(10000 ether, 0, 0) { + uint256 thawAmount = 1 ether; for (uint256 i = 0; i < MAX_THAW_REQUESTS; i++) { _thaw(users.indexer, subgraphDataServiceAddress, thawAmount); @@ -139,4 +134,28 @@ contract HorizonStakingThawTest is HorizonStakingTest { resetPrank(users.indexer); _thaw(users.indexer, subgraphDataServiceAddress, thawAmount); } + + function testThaw_GetThawedTokens( + uint256 amount, + uint64 thawingPeriod, + uint256 thawSteps + ) public useIndexer useProvision(amount, 0, thawingPeriod) { + thawSteps = bound(thawSteps, 1, 10); + + uint256 thawAmount = amount / thawSteps; + vm.assume(thawAmount > 0); + for (uint256 i = 0; i < thawSteps; i++) { + _thaw(users.indexer, subgraphDataServiceAddress, thawAmount); + } + + skip(thawingPeriod + 1); + + uint256 thawedTokens = staking.getThawedTokens( + ThawRequestType.Provision, + users.indexer, + subgraphDataServiceAddress, + users.indexer + ); + vm.assertEq(thawedTokens, thawAmount * thawSteps); + } } diff --git a/packages/horizon/test/staking/slash/legacySlash.t.sol b/packages/horizon/test/staking/slash/legacySlash.t.sol new file mode 100644 index 000000000..f5595fdac --- /dev/null +++ b/packages/horizon/test/staking/slash/legacySlash.t.sol @@ -0,0 +1,208 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.27; + +import "forge-std/Test.sol"; + +import { IHorizonStakingExtension } from "../../../contracts/interfaces/internal/IHorizonStakingExtension.sol"; + +import { HorizonStakingTest } from "../HorizonStaking.t.sol"; + +contract HorizonStakingLegacySlashTest is HorizonStakingTest { + + /* + * MODIFIERS + */ + + modifier useLegacySlasher(address slasher) { + bytes32 storageKey = keccak256(abi.encode(slasher, 18)); + vm.store(address(staking), storageKey, bytes32(uint256(1))); + _; + } + + /* + * HELPERS + */ + + function _setIndexer( + address _indexer, + uint256 _tokensStaked, + uint256 _tokensAllocated, + uint256 _tokensLocked, + uint256 _tokensLockedUntil + ) public { + bytes32 baseSlot = keccak256(abi.encode(_indexer, 14)); + + vm.store(address(staking), bytes32(uint256(baseSlot)), bytes32(_tokensStaked)); + vm.store(address(staking), bytes32(uint256(baseSlot) + 1), bytes32(_tokensAllocated)); + vm.store(address(staking), bytes32(uint256(baseSlot) + 2), bytes32(_tokensLocked)); + vm.store(address(staking), bytes32(uint256(baseSlot) + 3), bytes32(_tokensLockedUntil)); + } + + /* + * ACTIONS + */ + + function _legacySlash(address _indexer, uint256 _tokens, uint256 _rewards, address _beneficiary) internal { + // before + uint256 beforeStakingBalance = token.balanceOf(address(staking)); + uint256 beforeRewardsDestinationBalance = token.balanceOf(_beneficiary); + + // slash + vm.expectEmit(address(staking)); + emit IHorizonStakingExtension.StakeSlashed(_indexer, _tokens, _rewards, _beneficiary); + staking.slash(_indexer, _tokens, _rewards, _beneficiary); + + // after + uint256 afterStakingBalance = token.balanceOf(address(staking)); + uint256 afterRewardsDestinationBalance = token.balanceOf(_beneficiary); + + assertEq(beforeStakingBalance - _tokens, afterStakingBalance); + assertEq(beforeRewardsDestinationBalance, afterRewardsDestinationBalance - _rewards); + } + + /* + * TESTS + */ + + function testSlash_Legacy( + uint256 tokens, + uint256 slashTokens, + uint256 reward + ) public useIndexer useLegacySlasher(users.legacySlasher) { + vm.assume(tokens > 1); + slashTokens = bound(slashTokens, 1, tokens); + reward = bound(reward, 0, slashTokens); + + _createProvision(users.indexer, subgraphDataServiceLegacyAddress, tokens, 0, 0); + + resetPrank(users.legacySlasher); + _legacySlash(users.indexer, slashTokens, reward, makeAddr("fisherman")); + } + + function testSlash_Legacy_UsingLockedTokens( + uint256 tokens, + uint256 slashTokens, + uint256 reward + ) public useIndexer useLegacySlasher(users.legacySlasher) { + vm.assume(tokens > 1); + slashTokens = bound(slashTokens, 1, tokens); + reward = bound(reward, 0, slashTokens); + + _setIndexer(users.indexer, tokens, 0, tokens, block.timestamp + 1); + // Send tokens manually to staking + token.transfer(address(staking), tokens); + + resetPrank(users.legacySlasher); + _legacySlash(users.indexer, slashTokens, reward, makeAddr("fisherman")); + } + + function testSlash_Legacy_UsingAllocatedTokens( + uint256 tokens, + uint256 slashTokens, + uint256 reward + ) public useIndexer useLegacySlasher(users.legacySlasher) { + vm.assume(tokens > 1); + slashTokens = bound(slashTokens, 1, tokens); + reward = bound(reward, 0, slashTokens); + + _setIndexer(users.indexer, tokens, 0, tokens, 0); + // Send tokens manually to staking + token.transfer(address(staking), tokens); + + resetPrank(users.legacySlasher); + staking.legacySlash(users.indexer, slashTokens, reward, makeAddr("fisherman")); + } + + function testSlash_Legacy_RevertWhen_CallerNotSlasher( + uint256 tokens, + uint256 slashTokens, + uint256 reward + ) public useIndexer { + vm.assume(tokens > 0); + _createProvision(users.indexer, subgraphDataServiceLegacyAddress, tokens, 0, 0); + + vm.expectRevert("!slasher"); + staking.legacySlash(users.indexer, slashTokens, reward, makeAddr("fisherman")); + } + + function testSlash_Legacy_RevertWhen_RewardsOverSlashTokens( + uint256 tokens, + uint256 slashTokens, + uint256 reward + ) public useIndexer useLegacySlasher(users.legacySlasher) { + vm.assume(tokens > 0); + vm.assume(slashTokens > 0); + vm.assume(reward > slashTokens); + + _createProvision(users.indexer, subgraphDataServiceLegacyAddress, tokens, 0, 0); + + resetPrank(users.legacySlasher); + vm.expectRevert("rewards>slash"); + staking.legacySlash(users.indexer, slashTokens, reward, makeAddr("fisherman")); + } + + function testSlash_Legacy_RevertWhen_NoStake( + uint256 slashTokens, + uint256 reward + ) public useLegacySlasher(users.legacySlasher) { + vm.assume(slashTokens > 0); + reward = bound(reward, 0, slashTokens); + + resetPrank(users.legacySlasher); + vm.expectRevert("!stake"); + staking.legacySlash(users.indexer, slashTokens, reward, makeAddr("fisherman")); + } + + function testSlash_Legacy_RevertWhen_ZeroTokens( + uint256 tokens + ) public useIndexer useLegacySlasher(users.legacySlasher) { + vm.assume(tokens > 0); + + _createProvision(users.indexer, subgraphDataServiceLegacyAddress, tokens, 0, 0); + + resetPrank(users.legacySlasher); + vm.expectRevert("!tokens"); + staking.legacySlash(users.indexer, 0, 0, makeAddr("fisherman")); + } + + function testSlash_Legacy_RevertWhen_NoBeneficiary( + uint256 tokens, + uint256 slashTokens, + uint256 reward + ) public useIndexer useLegacySlasher(users.legacySlasher) { + vm.assume(tokens > 0); + slashTokens = bound(slashTokens, 1, tokens); + reward = bound(reward, 0, slashTokens); + + _createProvision(users.indexer, subgraphDataServiceLegacyAddress, tokens, 0, 0); + + resetPrank(users.legacySlasher); + vm.expectRevert("!beneficiary"); + staking.legacySlash(users.indexer, slashTokens, reward, address(0)); + } + + function test_LegacySlash_WhenTokensAllocatedGreaterThanStake() + public + useIndexer + useLegacySlasher(users.legacySlasher) + { + // Setup indexer with: + // - tokensStaked = 1000 GRT + // - tokensAllocated = 800 GRT + // - tokensLocked = 300 GRT + // This means tokensUsed (1100 GRT) > tokensStaked (1000 GRT) + _setIndexer( + users.indexer, + 1000 ether, // tokensStaked + 800 ether, // tokensAllocated + 300 ether, // tokensLocked + 0 // tokensLockedUntil + ); + + // Send tokens manually to staking + token.transfer(address(staking), 1100 ether); + + resetPrank(users.legacySlasher); + _legacySlash(users.indexer, 1000 ether, 500 ether, makeAddr("fisherman")); + } +} diff --git a/packages/horizon/test/staking/slash/slash.t.sol b/packages/horizon/test/staking/slash/slash.t.sol index 7c7933419..fc5676b0f 100644 --- a/packages/horizon/test/staking/slash/slash.t.sol +++ b/packages/horizon/test/staking/slash/slash.t.sol @@ -54,7 +54,7 @@ contract HorizonStakingSlashTest is HorizonStakingTest { uint256 delegationTokens ) public useIndexer useProvision(tokens, MAX_PPM, 0) { vm.assume(slashTokens > tokens); - delegationTokens = bound(delegationTokens, 1, MAX_STAKING_TOKENS); + delegationTokens = bound(delegationTokens, MIN_DELEGATION, MAX_STAKING_TOKENS); verifierCutAmount = bound(verifierCutAmount, 0, MAX_PPM); vm.assume(verifierCutAmount <= tokens); @@ -71,7 +71,7 @@ contract HorizonStakingSlashTest is HorizonStakingTest { uint256 verifierCutAmount, uint256 delegationTokens ) public useIndexer useProvision(tokens, MAX_PPM, 0) useDelegationSlashing() { - delegationTokens = bound(delegationTokens, 1, MAX_STAKING_TOKENS); + delegationTokens = bound(delegationTokens, MIN_DELEGATION, MAX_STAKING_TOKENS); slashTokens = bound(slashTokens, tokens + 1, tokens + 1 + delegationTokens); verifierCutAmount = bound(verifierCutAmount, 0, tokens); @@ -110,7 +110,7 @@ contract HorizonStakingSlashTest is HorizonStakingTest { uint256 tokens, uint256 delegationTokens ) public useIndexer useProvision(tokens, MAX_PPM, 0) useDelegationSlashing { - delegationTokens = bound(delegationTokens, 1, MAX_STAKING_TOKENS); + delegationTokens = bound(delegationTokens, MIN_DELEGATION, MAX_STAKING_TOKENS); resetPrank(users.delegator); _delegate(users.indexer, subgraphDataServiceAddress, delegationTokens, 0); @@ -140,4 +140,46 @@ contract HorizonStakingSlashTest is HorizonStakingTest { vm.startPrank(subgraphDataServiceAddress); _slash(users.indexer, subgraphDataServiceAddress, tokens + delegationTokens, 0); } + + function testSlash_RoundDown_TokensThawing_Provision() public useIndexer { + uint256 tokens = 1 ether + 1; + _useProvision(subgraphDataServiceAddress, tokens, MAX_PPM, MAX_THAWING_PERIOD); + + _thaw(users.indexer, subgraphDataServiceAddress, tokens); + + resetPrank(subgraphDataServiceAddress); + _slash(users.indexer, subgraphDataServiceAddress, 1, 0); + + resetPrank(users.indexer); + Provision memory provision = staking.getProvision(users.indexer, subgraphDataServiceAddress); + assertEq(provision.tokens, tokens - 1); + // Tokens thawing should be rounded down + assertEq(provision.tokensThawing, tokens - 2); + } + + function testSlash_RoundDown_TokensThawing_Delegation( + uint256 tokens + ) public useIndexer useProvision(tokens, MAX_PPM, 0) useDelegationSlashing { + resetPrank(users.delegator); + uint256 delegationTokens = 1 ether + 1; + _delegate(users.indexer, subgraphDataServiceAddress, delegationTokens, 0); + + DelegationInternal memory delegation = _getStorage_Delegation( + users.indexer, + subgraphDataServiceAddress, + users.delegator, + false + ); + _undelegate(users.indexer, subgraphDataServiceAddress, delegation.shares); + + resetPrank(subgraphDataServiceAddress); + // Slash 1 token from delegation + _slash(users.indexer, subgraphDataServiceAddress, tokens + 1, 0); + + resetPrank(users.delegator); + DelegationPool memory pool = staking.getDelegationPool(users.indexer, subgraphDataServiceAddress); + assertEq(pool.tokens, delegationTokens - 1); + // Tokens thawing should be rounded down + assertEq(pool.tokensThawing, delegationTokens - 2); + } } diff --git a/packages/horizon/test/utils/Constants.sol b/packages/horizon/test/utils/Constants.sol index cd5cc2bfb..e74e3b0d1 100644 --- a/packages/horizon/test/utils/Constants.sol +++ b/packages/horizon/test/utils/Constants.sol @@ -7,13 +7,14 @@ abstract contract Constants { uint256 internal constant MAX_STAKING_TOKENS = 10_000_000_000 ether; // GraphEscrow parameters uint256 internal constant withdrawEscrowThawingPeriod = 60; - uint256 internal constant revokeCollectorThawingPeriod = 60; // GraphPayments parameters uint256 internal constant protocolPaymentCut = 10000; // Staking constants - uint256 internal constant MAX_THAW_REQUESTS = 100; + uint256 internal constant MAX_THAW_REQUESTS = 1_000; uint64 internal constant MAX_THAWING_PERIOD = 28 days; uint32 internal constant THAWING_PERIOD_IN_BLOCKS = 300; + uint256 internal constant MIN_DELEGATION = 1e18; + uint256 internal constant MIN_UNDELEGATION_WITH_BENEFICIARY = 10e18; // Epoch manager uint256 internal constant EPOCH_LENGTH = 1; // Rewards manager diff --git a/packages/horizon/test/utils/Users.sol b/packages/horizon/test/utils/Users.sol index b26329f91..ecd3927ab 100644 --- a/packages/horizon/test/utils/Users.sol +++ b/packages/horizon/test/utils/Users.sol @@ -9,4 +9,5 @@ struct Users { address gateway; address verifier; address delegator; + address legacySlasher; } \ No newline at end of file diff --git a/packages/subgraph-service/README.md b/packages/subgraph-service/README.md index 7be82e5d6..dbd580740 100644 --- a/packages/subgraph-service/README.md +++ b/packages/subgraph-service/README.md @@ -1,13 +1,17 @@ -# Sample Hardhat Project +# 🌅 Subgraph Service 🌅 -This project demonstrates a basic Hardhat use case. It comes with a sample contract, a test for that contract, and a script that deploys that contract. +The Subgraph Service is a data service designed to work with Graph Horizon that supports indexing subgraphs and serving queries to consumers. -Try running some of the following tasks: +## Deployment -```shell -npx hardhat help -npx hardhat test -REPORT_GAS=true npx hardhat test -npx hardhat node -npx hardhat run scripts/deploy.ts +We use Hardhat Ignition to deploy the contracts. To build and deploy the Subgraph Service run the following commands: + +```bash +yarn install +yarn build +npx hardhat run scripts/deploy.ts --network hardhat ``` + +You can use any network defined in `hardhat.config.ts` by replacing `hardhat` with the network name. + +Note that this will deploy and configure Graph Horizon contracts as well as the Subgraph Service. \ No newline at end of file diff --git a/packages/subgraph-service/contracts/DisputeManager.sol b/packages/subgraph-service/contracts/DisputeManager.sol index 58c93a756..2854282f4 100644 --- a/packages/subgraph-service/contracts/DisputeManager.sol +++ b/packages/subgraph-service/contracts/DisputeManager.sol @@ -31,11 +31,9 @@ import { AttestationManager } from "./utilities/AttestationManager.sol"; * Indexers use the derived private key for an allocation to sign attestations. * * Indexing Disputes: - * Indexers present a Proof of Indexing (POI) when they close allocations to prove - * they were indexing a subgraph. The Staking contract emits that proof with the format - * keccak256(indexer.address, POI). - * Any fisherman can dispute the validity of a POI by submitting a dispute to this contract - * along with a deposit. + * Indexers periodically present a Proof of Indexing (POI) to prove they are indexing a subgraph. + * The Subgraph Service contract emits that proof which includes the POI. Any fisherman can dispute the + * validity of a POI by submitting a dispute to this contract along with a deposit. * * Arbitration: * Disputes can only be accepted, rejected or drawn by the arbitrator role that can be delegated @@ -59,6 +57,9 @@ contract DisputeManager is // Maximum value for fisherman reward cut in PPM uint32 public constant MAX_FISHERMAN_REWARD_CUT = 500000; + // Minimum value for dispute deposit + uint256 public constant MIN_DISPUTE_DEPOSIT = 1e18; // 1 GRT + // -- Modifiers -- /** @@ -140,7 +141,7 @@ contract DisputeManager is */ function createIndexingDispute(address allocationId, bytes32 poi) external override returns (bytes32) { // Get funds from fisherman - _pullFishermanDeposit(); + _graphToken().pullTokens(msg.sender, disputeDeposit); // Create a dispute return _createIndexingDisputeWithAllocation(msg.sender, disputeDeposit, allocationId, poi); @@ -158,7 +159,7 @@ contract DisputeManager is */ function createQueryDispute(bytes calldata attestationData) external override returns (bytes32) { // Get funds from fisherman - _pullFishermanDeposit(); + _graphToken().pullTokens(msg.sender, disputeDeposit); // Create a dispute return @@ -174,10 +175,14 @@ contract DisputeManager is * @notice Create query disputes for two conflicting attestations. * A conflicting attestation is a proof presented by two different indexers * where for the same request on a subgraph the response is different. - * For this type of dispute the fisherman is not required to present a deposit - * as one of the attestation is considered to be right. * Two linked disputes will be created and if the arbitrator resolve one, the other - * one will be automatically resolved. + * one will be automatically resolved. Note that: + * - it's not possible to reject a conflicting query dispute as by definition at least one + * of the attestations is incorrect. + * - if both attestations are proven to be incorrect, the arbitrator can slash the indexer twice. + * Requirements: + * - fisherman must have previously approved this contract to pull `disputeDeposit` amount + * of tokens from their balance. * @param attestationData1 First attestation data submitted * @param attestationData2 Second attestation data submitted * @return DisputeId1, DisputeId2 @@ -205,10 +210,23 @@ contract DisputeManager is ) ); + // Get funds from fisherman + _graphToken().pullTokens(msg.sender, disputeDeposit); + // Create the disputes // The deposit is zero for conflicting attestations - bytes32 dId1 = _createQueryDisputeWithAttestation(fisherman, 0, attestation1, attestationData1); - bytes32 dId2 = _createQueryDisputeWithAttestation(fisherman, 0, attestation2, attestationData2); + bytes32 dId1 = _createQueryDisputeWithAttestation( + fisherman, + disputeDeposit / 2, + attestation1, + attestationData1 + ); + bytes32 dId2 = _createQueryDisputeWithAttestation( + fisherman, + disputeDeposit / 2, + attestation2, + attestationData2 + ); // Store the linked disputes to be resolved disputes[dId1].relatedDisputeId = dId2; @@ -225,6 +243,8 @@ contract DisputeManager is * This function will revert if the indexer is not slashable, whether because it does not have * any stake available or the slashing percentage is configured to be zero. In those cases * a dispute must be resolved using drawDispute or rejectDispute. + * This function will also revert if the dispute is in conflict, to accept a conflicting dispute + * use acceptDisputeConflict. * @dev Accept a dispute with Id `disputeId` * @param disputeId Id of the dispute to be accepted * @param tokensSlash Amount of tokens to slash from the indexer @@ -233,49 +253,71 @@ contract DisputeManager is bytes32 disputeId, uint256 tokensSlash ) external override onlyArbitrator onlyPendingDispute(disputeId) { + require(!_isDisputeInConflict(disputes[disputeId]), DisputeManagerDisputeInConflict(disputeId)); Dispute storage dispute = disputes[disputeId]; + _acceptDispute(disputeId, dispute, tokensSlash); + } - // store the dispute status - dispute.status = IDisputeManager.DisputeStatus.Accepted; - - // Slash - uint256 tokensToReward = _slashIndexer(dispute.indexer, tokensSlash, dispute.stakeSnapshot); - - // Give the fisherman their reward and their deposit back - _graphToken().pushTokens(dispute.fisherman, tokensToReward + dispute.deposit); + /** + * @notice The arbitrator accepts a conflicting dispute as being valid. + * This function will revert if the indexer is not slashable, whether because it does not have + * any stake available or the slashing percentage is configured to be zero. In those cases + * a dispute must be resolved using drawDispute. + * @param disputeId Id of the dispute to be accepted + * @param tokensSlash Amount of tokens to slash from the indexer for the first dispute + * @param acceptDisputeInConflict Accept the conflicting dispute. Otherwise it will be drawn automatically + * @param tokensSlashRelated Amount of tokens to slash from the indexer for the related dispute in case + * acceptDisputeInConflict is true, otherwise it will be ignored + */ + function acceptDisputeConflict( + bytes32 disputeId, + uint256 tokensSlash, + bool acceptDisputeInConflict, + uint256 tokensSlashRelated + ) external override onlyArbitrator onlyPendingDispute(disputeId) { + require(_isDisputeInConflict(disputes[disputeId]), DisputeManagerDisputeNotInConflict(disputeId)); + Dispute storage dispute = disputes[disputeId]; + _acceptDispute(disputeId, dispute, tokensSlash); - if (_isDisputeInConflict(dispute)) { - rejectDispute(dispute.relatedDisputeId); + if (acceptDisputeInConflict) { + _acceptDispute(dispute.relatedDisputeId, disputes[dispute.relatedDisputeId], tokensSlashRelated); + } else { + _drawDispute(dispute.relatedDisputeId, disputes[dispute.relatedDisputeId]); } + } - emit DisputeAccepted(disputeId, dispute.indexer, dispute.fisherman, dispute.deposit + tokensToReward); + /** + * @notice The arbitrator rejects a dispute as being invalid. + * Note that conflicting query disputes cannot be rejected. + * @dev Reject a dispute with Id `disputeId` + * @param disputeId Id of the dispute to be rejected + */ + function rejectDispute(bytes32 disputeId) external override onlyArbitrator onlyPendingDispute(disputeId) { + Dispute storage dispute = disputes[disputeId]; + require(!_isDisputeInConflict(dispute), DisputeManagerDisputeInConflict(disputeId)); + _rejectDispute(disputeId, dispute); } /** * @notice The arbitrator draws dispute. + * Note that drawing a conflicting query dispute should not be possible however it is allowed + * to give arbitrators greater flexibility when resolving disputes. * @dev Ignore a dispute with Id `disputeId` * @param disputeId Id of the dispute to be disregarded */ function drawDispute(bytes32 disputeId) external override onlyArbitrator onlyPendingDispute(disputeId) { Dispute storage dispute = disputes[disputeId]; + _drawDispute(disputeId, dispute); - // Return deposit to the fisherman if any - if (dispute.deposit > 0) { - _graphToken().pushTokens(dispute.fisherman, dispute.deposit); + if (_isDisputeInConflict(dispute)) { + _drawDispute(dispute.relatedDisputeId, disputes[dispute.relatedDisputeId]); } - - // resolve related dispute if any - _drawDisputeInConflict(dispute); - - // store dispute status - dispute.status = IDisputeManager.DisputeStatus.Drawn; - - emit DisputeDrawn(disputeId, dispute.indexer, dispute.fisherman, dispute.deposit); } /** * @notice Once the dispute period ends, if the dispute status remains Pending, * the fisherman can cancel the dispute and get back their initial deposit. + * Note that cancelling a conflicting query dispute will also cancel the related dispute. * @dev Cancel a dispute with Id `disputeId` * @param disputeId Id of the dispute to be cancelled */ @@ -284,19 +326,11 @@ contract DisputeManager is // Check if dispute period has finished require(dispute.createdAt + disputePeriod < block.timestamp, DisputeManagerDisputePeriodNotFinished()); + _cancelDispute(disputeId, dispute); - // Return deposit to the fisherman if any - if (dispute.deposit > 0) { - _graphToken().pushTokens(dispute.fisherman, dispute.deposit); + if (_isDisputeInConflict(dispute)) { + _cancelDispute(dispute.relatedDisputeId, disputes[dispute.relatedDisputeId]); } - - // resolve related dispute if any - _cancelDisputeInConflict(dispute); - - // store dispute status - dispute.status = IDisputeManager.DisputeStatus.Cancelled; - - emit DisputeCancelled(disputeId, dispute.indexer, dispute.fisherman, dispute.deposit); } /** @@ -385,7 +419,10 @@ contract DisputeManager is * @param indexer The indexer address */ function getStakeSnapshot(address indexer) external view override returns (uint256) { - IHorizonStaking.Provision memory provision = _graphStaking().getProvision(indexer, address(subgraphService)); + IHorizonStaking.Provision memory provision = _graphStaking().getProvision( + indexer, + address(_getSubgraphService()) + ); return _getStakeSnapshot(indexer, provision.tokens); } @@ -401,29 +438,6 @@ contract DisputeManager is return Attestation.areConflicting(attestation1, attestation2); } - /** - * @notice The arbitrator rejects a dispute as being invalid. - * @dev Reject a dispute with Id `disputeId` - * @param disputeId Id of the dispute to be rejected - */ - function rejectDispute(bytes32 disputeId) public override onlyArbitrator onlyPendingDispute(disputeId) { - Dispute storage dispute = disputes[disputeId]; - - // store dispute status - dispute.status = IDisputeManager.DisputeStatus.Rejected; - - // For conflicting disputes, the related dispute must be accepted - require( - !_isDisputeInConflict(dispute), - DisputeManagerMustAcceptRelatedDispute(disputeId, dispute.relatedDisputeId) - ); - - // Burn the fisherman's deposit - _graphToken().burnTokens(dispute.deposit); - - emit DisputeRejected(disputeId, dispute.indexer, dispute.fisherman, dispute.deposit); - } - /** * @notice Returns the indexer that signed an attestation. * @param attestation Attestation @@ -433,7 +447,7 @@ contract DisputeManager is // Get attestation signer. Indexers signs with the allocationId address allocationId = _recoverSigner(attestation); - Allocation.State memory alloc = subgraphService.getAllocation(allocationId); + Allocation.State memory alloc = _getSubgraphService().getAllocation(allocationId); require(alloc.indexer != address(0), DisputeManagerIndexerNotFound(allocationId)); require( alloc.subgraphDeploymentId == attestation.subgraphDeploymentId, @@ -472,7 +486,10 @@ contract DisputeManager is address indexer = getAttestationIndexer(_attestation); // The indexer is disputable - IHorizonStaking.Provision memory provision = _graphStaking().getProvision(indexer, address(subgraphService)); + IHorizonStaking.Provision memory provision = _graphStaking().getProvision( + indexer, + address(_getSubgraphService()) + ); require(provision.tokens != 0, DisputeManagerZeroTokens()); // Create a disputeId @@ -535,12 +552,13 @@ contract DisputeManager is require(!isDisputeCreated(disputeId), DisputeManagerDisputeAlreadyCreated(disputeId)); // Allocation must exist - Allocation.State memory alloc = subgraphService.getAllocation(_allocationId); + ISubgraphService subgraphService_ = _getSubgraphService(); + Allocation.State memory alloc = subgraphService_.getAllocation(_allocationId); address indexer = alloc.indexer; require(indexer != address(0), DisputeManagerIndexerNotFound(_allocationId)); // The indexer must be disputable - IHorizonStaking.Provision memory provision = _graphStaking().getProvision(indexer, address(subgraphService)); + IHorizonStaking.Provision memory provision = _graphStaking().getProvision(indexer, address(subgraphService_)); require(provision.tokens != 0, DisputeManagerZeroTokens()); // Store dispute @@ -561,42 +579,33 @@ contract DisputeManager is return disputeId; } - /** - * @notice Draw the conflicting dispute if there is any for the one passed to this function. - * @param _dispute Dispute - * @return True if resolved - */ - function _drawDisputeInConflict(Dispute memory _dispute) private returns (bool) { - if (_isDisputeInConflict(_dispute)) { - bytes32 relatedDisputeId = _dispute.relatedDisputeId; - Dispute storage relatedDispute = disputes[relatedDisputeId]; - relatedDispute.status = IDisputeManager.DisputeStatus.Drawn; - return true; - } - return false; + function _acceptDispute(bytes32 _disputeId, Dispute storage _dispute, uint256 _tokensSlashed) private { + uint256 tokensToReward = _slashIndexer(_dispute.indexer, _tokensSlashed, _dispute.stakeSnapshot); + _dispute.status = IDisputeManager.DisputeStatus.Accepted; + _graphToken().pushTokens(_dispute.fisherman, tokensToReward + _dispute.deposit); + + emit DisputeAccepted(_disputeId, _dispute.indexer, _dispute.fisherman, _dispute.deposit + tokensToReward); } - /** - * @notice Cancel the conflicting dispute if there is any for the one passed to this function. - * @param _dispute Dispute - * @return True if cancelled - */ - function _cancelDisputeInConflict(Dispute memory _dispute) private returns (bool) { - if (_isDisputeInConflict(_dispute)) { - bytes32 relatedDisputeId = _dispute.relatedDisputeId; - Dispute storage relatedDispute = disputes[relatedDisputeId]; - relatedDispute.status = IDisputeManager.DisputeStatus.Cancelled; - return true; - } - return false; + function _rejectDispute(bytes32 _disputeId, Dispute storage _dispute) private { + _dispute.status = IDisputeManager.DisputeStatus.Rejected; + _graphToken().burnTokens(_dispute.deposit); + + emit DisputeRejected(_disputeId, _dispute.indexer, _dispute.fisherman, _dispute.deposit); } - /** - * @notice Pull `disputeDeposit` from fisherman account. - */ - function _pullFishermanDeposit() private { - // Transfer tokens to deposit from fisherman to this contract - _graphToken().pullTokens(msg.sender, disputeDeposit); + function _drawDispute(bytes32 _disputeId, Dispute storage _dispute) private { + _dispute.status = IDisputeManager.DisputeStatus.Drawn; + _graphToken().pushTokens(_dispute.fisherman, _dispute.deposit); + + emit DisputeDrawn(_disputeId, _dispute.indexer, _dispute.fisherman, _dispute.deposit); + } + + function _cancelDispute(bytes32 _disputeId, Dispute storage _dispute) private { + _dispute.status = IDisputeManager.DisputeStatus.Cancelled; + _graphToken().pushTokens(_dispute.fisherman, _dispute.deposit); + + emit DisputeCancelled(_disputeId, _dispute.indexer, _dispute.fisherman, _dispute.deposit); } /** @@ -611,8 +620,10 @@ contract DisputeManager is uint256 _tokensSlash, uint256 _tokensStakeSnapshot ) private returns (uint256) { + ISubgraphService subgraphService_ = _getSubgraphService(); + // Get slashable amount for indexer - IHorizonStaking.Provision memory provision = _graphStaking().getProvision(_indexer, address(subgraphService)); + IHorizonStaking.Provision memory provision = _graphStaking().getProvision(_indexer, address(subgraphService_)); // Ensure slash amount is within the cap uint256 maxTokensSlash = _tokensStakeSnapshot.mulPPM(maxSlashingCut); @@ -626,7 +637,7 @@ contract DisputeManager is uint256 maxRewardableTokens = Math.min(_tokensSlash, provision.tokens); uint256 tokensRewards = uint256(fishermanRewardCut).mulPPM(maxRewardableTokens); - subgraphService.slash(_indexer, abi.encode(_tokensSlash, tokensRewards)); + subgraphService_.slash(_indexer, abi.encode(_tokensSlash, tokensRewards)); return tokensRewards; } @@ -658,7 +669,7 @@ contract DisputeManager is * @param _disputeDeposit The dispute deposit in Graph Tokens */ function _setDisputeDeposit(uint256 _disputeDeposit) private { - require(_disputeDeposit != 0, DisputeManagerInvalidDisputeDeposit(_disputeDeposit)); + require(_disputeDeposit >= MIN_DISPUTE_DEPOSIT, DisputeManagerInvalidDisputeDeposit(_disputeDeposit)); disputeDeposit = _disputeDeposit; emit DisputeDepositSet(_disputeDeposit); } @@ -699,15 +710,23 @@ contract DisputeManager is emit SubgraphServiceSet(_subgraphService); } + /** + * @notice Get the address of the subgraph service + * @dev Will revert if the subgraph service is not set + * @return The subgraph service address + */ + function _getSubgraphService() private view returns (ISubgraphService) { + require(address(subgraphService) != address(0), DisputeManagerSubgraphServiceNotSet()); + return subgraphService; + } + /** * @notice Returns whether the dispute is for a conflicting attestation or not. * @param _dispute Dispute * @return True conflicting attestation dispute */ - function _isDisputeInConflict(Dispute memory _dispute) private view returns (bool) { - bytes32 relatedId = _dispute.relatedDisputeId; - // this is so the check returns false when rejecting the related dispute. - return relatedId != 0 && disputes[relatedId].status == IDisputeManager.DisputeStatus.Pending; + function _isDisputeInConflict(Dispute storage _dispute) private view returns (bool) { + return _dispute.relatedDisputeId != bytes32(0); } /** @@ -722,8 +741,9 @@ contract DisputeManager is * @return Total stake snapshot */ function _getStakeSnapshot(address _indexer, uint256 _indexerStake) private view returns (uint256) { - uint256 delegatorsStake = _graphStaking().getDelegationPool(_indexer, address(subgraphService)).tokens; - uint256 delegatorsStakeMax = _indexerStake * uint256(subgraphService.getDelegationRatio()); + ISubgraphService subgraphService_ = _getSubgraphService(); + uint256 delegatorsStake = _graphStaking().getDelegationPool(_indexer, address(subgraphService_)).tokens; + uint256 delegatorsStakeMax = _indexerStake * uint256(subgraphService_.getDelegationRatio()); uint256 stakeSnapshot = _indexerStake + MathUtils.min(delegatorsStake, delegatorsStakeMax); return stakeSnapshot; } diff --git a/packages/subgraph-service/contracts/SubgraphService.sol b/packages/subgraph-service/contracts/SubgraphService.sol index 5f45c0f96..a4c6596e8 100644 --- a/packages/subgraph-service/contracts/SubgraphService.sol +++ b/packages/subgraph-service/contracts/SubgraphService.sol @@ -313,11 +313,9 @@ contract SubgraphService is /** * @notice See {ISubgraphService.closeStaleAllocation} */ - function forceCloseAllocation(address allocationId) external override { + function closeStaleAllocation(address allocationId) external override { Allocation.State memory allocation = allocations.get(allocationId); - bool isStale = allocation.isStale(maxPOIStaleness); - bool isOverAllocated_ = _isOverAllocated(allocation.indexer, delegationRatio); - require(isStale || isOverAllocated_, SubgraphServiceCannotForceCloseAllocation(allocationId)); + require(allocation.isStale(maxPOIStaleness), SubgraphServiceCannotForceCloseAllocation(allocationId)); require(!allocation.isAltruistic(), SubgraphServiceAllocationIsAltruistic(allocationId)); _closeAllocation(allocationId); } @@ -425,6 +423,7 @@ contract SubgraphService is * @return subgraphDeploymentId Subgraph deployment id for the allocation * @return tokens Amount of allocated tokens * @return accRewardsPerAllocatedToken Rewards snapshot + * @return accRewardsPending Rewards pending to be minted due to allocation resize */ function getAllocationData( address allocationId @@ -555,13 +554,10 @@ contract SubgraphService is IGraphPayments.PaymentTypes.QueryFee, abi.encode(_signedRav, curationCut) ); - uint256 tokensCurators = tokensCollected.mulPPM(curationCut); uint256 balanceAfter = _graphToken().balanceOf(address(this)); - require( - balanceBefore + tokensCurators == balanceAfter, - SubgraphServiceInconsistentCollection(balanceBefore, balanceAfter, tokensCurators) - ); + require(balanceAfter >= balanceBefore, SubgraphServiceInconsistentCollection(balanceBefore, balanceAfter)); + uint256 tokensCurators = balanceAfter - balanceBefore; if (tokensCollected > 0) { // lock stake as economic security for fees diff --git a/packages/subgraph-service/contracts/interfaces/IDisputeManager.sol b/packages/subgraph-service/contracts/interfaces/IDisputeManager.sol index 95511ecc2..ee2e92ac2 100644 --- a/packages/subgraph-service/contracts/interfaces/IDisputeManager.sol +++ b/packages/subgraph-service/contracts/interfaces/IDisputeManager.sol @@ -169,6 +169,8 @@ interface IDisputeManager { error DisputeManagerDisputeNotPending(IDisputeManager.DisputeStatus status); error DisputeManagerDisputeAlreadyCreated(bytes32 disputeId); error DisputeManagerDisputePeriodNotFinished(); + error DisputeManagerDisputeInConflict(bytes32 disputeId); + error DisputeManagerDisputeNotInConflict(bytes32 disputeId); error DisputeManagerMustAcceptRelatedDispute(bytes32 disputeId, bytes32 relatedDisputeId); error DisputeManagerIndexerNotFound(address allocationId); error DisputeManagerNonMatchingSubgraphDeployment(bytes32 subgraphDeploymentId1, bytes32 subgraphDeploymentId2); @@ -180,6 +182,7 @@ interface IDisputeManager { bytes32 responseCID2, bytes32 subgraphDeploymentId2 ); + error DisputeManagerSubgraphServiceNotSet(); function setDisputePeriod(uint64 disputePeriod) external; @@ -204,6 +207,13 @@ interface IDisputeManager { function acceptDispute(bytes32 disputeId, uint256 tokensSlash) external; + function acceptDisputeConflict( + bytes32 disputeId, + uint256 tokensSlash, + bool acceptDisputeInConflict, + uint256 tokensSlashRelated + ) external; + function rejectDispute(bytes32 disputeId) external; function drawDispute(bytes32 disputeId) external; diff --git a/packages/subgraph-service/contracts/interfaces/ISubgraphService.sol b/packages/subgraph-service/contracts/interfaces/ISubgraphService.sol index 32ea9e8fb..7278a4a4f 100644 --- a/packages/subgraph-service/contracts/interfaces/ISubgraphService.sol +++ b/packages/subgraph-service/contracts/interfaces/ISubgraphService.sol @@ -80,13 +80,11 @@ interface ISubgraphService is IDataServiceFees { error SubgraphServiceInvalidPaymentType(IGraphPayments.PaymentTypes paymentType); /** - * @notice Thrown when the contract GRT balance is inconsistent with the payment amount collected - * from Graph Payments + * @notice Thrown when the contract GRT balance is inconsistent after collecting from Graph Payments * @param balanceBefore The contract GRT balance before the collection * @param balanceAfter The contract GRT balance after the collection - * @param tokensDataService The amount of tokens sent to the subgraph service */ - error SubgraphServiceInconsistentCollection(uint256 balanceBefore, uint256 balanceAfter, uint256 tokensDataService); + error SubgraphServiceInconsistentCollection(uint256 balanceBefore, uint256 balanceAfter); /** * @notice @notice Thrown when the service provider in the RAV does not match the expected indexer. @@ -127,22 +125,20 @@ interface ISubgraphService is IDataServiceFees { error SubgraphServiceInvalidZeroStakeToFeesRatio(); /** - * @notice Force close an allocation - * @dev This function can be permissionlessly called when the allocation is stale or - * if the indexer is over-allocated. This ensures that rewards for other allocations are - * not diluted by an inactive allocation, and that over-allocated indexers stop accumulating - * rewards with tokens they no longer have allocated. + * @notice Force close a stale allocation + * @dev This function can be permissionlessly called when the allocation is stale. This + * ensures that rewards for other allocations are not diluted by an inactive allocation. * * Requirements: * - Allocation must exist and be open - * - Allocation must be stale or indexer must be over-allocated + * - Allocation must be stale * - Allocation cannot be altruistic * * Emits a {AllocationClosed} event. * * @param allocationId The id of the allocation */ - function forceCloseAllocation(address allocationId) external; + function closeStaleAllocation(address allocationId) external; /** * @notice Change the amount of tokens in an allocation diff --git a/packages/subgraph-service/contracts/libraries/LegacyAllocation.sol b/packages/subgraph-service/contracts/libraries/LegacyAllocation.sol index c60783785..3f17c1cef 100644 --- a/packages/subgraph-service/contracts/libraries/LegacyAllocation.sol +++ b/packages/subgraph-service/contracts/libraries/LegacyAllocation.sol @@ -1,6 +1,8 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.27; +import { IHorizonStaking } from "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol"; + /** * @title LegacyAllocation library * @notice A library to handle legacy Allocations. @@ -22,7 +24,7 @@ library LegacyAllocation { * @notice Thrown when attempting to migrate an allocation with an existing id * @param allocationId The allocation id */ - error LegacyAllocationExists(address allocationId); + error LegacyAllocationAlreadyExists(address allocationId); /** * @notice Thrown when trying to get a non-existent allocation @@ -30,12 +32,6 @@ library LegacyAllocation { */ error LegacyAllocationDoesNotExist(address allocationId); - /** - * @notice Thrown when trying to migrate an allocation that has already been migrated - * @param allocationId The allocation id - */ - error LegacyAllocationAlreadyMigrated(address allocationId); - /** * @notice Migrate a legacy allocation * @dev Requirements: @@ -52,7 +48,7 @@ library LegacyAllocation { address allocationId, bytes32 subgraphDeploymentId ) internal { - require(!self[allocationId].exists(), LegacyAllocationAlreadyMigrated(allocationId)); + require(!self[allocationId].exists(), LegacyAllocationAlreadyExists(allocationId)); State memory allocation = State({ indexer: indexer, subgraphDeploymentId: subgraphDeploymentId }); self[allocationId] = allocation; @@ -69,11 +65,19 @@ library LegacyAllocation { /** * @notice Revert if a legacy allocation exists + * @dev We first check the migrated mapping then the old staking contract. + * @dev TODO: after the transition period when all the allocations are migrated we can + * remove the call to the staking contract. * @param self The legacy allocation list mapping * @param allocationId The allocation id */ - function revertIfExists(mapping(address => State) storage self, address allocationId) internal view { - require(!self[allocationId].exists(), LegacyAllocationExists(allocationId)); + function revertIfExists( + mapping(address => State) storage self, + IHorizonStaking graphStaking, + address allocationId + ) internal view { + require(!self[allocationId].exists(), LegacyAllocationAlreadyExists(allocationId)); + require(!graphStaking.isAllocation(allocationId), LegacyAllocationAlreadyExists(allocationId)); } /** diff --git a/packages/subgraph-service/contracts/utilities/AllocationManager.sol b/packages/subgraph-service/contracts/utilities/AllocationManager.sol index 37e57828f..51ba74e7a 100644 --- a/packages/subgraph-service/contracts/utilities/AllocationManager.sol +++ b/packages/subgraph-service/contracts/utilities/AllocationManager.sol @@ -212,7 +212,7 @@ abstract contract AllocationManager is EIP712Upgradeable, GraphDirectory, Alloca // Ensure allocation id is not reused // need to check both subgraph service (on allocations.create()) and legacy allocations - legacyAllocations.revertIfExists(_allocationId); + legacyAllocations.revertIfExists(_graphStaking(), _allocationId); Allocation.State memory allocation = allocations.create( _indexer, _allocationId, diff --git a/packages/subgraph-service/ignition/configs/subgraph-service.hardhat.json b/packages/subgraph-service/ignition/configs/subgraph-service.hardhat.json5 similarity index 79% rename from packages/subgraph-service/ignition/configs/subgraph-service.hardhat.json rename to packages/subgraph-service/ignition/configs/subgraph-service.hardhat.json5 index c1a248448..12db4cf12 100644 --- a/packages/subgraph-service/ignition/configs/subgraph-service.hardhat.json +++ b/packages/subgraph-service/ignition/configs/subgraph-service.hardhat.json5 @@ -1,6 +1,8 @@ { + "$global": { + "arbitrator": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0" + }, "DisputeManager": { - "arbitrator": "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0", "disputePeriod": 2419200, "disputeDeposit": "10000000000000000000000n", "fishermanRewardCut": 500000, diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/BridgeEscrow#BridgeEscrow.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/BridgeEscrow#BridgeEscrow.json deleted file mode 100644 index 1264fb6e0..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/BridgeEscrow#BridgeEscrow.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BridgeEscrow", - "sourceName": "contracts/gateway/BridgeEscrow.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "nameHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractSynced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "param", - "type": "string" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "name": "SetController", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_spender", - "type": "address" - } - ], - "name": "approveAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "controller", - "outputs": [ - { - "internalType": "contract IController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_spender", - "type": "address" - } - ], - "name": "revokeAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "setController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "syncAllContracts", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e051610100516101205161014051610c376101696000398061071f5250806106f65250806106cd528061089e5250806106a452508061067b5250806106525250806106295250610c376000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c4d66de81161005b578063c4d66de814610181578063d6866ea5146101a7578063e7dd4b2c146101af578063f77c4791146101d557610088565b80630621472c1461008d57806392eefe9b146100b55780639ce7abe5146100db578063a2594d821461015b575b600080fd5b6100b3600480360360208110156100a357600080fd5b50356001600160a01b03166101f9565b005b6100b3600480360360208110156100cb57600080fd5b50356001600160a01b0316610290565b6100b3600480360360408110156100f157600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561011c57600080fd5b82018360208201111561012e57600080fd5b8035906020019184600183028401116401000000008311171561015057600080fd5b5090925090506102a4565b6100b36004803603602081101561017157600080fd5b50356001600160a01b03166103fa565b6100b36004803603602081101561019757600080fd5b50356001600160a01b0316610515565b6100b3610624565b6100b3600480360360208110156101c557600080fd5b50356001600160a01b0316610745565b6101dd6107ac565b604080516001600160a01b039092168252519081900360200190f35b6102016107c1565b610209610897565b6001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561026157600080fd5b505af1158015610275573d6000803e3d6000fd5b505050506040513d602081101561028b57600080fd5b505050565b6102986108c7565b6102a18161092c565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156102e057600080fd5b505af11580156102f4573d6000803e3d6000fd5b505050506040513d602081101561030a57600080fd5b50516001600160a01b03163314610368576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156103dc57600080fd5b505af11580156103f0573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561043657600080fd5b505af115801561044a573d6000803e3d6000fd5b505050506040513d602081101561046057600080fd5b50516001600160a01b031633146104be576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104f957600080fd5b505af115801561050d573d6000803e3d6000fd5b505050505050565b61051d6109de565b6001600160a01b0316336001600160a01b031614610578576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600054610100900460ff16806105915750610591610a03565b8061059f575060005460ff16155b6105da5760405162461bcd60e51b815260040180806020018281038252602e815260200180610bd4602e913960400191505060405180910390fd5b600054610100900460ff16158015610605576000805460ff1961ff0019909116610100171660011790555b61060e82610298565b8015610620576000805461ff00191690555b5050565b61064d7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106767f0000000000000000000000000000000000000000000000000000000000000000610a14565b61069f7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106c87f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106f17f0000000000000000000000000000000000000000000000000000000000000000610a14565b61071a7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6107437f0000000000000000000000000000000000000000000000000000000000000000610a14565b565b61074d6107c1565b610755610897565b6001600160a01b031663095ea7b38260006040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561026157600080fd5b6000546201000090046001600160a01b031681565b600060029054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561080f57600080fd5b505afa158015610823573d6000803e3d6000fd5b505050506040513d602081101561083957600080fd5b50516001600160a01b03163314610743576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006108c27f0000000000000000000000000000000000000000000000000000000000000000610b22565b905090565b6000546201000090046001600160a01b03163314610743576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610980576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b03831662010000810262010000600160b01b03199092169190911790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000610a0e30610bcd565b15905090565b60008060029054906101000a90046001600160a01b03166001600160a01b031663f7641a5e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a6e57600080fd5b505afa158015610a82573d6000803e3d6000fd5b505050506040513d6020811015610a9857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146106205760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600160205260408120546001600160a01b031680610bc757600060029054906101000a90046001600160a01b03166001600160a01b031663f7641a5e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b9857600080fd5b505afa158015610bac573d6000803e3d6000fd5b505050506040513d6020811015610bc257600080fd5b505190505b92915050565b3b15159056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a2646970667358221220c31afba89fb33b650455afd85c794f3d761dc1b1adc4a7b3036ffb0292947a4f64736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063c4d66de81161005b578063c4d66de814610181578063d6866ea5146101a7578063e7dd4b2c146101af578063f77c4791146101d557610088565b80630621472c1461008d57806392eefe9b146100b55780639ce7abe5146100db578063a2594d821461015b575b600080fd5b6100b3600480360360208110156100a357600080fd5b50356001600160a01b03166101f9565b005b6100b3600480360360208110156100cb57600080fd5b50356001600160a01b0316610290565b6100b3600480360360408110156100f157600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561011c57600080fd5b82018360208201111561012e57600080fd5b8035906020019184600183028401116401000000008311171561015057600080fd5b5090925090506102a4565b6100b36004803603602081101561017157600080fd5b50356001600160a01b03166103fa565b6100b36004803603602081101561019757600080fd5b50356001600160a01b0316610515565b6100b3610624565b6100b3600480360360208110156101c557600080fd5b50356001600160a01b0316610745565b6101dd6107ac565b604080516001600160a01b039092168252519081900360200190f35b6102016107c1565b610209610897565b6001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561026157600080fd5b505af1158015610275573d6000803e3d6000fd5b505050506040513d602081101561028b57600080fd5b505050565b6102986108c7565b6102a18161092c565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156102e057600080fd5b505af11580156102f4573d6000803e3d6000fd5b505050506040513d602081101561030a57600080fd5b50516001600160a01b03163314610368576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156103dc57600080fd5b505af11580156103f0573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561043657600080fd5b505af115801561044a573d6000803e3d6000fd5b505050506040513d602081101561046057600080fd5b50516001600160a01b031633146104be576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104f957600080fd5b505af115801561050d573d6000803e3d6000fd5b505050505050565b61051d6109de565b6001600160a01b0316336001600160a01b031614610578576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600054610100900460ff16806105915750610591610a03565b8061059f575060005460ff16155b6105da5760405162461bcd60e51b815260040180806020018281038252602e815260200180610bd4602e913960400191505060405180910390fd5b600054610100900460ff16158015610605576000805460ff1961ff0019909116610100171660011790555b61060e82610298565b8015610620576000805461ff00191690555b5050565b61064d7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106767f0000000000000000000000000000000000000000000000000000000000000000610a14565b61069f7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106c87f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106f17f0000000000000000000000000000000000000000000000000000000000000000610a14565b61071a7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6107437f0000000000000000000000000000000000000000000000000000000000000000610a14565b565b61074d6107c1565b610755610897565b6001600160a01b031663095ea7b38260006040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561026157600080fd5b6000546201000090046001600160a01b031681565b600060029054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561080f57600080fd5b505afa158015610823573d6000803e3d6000fd5b505050506040513d602081101561083957600080fd5b50516001600160a01b03163314610743576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006108c27f0000000000000000000000000000000000000000000000000000000000000000610b22565b905090565b6000546201000090046001600160a01b03163314610743576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610980576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b03831662010000810262010000600160b01b03199092169190911790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000610a0e30610bcd565b15905090565b60008060029054906101000a90046001600160a01b03166001600160a01b031663f7641a5e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a6e57600080fd5b505afa158015610a82573d6000803e3d6000fd5b505050506040513d6020811015610a9857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146106205760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600160205260408120546001600160a01b031680610bc757600060029054906101000a90046001600160a01b03166001600160a01b031663f7641a5e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b9857600080fd5b505afa158015610bac573d6000803e3d6000fd5b505050506040513d6020811015610bc257600080fd5b505190505b92915050565b3b15159056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a2646970667358221220c31afba89fb33b650455afd85c794f3d761dc1b1adc4a7b3036ffb0292947a4f64736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/BridgeEscrow#BridgeEscrow_Instance.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/BridgeEscrow#BridgeEscrow_Instance.json deleted file mode 100644 index 1264fb6e0..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/BridgeEscrow#BridgeEscrow_Instance.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BridgeEscrow", - "sourceName": "contracts/gateway/BridgeEscrow.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "nameHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractSynced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "param", - "type": "string" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "name": "SetController", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_spender", - "type": "address" - } - ], - "name": "approveAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "controller", - "outputs": [ - { - "internalType": "contract IController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_spender", - "type": "address" - } - ], - "name": "revokeAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "setController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "syncAllContracts", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e051610100516101205161014051610c376101696000398061071f5250806106f65250806106cd528061089e5250806106a452508061067b5250806106525250806106295250610c376000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c4d66de81161005b578063c4d66de814610181578063d6866ea5146101a7578063e7dd4b2c146101af578063f77c4791146101d557610088565b80630621472c1461008d57806392eefe9b146100b55780639ce7abe5146100db578063a2594d821461015b575b600080fd5b6100b3600480360360208110156100a357600080fd5b50356001600160a01b03166101f9565b005b6100b3600480360360208110156100cb57600080fd5b50356001600160a01b0316610290565b6100b3600480360360408110156100f157600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561011c57600080fd5b82018360208201111561012e57600080fd5b8035906020019184600183028401116401000000008311171561015057600080fd5b5090925090506102a4565b6100b36004803603602081101561017157600080fd5b50356001600160a01b03166103fa565b6100b36004803603602081101561019757600080fd5b50356001600160a01b0316610515565b6100b3610624565b6100b3600480360360208110156101c557600080fd5b50356001600160a01b0316610745565b6101dd6107ac565b604080516001600160a01b039092168252519081900360200190f35b6102016107c1565b610209610897565b6001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561026157600080fd5b505af1158015610275573d6000803e3d6000fd5b505050506040513d602081101561028b57600080fd5b505050565b6102986108c7565b6102a18161092c565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156102e057600080fd5b505af11580156102f4573d6000803e3d6000fd5b505050506040513d602081101561030a57600080fd5b50516001600160a01b03163314610368576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156103dc57600080fd5b505af11580156103f0573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561043657600080fd5b505af115801561044a573d6000803e3d6000fd5b505050506040513d602081101561046057600080fd5b50516001600160a01b031633146104be576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104f957600080fd5b505af115801561050d573d6000803e3d6000fd5b505050505050565b61051d6109de565b6001600160a01b0316336001600160a01b031614610578576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600054610100900460ff16806105915750610591610a03565b8061059f575060005460ff16155b6105da5760405162461bcd60e51b815260040180806020018281038252602e815260200180610bd4602e913960400191505060405180910390fd5b600054610100900460ff16158015610605576000805460ff1961ff0019909116610100171660011790555b61060e82610298565b8015610620576000805461ff00191690555b5050565b61064d7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106767f0000000000000000000000000000000000000000000000000000000000000000610a14565b61069f7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106c87f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106f17f0000000000000000000000000000000000000000000000000000000000000000610a14565b61071a7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6107437f0000000000000000000000000000000000000000000000000000000000000000610a14565b565b61074d6107c1565b610755610897565b6001600160a01b031663095ea7b38260006040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561026157600080fd5b6000546201000090046001600160a01b031681565b600060029054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561080f57600080fd5b505afa158015610823573d6000803e3d6000fd5b505050506040513d602081101561083957600080fd5b50516001600160a01b03163314610743576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006108c27f0000000000000000000000000000000000000000000000000000000000000000610b22565b905090565b6000546201000090046001600160a01b03163314610743576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610980576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b03831662010000810262010000600160b01b03199092169190911790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000610a0e30610bcd565b15905090565b60008060029054906101000a90046001600160a01b03166001600160a01b031663f7641a5e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a6e57600080fd5b505afa158015610a82573d6000803e3d6000fd5b505050506040513d6020811015610a9857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146106205760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600160205260408120546001600160a01b031680610bc757600060029054906101000a90046001600160a01b03166001600160a01b031663f7641a5e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b9857600080fd5b505afa158015610bac573d6000803e3d6000fd5b505050506040513d6020811015610bc257600080fd5b505190505b92915050565b3b15159056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a2646970667358221220c31afba89fb33b650455afd85c794f3d761dc1b1adc4a7b3036ffb0292947a4f64736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063c4d66de81161005b578063c4d66de814610181578063d6866ea5146101a7578063e7dd4b2c146101af578063f77c4791146101d557610088565b80630621472c1461008d57806392eefe9b146100b55780639ce7abe5146100db578063a2594d821461015b575b600080fd5b6100b3600480360360208110156100a357600080fd5b50356001600160a01b03166101f9565b005b6100b3600480360360208110156100cb57600080fd5b50356001600160a01b0316610290565b6100b3600480360360408110156100f157600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561011c57600080fd5b82018360208201111561012e57600080fd5b8035906020019184600183028401116401000000008311171561015057600080fd5b5090925090506102a4565b6100b36004803603602081101561017157600080fd5b50356001600160a01b03166103fa565b6100b36004803603602081101561019757600080fd5b50356001600160a01b0316610515565b6100b3610624565b6100b3600480360360208110156101c557600080fd5b50356001600160a01b0316610745565b6101dd6107ac565b604080516001600160a01b039092168252519081900360200190f35b6102016107c1565b610209610897565b6001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561026157600080fd5b505af1158015610275573d6000803e3d6000fd5b505050506040513d602081101561028b57600080fd5b505050565b6102986108c7565b6102a18161092c565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156102e057600080fd5b505af11580156102f4573d6000803e3d6000fd5b505050506040513d602081101561030a57600080fd5b50516001600160a01b03163314610368576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156103dc57600080fd5b505af11580156103f0573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561043657600080fd5b505af115801561044a573d6000803e3d6000fd5b505050506040513d602081101561046057600080fd5b50516001600160a01b031633146104be576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104f957600080fd5b505af115801561050d573d6000803e3d6000fd5b505050505050565b61051d6109de565b6001600160a01b0316336001600160a01b031614610578576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600054610100900460ff16806105915750610591610a03565b8061059f575060005460ff16155b6105da5760405162461bcd60e51b815260040180806020018281038252602e815260200180610bd4602e913960400191505060405180910390fd5b600054610100900460ff16158015610605576000805460ff1961ff0019909116610100171660011790555b61060e82610298565b8015610620576000805461ff00191690555b5050565b61064d7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106767f0000000000000000000000000000000000000000000000000000000000000000610a14565b61069f7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106c87f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106f17f0000000000000000000000000000000000000000000000000000000000000000610a14565b61071a7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6107437f0000000000000000000000000000000000000000000000000000000000000000610a14565b565b61074d6107c1565b610755610897565b6001600160a01b031663095ea7b38260006040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561026157600080fd5b6000546201000090046001600160a01b031681565b600060029054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561080f57600080fd5b505afa158015610823573d6000803e3d6000fd5b505050506040513d602081101561083957600080fd5b50516001600160a01b03163314610743576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006108c27f0000000000000000000000000000000000000000000000000000000000000000610b22565b905090565b6000546201000090046001600160a01b03163314610743576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610980576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b03831662010000810262010000600160b01b03199092169190911790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000610a0e30610bcd565b15905090565b60008060029054906101000a90046001600160a01b03166001600160a01b031663f7641a5e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a6e57600080fd5b505afa158015610a82573d6000803e3d6000fd5b505050506040513d6020811015610a9857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146106205760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600160205260408120546001600160a01b031680610bc757600060029054906101000a90046001600160a01b03166001600160a01b031663f7641a5e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b9857600080fd5b505afa158015610bac573d6000803e3d6000fd5b505050506040513d6020811015610bc257600080fd5b505190505b92915050565b3b15159056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a2646970667358221220c31afba89fb33b650455afd85c794f3d761dc1b1adc4a7b3036ffb0292947a4f64736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/BridgeEscrow#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/BridgeEscrow#GraphProxy.json deleted file mode 100644 index 2cfb21e41..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/BridgeEscrow#GraphProxy.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GraphProxy", - "sourceName": "contracts/upgrades/GraphProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_impl", - "type": "address" - }, - { - "internalType": "address", - "name": "_admin", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldAdmin", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "ImplementationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldPendingImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newPendingImplementation", - "type": "address" - } - ], - "name": "PendingImplementationUpdated", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "name": "acceptUpgrade", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptUpgradeAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "pendingImplementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newAdmin", - "type": "address" - } - ], - "name": "setAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c", - "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Controller#Controller.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Controller#Controller.json deleted file mode 100644 index 6979339d2..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Controller#Controller.json +++ /dev/null @@ -1,349 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Controller", - "sourceName": "contracts/governance/Controller.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "NewOwnership", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldPauseGuardian", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "pauseGuardian", - "type": "address" - } - ], - "name": "NewPauseGuardian", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "NewPendingOwnership", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PartialPauseChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "SetContractProxy", - "type": "event" - }, - { - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_id", - "type": "bytes32" - } - ], - "name": "getContractProxy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getGovernor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "governor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastPartialPauseTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastPauseTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "partialPaused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseGuardian", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pendingGovernor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_id", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "name": "setContractProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_toPartialPause", - "type": "bool" - } - ], - "name": "setPartialPaused", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newPauseGuardian", - "type": "address" - } - ], - "name": "setPauseGuardian", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_toPause", - "type": "bool" - } - ], - "name": "setPaused", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newGovernor", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_id", - "type": "bytes32" - } - ], - "name": "unsetContractProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_id", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "updateController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506100243361003360201b6109b21760201c565b61002e6001610055565b6100e7565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600160159054906101000a900460ff1615158115151415610075576100e4565b6001805460ff60a81b1916600160a81b8315158102919091179182905560ff910416156100a157426003555b60015460408051600160a81b90920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a15b50565b610ba0806100f66000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80635c975abb116100a2578063e0e9929211610071578063e0e9929214610215578063e3056a3414610241578063eb5dd94f14610249578063f2fde38b14610275578063f7641a5e1461029b5761010b565b80635c975abb146101e057806379ba5097146101e85780639181df9c146101f057806391b4ded91461020d5761010b565b80632e292fc7116100de5780632e292fc71461017757806348bde20c146101935780634fc07d75146101b957806356371bd8146101c15761010b565b80630c340a2414610110578063147ddef51461013457806316c38b3c1461014e57806324a3d6221461016f575b600080fd5b6101186102b8565b604080516001600160a01b039092168252519081900360200190f35b61013c6102c7565b60408051918252519081900360200190f35b61016d6004803603602081101561016457600080fd5b503515156102cd565b005b610118610337565b61017f610346565b604080519115158252519081900360200190f35b61016d600480360360208110156101a957600080fd5b50356001600160a01b0316610356565b610118610412565b61016d600480360360208110156101d757600080fd5b50351515610421565b61017f610488565b61016d610498565b61016d6004803603602081101561020657600080fd5b50356105a6565b61013c610651565b61016d6004803603604081101561022b57600080fd5b50803590602001356001600160a01b0316610657565b61011861076e565b61016d6004803603604081101561025f57600080fd5b50803590602001356001600160a01b031661077d565b61016d6004803603602081101561028b57600080fd5b50356001600160a01b0316610899565b610118600480360360208110156102b157600080fd5b5035610997565b6000546001600160a01b031681565b60025481565b6000546001600160a01b03163314806102f057506004546001600160a01b031633145b61032b5760405162461bcd60e51b8152600401808060200182810382526022815260200180610b496022913960400191505060405180910390fd5b610334816109d4565b50565b6004546001600160a01b031681565b600154600160a01b900460ff1690565b6000546001600160a01b031633146103ae576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610409576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61033481610a65565b6000546001600160a01b031690565b6000546001600160a01b031633148061044457506004546001600160a01b031633145b61047f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610b496022913960400191505060405180910390fd5b61033481610ab7565b600154600160a81b900460ff1690565b6001546001600160a01b031680158015906104bb5750336001600160a01b038216145b61050c576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000546001600160a01b031633146105fe576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b600081815260056020908152604080832080546001600160a01b031916905580519283525183927f937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd92908290030190a250565b60035481565b6000546001600160a01b031633146106af576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661070a576040805162461bcd60e51b815260206004820152601c60248201527f436f6e74726163742061646472657373206d7573742062652073657400000000604482015290519081900360640190fd5b60008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927f937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd92908290030190a25050565b6001546001600160a01b031681565b6000546001600160a01b031633146107d5576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610829576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b6000828152600560205260408082205481516392eefe9b60e01b81526001600160a01b038581166004830152925192909116926392eefe9b9260248084019382900301818387803b15801561087d57600080fd5b505af1158015610891573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146108f1576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610943576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000908152600560205260409020546001600160a01b031690565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600160159054906101000a900460ff16151581151514156109f457610334565b6001805460ff60a81b1916600160a81b8315158102919091179182905560ff91041615610a2057426003555b60015460408051600160a81b90920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b600160149054906101000a900460ff1615158115151415610ad757610334565b6001805460ff60a01b1916600160a01b8315158102919091179182905560ff91041615610b0357426002555b60015460408051600160a01b90920460ff1615158252517f511b770d1b1dc5cbd412a5017f55cbb2295b826385e5f46c1de2b6ebeb44ae02916020908290030190a15056fe4f6e6c7920476f7665726e6f72206f7220477561726469616e2063616e2063616c6ca26469706673582212207cecec10a8617577e80b5c52f6cd82da5e5974468c039848ed5e90b25c8267c764736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80635c975abb116100a2578063e0e9929211610071578063e0e9929214610215578063e3056a3414610241578063eb5dd94f14610249578063f2fde38b14610275578063f7641a5e1461029b5761010b565b80635c975abb146101e057806379ba5097146101e85780639181df9c146101f057806391b4ded91461020d5761010b565b80632e292fc7116100de5780632e292fc71461017757806348bde20c146101935780634fc07d75146101b957806356371bd8146101c15761010b565b80630c340a2414610110578063147ddef51461013457806316c38b3c1461014e57806324a3d6221461016f575b600080fd5b6101186102b8565b604080516001600160a01b039092168252519081900360200190f35b61013c6102c7565b60408051918252519081900360200190f35b61016d6004803603602081101561016457600080fd5b503515156102cd565b005b610118610337565b61017f610346565b604080519115158252519081900360200190f35b61016d600480360360208110156101a957600080fd5b50356001600160a01b0316610356565b610118610412565b61016d600480360360208110156101d757600080fd5b50351515610421565b61017f610488565b61016d610498565b61016d6004803603602081101561020657600080fd5b50356105a6565b61013c610651565b61016d6004803603604081101561022b57600080fd5b50803590602001356001600160a01b0316610657565b61011861076e565b61016d6004803603604081101561025f57600080fd5b50803590602001356001600160a01b031661077d565b61016d6004803603602081101561028b57600080fd5b50356001600160a01b0316610899565b610118600480360360208110156102b157600080fd5b5035610997565b6000546001600160a01b031681565b60025481565b6000546001600160a01b03163314806102f057506004546001600160a01b031633145b61032b5760405162461bcd60e51b8152600401808060200182810382526022815260200180610b496022913960400191505060405180910390fd5b610334816109d4565b50565b6004546001600160a01b031681565b600154600160a01b900460ff1690565b6000546001600160a01b031633146103ae576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610409576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61033481610a65565b6000546001600160a01b031690565b6000546001600160a01b031633148061044457506004546001600160a01b031633145b61047f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610b496022913960400191505060405180910390fd5b61033481610ab7565b600154600160a81b900460ff1690565b6001546001600160a01b031680158015906104bb5750336001600160a01b038216145b61050c576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000546001600160a01b031633146105fe576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b600081815260056020908152604080832080546001600160a01b031916905580519283525183927f937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd92908290030190a250565b60035481565b6000546001600160a01b031633146106af576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661070a576040805162461bcd60e51b815260206004820152601c60248201527f436f6e74726163742061646472657373206d7573742062652073657400000000604482015290519081900360640190fd5b60008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927f937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd92908290030190a25050565b6001546001600160a01b031681565b6000546001600160a01b031633146107d5576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610829576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b6000828152600560205260408082205481516392eefe9b60e01b81526001600160a01b038581166004830152925192909116926392eefe9b9260248084019382900301818387803b15801561087d57600080fd5b505af1158015610891573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146108f1576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610943576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000908152600560205260409020546001600160a01b031690565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600160159054906101000a900460ff16151581151514156109f457610334565b6001805460ff60a81b1916600160a81b8315158102919091179182905560ff91041615610a2057426003555b60015460408051600160a81b90920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b600160149054906101000a900460ff1615158115151415610ad757610334565b6001805460ff60a01b1916600160a01b8315158102919091179182905560ff91041615610b0357426002555b60015460408051600160a01b90920460ff1615158252517f511b770d1b1dc5cbd412a5017f55cbb2295b826385e5f46c1de2b6ebeb44ae02916020908290030190a15056fe4f6e6c7920476f7665726e6f72206f7220477561726469616e2063616e2063616c6ca26469706673582212207cecec10a8617577e80b5c52f6cd82da5e5974468c039848ed5e90b25c8267c764736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#Curation.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#Curation.json deleted file mode 100644 index 134085c89..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#Curation.json +++ /dev/null @@ -1,707 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "L2Curation", - "sourceName": "contracts/l2/curation/L2Curation.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "curator", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "signal", - "type": "uint256" - } - ], - "name": "Burned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "Collected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "nameHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractSynced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "param", - "type": "string" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "name": "SetController", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "curator", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "signal", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "curationTax", - "type": "uint256" - } - ], - "name": "Signalled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSubgraphService", - "type": "address" - } - ], - "name": "SubgraphServiceSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "bondingCurve", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_signalIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_tokensOutMin", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokens", - "type": "uint256" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "controller", - "outputs": [ - { - "internalType": "contract IController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "curationTaxPercentage", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "curationTokenMaster", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "defaultReserveRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getCurationPoolSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getCurationPoolTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_curator", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getCuratorSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - }, - { - "internalType": "address", - "name": "_curationTokenMaster", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_curationTaxPercentage", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "_minimumCurationDeposit", - "type": "uint256" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "isCurated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumCurationDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_signalOutMin", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - } - ], - "name": "mintTaxFree", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "pools", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "reserveRatio", - "type": "uint32" - }, - { - "internalType": "contract IGraphCurationToken", - "name": "gcs", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "setController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_percentage", - "type": "uint32" - } - ], - "name": "setCurationTaxPercentage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_curationTokenMaster", - "type": "address" - } - ], - "name": "setCurationTokenMaster", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setDefaultReserveRatio", - "outputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_minimumCurationDeposit", - "type": "uint256" - } - ], - "name": "setMinimumCurationDeposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_subgraphService", - "type": "address" - } - ], - "name": "setSubgraphService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_signalIn", - "type": "uint256" - } - ], - "name": "signalToTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "subgraphService", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "syncAllContracts", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - } - ], - "name": "tokensToSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - } - ], - "name": "tokensToSignalNoTax", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - } - ], - "name": "tokensToSignalToTokensNoTax", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x6101806040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea361014052613d0960e61b6101605234801561011a57600080fd5b5060805160a05160c05160e0516101005161012051610140516101605160e01c6128cc61018f60003980610c2f52508061141b52806119025250806113f25250806113c9528061180c5250806113a05280611dbf5250806113775280611ff252508061134e52508061132552506128cc6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122048a2c0bbd827c328fe29a977d84099426057dab6398c943cb2b41e9b1c61d2c064736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122048a2c0bbd827c328fe29a977d84099426057dab6398c943cb2b41e9b1c61d2c064736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#Curation_Instance.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#Curation_Instance.json deleted file mode 100644 index 134085c89..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#Curation_Instance.json +++ /dev/null @@ -1,707 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "L2Curation", - "sourceName": "contracts/l2/curation/L2Curation.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "curator", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "signal", - "type": "uint256" - } - ], - "name": "Burned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "Collected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "nameHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractSynced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "param", - "type": "string" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "name": "SetController", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "curator", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "signal", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "curationTax", - "type": "uint256" - } - ], - "name": "Signalled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "newSubgraphService", - "type": "address" - } - ], - "name": "SubgraphServiceSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "bondingCurve", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_signalIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_tokensOutMin", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokens", - "type": "uint256" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "controller", - "outputs": [ - { - "internalType": "contract IController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "curationTaxPercentage", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "curationTokenMaster", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "defaultReserveRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getCurationPoolSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getCurationPoolTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_curator", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getCuratorSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - }, - { - "internalType": "address", - "name": "_curationTokenMaster", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_curationTaxPercentage", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "_minimumCurationDeposit", - "type": "uint256" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "isCurated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumCurationDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_signalOutMin", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - } - ], - "name": "mintTaxFree", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "pools", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "reserveRatio", - "type": "uint32" - }, - { - "internalType": "contract IGraphCurationToken", - "name": "gcs", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "setController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_percentage", - "type": "uint32" - } - ], - "name": "setCurationTaxPercentage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_curationTokenMaster", - "type": "address" - } - ], - "name": "setCurationTokenMaster", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "setDefaultReserveRatio", - "outputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_minimumCurationDeposit", - "type": "uint256" - } - ], - "name": "setMinimumCurationDeposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_subgraphService", - "type": "address" - } - ], - "name": "setSubgraphService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_signalIn", - "type": "uint256" - } - ], - "name": "signalToTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "subgraphService", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "syncAllContracts", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - } - ], - "name": "tokensToSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - } - ], - "name": "tokensToSignalNoTax", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - } - ], - "name": "tokensToSignalToTokensNoTax", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x6101806040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea361014052613d0960e61b6101605234801561011a57600080fd5b5060805160a05160c05160e0516101005161012051610140516101605160e01c6128cc61018f60003980610c2f52508061141b52806119025250806113f25250806113c9528061180c5250806113a05280611dbf5250806113775280611ff252508061134e52508061132552506128cc6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122048a2c0bbd827c328fe29a977d84099426057dab6398c943cb2b41e9b1c61d2c064736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122048a2c0bbd827c328fe29a977d84099426057dab6398c943cb2b41e9b1c61d2c064736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#GraphCurationToken.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#GraphCurationToken.json deleted file mode 100644 index b7220dcc7..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#GraphCurationToken.json +++ /dev/null @@ -1,414 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GraphCurationToken", - "sourceName": "contracts/curation/GraphCurationToken.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "NewOwnership", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "NewPendingOwnership", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "governor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pendingGovernor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newGovernor", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506114ec806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806379ba5097116100a2578063a9059cbb11610071578063a9059cbb14610352578063c4d66de81461037e578063dd62ed3e146103a4578063e3056a34146103d2578063f2fde38b146103da57610116565b806379ba5097146102ea57806379cc6790146102f257806395d89b411461031e578063a457c2d71461032657610116565b806323b872dd116100e957806323b872dd14610216578063313ce5671461024c578063395093511461026a57806340c10f191461029657806370a08231146102c457610116565b806306fdde031461011b578063095ea7b3146101985780630c340a24146101d857806318160ddd146101fc575b600080fd5b610123610400565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610496565b604080519115158252519081900360200190f35b6101e06104b3565b604080516001600160a01b039092168252519081900360200190f35b6102046104c2565b60408051918252519081900360200190f35b6101c46004803603606081101561022c57600080fd5b506001600160a01b038135811691602081013590911690604001356104c8565b61025461054f565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561028057600080fd5b506001600160a01b038135169060200135610558565b6102c2600480360360408110156102ac57600080fd5b506001600160a01b0381351690602001356105a6565b005b610204600480360360208110156102da57600080fd5b50356001600160a01b031661060c565b6102c2610627565b6102c26004803603604081101561030857600080fd5b506001600160a01b038135169060200135610737565b610123610799565b6101c46004803603604081101561033c57600080fd5b506001600160a01b0381351690602001356107fa565b6101c46004803603604081101561036857600080fd5b506001600160a01b038135169060200135610862565b6102c26004803603602081101561039457600080fd5b50356001600160a01b0316610876565b610204600480360360408110156103ba57600080fd5b506001600160a01b0381358116916020013516610972565b6101e061099d565b6102c2600480360360208110156103f057600080fd5b50356001600160a01b03166109ac565b60368054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561048c5780601f106104615761010080835404028352916020019161048c565b820191906000526020600020905b81548152906001019060200180831161046f57829003601f168201915b5050505050905090565b60006104aa6104a3610aaa565b8484610aae565b50600192915050565b6065546001600160a01b031681565b60355490565b60006104d5848484610b9a565b610545846104e1610aaa565b61054085604051806060016040528060288152602001611400602891396001600160a01b038a1660009081526034602052604081209061051f610aaa565b6001600160a01b031681526020810191909152604001600020549190610cf7565b610aae565b5060019392505050565b60385460ff1690565b60006104aa610565610aaa565b846105408560346000610576610aaa565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610d8e565b6065546001600160a01b031633146105fe576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106088282610def565b5050565b6001600160a01b031660009081526033602052604090205490565b6066546001600160a01b0316801580159061064a5750336001600160a01b038216145b61069b576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b606580546001600160a01b038381166001600160a01b0319808416919091179384905560668054909116905560405191811692169082907f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f90600090a36066546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6065546001600160a01b0316331461078f576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106088282610ee1565b60378054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561048c5780601f106104615761010080835404028352916020019161048c565b60006104aa610807610aaa565b84610540856040518060600160405280602581526020016114926025913960346000610831610aaa565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610cf7565b60006104aa61086f610aaa565b8484610b9a565b600054610100900460ff168061088f575061088f610fdd565b8061089d575060005460ff16155b6108d85760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff16158015610903576000805460ff1961ff0019909116610100171660011790555b61090c82610fee565b61095d604051806040016040528060148152602001734772617068204375726174696f6e20536861726560601b8152506040518060400160405280600381526020016247435360e81b815250611010565b8015610608576000805461ff00191690555050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6066546001600160a01b031681565b6065546001600160a01b03163314610a04576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610a56576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b606680546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b038316610af35760405162461bcd60e51b815260040180806020018281038252602481526020018061146e6024913960400191505060405180910390fd5b6001600160a01b038216610b385760405162461bcd60e51b815260040180806020018281038252602281526020018061138a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610bdf5760405162461bcd60e51b81526004018080602001828103825260258152602001806114496025913960400191505060405180910390fd5b6001600160a01b038216610c245760405162461bcd60e51b81526004018080602001828103825260238152602001806113456023913960400191505060405180910390fd5b610c2f8383836110c1565b610c6c816040518060600160405280602681526020016113ac602691396001600160a01b0386166000908152603360205260409020549190610cf7565b6001600160a01b038085166000908152603360205260408082209390935590841681522054610c9b9082610d8e565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610d865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d4b578181015183820152602001610d33565b50505050905090810190601f168015610d785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610de8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610e4a576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610e56600083836110c1565b603554610e639082610d8e565b6035556001600160a01b038216600090815260336020526040902054610e899082610d8e565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610f265760405162461bcd60e51b81526004018080602001828103825260218152602001806114286021913960400191505060405180910390fd5b610f32826000836110c1565b610f6f81604051806060016040528060228152602001611368602291396001600160a01b0385166000908152603360205260409020549190610cf7565b6001600160a01b038316600090815260336020526040902055603554610f9590826110c6565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610fe830611123565b15905090565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff16806110295750611029610fdd565b80611037575060005460ff16155b6110725760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff1615801561109d576000805460ff1961ff0019909116610100171660011790555b6110a5611129565b6110af83836111cb565b80156110c1576000805461ff00191690555b505050565b60008282111561111d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600054610100900460ff16806111425750611142610fdd565b80611150575060005460ff16155b61118b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff161580156111b6576000805460ff1961ff0019909116610100171660011790555b80156111c8576000805461ff00191690555b50565b600054610100900460ff16806111e457506111e4610fdd565b806111f2575060005460ff16155b61122d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff16158015611258576000805460ff1961ff0019909116610100171660011790555b825161126b9060369060208601906112a3565b50815161127f9060379060208501906112a3565b506038805460ff1916601217905580156110c1576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826112d9576000855561131f565b82601f106112f257805160ff191683800117855561131f565b8280016001018555821561131f579182015b8281111561131f578251825591602001919060010190611304565b5061132b92915061132f565b5090565b5b8082111561132b576000815560010161133056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b687fddcd01dbad6e1d5fbd49cb041f69ed61684a12a4c26c6e37e0f5ad7c2a64736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c806379ba5097116100a2578063a9059cbb11610071578063a9059cbb14610352578063c4d66de81461037e578063dd62ed3e146103a4578063e3056a34146103d2578063f2fde38b146103da57610116565b806379ba5097146102ea57806379cc6790146102f257806395d89b411461031e578063a457c2d71461032657610116565b806323b872dd116100e957806323b872dd14610216578063313ce5671461024c578063395093511461026a57806340c10f191461029657806370a08231146102c457610116565b806306fdde031461011b578063095ea7b3146101985780630c340a24146101d857806318160ddd146101fc575b600080fd5b610123610400565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610496565b604080519115158252519081900360200190f35b6101e06104b3565b604080516001600160a01b039092168252519081900360200190f35b6102046104c2565b60408051918252519081900360200190f35b6101c46004803603606081101561022c57600080fd5b506001600160a01b038135811691602081013590911690604001356104c8565b61025461054f565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561028057600080fd5b506001600160a01b038135169060200135610558565b6102c2600480360360408110156102ac57600080fd5b506001600160a01b0381351690602001356105a6565b005b610204600480360360208110156102da57600080fd5b50356001600160a01b031661060c565b6102c2610627565b6102c26004803603604081101561030857600080fd5b506001600160a01b038135169060200135610737565b610123610799565b6101c46004803603604081101561033c57600080fd5b506001600160a01b0381351690602001356107fa565b6101c46004803603604081101561036857600080fd5b506001600160a01b038135169060200135610862565b6102c26004803603602081101561039457600080fd5b50356001600160a01b0316610876565b610204600480360360408110156103ba57600080fd5b506001600160a01b0381358116916020013516610972565b6101e061099d565b6102c2600480360360208110156103f057600080fd5b50356001600160a01b03166109ac565b60368054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561048c5780601f106104615761010080835404028352916020019161048c565b820191906000526020600020905b81548152906001019060200180831161046f57829003601f168201915b5050505050905090565b60006104aa6104a3610aaa565b8484610aae565b50600192915050565b6065546001600160a01b031681565b60355490565b60006104d5848484610b9a565b610545846104e1610aaa565b61054085604051806060016040528060288152602001611400602891396001600160a01b038a1660009081526034602052604081209061051f610aaa565b6001600160a01b031681526020810191909152604001600020549190610cf7565b610aae565b5060019392505050565b60385460ff1690565b60006104aa610565610aaa565b846105408560346000610576610aaa565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610d8e565b6065546001600160a01b031633146105fe576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106088282610def565b5050565b6001600160a01b031660009081526033602052604090205490565b6066546001600160a01b0316801580159061064a5750336001600160a01b038216145b61069b576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b606580546001600160a01b038381166001600160a01b0319808416919091179384905560668054909116905560405191811692169082907f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f90600090a36066546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6065546001600160a01b0316331461078f576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106088282610ee1565b60378054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561048c5780601f106104615761010080835404028352916020019161048c565b60006104aa610807610aaa565b84610540856040518060600160405280602581526020016114926025913960346000610831610aaa565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610cf7565b60006104aa61086f610aaa565b8484610b9a565b600054610100900460ff168061088f575061088f610fdd565b8061089d575060005460ff16155b6108d85760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff16158015610903576000805460ff1961ff0019909116610100171660011790555b61090c82610fee565b61095d604051806040016040528060148152602001734772617068204375726174696f6e20536861726560601b8152506040518060400160405280600381526020016247435360e81b815250611010565b8015610608576000805461ff00191690555050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6066546001600160a01b031681565b6065546001600160a01b03163314610a04576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610a56576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b606680546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b038316610af35760405162461bcd60e51b815260040180806020018281038252602481526020018061146e6024913960400191505060405180910390fd5b6001600160a01b038216610b385760405162461bcd60e51b815260040180806020018281038252602281526020018061138a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610bdf5760405162461bcd60e51b81526004018080602001828103825260258152602001806114496025913960400191505060405180910390fd5b6001600160a01b038216610c245760405162461bcd60e51b81526004018080602001828103825260238152602001806113456023913960400191505060405180910390fd5b610c2f8383836110c1565b610c6c816040518060600160405280602681526020016113ac602691396001600160a01b0386166000908152603360205260409020549190610cf7565b6001600160a01b038085166000908152603360205260408082209390935590841681522054610c9b9082610d8e565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610d865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d4b578181015183820152602001610d33565b50505050905090810190601f168015610d785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610de8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610e4a576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610e56600083836110c1565b603554610e639082610d8e565b6035556001600160a01b038216600090815260336020526040902054610e899082610d8e565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610f265760405162461bcd60e51b81526004018080602001828103825260218152602001806114286021913960400191505060405180910390fd5b610f32826000836110c1565b610f6f81604051806060016040528060228152602001611368602291396001600160a01b0385166000908152603360205260409020549190610cf7565b6001600160a01b038316600090815260336020526040902055603554610f9590826110c6565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610fe830611123565b15905090565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff16806110295750611029610fdd565b80611037575060005460ff16155b6110725760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff1615801561109d576000805460ff1961ff0019909116610100171660011790555b6110a5611129565b6110af83836111cb565b80156110c1576000805461ff00191690555b505050565b60008282111561111d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600054610100900460ff16806111425750611142610fdd565b80611150575060005460ff16155b61118b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff161580156111b6576000805460ff1961ff0019909116610100171660011790555b80156111c8576000805461ff00191690555b50565b600054610100900460ff16806111e457506111e4610fdd565b806111f2575060005460ff16155b61122d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff16158015611258576000805460ff1961ff0019909116610100171660011790555b825161126b9060369060208601906112a3565b50815161127f9060379060208501906112a3565b506038805460ff1916601217905580156110c1576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826112d9576000855561131f565b82601f106112f257805160ff191683800117855561131f565b8280016001018555821561131f579182015b8281111561131f578251825591602001919060010190611304565b5061132b92915061132f565b5090565b5b8082111561132b576000815560010161133056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b687fddcd01dbad6e1d5fbd49cb041f69ed61684a12a4c26c6e37e0f5ad7c2a64736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#GraphProxy.json deleted file mode 100644 index 2cfb21e41..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/Curation#GraphProxy.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GraphProxy", - "sourceName": "contracts/upgrades/GraphProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_impl", - "type": "address" - }, - { - "internalType": "address", - "name": "_admin", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldAdmin", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "ImplementationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldPendingImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newPendingImplementation", - "type": "address" - } - ], - "name": "PendingImplementationUpdated", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "name": "acceptUpgrade", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptUpgradeAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "pendingImplementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newAdmin", - "type": "address" - } - ], - "name": "setAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c", - "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.dbg.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.dbg.json deleted file mode 100644 index 4922c5523..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/e51c04f0f0fdce5715962999616918b7.json" -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.json deleted file mode 100644 index b34c8dc47..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager.json +++ /dev/null @@ -1,1390 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "DisputeManager", - "sourceName": "contracts/DisputeManager.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expectedLength", - "type": "uint256" - } - ], - "name": "AttestationInvalidBytesLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerDisputeAlreadyCreated", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "enum IDisputeManager.DisputeStatus", - "name": "status", - "type": "uint8" - } - ], - "name": "DisputeManagerDisputeNotPending", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerDisputePeriodNotFinished", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerDisputePeriodZero", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "DisputeManagerIndexerNotFound", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerInvalidDispute", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "DisputeManagerInvalidDisputeDeposit", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "cut", - "type": "uint32" - } - ], - "name": "DisputeManagerInvalidFishermanReward", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxSlashingCut", - "type": "uint32" - } - ], - "name": "DisputeManagerInvalidMaxSlashingCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokensSlash", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTokensSlash", - "type": "uint256" - } - ], - "name": "DisputeManagerInvalidTokensSlash", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "relatedDisputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerMustAcceptRelatedDispute", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "requestCID1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "requestCID2", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID2", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId2", - "type": "bytes32" - } - ], - "name": "DisputeManagerNonConflictingAttestations", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId2", - "type": "bytes32" - } - ], - "name": "DisputeManagerNonMatchingSubgraphDeployment", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerNotArbitrator", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerNotFisherman", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerZeroTokens", - "type": "error" - }, - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "arbitrator", - "type": "address" - } - ], - "name": "ArbitratorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeCancelled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "DisputeDepositSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeDrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId1", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId2", - "type": "bytes32" - } - ], - "name": "DisputeLinked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "disputePeriod", - "type": "uint64" - } - ], - "name": "DisputePeriodSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeRejected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "fishermanRewardCut", - "type": "uint32" - } - ], - "name": "FishermanRewardCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "name": "IndexingDisputeCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "maxSlashingCut", - "type": "uint32" - } - ], - "name": "MaxSlashingCutSet", - "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": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "attestation", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "name": "QueryDisputeCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "subgraphService", - "type": "address" - } - ], - "name": "SubgraphServiceSet", - "type": "event" - }, - { - "inputs": [], - "name": "MAX_FISHERMAN_REWARD_CUT", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokensSlash", - "type": "uint256" - } - ], - "name": "acceptDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "arbitrator", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation1", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation2", - "type": "tuple" - } - ], - "name": "areConflictingAttestations", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "cancelDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - } - ], - "name": "createIndexingDispute", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "attestationData", - "type": "bytes" - } - ], - "name": "createQueryDispute", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "attestationData1", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "attestationData2", - "type": "bytes" - } - ], - "name": "createQueryDisputeConflict", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "disputeDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "disputePeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "disputes", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deposit", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "relatedDisputeId", - "type": "bytes32" - }, - { - "internalType": "enum IDisputeManager.DisputeType", - "name": "disputeType", - "type": "uint8" - }, - { - "internalType": "enum IDisputeManager.DisputeStatus", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "drawDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "internalType": "struct Attestation.Receipt", - "name": "receipt", - "type": "tuple" - } - ], - "name": "encodeReceipt", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "fishermanRewardCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation", - "type": "tuple" - } - ], - "name": "getAttestationIndexer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDisputePeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "getStakeSnapshot", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "arbitrator", - "type": "address" - }, - { - "internalType": "uint64", - "name": "disputePeriod", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "fishermanRewardCut_", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "maxSlashingCut_", - "type": "uint32" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "isDisputeCreated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxSlashingCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "rejectDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "arbitrator", - "type": "address" - } - ], - "name": "setArbitrator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "setDisputeDeposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "disputePeriod", - "type": "uint64" - } - ], - "name": "setDisputePeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "fishermanRewardCut_", - "type": "uint32" - } - ], - "name": "setFishermanRewardCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxSlashingCut_", - "type": "uint32" - } - ], - "name": "setMaxSlashingCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "subgraphService", - "type": "address" - } - ], - "name": "setSubgraphService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "subgraphService", - "outputs": [ - { - "internalType": "contract ISubgraphService", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101c060405234801561001157600080fd5b506040516138243803806138248339810160408190526100309161049b565b806001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b29061033b565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e59061033b565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e9061033b565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b60208201526101589061033b565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b60208201526101909061033b565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb9061033b565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102099061033b565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102459061033b565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a9061033b565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a4506103356103e9565b50610519565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161037691815260200190565b602060405180830381865afa158015610393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b7919061049b565b9050826001600160a01b0382166103e25760405163218f5add60e11b815260040161007191906104cb565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104395760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104985780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000602082840312156104ad57600080fd5b81516001600160a01b03811681146104c457600080fd5b9392505050565b602081526000825180602084015260005b818110156104f957602081860181015160408684010152016104dc565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516132a861057c60003960005050600050506000505060005050600050506000505060005050600050506000611fe30152600061160e01526132a86000f3fe608060405234801561001057600080fd5b50600436106101b05760003560e01c806376c993ae116100ef578063be41f38411610092578063be41f3841461040b578063c133b4291461042e578063c50a77b114610441578063c894222e14610454578063c9747f511461047c578063d36fc9d41461048f578063d76f62d1146104a2578063f2fde38b146104b557600080fd5b806376c993ae1461038657806384633713146103995780638da5cb5b146103a7578063902a4938146103af5780639334ea52146103bf57806393a90a1e146103d25780639f81a7cf146103e5578063b0eefabe146103f857600080fd5b806336167e031161015757806336167e03146102d95780634bc5839a146102ec5780635aea0ec4146102ff5780635bf31d4d1461032b5780635ed2c96c146103455780636369df6b146103585780636cc6cde11461036b578063715018a61461037e57600080fd5b8063050b17ad146101b55780630533e1ba146101ca57806311be1997146101fb578063169729781461027257806317337b46146102855780631792f1941461028f57806326058249146102a257806329e03ff1146102c2575b600080fd5b6101c86101c3366004612a74565b6104c8565b005b6036546101e190600160201b900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61025e610209366004612a96565b60376020526000908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b039586169695909416949293919260ff80831693610100909304169188565b6040516101f2989796959493929190612ad9565b6101c8610280366004612a96565b61074b565b6101e16207a12081565b6101c861029d366004612a96565b61075f565b6033546102b5906001600160a01b031681565b6040516101f29190612b39565b6102cb60355481565b6040519081526020016101f2565b6101c86102e7366004612a96565b610a07565b6102cb6102fa366004612b62565b610bef565b603454600160a01b90046001600160401b03165b6040516001600160401b0390911681526020016101f2565b60345461031390600160a01b90046001600160401b031681565b6101c8610353366004612bb5565b610c10565b6102cb610366366004612cb5565b610d43565b6034546102b5906001600160a01b031681565b6101c8610d4e565b6101c8610394366004612d20565b610d62565b60365463ffffffff166101e1565b6102b5610d73565b6036546101e19063ffffffff1681565b6101c86103cd366004612a96565b610d8e565b6101c86103e0366004612d3d565b610fae565b6101c86103f3366004612d20565b610fbf565b6101c8610406366004612d3d565b610fd0565b61041e610419366004612a96565b610fe1565b60405190151581526020016101f2565b6102cb61043c366004612d3d565b611017565b6102cb61044f366004612da2565b6110af565b610467610462366004612de3565b61113b565b604080519283526020830191909152016101f2565b6102b561048a366004612eb9565b611320565b61041e61049d366004612ed5565b611411565b6101c86104b0366004612f0b565b61141d565b6101c86104c3366004612d3d565b61142e565b6034546001600160a01b031633146104f35760405163a8baf3bb60e01b815260040160405180910390fd5b816104fd81610fe1565b8190610528576040516314a03bbd60e21b815260040161051f91815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561055657610556612aaf565b600083815260376020526040902060040154610100900460ff1691146105905760405163146e540f60e21b815260040161051f9190612f28565b50600083815260376020526040812060048101805461ff001916610100179055805460068201549192916105cf916001600160a01b0316908690611469565b6001830154600284015491925061060e916001600160a01b03909116906105f69084612f4c565b6105fe61160c565b6001600160a01b03169190611630565b604080516101008101825283546001600160a01b0390811682526001850154166020820152600280850154928201929092526003840154606082015260048401546106d6928591608084019160ff9091169081111561066f5761066f612aaf565b600281111561068057610680612aaf565b81526020016004820160019054906101000a900460ff1660058111156106a8576106a8612aaf565b60058111156106b9576106b9612aaf565b8152602001600582015481526020016006820154815250506116e7565b156106e8576106e88260030154610a07565b6001820154825460028401546001600160a01b03928316929091169087907f6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c490610733908690612f4c565b60405190815260200160405180910390a45050505050565b61075361172e565b61075c81611760565b50565b8061076981610fe1565b819061078b576040516314a03bbd60e21b815260040161051f91815260200190565b506000818152603760205260409020600101546001600160a01b031633146107c65760405163082c005560e41b815260040160405180910390fd5b816107d081610fe1565b81906107f2576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561082057610820612aaf565b600083815260376020526040902060040154610100900460ff16911461085a5760405163146e540f60e21b815260040161051f9190612f28565b5060008381526037602052604090206034546005820154429161088e91600160a01b9091046001600160401b031690612f4c565b106108ac57604051631d7753d560e11b815260040160405180910390fd5b6002810154156108d657600181015460028201546108d6916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b03908116825260018401541660208201526002808401549282019290925260038301546060820152600483015461099e928491608084019160ff9091169081111561093757610937612aaf565b600281111561094857610948612aaf565b81526020016004820160019054906101000a900460ff16600581111561097057610970612aaf565b600581111561098157610981612aaf565b8152602001600582015481526020016006820154815250506117bf565b5060048101805461ff00191661050017905560018101548154600283015460408051918252516001600160a01b03938416939092169187917f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2919081900360200190a450505050565b6034546001600160a01b03163314610a325760405163a8baf3bb60e01b815260040160405180910390fd5b80610a3c81610fe1565b8190610a5e576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610a8c57610a8c612aaf565b600083815260376020526040902060040154610100900460ff169114610ac65760405163146e540f60e21b815260040161051f9190612f28565b5060008281526037602090815260409182902060048101805461020061ff001982161790915583516101008101855282546001600160a01b0390811682526001840154169381019390935260028083015494840194909452600382015460608401529092610b4992918491608084019160ff169081111561066f5761066f612aaf565b6003820154849115610b7757604051634137159360e11b81526004810192909252602482015260440161051f565b5050610b988160020154610b8961160c565b6001600160a01b03169061180d565b6001810154815460028301546040519081526001600160a01b03928316929091169085907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d906020015b60405180910390a4505050565b6000610bf9611872565b610c07336035548585611891565b90505b92915050565b6000610c1a611bd3565b805490915060ff600160401b82041615906001600160401b0316600081158015610c415750825b90506000826001600160401b03166001148015610c5d5750303b155b905081158015610c6b575080155b15610c895760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610cb357845460ff60401b1916600160401b1785555b610cbc33611bf7565b610cc4611c08565b610ccd8a611c18565b610cd689611c89565b610cdf88611760565b610ce887611d0e565b610cf186611d8b565b8315610d3757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6000610c0a82611e18565b610d5661172e565b610d606000611eb5565b565b610d6a61172e565b61075c81611d0e565b600080610d7e611f11565b546001600160a01b031692915050565b6034546001600160a01b03163314610db95760405163a8baf3bb60e01b815260040160405180910390fd5b80610dc381610fe1565b8190610de5576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e1357610e13612aaf565b600083815260376020526040902060040154610100900460ff169114610e4d5760405163146e540f60e21b815260040161051f9190612f28565b506000828152603760205260409020600281015415610e865760018101546002820154610e86916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b039081168252600184015416602082015260028084015492820192909252600383015460608201526004830154610f4e928491608084019160ff90911690811115610ee757610ee7612aaf565b6002811115610ef857610ef8612aaf565b81526020016004820160019054906101000a900460ff166005811115610f2057610f20612aaf565b6005811115610f3157610f31612aaf565b815260200160058201548152602001600682015481525050611f35565b5060048101805461ff0019166103001790556001810154815460028301546040519081526001600160a01b03928316929091169085907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b790602001610be2565b610fb661172e565b61075c81611f70565b610fc761172e565b61075c81611d8b565b610fd861172e565b61075c81611c18565b600080600083815260376020526040902060040154610100900460ff16600581111561100f5761100f612aaf565b141592915050565b600080611022611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e9261105692889290911690600401612f5f565b61012060405180830381865afa158015611074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110989190612f94565b90506110a8838260000151612005565b9392505050565b60006110b9611872565b610c07336035546110ff86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b6000806000339050600061118488888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b905060006111c787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b90506111d38282612532565b8251602080850151604080870151865193870151918701519495929490939261123257604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c40161051f565b505050505050600061127d846000858d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b905060006112c4856000858c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b60008061132c83612563565b603354604051630e02292360e01b81529192506000916001600160a01b0390911690630e02292390611362908590600401612b39565b61010060405180830381865afa158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613036565b805190915082906001600160a01b03166113d2576040516334789d8b60e21b815260040161051f9190612b39565b50604084015160208201519081811461140757604051630a24cfe560e21b81526004810192909252602482015260440161051f565b5050519392505050565b6000610c078383612532565b61142561172e565b61075c81611c89565b61143661172e565b6001600160a01b038116611460576000604051631e4fbdf760e01b815260040161051f9190612b39565b61075c81611eb5565b600080611474611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926114a8928a9290911690600401612f5f565b61012060405180830381865afa1580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190612f94565b60365490915060009061150f90859063ffffffff600160201b9091048116906125f416565b905084158015906115205750808511155b8582909161154a5760405163cc6b7c4160e01b81526004810192909252602482015260440161051f565b5050600061155c86846000015161265b565b60365490915060009061157a9063ffffffff9081169084906125f416565b60335460408051602081018b905280820184905281518082038301815260608201928390526365c1a3ff60e11b9092529293506001600160a01b039091169163cb8347fe916115ce918c91906064016130f9565b600060405180830381600087803b1580156115e857600080fd5b505af11580156115fc573d6000803e3d6000fd5b50929a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156116e25760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015611686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116aa919061311d565b6116e25760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161051f565b505050565b606081015160009080158015906110a857506004600082815260376020526040902060040154610100900460ff16600581111561172657611726612aaf565b149392505050565b33611737610d73565b6001600160a01b031614610d60573360405163118cdaa760e01b815260040161051f9190612b39565b80806117825760405163033f4e0560e01b815260040161051f91815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f8906020015b60405180910390a150565b60006117ca826116e7565b1561180557606082015160008181526037602052604090206004810180546005919061ff001916610100835b02179055506001949350505050565b506000919050565b801561186e57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561185557600080fd5b505af1158015611869573d6000803e3d6000fd5b505050505b5050565b610d603360355461188161160c565b6001600160a01b03169190612671565b6040516001600160601b0319606084901b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506118d881610fe1565b1581906118fb5760405163124a23f160e11b815260040161051f91815260200190565b50603354604051630e02292360e01b81526000916001600160a01b031690630e0229239061192d908890600401612b39565b61010060405180830381865afa15801561194b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196f9190613036565b8051909150856001600160a01b03821661199d576040516334789d8b60e21b815260040161051f9190612b39565b5060006119a8611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926119dc92879290911690600401612f5f565b61012060405180830381865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190612f94565b8051909150600003611a435760405163307efdb760e11b815260040160405180910390fd5b6000611a53838360000151612005565b604080516101008101825286516001600160a01b0390811682528d1660208201529081018b905260006060820152909150608081016001815260200160048152426020808301919091526040918201849052600088815260378252829020835181546001600160a01b039182166001600160a01b031991821617835592850151600180840180549290931691909416179055918301516002808401919091556060840151600384015560808401516004840180549193909260ff19909216918490811115611b2357611b23612aaf565b021790555060a082015160048201805461ff001916610100836005811115611b4d57611b4d612aaf565b021790555060c0820151600582015560e0909101516006909101558351604080518b81526001600160a01b038b811660208301529181018a905260608101849052818d16929091169087907fbfd6e5f61b4aa04b088a513a833705c7c703b907516c1dbfa66f93d1f725d33d9060800160405180910390a4509298975050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611bff6126b2565b61075c816126d7565b611c106126b2565b610d606126df565b6001600160a01b038116611c3f5760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b0316600003611cb35760405163c4411f1160e01b815260040160405180910390fd5b6034805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416908102919091179091556040519081527f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e6906020016117b4565b806207a12063ffffffff82161115611d425760405163432e664360e11b815263ffffffff909116600482015260240161051f565b506036805463ffffffff191663ffffffff83169081179091556040519081527fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab906020016117b4565b8063ffffffff8116620f42401015611dbf57604051634e9374fb60e11b815263ffffffff909116600482015260240161051f565b506036805467ffffffff000000001916600160201b63ffffffff8481168202929092179283905560405192041681527f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d680502906020016117b4565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ebf611f11565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000611f40826116e7565b1561180557606082015160008181526037602052604090206004810180546003919061ff001916610100836117f6565b6001600160a01b038116611f975760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b7f000000000000000000000000000000000000000000000000000000000000000090565b600080612010611fe1565b603354604051631584a17960e21b81526001600160a01b039283169263561285e49261204492899290911690600401612f5f565b60a060405180830381865afa158015612061573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612085919061313f565b6000015190506000603360009054906101000a90046001600160a01b03166001600160a01b0316631ebb7c306040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210491906131be565b6121149063ffffffff16856131db565b9050600061212283836127b1565b61212c9086612f4c565b9695505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526001612175602080612f4c565b61217f9190612f4c565b61218a906060612f4c565b825190811490600161219d602080612f4c565b6121a79190612f4c565b6121b2906060612f4c565b90916121da57604051633fdf342360e01b81526004810192909252602482015260440161051f565b50506000806000848060200190518101906121f591906131f2565b92509250925060006122088660606127c1565b905060006122218761221c60206060612f4c565b6127c1565b90506000612245886020612236816060612f4c565b6122409190612f4c565b612813565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b60008061228984611320565b90506000612295611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926122c992879290911690600401612f5f565b61012060405180830381865afa1580156122e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230b9190612f94565b80519091506000036123305760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a80160405160208183030381529060405280519060200120905061239981610fe1565b1581906123bc5760405163124a23f160e11b815260040161051f91815260200190565b5060006123cd848460000151612005565b60408051610100810182526001600160a01b0387811682528c811660208084019182528385018e8152600060608601818152600260808801818152600460a08a018190524260c08b015260e08a018c90528d8552603790965298909220875181549088166001600160a01b031991821617825595516001808301805492909916919097161790965591518582015590516003850155945190830180549697509395929490939260ff19169190849081111561248a5761248a612aaf565b021790555060a082015160048201805461ff0019166101008360058111156124b4576124b4612aaf565b021790555060c0820151816005015560e08201518160060155905050886001600160a01b0316846001600160a01b0316837ffb609a7fd5eb7947365d2f96d051030cac33a27e3e4923f97ea4e03aaa2bcb148b8b604001518b8760405161251e9493929190613220565b60405180910390a450979650505050505050565b8051825160009114801561254d575081604001518360400151145b8015610c07575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161259382611e18565b90506125ec81856060015186608001518760a001516040516020016125d893929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612865565b949350505050565b600061260383620f4240101590565b80612616575061261682620f4240101590565b838390916126405760405163768bf0eb60e11b81526004810192909252602482015260440161051f565b50620f4240905061265183856131db565b610c079190613250565b600081831061266a5781610c07565b5090919050565b80156116e2576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401611667565b6126ba61288f565b610d6057604051631afcd79f60e31b815260040160405180910390fd5b6114366126b2565b6126e76126b2565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b60008183111561266a5781610c07565b60006127ce602083612f4c565b835190811015906127e0602085612f4c565b909161280857604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016020015190565b6000612820600183612f4c565b83519081101590612832600185612f4c565b909161285a57604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016001015190565b60008060008061287586866128a9565b92509250925061288582826128f6565b5090949350505050565b6000612899611bd3565b54600160401b900460ff16919050565b600080600083516041036128e35760208401516040850151606086015160001a6128d5888285856129af565b9550955095505050506128ef565b50508151600091506002905b9250925092565b600082600381111561290a5761290a612aaf565b03612913575050565b600182600381111561292757612927612aaf565b036129455760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561295957612959612aaf565b0361297a5760405163fce698f760e01b81526004810182905260240161051f565b600382600381111561298e5761298e612aaf565b0361186e576040516335e2f38360e21b81526004810182905260240161051f565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156129e05750600091506003905082612a6a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612a34573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612a6057506000925060019150829050612a6a565b9250600091508190505b9450945094915050565b60008060408385031215612a8757600080fd5b50508035926020909101359150565b600060208284031215612aa857600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612ad557612ad5612aaf565b9052565b6001600160a01b038981168252881660208201526040810187905260608101869052610100810160038610612b1057612b10612aaf565b856080830152612b2360a0830186612ac5565b60c082019390935260e001529695505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461075c57600080fd5b60008060408385031215612b7557600080fd5b8235612b8081612b4d565b946020939093013593505050565b6001600160401b038116811461075c57600080fd5b63ffffffff8116811461075c57600080fd5b600080600080600060a08688031215612bcd57600080fd5b8535612bd881612b4d565b94506020860135612be881612b8e565b9350604086013592506060860135612bff81612ba3565b91506080860135612c0f81612ba3565b809150509295509295909350565b60405160c081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60006060828403128015612cc857600080fd5b50604051600090606081016001600160401b0381118282101715612cfa57634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b600060208284031215612d3257600080fd5b81356110a881612ba3565b600060208284031215612d4f57600080fd5b81356110a881612b4d565b60008083601f840112612d6c57600080fd5b5081356001600160401b03811115612d8357600080fd5b602083019150836020828501011115612d9b57600080fd5b9250929050565b60008060208385031215612db557600080fd5b82356001600160401b03811115612dcb57600080fd5b612dd785828601612d5a565b90969095509350505050565b60008060008060408587031215612df957600080fd5b84356001600160401b03811115612e0f57600080fd5b612e1b87828801612d5a565b90955093505060208501356001600160401b03811115612e3a57600080fd5b612e4687828801612d5a565b95989497509550505050565b600060c08284031215612e6457600080fd5b612e6c612c1d565b8235815260208084013590820152604080840135908201526060808401359082015260808084013590820152905060a082013560ff81168114612eae57600080fd5b60a082015292915050565b600060c08284031215612ecb57600080fd5b610c078383612e52565b6000806101808385031215612ee957600080fd5b612ef38484612e52565b9150612f028460c08501612e52565b90509250929050565b600060208284031215612f1d57600080fd5b81356110a881612b8e565b60208101610c0a8284612ac5565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c0a57610c0a612f36565b6001600160a01b0392831681529116602082015260400190565b8051612f8481612ba3565b919050565b8051612f8481612b8e565b6000610120828403128015612fa857600080fd5b506000612fb3612c53565b835181526020808501519082015260408085015190820152612fd760608501612f79565b6060820152612fe860808501612f89565b6080820152612ff960a08501612f89565b60a082015261300a60c08501612f79565b60c082015261301b60e08501612f89565b60e08201526101009384015193810193909352509092915050565b600061010082840312801561304a57600080fd5b506000613055612c84565b835161306081612b4d565b81526020848101519082015260408085015190820152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e09384015193810193909352509092915050565b6000815180845260005b818110156130d9576020818501810151868301820152016130bd565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190526000906125ec908301846130b3565b60006020828403121561312f57600080fd5b815180151581146110a857600080fd5b600060a082840312801561315257600080fd5b5060405160009060a081016001600160401b038111828210171561318457634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6000602082840312156131d057600080fd5b81516110a881612ba3565b8082028115828204841417610c0a57610c0a612f36565b60008060006060848603121561320757600080fd5b5050815160208301516040909301519094929350919050565b84815283602082015260806040820152600061323f60808301856130b3565b905082606083015295945050505050565b60008261326d57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122015fc51a79247a9edf26bdaf727ea63de7398a97bc3a27ad1e74c0ff8bf34282e64736f6c634300081b0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101b05760003560e01c806376c993ae116100ef578063be41f38411610092578063be41f3841461040b578063c133b4291461042e578063c50a77b114610441578063c894222e14610454578063c9747f511461047c578063d36fc9d41461048f578063d76f62d1146104a2578063f2fde38b146104b557600080fd5b806376c993ae1461038657806384633713146103995780638da5cb5b146103a7578063902a4938146103af5780639334ea52146103bf57806393a90a1e146103d25780639f81a7cf146103e5578063b0eefabe146103f857600080fd5b806336167e031161015757806336167e03146102d95780634bc5839a146102ec5780635aea0ec4146102ff5780635bf31d4d1461032b5780635ed2c96c146103455780636369df6b146103585780636cc6cde11461036b578063715018a61461037e57600080fd5b8063050b17ad146101b55780630533e1ba146101ca57806311be1997146101fb578063169729781461027257806317337b46146102855780631792f1941461028f57806326058249146102a257806329e03ff1146102c2575b600080fd5b6101c86101c3366004612a74565b6104c8565b005b6036546101e190600160201b900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61025e610209366004612a96565b60376020526000908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b039586169695909416949293919260ff80831693610100909304169188565b6040516101f2989796959493929190612ad9565b6101c8610280366004612a96565b61074b565b6101e16207a12081565b6101c861029d366004612a96565b61075f565b6033546102b5906001600160a01b031681565b6040516101f29190612b39565b6102cb60355481565b6040519081526020016101f2565b6101c86102e7366004612a96565b610a07565b6102cb6102fa366004612b62565b610bef565b603454600160a01b90046001600160401b03165b6040516001600160401b0390911681526020016101f2565b60345461031390600160a01b90046001600160401b031681565b6101c8610353366004612bb5565b610c10565b6102cb610366366004612cb5565b610d43565b6034546102b5906001600160a01b031681565b6101c8610d4e565b6101c8610394366004612d20565b610d62565b60365463ffffffff166101e1565b6102b5610d73565b6036546101e19063ffffffff1681565b6101c86103cd366004612a96565b610d8e565b6101c86103e0366004612d3d565b610fae565b6101c86103f3366004612d20565b610fbf565b6101c8610406366004612d3d565b610fd0565b61041e610419366004612a96565b610fe1565b60405190151581526020016101f2565b6102cb61043c366004612d3d565b611017565b6102cb61044f366004612da2565b6110af565b610467610462366004612de3565b61113b565b604080519283526020830191909152016101f2565b6102b561048a366004612eb9565b611320565b61041e61049d366004612ed5565b611411565b6101c86104b0366004612f0b565b61141d565b6101c86104c3366004612d3d565b61142e565b6034546001600160a01b031633146104f35760405163a8baf3bb60e01b815260040160405180910390fd5b816104fd81610fe1565b8190610528576040516314a03bbd60e21b815260040161051f91815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561055657610556612aaf565b600083815260376020526040902060040154610100900460ff1691146105905760405163146e540f60e21b815260040161051f9190612f28565b50600083815260376020526040812060048101805461ff001916610100179055805460068201549192916105cf916001600160a01b0316908690611469565b6001830154600284015491925061060e916001600160a01b03909116906105f69084612f4c565b6105fe61160c565b6001600160a01b03169190611630565b604080516101008101825283546001600160a01b0390811682526001850154166020820152600280850154928201929092526003840154606082015260048401546106d6928591608084019160ff9091169081111561066f5761066f612aaf565b600281111561068057610680612aaf565b81526020016004820160019054906101000a900460ff1660058111156106a8576106a8612aaf565b60058111156106b9576106b9612aaf565b8152602001600582015481526020016006820154815250506116e7565b156106e8576106e88260030154610a07565b6001820154825460028401546001600160a01b03928316929091169087907f6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c490610733908690612f4c565b60405190815260200160405180910390a45050505050565b61075361172e565b61075c81611760565b50565b8061076981610fe1565b819061078b576040516314a03bbd60e21b815260040161051f91815260200190565b506000818152603760205260409020600101546001600160a01b031633146107c65760405163082c005560e41b815260040160405180910390fd5b816107d081610fe1565b81906107f2576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561082057610820612aaf565b600083815260376020526040902060040154610100900460ff16911461085a5760405163146e540f60e21b815260040161051f9190612f28565b5060008381526037602052604090206034546005820154429161088e91600160a01b9091046001600160401b031690612f4c565b106108ac57604051631d7753d560e11b815260040160405180910390fd5b6002810154156108d657600181015460028201546108d6916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b03908116825260018401541660208201526002808401549282019290925260038301546060820152600483015461099e928491608084019160ff9091169081111561093757610937612aaf565b600281111561094857610948612aaf565b81526020016004820160019054906101000a900460ff16600581111561097057610970612aaf565b600581111561098157610981612aaf565b8152602001600582015481526020016006820154815250506117bf565b5060048101805461ff00191661050017905560018101548154600283015460408051918252516001600160a01b03938416939092169187917f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2919081900360200190a450505050565b6034546001600160a01b03163314610a325760405163a8baf3bb60e01b815260040160405180910390fd5b80610a3c81610fe1565b8190610a5e576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610a8c57610a8c612aaf565b600083815260376020526040902060040154610100900460ff169114610ac65760405163146e540f60e21b815260040161051f9190612f28565b5060008281526037602090815260409182902060048101805461020061ff001982161790915583516101008101855282546001600160a01b0390811682526001840154169381019390935260028083015494840194909452600382015460608401529092610b4992918491608084019160ff169081111561066f5761066f612aaf565b6003820154849115610b7757604051634137159360e11b81526004810192909252602482015260440161051f565b5050610b988160020154610b8961160c565b6001600160a01b03169061180d565b6001810154815460028301546040519081526001600160a01b03928316929091169085907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d906020015b60405180910390a4505050565b6000610bf9611872565b610c07336035548585611891565b90505b92915050565b6000610c1a611bd3565b805490915060ff600160401b82041615906001600160401b0316600081158015610c415750825b90506000826001600160401b03166001148015610c5d5750303b155b905081158015610c6b575080155b15610c895760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610cb357845460ff60401b1916600160401b1785555b610cbc33611bf7565b610cc4611c08565b610ccd8a611c18565b610cd689611c89565b610cdf88611760565b610ce887611d0e565b610cf186611d8b565b8315610d3757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6000610c0a82611e18565b610d5661172e565b610d606000611eb5565b565b610d6a61172e565b61075c81611d0e565b600080610d7e611f11565b546001600160a01b031692915050565b6034546001600160a01b03163314610db95760405163a8baf3bb60e01b815260040160405180910390fd5b80610dc381610fe1565b8190610de5576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e1357610e13612aaf565b600083815260376020526040902060040154610100900460ff169114610e4d5760405163146e540f60e21b815260040161051f9190612f28565b506000828152603760205260409020600281015415610e865760018101546002820154610e86916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b039081168252600184015416602082015260028084015492820192909252600383015460608201526004830154610f4e928491608084019160ff90911690811115610ee757610ee7612aaf565b6002811115610ef857610ef8612aaf565b81526020016004820160019054906101000a900460ff166005811115610f2057610f20612aaf565b6005811115610f3157610f31612aaf565b815260200160058201548152602001600682015481525050611f35565b5060048101805461ff0019166103001790556001810154815460028301546040519081526001600160a01b03928316929091169085907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b790602001610be2565b610fb661172e565b61075c81611f70565b610fc761172e565b61075c81611d8b565b610fd861172e565b61075c81611c18565b600080600083815260376020526040902060040154610100900460ff16600581111561100f5761100f612aaf565b141592915050565b600080611022611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e9261105692889290911690600401612f5f565b61012060405180830381865afa158015611074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110989190612f94565b90506110a8838260000151612005565b9392505050565b60006110b9611872565b610c07336035546110ff86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b6000806000339050600061118488888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b905060006111c787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b90506111d38282612532565b8251602080850151604080870151865193870151918701519495929490939261123257604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c40161051f565b505050505050600061127d846000858d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b905060006112c4856000858c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b60008061132c83612563565b603354604051630e02292360e01b81529192506000916001600160a01b0390911690630e02292390611362908590600401612b39565b61010060405180830381865afa158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613036565b805190915082906001600160a01b03166113d2576040516334789d8b60e21b815260040161051f9190612b39565b50604084015160208201519081811461140757604051630a24cfe560e21b81526004810192909252602482015260440161051f565b5050519392505050565b6000610c078383612532565b61142561172e565b61075c81611c89565b61143661172e565b6001600160a01b038116611460576000604051631e4fbdf760e01b815260040161051f9190612b39565b61075c81611eb5565b600080611474611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926114a8928a9290911690600401612f5f565b61012060405180830381865afa1580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190612f94565b60365490915060009061150f90859063ffffffff600160201b9091048116906125f416565b905084158015906115205750808511155b8582909161154a5760405163cc6b7c4160e01b81526004810192909252602482015260440161051f565b5050600061155c86846000015161265b565b60365490915060009061157a9063ffffffff9081169084906125f416565b60335460408051602081018b905280820184905281518082038301815260608201928390526365c1a3ff60e11b9092529293506001600160a01b039091169163cb8347fe916115ce918c91906064016130f9565b600060405180830381600087803b1580156115e857600080fd5b505af11580156115fc573d6000803e3d6000fd5b50929a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156116e25760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015611686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116aa919061311d565b6116e25760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161051f565b505050565b606081015160009080158015906110a857506004600082815260376020526040902060040154610100900460ff16600581111561172657611726612aaf565b149392505050565b33611737610d73565b6001600160a01b031614610d60573360405163118cdaa760e01b815260040161051f9190612b39565b80806117825760405163033f4e0560e01b815260040161051f91815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f8906020015b60405180910390a150565b60006117ca826116e7565b1561180557606082015160008181526037602052604090206004810180546005919061ff001916610100835b02179055506001949350505050565b506000919050565b801561186e57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561185557600080fd5b505af1158015611869573d6000803e3d6000fd5b505050505b5050565b610d603360355461188161160c565b6001600160a01b03169190612671565b6040516001600160601b0319606084901b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506118d881610fe1565b1581906118fb5760405163124a23f160e11b815260040161051f91815260200190565b50603354604051630e02292360e01b81526000916001600160a01b031690630e0229239061192d908890600401612b39565b61010060405180830381865afa15801561194b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196f9190613036565b8051909150856001600160a01b03821661199d576040516334789d8b60e21b815260040161051f9190612b39565b5060006119a8611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926119dc92879290911690600401612f5f565b61012060405180830381865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190612f94565b8051909150600003611a435760405163307efdb760e11b815260040160405180910390fd5b6000611a53838360000151612005565b604080516101008101825286516001600160a01b0390811682528d1660208201529081018b905260006060820152909150608081016001815260200160048152426020808301919091526040918201849052600088815260378252829020835181546001600160a01b039182166001600160a01b031991821617835592850151600180840180549290931691909416179055918301516002808401919091556060840151600384015560808401516004840180549193909260ff19909216918490811115611b2357611b23612aaf565b021790555060a082015160048201805461ff001916610100836005811115611b4d57611b4d612aaf565b021790555060c0820151600582015560e0909101516006909101558351604080518b81526001600160a01b038b811660208301529181018a905260608101849052818d16929091169087907fbfd6e5f61b4aa04b088a513a833705c7c703b907516c1dbfa66f93d1f725d33d9060800160405180910390a4509298975050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611bff6126b2565b61075c816126d7565b611c106126b2565b610d606126df565b6001600160a01b038116611c3f5760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b0316600003611cb35760405163c4411f1160e01b815260040160405180910390fd5b6034805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416908102919091179091556040519081527f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e6906020016117b4565b806207a12063ffffffff82161115611d425760405163432e664360e11b815263ffffffff909116600482015260240161051f565b506036805463ffffffff191663ffffffff83169081179091556040519081527fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab906020016117b4565b8063ffffffff8116620f42401015611dbf57604051634e9374fb60e11b815263ffffffff909116600482015260240161051f565b506036805467ffffffff000000001916600160201b63ffffffff8481168202929092179283905560405192041681527f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d680502906020016117b4565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ebf611f11565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000611f40826116e7565b1561180557606082015160008181526037602052604090206004810180546003919061ff001916610100836117f6565b6001600160a01b038116611f975760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b7f000000000000000000000000000000000000000000000000000000000000000090565b600080612010611fe1565b603354604051631584a17960e21b81526001600160a01b039283169263561285e49261204492899290911690600401612f5f565b60a060405180830381865afa158015612061573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612085919061313f565b6000015190506000603360009054906101000a90046001600160a01b03166001600160a01b0316631ebb7c306040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210491906131be565b6121149063ffffffff16856131db565b9050600061212283836127b1565b61212c9086612f4c565b9695505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526001612175602080612f4c565b61217f9190612f4c565b61218a906060612f4c565b825190811490600161219d602080612f4c565b6121a79190612f4c565b6121b2906060612f4c565b90916121da57604051633fdf342360e01b81526004810192909252602482015260440161051f565b50506000806000848060200190518101906121f591906131f2565b92509250925060006122088660606127c1565b905060006122218761221c60206060612f4c565b6127c1565b90506000612245886020612236816060612f4c565b6122409190612f4c565b612813565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b60008061228984611320565b90506000612295611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926122c992879290911690600401612f5f565b61012060405180830381865afa1580156122e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230b9190612f94565b80519091506000036123305760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a80160405160208183030381529060405280519060200120905061239981610fe1565b1581906123bc5760405163124a23f160e11b815260040161051f91815260200190565b5060006123cd848460000151612005565b60408051610100810182526001600160a01b0387811682528c811660208084019182528385018e8152600060608601818152600260808801818152600460a08a018190524260c08b015260e08a018c90528d8552603790965298909220875181549088166001600160a01b031991821617825595516001808301805492909916919097161790965591518582015590516003850155945190830180549697509395929490939260ff19169190849081111561248a5761248a612aaf565b021790555060a082015160048201805461ff0019166101008360058111156124b4576124b4612aaf565b021790555060c0820151816005015560e08201518160060155905050886001600160a01b0316846001600160a01b0316837ffb609a7fd5eb7947365d2f96d051030cac33a27e3e4923f97ea4e03aaa2bcb148b8b604001518b8760405161251e9493929190613220565b60405180910390a450979650505050505050565b8051825160009114801561254d575081604001518360400151145b8015610c07575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161259382611e18565b90506125ec81856060015186608001518760a001516040516020016125d893929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612865565b949350505050565b600061260383620f4240101590565b80612616575061261682620f4240101590565b838390916126405760405163768bf0eb60e11b81526004810192909252602482015260440161051f565b50620f4240905061265183856131db565b610c079190613250565b600081831061266a5781610c07565b5090919050565b80156116e2576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401611667565b6126ba61288f565b610d6057604051631afcd79f60e31b815260040160405180910390fd5b6114366126b2565b6126e76126b2565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b60008183111561266a5781610c07565b60006127ce602083612f4c565b835190811015906127e0602085612f4c565b909161280857604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016020015190565b6000612820600183612f4c565b83519081101590612832600185612f4c565b909161285a57604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016001015190565b60008060008061287586866128a9565b92509250925061288582826128f6565b5090949350505050565b6000612899611bd3565b54600160401b900460ff16919050565b600080600083516041036128e35760208401516040850151606086015160001a6128d5888285856129af565b9550955095505050506128ef565b50508151600091506002905b9250925092565b600082600381111561290a5761290a612aaf565b03612913575050565b600182600381111561292757612927612aaf565b036129455760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561295957612959612aaf565b0361297a5760405163fce698f760e01b81526004810182905260240161051f565b600382600381111561298e5761298e612aaf565b0361186e576040516335e2f38360e21b81526004810182905260240161051f565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156129e05750600091506003905082612a6a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612a34573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612a6057506000925060019150829050612a6a565b9250600091508190505b9450945094915050565b60008060408385031215612a8757600080fd5b50508035926020909101359150565b600060208284031215612aa857600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612ad557612ad5612aaf565b9052565b6001600160a01b038981168252881660208201526040810187905260608101869052610100810160038610612b1057612b10612aaf565b856080830152612b2360a0830186612ac5565b60c082019390935260e001529695505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461075c57600080fd5b60008060408385031215612b7557600080fd5b8235612b8081612b4d565b946020939093013593505050565b6001600160401b038116811461075c57600080fd5b63ffffffff8116811461075c57600080fd5b600080600080600060a08688031215612bcd57600080fd5b8535612bd881612b4d565b94506020860135612be881612b8e565b9350604086013592506060860135612bff81612ba3565b91506080860135612c0f81612ba3565b809150509295509295909350565b60405160c081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60006060828403128015612cc857600080fd5b50604051600090606081016001600160401b0381118282101715612cfa57634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b600060208284031215612d3257600080fd5b81356110a881612ba3565b600060208284031215612d4f57600080fd5b81356110a881612b4d565b60008083601f840112612d6c57600080fd5b5081356001600160401b03811115612d8357600080fd5b602083019150836020828501011115612d9b57600080fd5b9250929050565b60008060208385031215612db557600080fd5b82356001600160401b03811115612dcb57600080fd5b612dd785828601612d5a565b90969095509350505050565b60008060008060408587031215612df957600080fd5b84356001600160401b03811115612e0f57600080fd5b612e1b87828801612d5a565b90955093505060208501356001600160401b03811115612e3a57600080fd5b612e4687828801612d5a565b95989497509550505050565b600060c08284031215612e6457600080fd5b612e6c612c1d565b8235815260208084013590820152604080840135908201526060808401359082015260808084013590820152905060a082013560ff81168114612eae57600080fd5b60a082015292915050565b600060c08284031215612ecb57600080fd5b610c078383612e52565b6000806101808385031215612ee957600080fd5b612ef38484612e52565b9150612f028460c08501612e52565b90509250929050565b600060208284031215612f1d57600080fd5b81356110a881612b8e565b60208101610c0a8284612ac5565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c0a57610c0a612f36565b6001600160a01b0392831681529116602082015260400190565b8051612f8481612ba3565b919050565b8051612f8481612b8e565b6000610120828403128015612fa857600080fd5b506000612fb3612c53565b835181526020808501519082015260408085015190820152612fd760608501612f79565b6060820152612fe860808501612f89565b6080820152612ff960a08501612f89565b60a082015261300a60c08501612f79565b60c082015261301b60e08501612f89565b60e08201526101009384015193810193909352509092915050565b600061010082840312801561304a57600080fd5b506000613055612c84565b835161306081612b4d565b81526020848101519082015260408085015190820152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e09384015193810193909352509092915050565b6000815180845260005b818110156130d9576020818501810151868301820152016130bd565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190526000906125ec908301846130b3565b60006020828403121561312f57600080fd5b815180151581146110a857600080fd5b600060a082840312801561315257600080fd5b5060405160009060a081016001600160401b038111828210171561318457634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6000602082840312156131d057600080fd5b81516110a881612ba3565b8082028115828204841417610c0a57610c0a612f36565b60008060006060848603121561320757600080fd5b5050815160208301516040909301519094929350919050565b84815283602082015260806040820152600061323f60808301856130b3565b905082606083015295945050505050565b60008261326d57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122015fc51a79247a9edf26bdaf727ea63de7398a97bc3a27ad1e74c0ff8bf34282e64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_Instance.dbg.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_Instance.dbg.json deleted file mode 100644 index 4922c5523..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_Instance.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/e51c04f0f0fdce5715962999616918b7.json" -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_Instance.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_Instance.json deleted file mode 100644 index b34c8dc47..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#DisputeManager_Instance.json +++ /dev/null @@ -1,1390 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "DisputeManager", - "sourceName": "contracts/DisputeManager.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expectedLength", - "type": "uint256" - } - ], - "name": "AttestationInvalidBytesLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerDisputeAlreadyCreated", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "enum IDisputeManager.DisputeStatus", - "name": "status", - "type": "uint8" - } - ], - "name": "DisputeManagerDisputeNotPending", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerDisputePeriodNotFinished", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerDisputePeriodZero", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "DisputeManagerIndexerNotFound", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerInvalidDispute", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "DisputeManagerInvalidDisputeDeposit", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "cut", - "type": "uint32" - } - ], - "name": "DisputeManagerInvalidFishermanReward", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxSlashingCut", - "type": "uint32" - } - ], - "name": "DisputeManagerInvalidMaxSlashingCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokensSlash", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTokensSlash", - "type": "uint256" - } - ], - "name": "DisputeManagerInvalidTokensSlash", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "relatedDisputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerMustAcceptRelatedDispute", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "requestCID1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "requestCID2", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID2", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId2", - "type": "bytes32" - } - ], - "name": "DisputeManagerNonConflictingAttestations", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId2", - "type": "bytes32" - } - ], - "name": "DisputeManagerNonMatchingSubgraphDeployment", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerNotArbitrator", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerNotFisherman", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerZeroTokens", - "type": "error" - }, - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "arbitrator", - "type": "address" - } - ], - "name": "ArbitratorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeCancelled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "DisputeDepositSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeDrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId1", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId2", - "type": "bytes32" - } - ], - "name": "DisputeLinked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "disputePeriod", - "type": "uint64" - } - ], - "name": "DisputePeriodSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeRejected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "fishermanRewardCut", - "type": "uint32" - } - ], - "name": "FishermanRewardCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "name": "IndexingDisputeCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "maxSlashingCut", - "type": "uint32" - } - ], - "name": "MaxSlashingCutSet", - "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": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "attestation", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "name": "QueryDisputeCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "subgraphService", - "type": "address" - } - ], - "name": "SubgraphServiceSet", - "type": "event" - }, - { - "inputs": [], - "name": "MAX_FISHERMAN_REWARD_CUT", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokensSlash", - "type": "uint256" - } - ], - "name": "acceptDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "arbitrator", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation1", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation2", - "type": "tuple" - } - ], - "name": "areConflictingAttestations", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "cancelDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - } - ], - "name": "createIndexingDispute", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "attestationData", - "type": "bytes" - } - ], - "name": "createQueryDispute", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "attestationData1", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "attestationData2", - "type": "bytes" - } - ], - "name": "createQueryDisputeConflict", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "disputeDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "disputePeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "disputes", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deposit", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "relatedDisputeId", - "type": "bytes32" - }, - { - "internalType": "enum IDisputeManager.DisputeType", - "name": "disputeType", - "type": "uint8" - }, - { - "internalType": "enum IDisputeManager.DisputeStatus", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "drawDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "internalType": "struct Attestation.Receipt", - "name": "receipt", - "type": "tuple" - } - ], - "name": "encodeReceipt", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "fishermanRewardCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation", - "type": "tuple" - } - ], - "name": "getAttestationIndexer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDisputePeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "getStakeSnapshot", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "arbitrator", - "type": "address" - }, - { - "internalType": "uint64", - "name": "disputePeriod", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "fishermanRewardCut_", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "maxSlashingCut_", - "type": "uint32" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "isDisputeCreated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxSlashingCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "rejectDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "arbitrator", - "type": "address" - } - ], - "name": "setArbitrator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "setDisputeDeposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "disputePeriod", - "type": "uint64" - } - ], - "name": "setDisputePeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "fishermanRewardCut_", - "type": "uint32" - } - ], - "name": "setFishermanRewardCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxSlashingCut_", - "type": "uint32" - } - ], - "name": "setMaxSlashingCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "subgraphService", - "type": "address" - } - ], - "name": "setSubgraphService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "subgraphService", - "outputs": [ - { - "internalType": "contract ISubgraphService", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101c060405234801561001157600080fd5b506040516138243803806138248339810160408190526100309161049b565b806001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b29061033b565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e59061033b565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e9061033b565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b60208201526101589061033b565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b60208201526101909061033b565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb9061033b565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102099061033b565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102459061033b565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a9061033b565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a4506103356103e9565b50610519565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161037691815260200190565b602060405180830381865afa158015610393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b7919061049b565b9050826001600160a01b0382166103e25760405163218f5add60e11b815260040161007191906104cb565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104395760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104985780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000602082840312156104ad57600080fd5b81516001600160a01b03811681146104c457600080fd5b9392505050565b602081526000825180602084015260005b818110156104f957602081860181015160408684010152016104dc565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516132a861057c60003960005050600050506000505060005050600050506000505060005050600050506000611fe30152600061160e01526132a86000f3fe608060405234801561001057600080fd5b50600436106101b05760003560e01c806376c993ae116100ef578063be41f38411610092578063be41f3841461040b578063c133b4291461042e578063c50a77b114610441578063c894222e14610454578063c9747f511461047c578063d36fc9d41461048f578063d76f62d1146104a2578063f2fde38b146104b557600080fd5b806376c993ae1461038657806384633713146103995780638da5cb5b146103a7578063902a4938146103af5780639334ea52146103bf57806393a90a1e146103d25780639f81a7cf146103e5578063b0eefabe146103f857600080fd5b806336167e031161015757806336167e03146102d95780634bc5839a146102ec5780635aea0ec4146102ff5780635bf31d4d1461032b5780635ed2c96c146103455780636369df6b146103585780636cc6cde11461036b578063715018a61461037e57600080fd5b8063050b17ad146101b55780630533e1ba146101ca57806311be1997146101fb578063169729781461027257806317337b46146102855780631792f1941461028f57806326058249146102a257806329e03ff1146102c2575b600080fd5b6101c86101c3366004612a74565b6104c8565b005b6036546101e190600160201b900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61025e610209366004612a96565b60376020526000908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b039586169695909416949293919260ff80831693610100909304169188565b6040516101f2989796959493929190612ad9565b6101c8610280366004612a96565b61074b565b6101e16207a12081565b6101c861029d366004612a96565b61075f565b6033546102b5906001600160a01b031681565b6040516101f29190612b39565b6102cb60355481565b6040519081526020016101f2565b6101c86102e7366004612a96565b610a07565b6102cb6102fa366004612b62565b610bef565b603454600160a01b90046001600160401b03165b6040516001600160401b0390911681526020016101f2565b60345461031390600160a01b90046001600160401b031681565b6101c8610353366004612bb5565b610c10565b6102cb610366366004612cb5565b610d43565b6034546102b5906001600160a01b031681565b6101c8610d4e565b6101c8610394366004612d20565b610d62565b60365463ffffffff166101e1565b6102b5610d73565b6036546101e19063ffffffff1681565b6101c86103cd366004612a96565b610d8e565b6101c86103e0366004612d3d565b610fae565b6101c86103f3366004612d20565b610fbf565b6101c8610406366004612d3d565b610fd0565b61041e610419366004612a96565b610fe1565b60405190151581526020016101f2565b6102cb61043c366004612d3d565b611017565b6102cb61044f366004612da2565b6110af565b610467610462366004612de3565b61113b565b604080519283526020830191909152016101f2565b6102b561048a366004612eb9565b611320565b61041e61049d366004612ed5565b611411565b6101c86104b0366004612f0b565b61141d565b6101c86104c3366004612d3d565b61142e565b6034546001600160a01b031633146104f35760405163a8baf3bb60e01b815260040160405180910390fd5b816104fd81610fe1565b8190610528576040516314a03bbd60e21b815260040161051f91815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561055657610556612aaf565b600083815260376020526040902060040154610100900460ff1691146105905760405163146e540f60e21b815260040161051f9190612f28565b50600083815260376020526040812060048101805461ff001916610100179055805460068201549192916105cf916001600160a01b0316908690611469565b6001830154600284015491925061060e916001600160a01b03909116906105f69084612f4c565b6105fe61160c565b6001600160a01b03169190611630565b604080516101008101825283546001600160a01b0390811682526001850154166020820152600280850154928201929092526003840154606082015260048401546106d6928591608084019160ff9091169081111561066f5761066f612aaf565b600281111561068057610680612aaf565b81526020016004820160019054906101000a900460ff1660058111156106a8576106a8612aaf565b60058111156106b9576106b9612aaf565b8152602001600582015481526020016006820154815250506116e7565b156106e8576106e88260030154610a07565b6001820154825460028401546001600160a01b03928316929091169087907f6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c490610733908690612f4c565b60405190815260200160405180910390a45050505050565b61075361172e565b61075c81611760565b50565b8061076981610fe1565b819061078b576040516314a03bbd60e21b815260040161051f91815260200190565b506000818152603760205260409020600101546001600160a01b031633146107c65760405163082c005560e41b815260040160405180910390fd5b816107d081610fe1565b81906107f2576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561082057610820612aaf565b600083815260376020526040902060040154610100900460ff16911461085a5760405163146e540f60e21b815260040161051f9190612f28565b5060008381526037602052604090206034546005820154429161088e91600160a01b9091046001600160401b031690612f4c565b106108ac57604051631d7753d560e11b815260040160405180910390fd5b6002810154156108d657600181015460028201546108d6916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b03908116825260018401541660208201526002808401549282019290925260038301546060820152600483015461099e928491608084019160ff9091169081111561093757610937612aaf565b600281111561094857610948612aaf565b81526020016004820160019054906101000a900460ff16600581111561097057610970612aaf565b600581111561098157610981612aaf565b8152602001600582015481526020016006820154815250506117bf565b5060048101805461ff00191661050017905560018101548154600283015460408051918252516001600160a01b03938416939092169187917f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2919081900360200190a450505050565b6034546001600160a01b03163314610a325760405163a8baf3bb60e01b815260040160405180910390fd5b80610a3c81610fe1565b8190610a5e576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610a8c57610a8c612aaf565b600083815260376020526040902060040154610100900460ff169114610ac65760405163146e540f60e21b815260040161051f9190612f28565b5060008281526037602090815260409182902060048101805461020061ff001982161790915583516101008101855282546001600160a01b0390811682526001840154169381019390935260028083015494840194909452600382015460608401529092610b4992918491608084019160ff169081111561066f5761066f612aaf565b6003820154849115610b7757604051634137159360e11b81526004810192909252602482015260440161051f565b5050610b988160020154610b8961160c565b6001600160a01b03169061180d565b6001810154815460028301546040519081526001600160a01b03928316929091169085907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d906020015b60405180910390a4505050565b6000610bf9611872565b610c07336035548585611891565b90505b92915050565b6000610c1a611bd3565b805490915060ff600160401b82041615906001600160401b0316600081158015610c415750825b90506000826001600160401b03166001148015610c5d5750303b155b905081158015610c6b575080155b15610c895760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610cb357845460ff60401b1916600160401b1785555b610cbc33611bf7565b610cc4611c08565b610ccd8a611c18565b610cd689611c89565b610cdf88611760565b610ce887611d0e565b610cf186611d8b565b8315610d3757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6000610c0a82611e18565b610d5661172e565b610d606000611eb5565b565b610d6a61172e565b61075c81611d0e565b600080610d7e611f11565b546001600160a01b031692915050565b6034546001600160a01b03163314610db95760405163a8baf3bb60e01b815260040160405180910390fd5b80610dc381610fe1565b8190610de5576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e1357610e13612aaf565b600083815260376020526040902060040154610100900460ff169114610e4d5760405163146e540f60e21b815260040161051f9190612f28565b506000828152603760205260409020600281015415610e865760018101546002820154610e86916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b039081168252600184015416602082015260028084015492820192909252600383015460608201526004830154610f4e928491608084019160ff90911690811115610ee757610ee7612aaf565b6002811115610ef857610ef8612aaf565b81526020016004820160019054906101000a900460ff166005811115610f2057610f20612aaf565b6005811115610f3157610f31612aaf565b815260200160058201548152602001600682015481525050611f35565b5060048101805461ff0019166103001790556001810154815460028301546040519081526001600160a01b03928316929091169085907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b790602001610be2565b610fb661172e565b61075c81611f70565b610fc761172e565b61075c81611d8b565b610fd861172e565b61075c81611c18565b600080600083815260376020526040902060040154610100900460ff16600581111561100f5761100f612aaf565b141592915050565b600080611022611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e9261105692889290911690600401612f5f565b61012060405180830381865afa158015611074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110989190612f94565b90506110a8838260000151612005565b9392505050565b60006110b9611872565b610c07336035546110ff86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b6000806000339050600061118488888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b905060006111c787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b90506111d38282612532565b8251602080850151604080870151865193870151918701519495929490939261123257604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c40161051f565b505050505050600061127d846000858d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b905060006112c4856000858c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b60008061132c83612563565b603354604051630e02292360e01b81529192506000916001600160a01b0390911690630e02292390611362908590600401612b39565b61010060405180830381865afa158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613036565b805190915082906001600160a01b03166113d2576040516334789d8b60e21b815260040161051f9190612b39565b50604084015160208201519081811461140757604051630a24cfe560e21b81526004810192909252602482015260440161051f565b5050519392505050565b6000610c078383612532565b61142561172e565b61075c81611c89565b61143661172e565b6001600160a01b038116611460576000604051631e4fbdf760e01b815260040161051f9190612b39565b61075c81611eb5565b600080611474611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926114a8928a9290911690600401612f5f565b61012060405180830381865afa1580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190612f94565b60365490915060009061150f90859063ffffffff600160201b9091048116906125f416565b905084158015906115205750808511155b8582909161154a5760405163cc6b7c4160e01b81526004810192909252602482015260440161051f565b5050600061155c86846000015161265b565b60365490915060009061157a9063ffffffff9081169084906125f416565b60335460408051602081018b905280820184905281518082038301815260608201928390526365c1a3ff60e11b9092529293506001600160a01b039091169163cb8347fe916115ce918c91906064016130f9565b600060405180830381600087803b1580156115e857600080fd5b505af11580156115fc573d6000803e3d6000fd5b50929a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156116e25760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015611686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116aa919061311d565b6116e25760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161051f565b505050565b606081015160009080158015906110a857506004600082815260376020526040902060040154610100900460ff16600581111561172657611726612aaf565b149392505050565b33611737610d73565b6001600160a01b031614610d60573360405163118cdaa760e01b815260040161051f9190612b39565b80806117825760405163033f4e0560e01b815260040161051f91815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f8906020015b60405180910390a150565b60006117ca826116e7565b1561180557606082015160008181526037602052604090206004810180546005919061ff001916610100835b02179055506001949350505050565b506000919050565b801561186e57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561185557600080fd5b505af1158015611869573d6000803e3d6000fd5b505050505b5050565b610d603360355461188161160c565b6001600160a01b03169190612671565b6040516001600160601b0319606084901b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506118d881610fe1565b1581906118fb5760405163124a23f160e11b815260040161051f91815260200190565b50603354604051630e02292360e01b81526000916001600160a01b031690630e0229239061192d908890600401612b39565b61010060405180830381865afa15801561194b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196f9190613036565b8051909150856001600160a01b03821661199d576040516334789d8b60e21b815260040161051f9190612b39565b5060006119a8611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926119dc92879290911690600401612f5f565b61012060405180830381865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190612f94565b8051909150600003611a435760405163307efdb760e11b815260040160405180910390fd5b6000611a53838360000151612005565b604080516101008101825286516001600160a01b0390811682528d1660208201529081018b905260006060820152909150608081016001815260200160048152426020808301919091526040918201849052600088815260378252829020835181546001600160a01b039182166001600160a01b031991821617835592850151600180840180549290931691909416179055918301516002808401919091556060840151600384015560808401516004840180549193909260ff19909216918490811115611b2357611b23612aaf565b021790555060a082015160048201805461ff001916610100836005811115611b4d57611b4d612aaf565b021790555060c0820151600582015560e0909101516006909101558351604080518b81526001600160a01b038b811660208301529181018a905260608101849052818d16929091169087907fbfd6e5f61b4aa04b088a513a833705c7c703b907516c1dbfa66f93d1f725d33d9060800160405180910390a4509298975050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611bff6126b2565b61075c816126d7565b611c106126b2565b610d606126df565b6001600160a01b038116611c3f5760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b0316600003611cb35760405163c4411f1160e01b815260040160405180910390fd5b6034805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416908102919091179091556040519081527f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e6906020016117b4565b806207a12063ffffffff82161115611d425760405163432e664360e11b815263ffffffff909116600482015260240161051f565b506036805463ffffffff191663ffffffff83169081179091556040519081527fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab906020016117b4565b8063ffffffff8116620f42401015611dbf57604051634e9374fb60e11b815263ffffffff909116600482015260240161051f565b506036805467ffffffff000000001916600160201b63ffffffff8481168202929092179283905560405192041681527f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d680502906020016117b4565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ebf611f11565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000611f40826116e7565b1561180557606082015160008181526037602052604090206004810180546003919061ff001916610100836117f6565b6001600160a01b038116611f975760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b7f000000000000000000000000000000000000000000000000000000000000000090565b600080612010611fe1565b603354604051631584a17960e21b81526001600160a01b039283169263561285e49261204492899290911690600401612f5f565b60a060405180830381865afa158015612061573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612085919061313f565b6000015190506000603360009054906101000a90046001600160a01b03166001600160a01b0316631ebb7c306040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210491906131be565b6121149063ffffffff16856131db565b9050600061212283836127b1565b61212c9086612f4c565b9695505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526001612175602080612f4c565b61217f9190612f4c565b61218a906060612f4c565b825190811490600161219d602080612f4c565b6121a79190612f4c565b6121b2906060612f4c565b90916121da57604051633fdf342360e01b81526004810192909252602482015260440161051f565b50506000806000848060200190518101906121f591906131f2565b92509250925060006122088660606127c1565b905060006122218761221c60206060612f4c565b6127c1565b90506000612245886020612236816060612f4c565b6122409190612f4c565b612813565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b60008061228984611320565b90506000612295611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926122c992879290911690600401612f5f565b61012060405180830381865afa1580156122e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230b9190612f94565b80519091506000036123305760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a80160405160208183030381529060405280519060200120905061239981610fe1565b1581906123bc5760405163124a23f160e11b815260040161051f91815260200190565b5060006123cd848460000151612005565b60408051610100810182526001600160a01b0387811682528c811660208084019182528385018e8152600060608601818152600260808801818152600460a08a018190524260c08b015260e08a018c90528d8552603790965298909220875181549088166001600160a01b031991821617825595516001808301805492909916919097161790965591518582015590516003850155945190830180549697509395929490939260ff19169190849081111561248a5761248a612aaf565b021790555060a082015160048201805461ff0019166101008360058111156124b4576124b4612aaf565b021790555060c0820151816005015560e08201518160060155905050886001600160a01b0316846001600160a01b0316837ffb609a7fd5eb7947365d2f96d051030cac33a27e3e4923f97ea4e03aaa2bcb148b8b604001518b8760405161251e9493929190613220565b60405180910390a450979650505050505050565b8051825160009114801561254d575081604001518360400151145b8015610c07575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161259382611e18565b90506125ec81856060015186608001518760a001516040516020016125d893929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612865565b949350505050565b600061260383620f4240101590565b80612616575061261682620f4240101590565b838390916126405760405163768bf0eb60e11b81526004810192909252602482015260440161051f565b50620f4240905061265183856131db565b610c079190613250565b600081831061266a5781610c07565b5090919050565b80156116e2576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401611667565b6126ba61288f565b610d6057604051631afcd79f60e31b815260040160405180910390fd5b6114366126b2565b6126e76126b2565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b60008183111561266a5781610c07565b60006127ce602083612f4c565b835190811015906127e0602085612f4c565b909161280857604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016020015190565b6000612820600183612f4c565b83519081101590612832600185612f4c565b909161285a57604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016001015190565b60008060008061287586866128a9565b92509250925061288582826128f6565b5090949350505050565b6000612899611bd3565b54600160401b900460ff16919050565b600080600083516041036128e35760208401516040850151606086015160001a6128d5888285856129af565b9550955095505050506128ef565b50508151600091506002905b9250925092565b600082600381111561290a5761290a612aaf565b03612913575050565b600182600381111561292757612927612aaf565b036129455760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561295957612959612aaf565b0361297a5760405163fce698f760e01b81526004810182905260240161051f565b600382600381111561298e5761298e612aaf565b0361186e576040516335e2f38360e21b81526004810182905260240161051f565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156129e05750600091506003905082612a6a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612a34573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612a6057506000925060019150829050612a6a565b9250600091508190505b9450945094915050565b60008060408385031215612a8757600080fd5b50508035926020909101359150565b600060208284031215612aa857600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612ad557612ad5612aaf565b9052565b6001600160a01b038981168252881660208201526040810187905260608101869052610100810160038610612b1057612b10612aaf565b856080830152612b2360a0830186612ac5565b60c082019390935260e001529695505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461075c57600080fd5b60008060408385031215612b7557600080fd5b8235612b8081612b4d565b946020939093013593505050565b6001600160401b038116811461075c57600080fd5b63ffffffff8116811461075c57600080fd5b600080600080600060a08688031215612bcd57600080fd5b8535612bd881612b4d565b94506020860135612be881612b8e565b9350604086013592506060860135612bff81612ba3565b91506080860135612c0f81612ba3565b809150509295509295909350565b60405160c081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60006060828403128015612cc857600080fd5b50604051600090606081016001600160401b0381118282101715612cfa57634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b600060208284031215612d3257600080fd5b81356110a881612ba3565b600060208284031215612d4f57600080fd5b81356110a881612b4d565b60008083601f840112612d6c57600080fd5b5081356001600160401b03811115612d8357600080fd5b602083019150836020828501011115612d9b57600080fd5b9250929050565b60008060208385031215612db557600080fd5b82356001600160401b03811115612dcb57600080fd5b612dd785828601612d5a565b90969095509350505050565b60008060008060408587031215612df957600080fd5b84356001600160401b03811115612e0f57600080fd5b612e1b87828801612d5a565b90955093505060208501356001600160401b03811115612e3a57600080fd5b612e4687828801612d5a565b95989497509550505050565b600060c08284031215612e6457600080fd5b612e6c612c1d565b8235815260208084013590820152604080840135908201526060808401359082015260808084013590820152905060a082013560ff81168114612eae57600080fd5b60a082015292915050565b600060c08284031215612ecb57600080fd5b610c078383612e52565b6000806101808385031215612ee957600080fd5b612ef38484612e52565b9150612f028460c08501612e52565b90509250929050565b600060208284031215612f1d57600080fd5b81356110a881612b8e565b60208101610c0a8284612ac5565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c0a57610c0a612f36565b6001600160a01b0392831681529116602082015260400190565b8051612f8481612ba3565b919050565b8051612f8481612b8e565b6000610120828403128015612fa857600080fd5b506000612fb3612c53565b835181526020808501519082015260408085015190820152612fd760608501612f79565b6060820152612fe860808501612f89565b6080820152612ff960a08501612f89565b60a082015261300a60c08501612f79565b60c082015261301b60e08501612f89565b60e08201526101009384015193810193909352509092915050565b600061010082840312801561304a57600080fd5b506000613055612c84565b835161306081612b4d565b81526020848101519082015260408085015190820152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e09384015193810193909352509092915050565b6000815180845260005b818110156130d9576020818501810151868301820152016130bd565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190526000906125ec908301846130b3565b60006020828403121561312f57600080fd5b815180151581146110a857600080fd5b600060a082840312801561315257600080fd5b5060405160009060a081016001600160401b038111828210171561318457634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6000602082840312156131d057600080fd5b81516110a881612ba3565b8082028115828204841417610c0a57610c0a612f36565b60008060006060848603121561320757600080fd5b5050815160208301516040909301519094929350919050565b84815283602082015260806040820152600061323f60808301856130b3565b905082606083015295945050505050565b60008261326d57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122015fc51a79247a9edf26bdaf727ea63de7398a97bc3a27ad1e74c0ff8bf34282e64736f6c634300081b0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101b05760003560e01c806376c993ae116100ef578063be41f38411610092578063be41f3841461040b578063c133b4291461042e578063c50a77b114610441578063c894222e14610454578063c9747f511461047c578063d36fc9d41461048f578063d76f62d1146104a2578063f2fde38b146104b557600080fd5b806376c993ae1461038657806384633713146103995780638da5cb5b146103a7578063902a4938146103af5780639334ea52146103bf57806393a90a1e146103d25780639f81a7cf146103e5578063b0eefabe146103f857600080fd5b806336167e031161015757806336167e03146102d95780634bc5839a146102ec5780635aea0ec4146102ff5780635bf31d4d1461032b5780635ed2c96c146103455780636369df6b146103585780636cc6cde11461036b578063715018a61461037e57600080fd5b8063050b17ad146101b55780630533e1ba146101ca57806311be1997146101fb578063169729781461027257806317337b46146102855780631792f1941461028f57806326058249146102a257806329e03ff1146102c2575b600080fd5b6101c86101c3366004612a74565b6104c8565b005b6036546101e190600160201b900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61025e610209366004612a96565b60376020526000908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b039586169695909416949293919260ff80831693610100909304169188565b6040516101f2989796959493929190612ad9565b6101c8610280366004612a96565b61074b565b6101e16207a12081565b6101c861029d366004612a96565b61075f565b6033546102b5906001600160a01b031681565b6040516101f29190612b39565b6102cb60355481565b6040519081526020016101f2565b6101c86102e7366004612a96565b610a07565b6102cb6102fa366004612b62565b610bef565b603454600160a01b90046001600160401b03165b6040516001600160401b0390911681526020016101f2565b60345461031390600160a01b90046001600160401b031681565b6101c8610353366004612bb5565b610c10565b6102cb610366366004612cb5565b610d43565b6034546102b5906001600160a01b031681565b6101c8610d4e565b6101c8610394366004612d20565b610d62565b60365463ffffffff166101e1565b6102b5610d73565b6036546101e19063ffffffff1681565b6101c86103cd366004612a96565b610d8e565b6101c86103e0366004612d3d565b610fae565b6101c86103f3366004612d20565b610fbf565b6101c8610406366004612d3d565b610fd0565b61041e610419366004612a96565b610fe1565b60405190151581526020016101f2565b6102cb61043c366004612d3d565b611017565b6102cb61044f366004612da2565b6110af565b610467610462366004612de3565b61113b565b604080519283526020830191909152016101f2565b6102b561048a366004612eb9565b611320565b61041e61049d366004612ed5565b611411565b6101c86104b0366004612f0b565b61141d565b6101c86104c3366004612d3d565b61142e565b6034546001600160a01b031633146104f35760405163a8baf3bb60e01b815260040160405180910390fd5b816104fd81610fe1565b8190610528576040516314a03bbd60e21b815260040161051f91815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561055657610556612aaf565b600083815260376020526040902060040154610100900460ff1691146105905760405163146e540f60e21b815260040161051f9190612f28565b50600083815260376020526040812060048101805461ff001916610100179055805460068201549192916105cf916001600160a01b0316908690611469565b6001830154600284015491925061060e916001600160a01b03909116906105f69084612f4c565b6105fe61160c565b6001600160a01b03169190611630565b604080516101008101825283546001600160a01b0390811682526001850154166020820152600280850154928201929092526003840154606082015260048401546106d6928591608084019160ff9091169081111561066f5761066f612aaf565b600281111561068057610680612aaf565b81526020016004820160019054906101000a900460ff1660058111156106a8576106a8612aaf565b60058111156106b9576106b9612aaf565b8152602001600582015481526020016006820154815250506116e7565b156106e8576106e88260030154610a07565b6001820154825460028401546001600160a01b03928316929091169087907f6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c490610733908690612f4c565b60405190815260200160405180910390a45050505050565b61075361172e565b61075c81611760565b50565b8061076981610fe1565b819061078b576040516314a03bbd60e21b815260040161051f91815260200190565b506000818152603760205260409020600101546001600160a01b031633146107c65760405163082c005560e41b815260040160405180910390fd5b816107d081610fe1565b81906107f2576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561082057610820612aaf565b600083815260376020526040902060040154610100900460ff16911461085a5760405163146e540f60e21b815260040161051f9190612f28565b5060008381526037602052604090206034546005820154429161088e91600160a01b9091046001600160401b031690612f4c565b106108ac57604051631d7753d560e11b815260040160405180910390fd5b6002810154156108d657600181015460028201546108d6916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b03908116825260018401541660208201526002808401549282019290925260038301546060820152600483015461099e928491608084019160ff9091169081111561093757610937612aaf565b600281111561094857610948612aaf565b81526020016004820160019054906101000a900460ff16600581111561097057610970612aaf565b600581111561098157610981612aaf565b8152602001600582015481526020016006820154815250506117bf565b5060048101805461ff00191661050017905560018101548154600283015460408051918252516001600160a01b03938416939092169187917f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2919081900360200190a450505050565b6034546001600160a01b03163314610a325760405163a8baf3bb60e01b815260040160405180910390fd5b80610a3c81610fe1565b8190610a5e576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610a8c57610a8c612aaf565b600083815260376020526040902060040154610100900460ff169114610ac65760405163146e540f60e21b815260040161051f9190612f28565b5060008281526037602090815260409182902060048101805461020061ff001982161790915583516101008101855282546001600160a01b0390811682526001840154169381019390935260028083015494840194909452600382015460608401529092610b4992918491608084019160ff169081111561066f5761066f612aaf565b6003820154849115610b7757604051634137159360e11b81526004810192909252602482015260440161051f565b5050610b988160020154610b8961160c565b6001600160a01b03169061180d565b6001810154815460028301546040519081526001600160a01b03928316929091169085907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d906020015b60405180910390a4505050565b6000610bf9611872565b610c07336035548585611891565b90505b92915050565b6000610c1a611bd3565b805490915060ff600160401b82041615906001600160401b0316600081158015610c415750825b90506000826001600160401b03166001148015610c5d5750303b155b905081158015610c6b575080155b15610c895760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610cb357845460ff60401b1916600160401b1785555b610cbc33611bf7565b610cc4611c08565b610ccd8a611c18565b610cd689611c89565b610cdf88611760565b610ce887611d0e565b610cf186611d8b565b8315610d3757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6000610c0a82611e18565b610d5661172e565b610d606000611eb5565b565b610d6a61172e565b61075c81611d0e565b600080610d7e611f11565b546001600160a01b031692915050565b6034546001600160a01b03163314610db95760405163a8baf3bb60e01b815260040160405180910390fd5b80610dc381610fe1565b8190610de5576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e1357610e13612aaf565b600083815260376020526040902060040154610100900460ff169114610e4d5760405163146e540f60e21b815260040161051f9190612f28565b506000828152603760205260409020600281015415610e865760018101546002820154610e86916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b039081168252600184015416602082015260028084015492820192909252600383015460608201526004830154610f4e928491608084019160ff90911690811115610ee757610ee7612aaf565b6002811115610ef857610ef8612aaf565b81526020016004820160019054906101000a900460ff166005811115610f2057610f20612aaf565b6005811115610f3157610f31612aaf565b815260200160058201548152602001600682015481525050611f35565b5060048101805461ff0019166103001790556001810154815460028301546040519081526001600160a01b03928316929091169085907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b790602001610be2565b610fb661172e565b61075c81611f70565b610fc761172e565b61075c81611d8b565b610fd861172e565b61075c81611c18565b600080600083815260376020526040902060040154610100900460ff16600581111561100f5761100f612aaf565b141592915050565b600080611022611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e9261105692889290911690600401612f5f565b61012060405180830381865afa158015611074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110989190612f94565b90506110a8838260000151612005565b9392505050565b60006110b9611872565b610c07336035546110ff86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b6000806000339050600061118488888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b905060006111c787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b90506111d38282612532565b8251602080850151604080870151865193870151918701519495929490939261123257604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c40161051f565b505050505050600061127d846000858d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b905060006112c4856000858c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b60008061132c83612563565b603354604051630e02292360e01b81529192506000916001600160a01b0390911690630e02292390611362908590600401612b39565b61010060405180830381865afa158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613036565b805190915082906001600160a01b03166113d2576040516334789d8b60e21b815260040161051f9190612b39565b50604084015160208201519081811461140757604051630a24cfe560e21b81526004810192909252602482015260440161051f565b5050519392505050565b6000610c078383612532565b61142561172e565b61075c81611c89565b61143661172e565b6001600160a01b038116611460576000604051631e4fbdf760e01b815260040161051f9190612b39565b61075c81611eb5565b600080611474611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926114a8928a9290911690600401612f5f565b61012060405180830381865afa1580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190612f94565b60365490915060009061150f90859063ffffffff600160201b9091048116906125f416565b905084158015906115205750808511155b8582909161154a5760405163cc6b7c4160e01b81526004810192909252602482015260440161051f565b5050600061155c86846000015161265b565b60365490915060009061157a9063ffffffff9081169084906125f416565b60335460408051602081018b905280820184905281518082038301815260608201928390526365c1a3ff60e11b9092529293506001600160a01b039091169163cb8347fe916115ce918c91906064016130f9565b600060405180830381600087803b1580156115e857600080fd5b505af11580156115fc573d6000803e3d6000fd5b50929a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156116e25760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015611686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116aa919061311d565b6116e25760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161051f565b505050565b606081015160009080158015906110a857506004600082815260376020526040902060040154610100900460ff16600581111561172657611726612aaf565b149392505050565b33611737610d73565b6001600160a01b031614610d60573360405163118cdaa760e01b815260040161051f9190612b39565b80806117825760405163033f4e0560e01b815260040161051f91815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f8906020015b60405180910390a150565b60006117ca826116e7565b1561180557606082015160008181526037602052604090206004810180546005919061ff001916610100835b02179055506001949350505050565b506000919050565b801561186e57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561185557600080fd5b505af1158015611869573d6000803e3d6000fd5b505050505b5050565b610d603360355461188161160c565b6001600160a01b03169190612671565b6040516001600160601b0319606084901b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506118d881610fe1565b1581906118fb5760405163124a23f160e11b815260040161051f91815260200190565b50603354604051630e02292360e01b81526000916001600160a01b031690630e0229239061192d908890600401612b39565b61010060405180830381865afa15801561194b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196f9190613036565b8051909150856001600160a01b03821661199d576040516334789d8b60e21b815260040161051f9190612b39565b5060006119a8611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926119dc92879290911690600401612f5f565b61012060405180830381865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190612f94565b8051909150600003611a435760405163307efdb760e11b815260040160405180910390fd5b6000611a53838360000151612005565b604080516101008101825286516001600160a01b0390811682528d1660208201529081018b905260006060820152909150608081016001815260200160048152426020808301919091526040918201849052600088815260378252829020835181546001600160a01b039182166001600160a01b031991821617835592850151600180840180549290931691909416179055918301516002808401919091556060840151600384015560808401516004840180549193909260ff19909216918490811115611b2357611b23612aaf565b021790555060a082015160048201805461ff001916610100836005811115611b4d57611b4d612aaf565b021790555060c0820151600582015560e0909101516006909101558351604080518b81526001600160a01b038b811660208301529181018a905260608101849052818d16929091169087907fbfd6e5f61b4aa04b088a513a833705c7c703b907516c1dbfa66f93d1f725d33d9060800160405180910390a4509298975050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611bff6126b2565b61075c816126d7565b611c106126b2565b610d606126df565b6001600160a01b038116611c3f5760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b0316600003611cb35760405163c4411f1160e01b815260040160405180910390fd5b6034805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416908102919091179091556040519081527f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e6906020016117b4565b806207a12063ffffffff82161115611d425760405163432e664360e11b815263ffffffff909116600482015260240161051f565b506036805463ffffffff191663ffffffff83169081179091556040519081527fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab906020016117b4565b8063ffffffff8116620f42401015611dbf57604051634e9374fb60e11b815263ffffffff909116600482015260240161051f565b506036805467ffffffff000000001916600160201b63ffffffff8481168202929092179283905560405192041681527f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d680502906020016117b4565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ebf611f11565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000611f40826116e7565b1561180557606082015160008181526037602052604090206004810180546003919061ff001916610100836117f6565b6001600160a01b038116611f975760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b7f000000000000000000000000000000000000000000000000000000000000000090565b600080612010611fe1565b603354604051631584a17960e21b81526001600160a01b039283169263561285e49261204492899290911690600401612f5f565b60a060405180830381865afa158015612061573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612085919061313f565b6000015190506000603360009054906101000a90046001600160a01b03166001600160a01b0316631ebb7c306040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210491906131be565b6121149063ffffffff16856131db565b9050600061212283836127b1565b61212c9086612f4c565b9695505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526001612175602080612f4c565b61217f9190612f4c565b61218a906060612f4c565b825190811490600161219d602080612f4c565b6121a79190612f4c565b6121b2906060612f4c565b90916121da57604051633fdf342360e01b81526004810192909252602482015260440161051f565b50506000806000848060200190518101906121f591906131f2565b92509250925060006122088660606127c1565b905060006122218761221c60206060612f4c565b6127c1565b90506000612245886020612236816060612f4c565b6122409190612f4c565b612813565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b60008061228984611320565b90506000612295611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926122c992879290911690600401612f5f565b61012060405180830381865afa1580156122e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230b9190612f94565b80519091506000036123305760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a80160405160208183030381529060405280519060200120905061239981610fe1565b1581906123bc5760405163124a23f160e11b815260040161051f91815260200190565b5060006123cd848460000151612005565b60408051610100810182526001600160a01b0387811682528c811660208084019182528385018e8152600060608601818152600260808801818152600460a08a018190524260c08b015260e08a018c90528d8552603790965298909220875181549088166001600160a01b031991821617825595516001808301805492909916919097161790965591518582015590516003850155945190830180549697509395929490939260ff19169190849081111561248a5761248a612aaf565b021790555060a082015160048201805461ff0019166101008360058111156124b4576124b4612aaf565b021790555060c0820151816005015560e08201518160060155905050886001600160a01b0316846001600160a01b0316837ffb609a7fd5eb7947365d2f96d051030cac33a27e3e4923f97ea4e03aaa2bcb148b8b604001518b8760405161251e9493929190613220565b60405180910390a450979650505050505050565b8051825160009114801561254d575081604001518360400151145b8015610c07575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161259382611e18565b90506125ec81856060015186608001518760a001516040516020016125d893929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612865565b949350505050565b600061260383620f4240101590565b80612616575061261682620f4240101590565b838390916126405760405163768bf0eb60e11b81526004810192909252602482015260440161051f565b50620f4240905061265183856131db565b610c079190613250565b600081831061266a5781610c07565b5090919050565b80156116e2576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401611667565b6126ba61288f565b610d6057604051631afcd79f60e31b815260040160405180910390fd5b6114366126b2565b6126e76126b2565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b60008183111561266a5781610c07565b60006127ce602083612f4c565b835190811015906127e0602085612f4c565b909161280857604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016020015190565b6000612820600183612f4c565b83519081101590612832600185612f4c565b909161285a57604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016001015190565b60008060008061287586866128a9565b92509250925061288582826128f6565b5090949350505050565b6000612899611bd3565b54600160401b900460ff16919050565b600080600083516041036128e35760208401516040850151606086015160001a6128d5888285856129af565b9550955095505050506128ef565b50508151600091506002905b9250925092565b600082600381111561290a5761290a612aaf565b03612913575050565b600182600381111561292757612927612aaf565b036129455760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561295957612959612aaf565b0361297a5760405163fce698f760e01b81526004810182905260240161051f565b600382600381111561298e5761298e612aaf565b0361186e576040516335e2f38360e21b81526004810182905260240161051f565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156129e05750600091506003905082612a6a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612a34573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612a6057506000925060019150829050612a6a565b9250600091508190505b9450945094915050565b60008060408385031215612a8757600080fd5b50508035926020909101359150565b600060208284031215612aa857600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612ad557612ad5612aaf565b9052565b6001600160a01b038981168252881660208201526040810187905260608101869052610100810160038610612b1057612b10612aaf565b856080830152612b2360a0830186612ac5565b60c082019390935260e001529695505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461075c57600080fd5b60008060408385031215612b7557600080fd5b8235612b8081612b4d565b946020939093013593505050565b6001600160401b038116811461075c57600080fd5b63ffffffff8116811461075c57600080fd5b600080600080600060a08688031215612bcd57600080fd5b8535612bd881612b4d565b94506020860135612be881612b8e565b9350604086013592506060860135612bff81612ba3565b91506080860135612c0f81612ba3565b809150509295509295909350565b60405160c081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60006060828403128015612cc857600080fd5b50604051600090606081016001600160401b0381118282101715612cfa57634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b600060208284031215612d3257600080fd5b81356110a881612ba3565b600060208284031215612d4f57600080fd5b81356110a881612b4d565b60008083601f840112612d6c57600080fd5b5081356001600160401b03811115612d8357600080fd5b602083019150836020828501011115612d9b57600080fd5b9250929050565b60008060208385031215612db557600080fd5b82356001600160401b03811115612dcb57600080fd5b612dd785828601612d5a565b90969095509350505050565b60008060008060408587031215612df957600080fd5b84356001600160401b03811115612e0f57600080fd5b612e1b87828801612d5a565b90955093505060208501356001600160401b03811115612e3a57600080fd5b612e4687828801612d5a565b95989497509550505050565b600060c08284031215612e6457600080fd5b612e6c612c1d565b8235815260208084013590820152604080840135908201526060808401359082015260808084013590820152905060a082013560ff81168114612eae57600080fd5b60a082015292915050565b600060c08284031215612ecb57600080fd5b610c078383612e52565b6000806101808385031215612ee957600080fd5b612ef38484612e52565b9150612f028460c08501612e52565b90509250929050565b600060208284031215612f1d57600080fd5b81356110a881612b8e565b60208101610c0a8284612ac5565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c0a57610c0a612f36565b6001600160a01b0392831681529116602082015260400190565b8051612f8481612ba3565b919050565b8051612f8481612b8e565b6000610120828403128015612fa857600080fd5b506000612fb3612c53565b835181526020808501519082015260408085015190820152612fd760608501612f79565b6060820152612fe860808501612f89565b6080820152612ff960a08501612f89565b60a082015261300a60c08501612f79565b60c082015261301b60e08501612f89565b60e08201526101009384015193810193909352509092915050565b600061010082840312801561304a57600080fd5b506000613055612c84565b835161306081612b4d565b81526020848101519082015260408085015190820152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e09384015193810193909352509092915050565b6000815180845260005b818110156130d9576020818501810151868301820152016130bd565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190526000906125ec908301846130b3565b60006020828403121561312f57600080fd5b815180151581146110a857600080fd5b600060a082840312801561315257600080fd5b5060405160009060a081016001600160401b038111828210171561318457634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6000602082840312156131d057600080fd5b81516110a881612ba3565b8082028115828204841417610c0a57610c0a612f36565b60008060006060848603121561320757600080fd5b5050815160208301516040909301519094929350919050565b84815283602082015260806040820152600061323f60808301856130b3565b905082606083015295945050505050565b60008261326d57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122015fc51a79247a9edf26bdaf727ea63de7398a97bc3a27ad1e74c0ff8bf34282e64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#ProxyAdmin.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#ProxyAdmin.json deleted file mode 100644 index 942e4b2e5..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/DisputeManager#ProxyAdmin.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ProxyAdmin", - "sourceName": "contracts/proxy/transparent/ProxyAdmin.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract ITransparentUpgradeableProxy", - "name": "proxy", - "type": "address" - }, - { - "internalType": "address", - "name": "implementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager.json deleted file mode 100644 index 359505960..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager.json +++ /dev/null @@ -1,364 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "EpochManager", - "sourceName": "contracts/epochs/EpochManager.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "nameHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractSynced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "epoch", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "epochLength", - "type": "uint256" - } - ], - "name": "EpochLengthUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "epoch", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "EpochRun", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "param", - "type": "string" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "name": "SetController", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_block", - "type": "uint256" - } - ], - "name": "blockHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "blockNum", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "controller", - "outputs": [ - { - "internalType": "contract IController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentEpoch", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentEpochBlock", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentEpochBlockSinceStart", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "epochLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_epoch", - "type": "uint256" - } - ], - "name": "epochsSince", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "epochsSinceUpdate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_epochLength", - "type": "uint256" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "isCurrentEpochRun", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastLengthUpdateBlock", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastLengthUpdateEpoch", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastRunEpoch", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "runEpoch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "setController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_epochLength", - "type": "uint256" - } - ], - "name": "setEpochLength", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "syncAllContracts", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161103461016460003980610aac525080610a83525080610a5a525080610a31525080610a085250806109df5250806109b652506110346000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a26469706673582212204f2e402817a5814bc2adbaf12f2c502ea545dc841b2e7971e3e247c0bfe5bd9464736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a26469706673582212204f2e402817a5814bc2adbaf12f2c502ea545dc841b2e7971e3e247c0bfe5bd9464736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager_Instance.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager_Instance.json deleted file mode 100644 index 359505960..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#EpochManager_Instance.json +++ /dev/null @@ -1,364 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "EpochManager", - "sourceName": "contracts/epochs/EpochManager.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "nameHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractSynced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "epoch", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "epochLength", - "type": "uint256" - } - ], - "name": "EpochLengthUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "epoch", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "EpochRun", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "param", - "type": "string" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "name": "SetController", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_block", - "type": "uint256" - } - ], - "name": "blockHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "blockNum", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "controller", - "outputs": [ - { - "internalType": "contract IController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentEpoch", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentEpochBlock", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentEpochBlockSinceStart", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "epochLength", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_epoch", - "type": "uint256" - } - ], - "name": "epochsSince", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "epochsSinceUpdate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_epochLength", - "type": "uint256" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "isCurrentEpochRun", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastLengthUpdateBlock", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastLengthUpdateEpoch", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastRunEpoch", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "runEpoch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "setController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_epochLength", - "type": "uint256" - } - ], - "name": "setEpochLength", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "syncAllContracts", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161103461016460003980610aac525080610a83525080610a5a525080610a31525080610a085250806109df5250806109b652506110346000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a26469706673582212204f2e402817a5814bc2adbaf12f2c502ea545dc841b2e7971e3e247c0bfe5bd9464736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a26469706673582212204f2e402817a5814bc2adbaf12f2c502ea545dc841b2e7971e3e247c0bfe5bd9464736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#GraphProxy.json deleted file mode 100644 index 2cfb21e41..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/EpochManager#GraphProxy.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GraphProxy", - "sourceName": "contracts/upgrades/GraphProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_impl", - "type": "address" - }, - { - "internalType": "address", - "name": "_admin", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldAdmin", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "ImplementationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldPendingImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newPendingImplementation", - "type": "address" - } - ], - "name": "PendingImplementationUpdated", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "name": "acceptUpgrade", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptUpgradeAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "pendingImplementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newAdmin", - "type": "address" - } - ], - "name": "setAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c", - "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphHorizon_Periphery#Dummy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphHorizon_Periphery#Dummy.json deleted file mode 100644 index 0d073cb30..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphHorizon_Periphery#Dummy.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Dummy", - "sourceName": "contracts/mocks/Dummy.sol", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "deployedBytecode": "0x6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments.json deleted file mode 100644 index 9015bd053..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments.json +++ /dev/null @@ -1,308 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GraphPayments", - "sourceName": "contracts/payments/GraphPayments.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "controller", - "type": "address" - }, - { - "internalType": "uint256", - "name": "protocolPaymentCut", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTokens", - "type": "uint256" - } - ], - "name": "GraphPaymentsInsufficientTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "protocolPaymentCut", - "type": "uint256" - } - ], - "name": "GraphPaymentsInvalidProtocolPaymentCut", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReceiver", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDelegationPool", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensProtocol", - "type": "uint256" - } - ], - "name": "PaymentCollected", - "type": "event" - }, - { - "inputs": [], - "name": "PROTOCOL_PAYMENT_CUT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101e060405234801561001157600080fd5b5060405161132f38038061132f833981016040819052610030916104ee565b816001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b290610372565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e590610372565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e90610372565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015890610372565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019090610372565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb90610372565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020990610372565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024590610372565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a90610372565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a45061033a81620f4240101590565b819061035c5760405163d3097bcb60e01b815260040161007191815260200190565b506101c081905261036b610420565b505061058a565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103ad91815260200190565b602060405180830381865afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee919061051a565b9050826001600160a01b0382166104195760405163218f5add60e11b8152600401610071919061053c565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104705760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104cf5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b03811681146104e957600080fd5b919050565b6000806040838503121561050157600080fd5b61050a836104d2565b9150602083015190509250929050565b60006020828403121561052c57600080fd5b610535826104d2565b9392505050565b602081526000825180602084015260005b8181101561056a576020818601810151604086840101520161054d565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051610d086106276000396000818160560152610104015260005050600050506000505060005050600050506000505060005050600050506000818161012e015281816102c1015261035401526000818160d5015281816102220152818161025a0152818161029201526103f50152610d086000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780636c69783a1461008b5780638129fc1c146100a0578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61009e6100993660046109ab565b6100c8565b005b61009e61047f565b6100bb6100b6366004610a06565b61058d565b6040516100829190610aa1565b6100fc6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163385610676565b6000610128847f0000000000000000000000000000000000000000000000000000000000000000610733565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637573ef4f87868a6040518463ffffffff1660e01b815260040161017c93929190610b21565b602060405180830381865afa158015610199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bd9190610b65565b905060006101cb8683610733565b90506000816101da8686610b94565b6101e49190610b94565b905086818082101561021757604051638bd93bad60e01b8152600481019290925260248201526044015b60405180910390fd5b5050610253846102447f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b0316906107a1565b61028a86867f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190610806565b81156103e0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af115801561032d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103519190610ba7565b507f000000000000000000000000000000000000000000000000000000000000000060405163ca94b0e960e01b81526001600160a01b038a81166004830152888116602483015260448201859052919091169063ca94b0e990606401600060405180830381600087803b1580156103c757600080fd5b505af11580156103db573d6000803e3d6000fd5b505050505b60006103ec8289610bc9565b905061041989827f000000000000000000000000000000000000000000000000000000000000000061027a565b6040805182815260208101859052908101879052606081018690526001600160a01b0380891691908b169033907fb6dba03dcdcd7b7167b22bd6f1462a936eb55f4218b1d4dddff20bdec5703ca39060800160405180910390a450505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104c55750825b905060008267ffffffffffffffff1660011480156104e25750303b155b9050811580156104f0575080155b1561050e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561053857845460ff60401b1916600160401b1785555b610540610841565b831561058657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6040805160008152602081019091526060908267ffffffffffffffff8111156105b8576105b8610bdc565b6040519080825280602002602001820160405280156105eb57816020015b60608152602001906001900390816105d65790505b50915060005b8381101561066d576106483086868481811061060f5761060f610bf2565b90506020028101906106219190610c08565b8560405160200161063493929190610c56565b60405160208183030381529060405261084b565b83828151811061065a5761065a610bf2565b60209081029190910101526001016105f1565b50505b92915050565b801561072e576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156106d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f69190610ba7565b61072e5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161020e565b505050565b600061074283620f4240101590565b80610755575061075582620f4240101590565b8383909161077f5760405163768bf0eb60e11b81526004810192909252602482015260440161020e565b50620f424090506107908385610c7d565b61079a9190610c94565b9392505050565b801561080257604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b1580156107e957600080fd5b505af11580156107fd573d6000803e3d6000fd5b505050505b5050565b801561072e5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016106b3565b6108496108c1565b565b6060600080846001600160a01b0316846040516108689190610cb6565b600060405180830381855af49150503d80600081146108a3576040519150601f19603f3d011682016040523d82523d6000602084013e6108a8565b606091505b50915091506108b885838361090a565b95945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661084957604051631afcd79f60e31b815260040160405180910390fd5b60608261091f5761091a82610966565b61079a565b815115801561093657506001600160a01b0384163b155b1561095f57604051639996b31560e01b81526001600160a01b038516600482015260240161020e565b5092915050565b8051156109765780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109a657600080fd5b919050565b600080600080600060a086880312156109c357600080fd5b8535600381106109d257600080fd5b94506109e06020870161098f565b9350604086013592506109f56060870161098f565b949793965091946080013592915050565b60008060208385031215610a1957600080fd5b823567ffffffffffffffff811115610a3057600080fd5b8301601f81018513610a4157600080fd5b803567ffffffffffffffff811115610a5857600080fd5b8560208260051b8401011115610a6d57600080fd5b6020919091019590945092505050565b60005b83811015610a98578181015183820152602001610a80565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610b1557603f1987860301845281518051808752610af2816020890160208501610a7d565b601f01601f19169590950160209081019550938401939190910190600101610ac9565b50929695505050505050565b6001600160a01b038481168252831660208201526060810160038310610b5757634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610b7757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561067057610670610b7e565b600060208284031215610bb957600080fd5b8151801515811461079a57600080fd5b8181038181111561067057610670610b7e565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610c1f57600080fd5b83018035915067ffffffffffffffff821115610c3a57600080fd5b602001915036819003821315610c4f57600080fd5b9250929050565b828482376000838201600081528351610c73818360208801610a7d565b0195945050505050565b808202811582820484141761067057610670610b7e565b600082610cb157634e487b7160e01b600052601260045260246000fd5b500490565b60008251610cc8818460208701610a7d565b919091019291505056fea2646970667358221220329af098a6f1bd645aa52dabc2029106013cfb67b7e66c24d6a3d3c7009305a864736f6c634300081b0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780636c69783a1461008b5780638129fc1c146100a0578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61009e6100993660046109ab565b6100c8565b005b61009e61047f565b6100bb6100b6366004610a06565b61058d565b6040516100829190610aa1565b6100fc6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163385610676565b6000610128847f0000000000000000000000000000000000000000000000000000000000000000610733565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637573ef4f87868a6040518463ffffffff1660e01b815260040161017c93929190610b21565b602060405180830381865afa158015610199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bd9190610b65565b905060006101cb8683610733565b90506000816101da8686610b94565b6101e49190610b94565b905086818082101561021757604051638bd93bad60e01b8152600481019290925260248201526044015b60405180910390fd5b5050610253846102447f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b0316906107a1565b61028a86867f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190610806565b81156103e0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af115801561032d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103519190610ba7565b507f000000000000000000000000000000000000000000000000000000000000000060405163ca94b0e960e01b81526001600160a01b038a81166004830152888116602483015260448201859052919091169063ca94b0e990606401600060405180830381600087803b1580156103c757600080fd5b505af11580156103db573d6000803e3d6000fd5b505050505b60006103ec8289610bc9565b905061041989827f000000000000000000000000000000000000000000000000000000000000000061027a565b6040805182815260208101859052908101879052606081018690526001600160a01b0380891691908b169033907fb6dba03dcdcd7b7167b22bd6f1462a936eb55f4218b1d4dddff20bdec5703ca39060800160405180910390a450505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104c55750825b905060008267ffffffffffffffff1660011480156104e25750303b155b9050811580156104f0575080155b1561050e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561053857845460ff60401b1916600160401b1785555b610540610841565b831561058657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6040805160008152602081019091526060908267ffffffffffffffff8111156105b8576105b8610bdc565b6040519080825280602002602001820160405280156105eb57816020015b60608152602001906001900390816105d65790505b50915060005b8381101561066d576106483086868481811061060f5761060f610bf2565b90506020028101906106219190610c08565b8560405160200161063493929190610c56565b60405160208183030381529060405261084b565b83828151811061065a5761065a610bf2565b60209081029190910101526001016105f1565b50505b92915050565b801561072e576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156106d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f69190610ba7565b61072e5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161020e565b505050565b600061074283620f4240101590565b80610755575061075582620f4240101590565b8383909161077f5760405163768bf0eb60e11b81526004810192909252602482015260440161020e565b50620f424090506107908385610c7d565b61079a9190610c94565b9392505050565b801561080257604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b1580156107e957600080fd5b505af11580156107fd573d6000803e3d6000fd5b505050505b5050565b801561072e5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016106b3565b6108496108c1565b565b6060600080846001600160a01b0316846040516108689190610cb6565b600060405180830381855af49150503d80600081146108a3576040519150601f19603f3d011682016040523d82523d6000602084013e6108a8565b606091505b50915091506108b885838361090a565b95945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661084957604051631afcd79f60e31b815260040160405180910390fd5b60608261091f5761091a82610966565b61079a565b815115801561093657506001600160a01b0384163b155b1561095f57604051639996b31560e01b81526001600160a01b038516600482015260240161020e565b5092915050565b8051156109765780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109a657600080fd5b919050565b600080600080600060a086880312156109c357600080fd5b8535600381106109d257600080fd5b94506109e06020870161098f565b9350604086013592506109f56060870161098f565b949793965091946080013592915050565b60008060208385031215610a1957600080fd5b823567ffffffffffffffff811115610a3057600080fd5b8301601f81018513610a4157600080fd5b803567ffffffffffffffff811115610a5857600080fd5b8560208260051b8401011115610a6d57600080fd5b6020919091019590945092505050565b60005b83811015610a98578181015183820152602001610a80565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610b1557603f1987860301845281518051808752610af2816020890160208501610a7d565b601f01601f19169590950160209081019550938401939190910190600101610ac9565b50929695505050505050565b6001600160a01b038481168252831660208201526060810160038310610b5757634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610b7757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561067057610670610b7e565b600060208284031215610bb957600080fd5b8151801515811461079a57600080fd5b8181038181111561067057610670610b7e565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610c1f57600080fd5b83018035915067ffffffffffffffff821115610c3a57600080fd5b602001915036819003821315610c4f57600080fd5b9250929050565b828482376000838201600081528351610c73818360208801610a7d565b0195945050505050565b808202811582820484141761067057610670610b7e565b600082610cb157634e487b7160e01b600052601260045260246000fd5b500490565b60008251610cc8818460208701610a7d565b919091019291505056fea2646970667358221220329af098a6f1bd645aa52dabc2029106013cfb67b7e66c24d6a3d3c7009305a864736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments_Instance.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments_Instance.json deleted file mode 100644 index 9015bd053..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphPayments#GraphPayments_Instance.json +++ /dev/null @@ -1,308 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GraphPayments", - "sourceName": "contracts/payments/GraphPayments.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "controller", - "type": "address" - }, - { - "internalType": "uint256", - "name": "protocolPaymentCut", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTokens", - "type": "uint256" - } - ], - "name": "GraphPaymentsInsufficientTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "protocolPaymentCut", - "type": "uint256" - } - ], - "name": "GraphPaymentsInvalidProtocolPaymentCut", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReceiver", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDelegationPool", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensProtocol", - "type": "uint256" - } - ], - "name": "PaymentCollected", - "type": "event" - }, - { - "inputs": [], - "name": "PROTOCOL_PAYMENT_CUT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101e060405234801561001157600080fd5b5060405161132f38038061132f833981016040819052610030916104ee565b816001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b290610372565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e590610372565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e90610372565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015890610372565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019090610372565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb90610372565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020990610372565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024590610372565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a90610372565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a45061033a81620f4240101590565b819061035c5760405163d3097bcb60e01b815260040161007191815260200190565b506101c081905261036b610420565b505061058a565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103ad91815260200190565b602060405180830381865afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee919061051a565b9050826001600160a01b0382166104195760405163218f5add60e11b8152600401610071919061053c565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104705760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104cf5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b03811681146104e957600080fd5b919050565b6000806040838503121561050157600080fd5b61050a836104d2565b9150602083015190509250929050565b60006020828403121561052c57600080fd5b610535826104d2565b9392505050565b602081526000825180602084015260005b8181101561056a576020818601810151604086840101520161054d565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051610d086106276000396000818160560152610104015260005050600050506000505060005050600050506000505060005050600050506000818161012e015281816102c1015261035401526000818160d5015281816102220152818161025a0152818161029201526103f50152610d086000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780636c69783a1461008b5780638129fc1c146100a0578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61009e6100993660046109ab565b6100c8565b005b61009e61047f565b6100bb6100b6366004610a06565b61058d565b6040516100829190610aa1565b6100fc6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163385610676565b6000610128847f0000000000000000000000000000000000000000000000000000000000000000610733565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637573ef4f87868a6040518463ffffffff1660e01b815260040161017c93929190610b21565b602060405180830381865afa158015610199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bd9190610b65565b905060006101cb8683610733565b90506000816101da8686610b94565b6101e49190610b94565b905086818082101561021757604051638bd93bad60e01b8152600481019290925260248201526044015b60405180910390fd5b5050610253846102447f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b0316906107a1565b61028a86867f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190610806565b81156103e0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af115801561032d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103519190610ba7565b507f000000000000000000000000000000000000000000000000000000000000000060405163ca94b0e960e01b81526001600160a01b038a81166004830152888116602483015260448201859052919091169063ca94b0e990606401600060405180830381600087803b1580156103c757600080fd5b505af11580156103db573d6000803e3d6000fd5b505050505b60006103ec8289610bc9565b905061041989827f000000000000000000000000000000000000000000000000000000000000000061027a565b6040805182815260208101859052908101879052606081018690526001600160a01b0380891691908b169033907fb6dba03dcdcd7b7167b22bd6f1462a936eb55f4218b1d4dddff20bdec5703ca39060800160405180910390a450505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104c55750825b905060008267ffffffffffffffff1660011480156104e25750303b155b9050811580156104f0575080155b1561050e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561053857845460ff60401b1916600160401b1785555b610540610841565b831561058657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6040805160008152602081019091526060908267ffffffffffffffff8111156105b8576105b8610bdc565b6040519080825280602002602001820160405280156105eb57816020015b60608152602001906001900390816105d65790505b50915060005b8381101561066d576106483086868481811061060f5761060f610bf2565b90506020028101906106219190610c08565b8560405160200161063493929190610c56565b60405160208183030381529060405261084b565b83828151811061065a5761065a610bf2565b60209081029190910101526001016105f1565b50505b92915050565b801561072e576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156106d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f69190610ba7565b61072e5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161020e565b505050565b600061074283620f4240101590565b80610755575061075582620f4240101590565b8383909161077f5760405163768bf0eb60e11b81526004810192909252602482015260440161020e565b50620f424090506107908385610c7d565b61079a9190610c94565b9392505050565b801561080257604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b1580156107e957600080fd5b505af11580156107fd573d6000803e3d6000fd5b505050505b5050565b801561072e5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016106b3565b6108496108c1565b565b6060600080846001600160a01b0316846040516108689190610cb6565b600060405180830381855af49150503d80600081146108a3576040519150601f19603f3d011682016040523d82523d6000602084013e6108a8565b606091505b50915091506108b885838361090a565b95945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661084957604051631afcd79f60e31b815260040160405180910390fd5b60608261091f5761091a82610966565b61079a565b815115801561093657506001600160a01b0384163b155b1561095f57604051639996b31560e01b81526001600160a01b038516600482015260240161020e565b5092915050565b8051156109765780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109a657600080fd5b919050565b600080600080600060a086880312156109c357600080fd5b8535600381106109d257600080fd5b94506109e06020870161098f565b9350604086013592506109f56060870161098f565b949793965091946080013592915050565b60008060208385031215610a1957600080fd5b823567ffffffffffffffff811115610a3057600080fd5b8301601f81018513610a4157600080fd5b803567ffffffffffffffff811115610a5857600080fd5b8560208260051b8401011115610a6d57600080fd5b6020919091019590945092505050565b60005b83811015610a98578181015183820152602001610a80565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610b1557603f1987860301845281518051808752610af2816020890160208501610a7d565b601f01601f19169590950160209081019550938401939190910190600101610ac9565b50929695505050505050565b6001600160a01b038481168252831660208201526060810160038310610b5757634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610b7757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561067057610670610b7e565b600060208284031215610bb957600080fd5b8151801515811461079a57600080fd5b8181038181111561067057610670610b7e565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610c1f57600080fd5b83018035915067ffffffffffffffff821115610c3a57600080fd5b602001915036819003821315610c4f57600080fd5b9250929050565b828482376000838201600081528351610c73818360208801610a7d565b0195945050505050565b808202811582820484141761067057610670610b7e565b600082610cb157634e487b7160e01b600052601260045260246000fd5b500490565b60008251610cc8818460208701610a7d565b919091019291505056fea2646970667358221220329af098a6f1bd645aa52dabc2029106013cfb67b7e66c24d6a3d3c7009305a864736f6c634300081b0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780636c69783a1461008b5780638129fc1c146100a0578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61009e6100993660046109ab565b6100c8565b005b61009e61047f565b6100bb6100b6366004610a06565b61058d565b6040516100829190610aa1565b6100fc6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163385610676565b6000610128847f0000000000000000000000000000000000000000000000000000000000000000610733565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637573ef4f87868a6040518463ffffffff1660e01b815260040161017c93929190610b21565b602060405180830381865afa158015610199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bd9190610b65565b905060006101cb8683610733565b90506000816101da8686610b94565b6101e49190610b94565b905086818082101561021757604051638bd93bad60e01b8152600481019290925260248201526044015b60405180910390fd5b5050610253846102447f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b0316906107a1565b61028a86867f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190610806565b81156103e0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af115801561032d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103519190610ba7565b507f000000000000000000000000000000000000000000000000000000000000000060405163ca94b0e960e01b81526001600160a01b038a81166004830152888116602483015260448201859052919091169063ca94b0e990606401600060405180830381600087803b1580156103c757600080fd5b505af11580156103db573d6000803e3d6000fd5b505050505b60006103ec8289610bc9565b905061041989827f000000000000000000000000000000000000000000000000000000000000000061027a565b6040805182815260208101859052908101879052606081018690526001600160a01b0380891691908b169033907fb6dba03dcdcd7b7167b22bd6f1462a936eb55f4218b1d4dddff20bdec5703ca39060800160405180910390a450505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104c55750825b905060008267ffffffffffffffff1660011480156104e25750303b155b9050811580156104f0575080155b1561050e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561053857845460ff60401b1916600160401b1785555b610540610841565b831561058657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6040805160008152602081019091526060908267ffffffffffffffff8111156105b8576105b8610bdc565b6040519080825280602002602001820160405280156105eb57816020015b60608152602001906001900390816105d65790505b50915060005b8381101561066d576106483086868481811061060f5761060f610bf2565b90506020028101906106219190610c08565b8560405160200161063493929190610c56565b60405160208183030381529060405261084b565b83828151811061065a5761065a610bf2565b60209081029190910101526001016105f1565b50505b92915050565b801561072e576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156106d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f69190610ba7565b61072e5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161020e565b505050565b600061074283620f4240101590565b80610755575061075582620f4240101590565b8383909161077f5760405163768bf0eb60e11b81526004810192909252602482015260440161020e565b50620f424090506107908385610c7d565b61079a9190610c94565b9392505050565b801561080257604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b1580156107e957600080fd5b505af11580156107fd573d6000803e3d6000fd5b505050505b5050565b801561072e5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016106b3565b6108496108c1565b565b6060600080846001600160a01b0316846040516108689190610cb6565b600060405180830381855af49150503d80600081146108a3576040519150601f19603f3d011682016040523d82523d6000602084013e6108a8565b606091505b50915091506108b885838361090a565b95945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661084957604051631afcd79f60e31b815260040160405180910390fd5b60608261091f5761091a82610966565b61079a565b815115801561093657506001600160a01b0384163b155b1561095f57604051639996b31560e01b81526001600160a01b038516600482015260240161020e565b5092915050565b8051156109765780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109a657600080fd5b919050565b600080600080600060a086880312156109c357600080fd5b8535600381106109d257600080fd5b94506109e06020870161098f565b9350604086013592506109f56060870161098f565b949793965091946080013592915050565b60008060208385031215610a1957600080fd5b823567ffffffffffffffff811115610a3057600080fd5b8301601f81018513610a4157600080fd5b803567ffffffffffffffff811115610a5857600080fd5b8560208260051b8401011115610a6d57600080fd5b6020919091019590945092505050565b60005b83811015610a98578181015183820152602001610a80565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610b1557603f1987860301845281518051808752610af2816020890160208501610a7d565b601f01601f19169590950160209081019550938401939190910190600101610ac9565b50929695505050505050565b6001600160a01b038481168252831660208201526060810160038310610b5757634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610b7757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561067057610670610b7e565b600060208284031215610bb957600080fd5b8151801515811461079a57600080fd5b8181038181111561067057610670610b7e565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610c1f57600080fd5b83018035915067ffffffffffffffff821115610c3a57600080fd5b602001915036819003821315610c4f57600080fd5b9250929050565b828482376000838201600081528351610c73818360208801610a7d565b0195945050505050565b808202811582820484141761067057610670610b7e565b600082610cb157634e487b7160e01b600052601260045260246000fd5b500490565b60008251610cc8818460208701610a7d565b919091019291505056fea2646970667358221220329af098a6f1bd645aa52dabc2029106013cfb67b7e66c24d6a3d3c7009305a864736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphProxyAdmin#GraphProxyAdmin.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphProxyAdmin#GraphProxyAdmin.json deleted file mode 100644 index 07f0623c5..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphProxyAdmin#GraphProxyAdmin.json +++ /dev/null @@ -1,234 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GraphProxyAdmin", - "sourceName": "contracts/upgrades/GraphProxyAdmin.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "NewOwnership", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "NewPendingOwnership", - "type": "event" - }, - { - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract GraphUpgradeable", - "name": "_implementation", - "type": "address" - }, - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract GraphUpgradeable", - "name": "_implementation", - "type": "address" - }, - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "address", - "name": "_newAdmin", - "type": "address" - } - ], - "name": "changeProxyAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "getProxyAdmin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "getProxyImplementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "getProxyPendingImplementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "governor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pendingGovernor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newGovernor", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "address", - "name": "_implementation", - "type": "address" - } - ], - "name": "upgrade", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506100243361002960201b610a0c1760201c565b61004b565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610a648061005a6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637eff275e116100715780637eff275e146101b157806399a88ec4146101df578063e3056a341461020d578063eb451a0214610215578063f2fde38b14610243578063f3b7dead14610269576100a9565b806307ebde0e146100ae5780630c340a2414610139578063204e1c7a1461015d5780635bf410eb1461018357806379ba5097146101a9575b600080fd5b610137600480360360608110156100c457600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b50909250905061028f565b005b610141610388565b604080516001600160a01b039092168252519081900360200190f35b6101416004803603602081101561017357600080fd5b50356001600160a01b0316610397565b6101416004803603602081101561019957600080fd5b50356001600160a01b031661046a565b610137610525565b610137600480360360408110156101c757600080fd5b506001600160a01b0381358116916020013516610633565b610137600480360360408110156101f557600080fd5b506001600160a01b03813581169160200135166106f6565b61014161079d565b6101376004803603604081101561022b57600080fd5b506001600160a01b03813581169160200135166107ac565b6101376004803603602081101561025957600080fd5b50356001600160a01b0316610853565b6101416004803603602081101561027f57600080fd5b50356001600160a01b0316610951565b6000546001600160a01b031633146102e7576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b836001600160a01b0316639ce7abe58484846040518463ffffffff1660e01b815260040180846001600160a01b03168152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050945050505050600060405180830381600087803b15801561036a57600080fd5b505af115801561037e573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031681565b6000806000836001600160a01b03166040518080635c60da1b60e01b8152506004019050600060405180830381855afa9150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b50915091508161044b576040805162461bcd60e51b8152602060048201526016602482015275141c9bde1e481a5b5c1b0818d85b1b0819985a5b195960521b604482015290519081900360640190fd5b80806020019051602081101561046057600080fd5b5051949350505050565b6000806000836001600160a01b0316604051808063396f7b2360e01b8152506004019050600060405180830381855afa9150503d80600081146104c9576040519150601f19603f3d011682016040523d82523d6000602084013e6104ce565b606091505b50915091508161044b576040805162461bcd60e51b815260206004820152601d60248201527f50726f78792070656e64696e67496d706c2063616c6c206661696c6564000000604482015290519081900360640190fd5b6001546001600160a01b031680158015906105485750336001600160a01b038216145b610599576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000546001600160a01b0316331461068b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b031663704b6c02826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b505af11580156106ee573d6000803e3d6000fd5b505050505050565b6000546001600160a01b0316331461074e576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b0316633659cfe6826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b6001546001600160a01b031681565b6000546001600160a01b03163314610804576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b031663a2594d82826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b6000546001600160a01b031633146108ab576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b0381166108fd576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000806000836001600160a01b031660405180806303e1469160e61b8152506004019050600060405180830381855afa9150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b50915091508161044b576040805162461bcd60e51b815260206004820152601760248201527f50726f78792061646d696e2063616c6c206661696c6564000000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b039290921691909117905556fea26469706673582212208b271ee4c7625d89f662c15e90f70e142245bf56f0595043fe9af742b09d958c64736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80637eff275e116100715780637eff275e146101b157806399a88ec4146101df578063e3056a341461020d578063eb451a0214610215578063f2fde38b14610243578063f3b7dead14610269576100a9565b806307ebde0e146100ae5780630c340a2414610139578063204e1c7a1461015d5780635bf410eb1461018357806379ba5097146101a9575b600080fd5b610137600480360360608110156100c457600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b50909250905061028f565b005b610141610388565b604080516001600160a01b039092168252519081900360200190f35b6101416004803603602081101561017357600080fd5b50356001600160a01b0316610397565b6101416004803603602081101561019957600080fd5b50356001600160a01b031661046a565b610137610525565b610137600480360360408110156101c757600080fd5b506001600160a01b0381358116916020013516610633565b610137600480360360408110156101f557600080fd5b506001600160a01b03813581169160200135166106f6565b61014161079d565b6101376004803603604081101561022b57600080fd5b506001600160a01b03813581169160200135166107ac565b6101376004803603602081101561025957600080fd5b50356001600160a01b0316610853565b6101416004803603602081101561027f57600080fd5b50356001600160a01b0316610951565b6000546001600160a01b031633146102e7576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b836001600160a01b0316639ce7abe58484846040518463ffffffff1660e01b815260040180846001600160a01b03168152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050945050505050600060405180830381600087803b15801561036a57600080fd5b505af115801561037e573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031681565b6000806000836001600160a01b03166040518080635c60da1b60e01b8152506004019050600060405180830381855afa9150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b50915091508161044b576040805162461bcd60e51b8152602060048201526016602482015275141c9bde1e481a5b5c1b0818d85b1b0819985a5b195960521b604482015290519081900360640190fd5b80806020019051602081101561046057600080fd5b5051949350505050565b6000806000836001600160a01b0316604051808063396f7b2360e01b8152506004019050600060405180830381855afa9150503d80600081146104c9576040519150601f19603f3d011682016040523d82523d6000602084013e6104ce565b606091505b50915091508161044b576040805162461bcd60e51b815260206004820152601d60248201527f50726f78792070656e64696e67496d706c2063616c6c206661696c6564000000604482015290519081900360640190fd5b6001546001600160a01b031680158015906105485750336001600160a01b038216145b610599576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000546001600160a01b0316331461068b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b031663704b6c02826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b505af11580156106ee573d6000803e3d6000fd5b505050505050565b6000546001600160a01b0316331461074e576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b0316633659cfe6826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b6001546001600160a01b031681565b6000546001600160a01b03163314610804576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b031663a2594d82826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b6000546001600160a01b031633146108ab576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b0381166108fd576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000806000836001600160a01b031660405180806303e1469160e61b8152506004019050600060405180830381855afa9150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b50915091508161044b576040805162461bcd60e51b815260206004820152601760248201527f50726f78792061646d696e2063616c6c206661696c6564000000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b039290921691909117905556fea26469706673582212208b271ee4c7625d89f662c15e90f70e142245bf56f0595043fe9af742b09d958c64736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphToken#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphToken#GraphProxy.json deleted file mode 100644 index 2cfb21e41..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphToken#GraphProxy.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GraphProxy", - "sourceName": "contracts/upgrades/GraphProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_impl", - "type": "address" - }, - { - "internalType": "address", - "name": "_admin", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldAdmin", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "ImplementationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldPendingImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newPendingImplementation", - "type": "address" - } - ], - "name": "PendingImplementationUpdated", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "name": "acceptUpgrade", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptUpgradeAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "pendingImplementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newAdmin", - "type": "address" - } - ], - "name": "setAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c", - "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphToken#GraphToken.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphToken#GraphToken.json deleted file mode 100644 index 5889eeaf0..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphToken#GraphToken.json +++ /dev/null @@ -1,750 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "L2GraphToken", - "sourceName": "contracts/l2/token/L2GraphToken.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "BridgeBurned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "BridgeMinted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "gateway", - "type": "address" - } - ], - "name": "GatewaySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "l1Address", - "type": "address" - } - ], - "name": "L1AddressSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "MinterAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "MinterRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "NewOwnership", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "NewPendingOwnership", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "addMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "bridgeBurn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "bridgeMint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "gateway", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "governor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "isMinter", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "l1Address", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pendingGovernor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "address", - "name": "_spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "_v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "_r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "removeMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gw", - "type": "address" - } - ], - "name": "setGateway", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_addr", - "type": "address" - } - ], - "name": "setL1Address", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newGovernor", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101206040527fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726080527fefcec85968da792893fa503eb21730083fc6c50ed5461e56163b28335b2a5f9660a0527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60c0527fe33842a7acd1d5a1d28f25a931703e5605152dc48d64dc4716efdae1f565959160e0527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610100523480156100c657600080fd5b5060805160a05160c05160e0516101005161261e61010660003980611547525080611eae525080611e5e525080611e3d525080611e1c525061261e6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638c2a993e1161011a578063a9059cbb116100ad578063ca52d7d71161007c578063ca52d7d71461067a578063d505accf146106a0578063dd62ed3e146106f1578063e3056a341461071f578063f2fde38b14610727576101fb565b8063a9059cbb146105fa578063aa271e1a14610626578063c2eeeebd1461064c578063c4d66de814610654576101fb565b806398650275116100e957806398650275146105205780639ce7abe514610528578063a2594d82146105a8578063a457c2d7146105ce576101fb565b80638c2a993e146104a057806390646b4a146104cc57806395d89b41146104f2578063983b2d56146104fa576101fb565b8063395093511161019257806374f4f5471161016157806374f4f5471461041a57806379ba50971461044657806379cc67901461044e5780637ecebe001461047a576101fb565b8063395093511461037f57806340c10f19146103ab57806342966c68146103d757806370a08231146103f4576101fb565b806318160ddd116101ce57806318160ddd146102e957806323b872dd146103035780633092afd514610339578063313ce56714610361576101fb565b806306fdde0314610200578063095ea7b31461027d5780630c340a24146102bd578063116191b6146102e1575b600080fd5b61020861074d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024257818101518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a96004803603604081101561029357600080fd5b506001600160a01b0381351690602001356107e3565b604080519115158252519081900360200190f35b6102c5610800565b604080516001600160a01b039092168252519081900360200190f35b6102c561080f565b6102f161081e565b60408051918252519081900360200190f35b6102a96004803603606081101561031957600080fd5b506001600160a01b03813581169160208101359091169060400135610824565b61035f6004803603602081101561034f57600080fd5b50356001600160a01b03166108ab565b005b610369610958565b6040805160ff9092168252519081900360200190f35b6102a96004803603604081101561039557600080fd5b506001600160a01b038135169060200135610961565b61035f600480360360408110156103c157600080fd5b506001600160a01b0381351690602001356109af565b61035f600480360360208110156103ed57600080fd5b5035610a0e565b6102f16004803603602081101561040a57600080fd5b50356001600160a01b0316610a1f565b61035f6004803603604081101561043057600080fd5b506001600160a01b038135169060200135610a3a565b61035f610ad4565b61035f6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610be2565b6102f16004803603602081101561049057600080fd5b50356001600160a01b0316610c3c565b61035f600480360360408110156104b657600080fd5b506001600160a01b038135169060200135610c4e565b61035f600480360360208110156104e257600080fd5b50356001600160a01b0316610ce8565b610208610de1565b61035f6004803603602081101561051057600080fd5b50356001600160a01b0316610e42565b61035f610eef565b61035f6004803603604081101561053e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561056957600080fd5b82018360208201111561057b57600080fd5b8035906020019184600183028401116401000000008311171561059d57600080fd5b509092509050610f43565b61035f600480360360208110156105be57600080fd5b50356001600160a01b0316611099565b6102a9600480360360408110156105e457600080fd5b506001600160a01b0381351690602001356111b4565b6102a96004803603604081101561061057600080fd5b506001600160a01b03813516906020013561121c565b6102a96004803603602081101561063c57600080fd5b50356001600160a01b0316611230565b6102c561124e565b61035f6004803603602081101561066a57600080fd5b50356001600160a01b031661125d565b61035f6004803603602081101561069057600080fd5b50356001600160a01b03166113d3565b61035f600480360360e08110156106b657600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356114cf565b6102f16004803603604081101561070757600080fd5b506001600160a01b0381358116916020013516611680565b6102c56116ab565b61035f6004803603602081101561073d57600080fd5b50356001600160a01b03166116ba565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b820191906000526020600020905b8154815290600101906020018083116107bc57829003601f168201915b5050505050905090565b60006107f76107f06117b8565b84846117bc565b50600192915050565b6000546001600160a01b031681565b60ca546001600160a01b031681565b60365490565b60006108318484846118a8565b6108a18461083d6117b8565b61089c8560405180606001604052806028815260200161250e602891396001600160a01b038a1660009081526035602052604081209061087b6117b8565b6001600160a01b031681526020810191909152604001600020549190611a05565b6117bc565b5060019392505050565b6000546001600160a01b03163314610903576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b61090c81611230565b61094c576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b61095581611a9c565b50565b60395460ff1690565b60006107f761096e6117b8565b8461089c856035600061097f6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611ae5565b6109b833611230565b610a00576040805162461bcd60e51b815260206004820152601460248201527313db9b1e481b5a5b9d195c8818d85b8818d85b1b60621b604482015290519081900360640190fd5b610a0a8282611b46565b5050565b610955610a196117b8565b82611c38565b6001600160a01b031660009081526034602052604090205490565b60ca546001600160a01b03163314610a87576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610a918282610be2565b6040805182815290516001600160a01b038416917fe87aeeb22c5753db7f543198a4c3089d2233040ea9d1cab0eaa3b96d94d4fc6e919081900360200190a25050565b6001546001600160a01b03168015801590610af75750336001600160a01b038216145b610b48576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000610c198260405180606001604052806024815260200161253660249139610c1286610c0d6117b8565b611680565b9190611a05565b9050610c2d83610c276117b8565b836117bc565b610c378383611c38565b505050565b609a6020526000908152604090205481565b60ca546001600160a01b03163314610c9b576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610ca58282611b46565b6040805182815290516001600160a01b038416917fae4b6e741e38054ad6705655cc56c91c184f6768f76b41e10803e2766d89e19f919081900360200190a25050565b6000546001600160a01b03163314610d40576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610d8d576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4741544557415960881b604482015290519081900360640190fd5b60ca80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f5317fa585931182194fed99f2ea5f2efd38af9cff9724273704c8501c521e34b9181900360200190a150565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b6000546001600160a01b03163314610e9a576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610ee6576040805162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa6a4a72a22a960911b604482015290519081900360640190fd5b61095581611d34565b610ef833611230565b610f38576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b610f4133611a9c565b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b505050506040513d6020811015610fa957600080fd5b50516001600160a01b03163314611007576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156110d557600080fd5b505af11580156110e9573d6000803e3d6000fd5b505050506040513d60208110156110ff57600080fd5b50516001600160a01b0316331461115d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b505050505050565b60006107f76111c16117b8565b8461089c856040518060600160405280602581526020016125c460259139603560006111eb6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611a05565b60006107f76112296117b8565b84846118a8565b6001600160a01b031660009081526099602052604090205460ff1690565b60cb546001600160a01b031681565b611265611d80565b6001600160a01b0316336001600160a01b0316146112c0576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600154600160a81b900460ff16806112db57506112db611da5565b806112f05750600154600160a01b900460ff16155b61132b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015611362576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b6001600160a01b0382166113b1576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6113bc826000611db6565b8015610a0a576001805460ff60a81b191690555050565b6000546001600160a01b0316331461142b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661147b576040805162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c315f4144445245535360701b604482015290519081900360640190fd5b60cb80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f603c0b2e4494ac82839a70be8b6c660d7d042ccfe71c3ce0e5157f59090e74459181900360200190a150565b8315806114dc5750834211155b611523576040805162461bcd60e51b815260206004820152601360248201527211d4950e88195e1c1a5c9959081c195c9b5a5d606a1b604482015290519081900360640190fd5b6098546001600160a01b038089166000818152609a602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948c166060850152608084018b905260a084019490945260c08084018a90528451808503909101815260e08401855280519082012061190160f01b61010085015261010284019590955261012280840195909552835180840390950185526101429092019092528251920191909120906115ed82868686611ef3565b9050806001600160a01b0316896001600160a01b03161461164b576040805162461bcd60e51b815260206004820152601360248201527211d4950e881a5b9d985b1a59081c195c9b5a5d606a1b604482015290519081900360640190fd5b6001600160a01b0389166000908152609a60205260409020805460010190556116758989896117bc565b505050505050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b6001546001600160a01b031681565b6000546001600160a01b03163314611712576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116611764576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b0383166118015760405162461bcd60e51b81526004018080602001828103825260248152602001806125a06024913960400191505060405180910390fd5b6001600160a01b0382166118465760405162461bcd60e51b81526004018080602001828103825260228152602001806124546022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166118ed5760405162461bcd60e51b815260040180806020018281038252602581526020018061257b6025913960400191505060405180910390fd5b6001600160a01b0382166119325760405162461bcd60e51b815260040180806020018281038252602381526020018061240f6023913960400191505060405180910390fd5b61193d838383610c37565b61197a81604051806060016040528060268152602001612476602691396001600160a01b0386166000908152603460205260409020549190611a05565b6001600160a01b0380851660009081526034602052604080822093909355908416815220546119a99082611ae5565b6001600160a01b0380841660008181526034602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611a945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a59578181015183820152602001611a41565b50505050905090810190601f168015611a865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038116600081815260996020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b600082820183811015611b3f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611ba1576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611bad60008383610c37565b603654611bba9082611ae5565b6036556001600160a01b038216600090815260346020526040902054611be09082611ae5565b6001600160a01b03831660008181526034602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216611c7d5760405162461bcd60e51b815260040180806020018281038252602181526020018061255a6021913960400191505060405180910390fd5b611c8982600083610c37565b611cc681604051806060016040528060228152602001612432602291396001600160a01b0385166000908152603460205260409020549190611a05565b6001600160a01b038316600090815260346020526040902055603654611cec9082612071565b6036556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038116600081815260996020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611db0306120ce565b15905090565b611dfe6040518060400160405280600b81526020016a23b930b834102a37b5b2b760a91b8152506040518060400160405280600381526020016211d49560ea1b8152506120d4565b611e07826121a0565b611e118282611b46565b611e1a82611d34565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611e856121c2565b6040805160208082019690965280820194909452606084019290925260808301523060a08301527f000000000000000000000000000000000000000000000000000000000000000060c0808401919091528151808403909101815260e0909201905280519101206098555050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611f545760405162461bcd60e51b815260040180806020018281038252602281526020018061249c6022913960400191505060405180910390fd5b8360ff16601b1480611f6957508360ff16601c145b611fa45760405162461bcd60e51b81526004018080602001828103825260228152602001806124ec6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612000573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612068576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b6000828211156120c8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600154600160a81b900460ff16806120ef57506120ef611da5565b806121045750600154600160a01b900460ff16155b61213f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612176576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b61217e6121c6565b612188838361227e565b8015610c37576001805460ff60a81b19169055505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b4690565b600154600160a81b900460ff16806121e157506121e1611da5565b806121f65750600154600160a01b900460ff16155b6122315760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612268576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b8015610955576001805460ff60a81b1916905550565b600154600160a81b900460ff16806122995750612299611da5565b806122ae5750600154600160a01b900460ff16155b6122e95760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612320576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b825161233390603790602086019061236d565b50815161234790603890602085019061236d565b506039805460ff191660121790558015610c37576001805460ff60a81b19169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826123a357600085556123e9565b82601f106123bc57805160ff19168380011785556123e9565b828001600101855582156123e9579182015b828111156123e95782518255916020019190600101906123ce565b506123f59291506123f9565b5090565b5b808211156123f557600081556001016123fa56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ff9ed43c1b257716d58111b6358b62039b7d7359bc9f0f142332535a4370cafe64736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638c2a993e1161011a578063a9059cbb116100ad578063ca52d7d71161007c578063ca52d7d71461067a578063d505accf146106a0578063dd62ed3e146106f1578063e3056a341461071f578063f2fde38b14610727576101fb565b8063a9059cbb146105fa578063aa271e1a14610626578063c2eeeebd1461064c578063c4d66de814610654576101fb565b806398650275116100e957806398650275146105205780639ce7abe514610528578063a2594d82146105a8578063a457c2d7146105ce576101fb565b80638c2a993e146104a057806390646b4a146104cc57806395d89b41146104f2578063983b2d56146104fa576101fb565b8063395093511161019257806374f4f5471161016157806374f4f5471461041a57806379ba50971461044657806379cc67901461044e5780637ecebe001461047a576101fb565b8063395093511461037f57806340c10f19146103ab57806342966c68146103d757806370a08231146103f4576101fb565b806318160ddd116101ce57806318160ddd146102e957806323b872dd146103035780633092afd514610339578063313ce56714610361576101fb565b806306fdde0314610200578063095ea7b31461027d5780630c340a24146102bd578063116191b6146102e1575b600080fd5b61020861074d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024257818101518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a96004803603604081101561029357600080fd5b506001600160a01b0381351690602001356107e3565b604080519115158252519081900360200190f35b6102c5610800565b604080516001600160a01b039092168252519081900360200190f35b6102c561080f565b6102f161081e565b60408051918252519081900360200190f35b6102a96004803603606081101561031957600080fd5b506001600160a01b03813581169160208101359091169060400135610824565b61035f6004803603602081101561034f57600080fd5b50356001600160a01b03166108ab565b005b610369610958565b6040805160ff9092168252519081900360200190f35b6102a96004803603604081101561039557600080fd5b506001600160a01b038135169060200135610961565b61035f600480360360408110156103c157600080fd5b506001600160a01b0381351690602001356109af565b61035f600480360360208110156103ed57600080fd5b5035610a0e565b6102f16004803603602081101561040a57600080fd5b50356001600160a01b0316610a1f565b61035f6004803603604081101561043057600080fd5b506001600160a01b038135169060200135610a3a565b61035f610ad4565b61035f6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610be2565b6102f16004803603602081101561049057600080fd5b50356001600160a01b0316610c3c565b61035f600480360360408110156104b657600080fd5b506001600160a01b038135169060200135610c4e565b61035f600480360360208110156104e257600080fd5b50356001600160a01b0316610ce8565b610208610de1565b61035f6004803603602081101561051057600080fd5b50356001600160a01b0316610e42565b61035f610eef565b61035f6004803603604081101561053e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561056957600080fd5b82018360208201111561057b57600080fd5b8035906020019184600183028401116401000000008311171561059d57600080fd5b509092509050610f43565b61035f600480360360208110156105be57600080fd5b50356001600160a01b0316611099565b6102a9600480360360408110156105e457600080fd5b506001600160a01b0381351690602001356111b4565b6102a96004803603604081101561061057600080fd5b506001600160a01b03813516906020013561121c565b6102a96004803603602081101561063c57600080fd5b50356001600160a01b0316611230565b6102c561124e565b61035f6004803603602081101561066a57600080fd5b50356001600160a01b031661125d565b61035f6004803603602081101561069057600080fd5b50356001600160a01b03166113d3565b61035f600480360360e08110156106b657600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356114cf565b6102f16004803603604081101561070757600080fd5b506001600160a01b0381358116916020013516611680565b6102c56116ab565b61035f6004803603602081101561073d57600080fd5b50356001600160a01b03166116ba565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b820191906000526020600020905b8154815290600101906020018083116107bc57829003601f168201915b5050505050905090565b60006107f76107f06117b8565b84846117bc565b50600192915050565b6000546001600160a01b031681565b60ca546001600160a01b031681565b60365490565b60006108318484846118a8565b6108a18461083d6117b8565b61089c8560405180606001604052806028815260200161250e602891396001600160a01b038a1660009081526035602052604081209061087b6117b8565b6001600160a01b031681526020810191909152604001600020549190611a05565b6117bc565b5060019392505050565b6000546001600160a01b03163314610903576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b61090c81611230565b61094c576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b61095581611a9c565b50565b60395460ff1690565b60006107f761096e6117b8565b8461089c856035600061097f6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611ae5565b6109b833611230565b610a00576040805162461bcd60e51b815260206004820152601460248201527313db9b1e481b5a5b9d195c8818d85b8818d85b1b60621b604482015290519081900360640190fd5b610a0a8282611b46565b5050565b610955610a196117b8565b82611c38565b6001600160a01b031660009081526034602052604090205490565b60ca546001600160a01b03163314610a87576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610a918282610be2565b6040805182815290516001600160a01b038416917fe87aeeb22c5753db7f543198a4c3089d2233040ea9d1cab0eaa3b96d94d4fc6e919081900360200190a25050565b6001546001600160a01b03168015801590610af75750336001600160a01b038216145b610b48576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000610c198260405180606001604052806024815260200161253660249139610c1286610c0d6117b8565b611680565b9190611a05565b9050610c2d83610c276117b8565b836117bc565b610c378383611c38565b505050565b609a6020526000908152604090205481565b60ca546001600160a01b03163314610c9b576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610ca58282611b46565b6040805182815290516001600160a01b038416917fae4b6e741e38054ad6705655cc56c91c184f6768f76b41e10803e2766d89e19f919081900360200190a25050565b6000546001600160a01b03163314610d40576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610d8d576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4741544557415960881b604482015290519081900360640190fd5b60ca80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f5317fa585931182194fed99f2ea5f2efd38af9cff9724273704c8501c521e34b9181900360200190a150565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b6000546001600160a01b03163314610e9a576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610ee6576040805162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa6a4a72a22a960911b604482015290519081900360640190fd5b61095581611d34565b610ef833611230565b610f38576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b610f4133611a9c565b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b505050506040513d6020811015610fa957600080fd5b50516001600160a01b03163314611007576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156110d557600080fd5b505af11580156110e9573d6000803e3d6000fd5b505050506040513d60208110156110ff57600080fd5b50516001600160a01b0316331461115d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b505050505050565b60006107f76111c16117b8565b8461089c856040518060600160405280602581526020016125c460259139603560006111eb6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611a05565b60006107f76112296117b8565b84846118a8565b6001600160a01b031660009081526099602052604090205460ff1690565b60cb546001600160a01b031681565b611265611d80565b6001600160a01b0316336001600160a01b0316146112c0576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600154600160a81b900460ff16806112db57506112db611da5565b806112f05750600154600160a01b900460ff16155b61132b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015611362576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b6001600160a01b0382166113b1576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6113bc826000611db6565b8015610a0a576001805460ff60a81b191690555050565b6000546001600160a01b0316331461142b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661147b576040805162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c315f4144445245535360701b604482015290519081900360640190fd5b60cb80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f603c0b2e4494ac82839a70be8b6c660d7d042ccfe71c3ce0e5157f59090e74459181900360200190a150565b8315806114dc5750834211155b611523576040805162461bcd60e51b815260206004820152601360248201527211d4950e88195e1c1a5c9959081c195c9b5a5d606a1b604482015290519081900360640190fd5b6098546001600160a01b038089166000818152609a602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948c166060850152608084018b905260a084019490945260c08084018a90528451808503909101815260e08401855280519082012061190160f01b61010085015261010284019590955261012280840195909552835180840390950185526101429092019092528251920191909120906115ed82868686611ef3565b9050806001600160a01b0316896001600160a01b03161461164b576040805162461bcd60e51b815260206004820152601360248201527211d4950e881a5b9d985b1a59081c195c9b5a5d606a1b604482015290519081900360640190fd5b6001600160a01b0389166000908152609a60205260409020805460010190556116758989896117bc565b505050505050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b6001546001600160a01b031681565b6000546001600160a01b03163314611712576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116611764576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b0383166118015760405162461bcd60e51b81526004018080602001828103825260248152602001806125a06024913960400191505060405180910390fd5b6001600160a01b0382166118465760405162461bcd60e51b81526004018080602001828103825260228152602001806124546022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166118ed5760405162461bcd60e51b815260040180806020018281038252602581526020018061257b6025913960400191505060405180910390fd5b6001600160a01b0382166119325760405162461bcd60e51b815260040180806020018281038252602381526020018061240f6023913960400191505060405180910390fd5b61193d838383610c37565b61197a81604051806060016040528060268152602001612476602691396001600160a01b0386166000908152603460205260409020549190611a05565b6001600160a01b0380851660009081526034602052604080822093909355908416815220546119a99082611ae5565b6001600160a01b0380841660008181526034602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611a945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a59578181015183820152602001611a41565b50505050905090810190601f168015611a865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038116600081815260996020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b600082820183811015611b3f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611ba1576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611bad60008383610c37565b603654611bba9082611ae5565b6036556001600160a01b038216600090815260346020526040902054611be09082611ae5565b6001600160a01b03831660008181526034602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216611c7d5760405162461bcd60e51b815260040180806020018281038252602181526020018061255a6021913960400191505060405180910390fd5b611c8982600083610c37565b611cc681604051806060016040528060228152602001612432602291396001600160a01b0385166000908152603460205260409020549190611a05565b6001600160a01b038316600090815260346020526040902055603654611cec9082612071565b6036556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038116600081815260996020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611db0306120ce565b15905090565b611dfe6040518060400160405280600b81526020016a23b930b834102a37b5b2b760a91b8152506040518060400160405280600381526020016211d49560ea1b8152506120d4565b611e07826121a0565b611e118282611b46565b611e1a82611d34565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611e856121c2565b6040805160208082019690965280820194909452606084019290925260808301523060a08301527f000000000000000000000000000000000000000000000000000000000000000060c0808401919091528151808403909101815260e0909201905280519101206098555050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611f545760405162461bcd60e51b815260040180806020018281038252602281526020018061249c6022913960400191505060405180910390fd5b8360ff16601b1480611f6957508360ff16601c145b611fa45760405162461bcd60e51b81526004018080602001828103825260228152602001806124ec6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612000573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612068576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b6000828211156120c8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600154600160a81b900460ff16806120ef57506120ef611da5565b806121045750600154600160a01b900460ff16155b61213f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612176576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b61217e6121c6565b612188838361227e565b8015610c37576001805460ff60a81b19169055505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b4690565b600154600160a81b900460ff16806121e157506121e1611da5565b806121f65750600154600160a01b900460ff16155b6122315760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612268576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b8015610955576001805460ff60a81b1916905550565b600154600160a81b900460ff16806122995750612299611da5565b806122ae5750600154600160a01b900460ff16155b6122e95760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612320576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b825161233390603790602086019061236d565b50815161234790603890602085019061236d565b506039805460ff191660121790558015610c37576001805460ff60a81b19169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826123a357600085556123e9565b82601f106123bc57805160ff19168380011785556123e9565b828001600101855582156123e9579182015b828111156123e95782518255916020019190600101906123ce565b506123f59291506123f9565b5090565b5b808211156123f557600081556001016123fa56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ff9ed43c1b257716d58111b6358b62039b7d7359bc9f0f142332535a4370cafe64736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphToken#GraphToken_Instance.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphToken#GraphToken_Instance.json deleted file mode 100644 index 5889eeaf0..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphToken#GraphToken_Instance.json +++ /dev/null @@ -1,750 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "L2GraphToken", - "sourceName": "contracts/l2/token/L2GraphToken.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "BridgeBurned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "BridgeMinted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "gateway", - "type": "address" - } - ], - "name": "GatewaySet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "l1Address", - "type": "address" - } - ], - "name": "L1AddressSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "MinterAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "MinterRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "NewOwnership", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "NewPendingOwnership", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "addMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "bridgeBurn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "bridgeMint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "gateway", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "governor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "isMinter", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "l1Address", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pendingGovernor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "address", - "name": "_spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "_v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "_r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "removeMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_gw", - "type": "address" - } - ], - "name": "setGateway", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_addr", - "type": "address" - } - ], - "name": "setL1Address", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newGovernor", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101206040527fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726080527fefcec85968da792893fa503eb21730083fc6c50ed5461e56163b28335b2a5f9660a0527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60c0527fe33842a7acd1d5a1d28f25a931703e5605152dc48d64dc4716efdae1f565959160e0527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610100523480156100c657600080fd5b5060805160a05160c05160e0516101005161261e61010660003980611547525080611eae525080611e5e525080611e3d525080611e1c525061261e6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638c2a993e1161011a578063a9059cbb116100ad578063ca52d7d71161007c578063ca52d7d71461067a578063d505accf146106a0578063dd62ed3e146106f1578063e3056a341461071f578063f2fde38b14610727576101fb565b8063a9059cbb146105fa578063aa271e1a14610626578063c2eeeebd1461064c578063c4d66de814610654576101fb565b806398650275116100e957806398650275146105205780639ce7abe514610528578063a2594d82146105a8578063a457c2d7146105ce576101fb565b80638c2a993e146104a057806390646b4a146104cc57806395d89b41146104f2578063983b2d56146104fa576101fb565b8063395093511161019257806374f4f5471161016157806374f4f5471461041a57806379ba50971461044657806379cc67901461044e5780637ecebe001461047a576101fb565b8063395093511461037f57806340c10f19146103ab57806342966c68146103d757806370a08231146103f4576101fb565b806318160ddd116101ce57806318160ddd146102e957806323b872dd146103035780633092afd514610339578063313ce56714610361576101fb565b806306fdde0314610200578063095ea7b31461027d5780630c340a24146102bd578063116191b6146102e1575b600080fd5b61020861074d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024257818101518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a96004803603604081101561029357600080fd5b506001600160a01b0381351690602001356107e3565b604080519115158252519081900360200190f35b6102c5610800565b604080516001600160a01b039092168252519081900360200190f35b6102c561080f565b6102f161081e565b60408051918252519081900360200190f35b6102a96004803603606081101561031957600080fd5b506001600160a01b03813581169160208101359091169060400135610824565b61035f6004803603602081101561034f57600080fd5b50356001600160a01b03166108ab565b005b610369610958565b6040805160ff9092168252519081900360200190f35b6102a96004803603604081101561039557600080fd5b506001600160a01b038135169060200135610961565b61035f600480360360408110156103c157600080fd5b506001600160a01b0381351690602001356109af565b61035f600480360360208110156103ed57600080fd5b5035610a0e565b6102f16004803603602081101561040a57600080fd5b50356001600160a01b0316610a1f565b61035f6004803603604081101561043057600080fd5b506001600160a01b038135169060200135610a3a565b61035f610ad4565b61035f6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610be2565b6102f16004803603602081101561049057600080fd5b50356001600160a01b0316610c3c565b61035f600480360360408110156104b657600080fd5b506001600160a01b038135169060200135610c4e565b61035f600480360360208110156104e257600080fd5b50356001600160a01b0316610ce8565b610208610de1565b61035f6004803603602081101561051057600080fd5b50356001600160a01b0316610e42565b61035f610eef565b61035f6004803603604081101561053e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561056957600080fd5b82018360208201111561057b57600080fd5b8035906020019184600183028401116401000000008311171561059d57600080fd5b509092509050610f43565b61035f600480360360208110156105be57600080fd5b50356001600160a01b0316611099565b6102a9600480360360408110156105e457600080fd5b506001600160a01b0381351690602001356111b4565b6102a96004803603604081101561061057600080fd5b506001600160a01b03813516906020013561121c565b6102a96004803603602081101561063c57600080fd5b50356001600160a01b0316611230565b6102c561124e565b61035f6004803603602081101561066a57600080fd5b50356001600160a01b031661125d565b61035f6004803603602081101561069057600080fd5b50356001600160a01b03166113d3565b61035f600480360360e08110156106b657600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356114cf565b6102f16004803603604081101561070757600080fd5b506001600160a01b0381358116916020013516611680565b6102c56116ab565b61035f6004803603602081101561073d57600080fd5b50356001600160a01b03166116ba565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b820191906000526020600020905b8154815290600101906020018083116107bc57829003601f168201915b5050505050905090565b60006107f76107f06117b8565b84846117bc565b50600192915050565b6000546001600160a01b031681565b60ca546001600160a01b031681565b60365490565b60006108318484846118a8565b6108a18461083d6117b8565b61089c8560405180606001604052806028815260200161250e602891396001600160a01b038a1660009081526035602052604081209061087b6117b8565b6001600160a01b031681526020810191909152604001600020549190611a05565b6117bc565b5060019392505050565b6000546001600160a01b03163314610903576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b61090c81611230565b61094c576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b61095581611a9c565b50565b60395460ff1690565b60006107f761096e6117b8565b8461089c856035600061097f6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611ae5565b6109b833611230565b610a00576040805162461bcd60e51b815260206004820152601460248201527313db9b1e481b5a5b9d195c8818d85b8818d85b1b60621b604482015290519081900360640190fd5b610a0a8282611b46565b5050565b610955610a196117b8565b82611c38565b6001600160a01b031660009081526034602052604090205490565b60ca546001600160a01b03163314610a87576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610a918282610be2565b6040805182815290516001600160a01b038416917fe87aeeb22c5753db7f543198a4c3089d2233040ea9d1cab0eaa3b96d94d4fc6e919081900360200190a25050565b6001546001600160a01b03168015801590610af75750336001600160a01b038216145b610b48576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000610c198260405180606001604052806024815260200161253660249139610c1286610c0d6117b8565b611680565b9190611a05565b9050610c2d83610c276117b8565b836117bc565b610c378383611c38565b505050565b609a6020526000908152604090205481565b60ca546001600160a01b03163314610c9b576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610ca58282611b46565b6040805182815290516001600160a01b038416917fae4b6e741e38054ad6705655cc56c91c184f6768f76b41e10803e2766d89e19f919081900360200190a25050565b6000546001600160a01b03163314610d40576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610d8d576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4741544557415960881b604482015290519081900360640190fd5b60ca80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f5317fa585931182194fed99f2ea5f2efd38af9cff9724273704c8501c521e34b9181900360200190a150565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b6000546001600160a01b03163314610e9a576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610ee6576040805162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa6a4a72a22a960911b604482015290519081900360640190fd5b61095581611d34565b610ef833611230565b610f38576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b610f4133611a9c565b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b505050506040513d6020811015610fa957600080fd5b50516001600160a01b03163314611007576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156110d557600080fd5b505af11580156110e9573d6000803e3d6000fd5b505050506040513d60208110156110ff57600080fd5b50516001600160a01b0316331461115d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b505050505050565b60006107f76111c16117b8565b8461089c856040518060600160405280602581526020016125c460259139603560006111eb6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611a05565b60006107f76112296117b8565b84846118a8565b6001600160a01b031660009081526099602052604090205460ff1690565b60cb546001600160a01b031681565b611265611d80565b6001600160a01b0316336001600160a01b0316146112c0576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600154600160a81b900460ff16806112db57506112db611da5565b806112f05750600154600160a01b900460ff16155b61132b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015611362576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b6001600160a01b0382166113b1576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6113bc826000611db6565b8015610a0a576001805460ff60a81b191690555050565b6000546001600160a01b0316331461142b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661147b576040805162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c315f4144445245535360701b604482015290519081900360640190fd5b60cb80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f603c0b2e4494ac82839a70be8b6c660d7d042ccfe71c3ce0e5157f59090e74459181900360200190a150565b8315806114dc5750834211155b611523576040805162461bcd60e51b815260206004820152601360248201527211d4950e88195e1c1a5c9959081c195c9b5a5d606a1b604482015290519081900360640190fd5b6098546001600160a01b038089166000818152609a602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948c166060850152608084018b905260a084019490945260c08084018a90528451808503909101815260e08401855280519082012061190160f01b61010085015261010284019590955261012280840195909552835180840390950185526101429092019092528251920191909120906115ed82868686611ef3565b9050806001600160a01b0316896001600160a01b03161461164b576040805162461bcd60e51b815260206004820152601360248201527211d4950e881a5b9d985b1a59081c195c9b5a5d606a1b604482015290519081900360640190fd5b6001600160a01b0389166000908152609a60205260409020805460010190556116758989896117bc565b505050505050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b6001546001600160a01b031681565b6000546001600160a01b03163314611712576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116611764576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b0383166118015760405162461bcd60e51b81526004018080602001828103825260248152602001806125a06024913960400191505060405180910390fd5b6001600160a01b0382166118465760405162461bcd60e51b81526004018080602001828103825260228152602001806124546022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166118ed5760405162461bcd60e51b815260040180806020018281038252602581526020018061257b6025913960400191505060405180910390fd5b6001600160a01b0382166119325760405162461bcd60e51b815260040180806020018281038252602381526020018061240f6023913960400191505060405180910390fd5b61193d838383610c37565b61197a81604051806060016040528060268152602001612476602691396001600160a01b0386166000908152603460205260409020549190611a05565b6001600160a01b0380851660009081526034602052604080822093909355908416815220546119a99082611ae5565b6001600160a01b0380841660008181526034602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611a945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a59578181015183820152602001611a41565b50505050905090810190601f168015611a865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038116600081815260996020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b600082820183811015611b3f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611ba1576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611bad60008383610c37565b603654611bba9082611ae5565b6036556001600160a01b038216600090815260346020526040902054611be09082611ae5565b6001600160a01b03831660008181526034602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216611c7d5760405162461bcd60e51b815260040180806020018281038252602181526020018061255a6021913960400191505060405180910390fd5b611c8982600083610c37565b611cc681604051806060016040528060228152602001612432602291396001600160a01b0385166000908152603460205260409020549190611a05565b6001600160a01b038316600090815260346020526040902055603654611cec9082612071565b6036556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038116600081815260996020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611db0306120ce565b15905090565b611dfe6040518060400160405280600b81526020016a23b930b834102a37b5b2b760a91b8152506040518060400160405280600381526020016211d49560ea1b8152506120d4565b611e07826121a0565b611e118282611b46565b611e1a82611d34565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611e856121c2565b6040805160208082019690965280820194909452606084019290925260808301523060a08301527f000000000000000000000000000000000000000000000000000000000000000060c0808401919091528151808403909101815260e0909201905280519101206098555050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611f545760405162461bcd60e51b815260040180806020018281038252602281526020018061249c6022913960400191505060405180910390fd5b8360ff16601b1480611f6957508360ff16601c145b611fa45760405162461bcd60e51b81526004018080602001828103825260228152602001806124ec6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612000573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612068576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b6000828211156120c8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600154600160a81b900460ff16806120ef57506120ef611da5565b806121045750600154600160a01b900460ff16155b61213f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612176576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b61217e6121c6565b612188838361227e565b8015610c37576001805460ff60a81b19169055505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b4690565b600154600160a81b900460ff16806121e157506121e1611da5565b806121f65750600154600160a01b900460ff16155b6122315760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612268576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b8015610955576001805460ff60a81b1916905550565b600154600160a81b900460ff16806122995750612299611da5565b806122ae5750600154600160a01b900460ff16155b6122e95760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612320576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b825161233390603790602086019061236d565b50815161234790603890602085019061236d565b506039805460ff191660121790558015610c37576001805460ff60a81b19169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826123a357600085556123e9565b82601f106123bc57805160ff19168380011785556123e9565b828001600101855582156123e9579182015b828111156123e95782518255916020019190600101906123ce565b506123f59291506123f9565b5090565b5b808211156123f557600081556001016123fa56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ff9ed43c1b257716d58111b6358b62039b7d7359bc9f0f142332535a4370cafe64736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638c2a993e1161011a578063a9059cbb116100ad578063ca52d7d71161007c578063ca52d7d71461067a578063d505accf146106a0578063dd62ed3e146106f1578063e3056a341461071f578063f2fde38b14610727576101fb565b8063a9059cbb146105fa578063aa271e1a14610626578063c2eeeebd1461064c578063c4d66de814610654576101fb565b806398650275116100e957806398650275146105205780639ce7abe514610528578063a2594d82146105a8578063a457c2d7146105ce576101fb565b80638c2a993e146104a057806390646b4a146104cc57806395d89b41146104f2578063983b2d56146104fa576101fb565b8063395093511161019257806374f4f5471161016157806374f4f5471461041a57806379ba50971461044657806379cc67901461044e5780637ecebe001461047a576101fb565b8063395093511461037f57806340c10f19146103ab57806342966c68146103d757806370a08231146103f4576101fb565b806318160ddd116101ce57806318160ddd146102e957806323b872dd146103035780633092afd514610339578063313ce56714610361576101fb565b806306fdde0314610200578063095ea7b31461027d5780630c340a24146102bd578063116191b6146102e1575b600080fd5b61020861074d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024257818101518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a96004803603604081101561029357600080fd5b506001600160a01b0381351690602001356107e3565b604080519115158252519081900360200190f35b6102c5610800565b604080516001600160a01b039092168252519081900360200190f35b6102c561080f565b6102f161081e565b60408051918252519081900360200190f35b6102a96004803603606081101561031957600080fd5b506001600160a01b03813581169160208101359091169060400135610824565b61035f6004803603602081101561034f57600080fd5b50356001600160a01b03166108ab565b005b610369610958565b6040805160ff9092168252519081900360200190f35b6102a96004803603604081101561039557600080fd5b506001600160a01b038135169060200135610961565b61035f600480360360408110156103c157600080fd5b506001600160a01b0381351690602001356109af565b61035f600480360360208110156103ed57600080fd5b5035610a0e565b6102f16004803603602081101561040a57600080fd5b50356001600160a01b0316610a1f565b61035f6004803603604081101561043057600080fd5b506001600160a01b038135169060200135610a3a565b61035f610ad4565b61035f6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610be2565b6102f16004803603602081101561049057600080fd5b50356001600160a01b0316610c3c565b61035f600480360360408110156104b657600080fd5b506001600160a01b038135169060200135610c4e565b61035f600480360360208110156104e257600080fd5b50356001600160a01b0316610ce8565b610208610de1565b61035f6004803603602081101561051057600080fd5b50356001600160a01b0316610e42565b61035f610eef565b61035f6004803603604081101561053e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561056957600080fd5b82018360208201111561057b57600080fd5b8035906020019184600183028401116401000000008311171561059d57600080fd5b509092509050610f43565b61035f600480360360208110156105be57600080fd5b50356001600160a01b0316611099565b6102a9600480360360408110156105e457600080fd5b506001600160a01b0381351690602001356111b4565b6102a96004803603604081101561061057600080fd5b506001600160a01b03813516906020013561121c565b6102a96004803603602081101561063c57600080fd5b50356001600160a01b0316611230565b6102c561124e565b61035f6004803603602081101561066a57600080fd5b50356001600160a01b031661125d565b61035f6004803603602081101561069057600080fd5b50356001600160a01b03166113d3565b61035f600480360360e08110156106b657600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356114cf565b6102f16004803603604081101561070757600080fd5b506001600160a01b0381358116916020013516611680565b6102c56116ab565b61035f6004803603602081101561073d57600080fd5b50356001600160a01b03166116ba565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b820191906000526020600020905b8154815290600101906020018083116107bc57829003601f168201915b5050505050905090565b60006107f76107f06117b8565b84846117bc565b50600192915050565b6000546001600160a01b031681565b60ca546001600160a01b031681565b60365490565b60006108318484846118a8565b6108a18461083d6117b8565b61089c8560405180606001604052806028815260200161250e602891396001600160a01b038a1660009081526035602052604081209061087b6117b8565b6001600160a01b031681526020810191909152604001600020549190611a05565b6117bc565b5060019392505050565b6000546001600160a01b03163314610903576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b61090c81611230565b61094c576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b61095581611a9c565b50565b60395460ff1690565b60006107f761096e6117b8565b8461089c856035600061097f6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611ae5565b6109b833611230565b610a00576040805162461bcd60e51b815260206004820152601460248201527313db9b1e481b5a5b9d195c8818d85b8818d85b1b60621b604482015290519081900360640190fd5b610a0a8282611b46565b5050565b610955610a196117b8565b82611c38565b6001600160a01b031660009081526034602052604090205490565b60ca546001600160a01b03163314610a87576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610a918282610be2565b6040805182815290516001600160a01b038416917fe87aeeb22c5753db7f543198a4c3089d2233040ea9d1cab0eaa3b96d94d4fc6e919081900360200190a25050565b6001546001600160a01b03168015801590610af75750336001600160a01b038216145b610b48576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000610c198260405180606001604052806024815260200161253660249139610c1286610c0d6117b8565b611680565b9190611a05565b9050610c2d83610c276117b8565b836117bc565b610c378383611c38565b505050565b609a6020526000908152604090205481565b60ca546001600160a01b03163314610c9b576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610ca58282611b46565b6040805182815290516001600160a01b038416917fae4b6e741e38054ad6705655cc56c91c184f6768f76b41e10803e2766d89e19f919081900360200190a25050565b6000546001600160a01b03163314610d40576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610d8d576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4741544557415960881b604482015290519081900360640190fd5b60ca80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f5317fa585931182194fed99f2ea5f2efd38af9cff9724273704c8501c521e34b9181900360200190a150565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b6000546001600160a01b03163314610e9a576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610ee6576040805162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa6a4a72a22a960911b604482015290519081900360640190fd5b61095581611d34565b610ef833611230565b610f38576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b610f4133611a9c565b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b505050506040513d6020811015610fa957600080fd5b50516001600160a01b03163314611007576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156110d557600080fd5b505af11580156110e9573d6000803e3d6000fd5b505050506040513d60208110156110ff57600080fd5b50516001600160a01b0316331461115d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b505050505050565b60006107f76111c16117b8565b8461089c856040518060600160405280602581526020016125c460259139603560006111eb6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611a05565b60006107f76112296117b8565b84846118a8565b6001600160a01b031660009081526099602052604090205460ff1690565b60cb546001600160a01b031681565b611265611d80565b6001600160a01b0316336001600160a01b0316146112c0576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600154600160a81b900460ff16806112db57506112db611da5565b806112f05750600154600160a01b900460ff16155b61132b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015611362576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b6001600160a01b0382166113b1576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6113bc826000611db6565b8015610a0a576001805460ff60a81b191690555050565b6000546001600160a01b0316331461142b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661147b576040805162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c315f4144445245535360701b604482015290519081900360640190fd5b60cb80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f603c0b2e4494ac82839a70be8b6c660d7d042ccfe71c3ce0e5157f59090e74459181900360200190a150565b8315806114dc5750834211155b611523576040805162461bcd60e51b815260206004820152601360248201527211d4950e88195e1c1a5c9959081c195c9b5a5d606a1b604482015290519081900360640190fd5b6098546001600160a01b038089166000818152609a602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948c166060850152608084018b905260a084019490945260c08084018a90528451808503909101815260e08401855280519082012061190160f01b61010085015261010284019590955261012280840195909552835180840390950185526101429092019092528251920191909120906115ed82868686611ef3565b9050806001600160a01b0316896001600160a01b03161461164b576040805162461bcd60e51b815260206004820152601360248201527211d4950e881a5b9d985b1a59081c195c9b5a5d606a1b604482015290519081900360640190fd5b6001600160a01b0389166000908152609a60205260409020805460010190556116758989896117bc565b505050505050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b6001546001600160a01b031681565b6000546001600160a01b03163314611712576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116611764576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b0383166118015760405162461bcd60e51b81526004018080602001828103825260248152602001806125a06024913960400191505060405180910390fd5b6001600160a01b0382166118465760405162461bcd60e51b81526004018080602001828103825260228152602001806124546022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166118ed5760405162461bcd60e51b815260040180806020018281038252602581526020018061257b6025913960400191505060405180910390fd5b6001600160a01b0382166119325760405162461bcd60e51b815260040180806020018281038252602381526020018061240f6023913960400191505060405180910390fd5b61193d838383610c37565b61197a81604051806060016040528060268152602001612476602691396001600160a01b0386166000908152603460205260409020549190611a05565b6001600160a01b0380851660009081526034602052604080822093909355908416815220546119a99082611ae5565b6001600160a01b0380841660008181526034602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611a945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a59578181015183820152602001611a41565b50505050905090810190601f168015611a865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038116600081815260996020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b600082820183811015611b3f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611ba1576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611bad60008383610c37565b603654611bba9082611ae5565b6036556001600160a01b038216600090815260346020526040902054611be09082611ae5565b6001600160a01b03831660008181526034602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216611c7d5760405162461bcd60e51b815260040180806020018281038252602181526020018061255a6021913960400191505060405180910390fd5b611c8982600083610c37565b611cc681604051806060016040528060228152602001612432602291396001600160a01b0385166000908152603460205260409020549190611a05565b6001600160a01b038316600090815260346020526040902055603654611cec9082612071565b6036556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038116600081815260996020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611db0306120ce565b15905090565b611dfe6040518060400160405280600b81526020016a23b930b834102a37b5b2b760a91b8152506040518060400160405280600381526020016211d49560ea1b8152506120d4565b611e07826121a0565b611e118282611b46565b611e1a82611d34565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611e856121c2565b6040805160208082019690965280820194909452606084019290925260808301523060a08301527f000000000000000000000000000000000000000000000000000000000000000060c0808401919091528151808403909101815260e0909201905280519101206098555050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611f545760405162461bcd60e51b815260040180806020018281038252602281526020018061249c6022913960400191505060405180910390fd5b8360ff16601b1480611f6957508360ff16601c145b611fa45760405162461bcd60e51b81526004018080602001828103825260228152602001806124ec6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612000573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612068576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b6000828211156120c8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600154600160a81b900460ff16806120ef57506120ef611da5565b806121045750600154600160a01b900460ff16155b61213f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612176576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b61217e6121c6565b612188838361227e565b8015610c37576001805460ff60a81b19169055505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b4690565b600154600160a81b900460ff16806121e157506121e1611da5565b806121f65750600154600160a01b900460ff16155b6122315760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612268576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b8015610955576001805460ff60a81b1916905550565b600154600160a81b900460ff16806122995750612299611da5565b806122ae5750600154600160a01b900460ff16155b6122e95760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612320576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b825161233390603790602086019061236d565b50815161234790603890602085019061236d565b506039805460ff191660121790558015610c37576001805460ff60a81b19169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826123a357600085556123e9565b82601f106123bc57805160ff19168380011785556123e9565b828001600101855582156123e9579182015b828111156123e95782518255916020019190600101906123ce565b506123f59291506123f9565b5090565b5b808211156123f557600081556001016123fa56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ff9ed43c1b257716d58111b6358b62039b7d7359bc9f0f142332535a4370cafe64736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTokenGateway#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTokenGateway#GraphProxy.json deleted file mode 100644 index 2cfb21e41..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTokenGateway#GraphProxy.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GraphProxy", - "sourceName": "contracts/upgrades/GraphProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_impl", - "type": "address" - }, - { - "internalType": "address", - "name": "_admin", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldAdmin", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "ImplementationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldPendingImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newPendingImplementation", - "type": "address" - } - ], - "name": "PendingImplementationUpdated", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "name": "acceptUpgrade", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptUpgradeAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "pendingImplementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newAdmin", - "type": "address" - } - ], - "name": "setAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c", - "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTokenGateway#GraphTokenGateway.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTokenGateway#GraphTokenGateway.json deleted file mode 100644 index 0fa0a97d2..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTokenGateway#GraphTokenGateway.json +++ /dev/null @@ -1,647 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "L2GraphTokenGateway", - "sourceName": "contracts/l2/gateway/L2GraphTokenGateway.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "nameHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractSynced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "l1Token", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "DepositFinalized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "l1Counterpart", - "type": "address" - } - ], - "name": "L1CounterpartAddressSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "l1GRT", - "type": "address" - } - ], - "name": "L1TokenAddressSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "l2Router", - "type": "address" - } - ], - "name": "L2RouterSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldPauseGuardian", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "pauseGuardian", - "type": "address" - } - ], - "name": "NewPauseGuardian", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "param", - "type": "string" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PartialPauseChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "name": "SetController", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "TxToL1", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "l1Token", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "l2ToL1Id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "exitNum", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "WithdrawalInitiated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "l1ERC20", - "type": "address" - } - ], - "name": "calculateL2TokenAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "controller", - "outputs": [ - { - "internalType": "contract IController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1Token", - "type": "address" - }, - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "finalizeInboundTransfer", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_token", - "type": "address" - }, - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "getOutboundCalldata", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "l1Counterpart", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "l1GRT", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "l2Router", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastPartialPauseTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastPauseTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1Token", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "outboundTransfer", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1Token", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "outboundTransfer", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "pauseGuardian", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "setController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1Counterpart", - "type": "address" - } - ], - "name": "setL1CounterpartAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1GRT", - "type": "address" - } - ], - "name": "setL1TokenAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l2Router", - "type": "address" - } - ], - "name": "setL2Router", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newPauseGuardian", - "type": "address" - } - ], - "name": "setPauseGuardian", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_newPaused", - "type": "bool" - } - ], - "name": "setPaused", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "syncAllContracts", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161222b6101696000398061112f5250806111065250806110dd528061150a5250806110b452508061108b525080611062525080611039525061222b6000f3fe6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122057745d277cf1b69bcdb769c1080348f4281e738017b4783e36958ec852e3141b64736f6c63430007060033", - "deployedBytecode": "0x6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122057745d277cf1b69bcdb769c1080348f4281e738017b4783e36958ec852e3141b64736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTokenGateway#GraphTokenGateway_Instance.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTokenGateway#GraphTokenGateway_Instance.json deleted file mode 100644 index 0fa0a97d2..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/GraphTokenGateway#GraphTokenGateway_Instance.json +++ /dev/null @@ -1,647 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "L2GraphTokenGateway", - "sourceName": "contracts/l2/gateway/L2GraphTokenGateway.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "nameHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractSynced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "l1Token", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "DepositFinalized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "l1Counterpart", - "type": "address" - } - ], - "name": "L1CounterpartAddressSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "l1GRT", - "type": "address" - } - ], - "name": "L1TokenAddressSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "l2Router", - "type": "address" - } - ], - "name": "L2RouterSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldPauseGuardian", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "pauseGuardian", - "type": "address" - } - ], - "name": "NewPauseGuardian", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "param", - "type": "string" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PartialPauseChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "isPaused", - "type": "bool" - } - ], - "name": "PauseChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "name": "SetController", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "TxToL1", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "l1Token", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "l2ToL1Id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "exitNum", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "WithdrawalInitiated", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "l1ERC20", - "type": "address" - } - ], - "name": "calculateL2TokenAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "controller", - "outputs": [ - { - "internalType": "contract IController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1Token", - "type": "address" - }, - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "finalizeInboundTransfer", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_token", - "type": "address" - }, - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "getOutboundCalldata", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "l1Counterpart", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "l1GRT", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "l2Router", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastPartialPauseTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "lastPauseTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1Token", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "outboundTransfer", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1Token", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "outboundTransfer", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "pauseGuardian", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "setController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1Counterpart", - "type": "address" - } - ], - "name": "setL1CounterpartAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l1GRT", - "type": "address" - } - ], - "name": "setL1TokenAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_l2Router", - "type": "address" - } - ], - "name": "setL2Router", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newPauseGuardian", - "type": "address" - } - ], - "name": "setPauseGuardian", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_newPaused", - "type": "bool" - } - ], - "name": "setPaused", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "syncAllContracts", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161222b6101696000398061112f5250806111065250806110dd528061150a5250806110b452508061108b525080611062525080611039525061222b6000f3fe6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122057745d277cf1b69bcdb769c1080348f4281e738017b4783e36958ec852e3141b64736f6c63430007060033", - "deployedBytecode": "0x6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122057745d277cf1b69bcdb769c1080348f4281e738017b4783e36958ec852e3141b64736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphProxy_HorizonStaking.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphProxy_HorizonStaking.json deleted file mode 100644 index 2cfb21e41..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#GraphProxy_HorizonStaking.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GraphProxy", - "sourceName": "contracts/upgrades/GraphProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_impl", - "type": "address" - }, - { - "internalType": "address", - "name": "_admin", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldAdmin", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "ImplementationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldPendingImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newPendingImplementation", - "type": "address" - } - ], - "name": "PendingImplementationUpdated", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "name": "acceptUpgrade", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptUpgradeAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "pendingImplementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newAdmin", - "type": "address" - } - ], - "name": "setAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c", - "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_GraphPayments.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_GraphPayments.json deleted file mode 100644 index 0d073cb30..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_GraphPayments.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Dummy", - "sourceName": "contracts/mocks/Dummy.sol", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "deployedBytecode": "0x6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_PaymentsEscrow.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_PaymentsEscrow.json deleted file mode 100644 index 0d073cb30..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#OZProxyDummy_PaymentsEscrow.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Dummy", - "sourceName": "contracts/mocks/Dummy.sol", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "deployedBytecode": "0x6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_GraphPayments.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_GraphPayments.json deleted file mode 100644 index 942e4b2e5..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_GraphPayments.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ProxyAdmin", - "sourceName": "contracts/proxy/transparent/ProxyAdmin.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract ITransparentUpgradeableProxy", - "name": "proxy", - "type": "address" - }, - { - "internalType": "address", - "name": "implementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_PaymentsEscrow.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_PaymentsEscrow.json deleted file mode 100644 index 942e4b2e5..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#ProxyAdmin_PaymentsEscrow.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ProxyAdmin", - "sourceName": "contracts/proxy/transparent/ProxyAdmin.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract ITransparentUpgradeableProxy", - "name": "proxy", - "type": "address" - }, - { - "internalType": "address", - "name": "implementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#RegisteredDummy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#RegisteredDummy.json deleted file mode 100644 index 0d073cb30..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#RegisteredDummy.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Dummy", - "sourceName": "contracts/mocks/Dummy.sol", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "deployedBytecode": "0x6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_GraphPayments.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_GraphPayments.json deleted file mode 100644 index c7f1f49b4..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_GraphPayments.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TransparentUpgradeableProxy", - "sourceName": "contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_logic", - "type": "address" - }, - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "admin", - "type": "address" - } - ], - "name": "ERC1967InvalidAdmin", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "ERC1967InvalidImplementation", - "type": "error" - }, - { - "inputs": [], - "name": "ERC1967NonPayable", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "ProxyDeniedAdminAccess", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": "0x60a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", - "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow.json deleted file mode 100644 index c7f1f49b4..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TransparentUpgradeableProxy", - "sourceName": "contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_logic", - "type": "address" - }, - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "admin", - "type": "address" - } - ], - "name": "ERC1967InvalidAdmin", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "ERC1967InvalidImplementation", - "type": "error" - }, - { - "inputs": [], - "name": "ERC1967NonPayable", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "ProxyDeniedAdminAccess", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": "0x60a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", - "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking.json deleted file mode 100644 index c619989d6..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking.json +++ /dev/null @@ -1,2384 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "HorizonStaking", - "sourceName": "contracts/staking/HorizonStaking.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "controller", - "type": "address" - }, - { - "internalType": "address", - "name": "stakingExtensionAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "subgraphDataServiceAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingCallerIsServiceProvider", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientIdleStake", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minShares", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientShares", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientStakeForLegacyAllocations", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minRequired", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientTokens", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidBeneficiaryZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "HorizonStakingInvalidDelegationFeeCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidDelegationPool", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidDelegationPoolState", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - } - ], - "name": "HorizonStakingInvalidMaxVerifierCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidProvision", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidServiceProviderZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "HorizonStakingInvalidThawingPeriod", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidVerifierZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidZeroShares", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidZeroTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "HorizonStakingNotAuthorized", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingNothingThawing", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingProvisionAlreadyExists", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minShares", - "type": "uint256" - } - ], - "name": "HorizonStakingSlippageProtection", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "until", - "type": "uint256" - } - ], - "name": "HorizonStakingStillThawing", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingTooManyThawRequests", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingTooManyTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingVerifierNotAllowed", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListEmptyList", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidIterations", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidZeroId", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListMaxElementsExceeded", - "type": "error" - }, - { - "inputs": [], - "name": "ManagedIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "ManagedOnlyController", - "type": "error" - }, - { - "inputs": [], - "name": "ManagedOnlyGovernor", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "AllowedLockedVerifierSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegatedTokensWithdrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "DelegationFeeCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegationSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "DelegationSlashingEnabled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegationSlashingSkipped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "MaxThawingPeriodSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "OperatorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionIncreased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionParametersSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionParametersStaged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionThawed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeDeposited", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "until", - "type": "uint256" - } - ], - "name": "StakeLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeWithdrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - } - ], - "name": "ThawRequestCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bool", - "name": "valid", - "type": "bool" - } - ], - "name": "ThawRequestFulfilled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "thawRequestsFulfilled", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ThawRequestsFulfilled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "ThawingPeriodCleared", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensDelegated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensDeprovisioned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensToDelegationPoolAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensUndelegated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "VerifierTokensSent", - "type": "event" - }, - { - "stateMutability": "nonpayable", - "type": "fallback" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "acceptProvisionParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "addToDelegationPool", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "addToProvision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "clearThawingPeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minSharesOut", - "type": "uint256" - } - ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "deprovision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getDelegatedTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "delegator", - "type": "address" - } - ], - "name": "getDelegation", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.Delegation", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - } - ], - "name": "getDelegationFeeCut", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getDelegationPool", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sharesThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.DelegationPool", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getIdleStake", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaxThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getProviderTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getProvision", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sharesThawing", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "createdAt", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "maxVerifierCutPending", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriodPending", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.Provision", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getServiceProvider", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokensStaked", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensProvisioned", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.ServiceProvider", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - } - ], - "name": "getThawRequest", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "internalType": "bytes32", - "name": "next", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.ThawRequest", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getThawRequestList", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "head", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "tail", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "internalType": "struct LinkedList.List", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getThawedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint32", - "name": "delegationRatio", - "type": "uint32" - } - ], - "name": "getTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "isAllowedLockedVerifier", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isAuthorized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isDelegationSlashingEnabled", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "provision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "provisionLocked", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "oldServiceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "oldVerifier", - "type": "address" - }, - { - "internalType": "address", - "name": "newServiceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "newVerifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "minSharesForNewProvider", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "redelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "oldVerifier", - "type": "address" - }, - { - "internalType": "address", - "name": "newVerifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "reprovision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setAllowedLockedVerifier", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "setDelegationFeeCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "setDelegationSlashingEnabled", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "setMaxThawingPeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setOperatorLocked", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint32", - "name": "newMaxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "newThawingPeriod", - "type": "uint64" - } - ], - "name": "setProvisionParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensVerifier", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifierDestination", - "type": "address" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stakeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stakeToProvision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "thaw", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - } - ], - "name": "undelegate", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "undelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "undelegate", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "unstake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "withdrawDelegated", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "newServiceProvider", - "type": "address" - } - ], - "name": "withdrawDelegated", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x61020060405234801561001157600080fd5b506040516160913803806160918339810160408190526100309161041b565b828181806001600160a01b03811661007d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b590610351565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e890610351565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261012190610351565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015b90610351565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019390610351565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101ce90610351565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020c90610351565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024890610351565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027d90610351565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103279790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b039081166101c052929092166101e052506104ce915050565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161038c91815260200190565b602060405180830381865afa1580156103a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cd919061045e565b9050826001600160a01b0382166103f85760405163218f5add60e11b81526004016100749190610480565b5092915050565b80516001600160a01b038116811461041657600080fd5b919050565b60008060006060848603121561043057600080fd5b610439846103ff565b9250610447602085016103ff565b9150610455604085016103ff565b90509250925092565b60006020828403121561047057600080fd5b610479826103ff565b9392505050565b602081526000825180602084015260005b818110156104ae5760208186018101516040868401015201610491565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615ae16105b06000396000610331015260008181610eb30152818161180b015281816118be015281816118e0015281816134240152818161425401526145900152600050506000505060005050600050506000505060006133dd015260005050600050506000505060008181610e7d01528181611a5c015281816129af01528181612cc601528181612d5d01528181612ef701528181613ec1015281816140d0015281816141e401526142fc0152615ae16000f3fe6080604052600436106102cd5760003560e01c80638cc01c8611610175578063b7ca7241116100dc578063e76fede611610095578063f93f1cd01161006f578063f93f1cd014610c83578063fb744cc014610ca3578063fc54fb2714610cc3578063fecc9cc114610cdb5761031f565b8063e76fede614610c2e578063ef58bd6714610c4e578063f64b359814610c635761031f565b8063b7ca724114610ac7578063ba7fb0b414610b8a578063bc735d9014610baa578063ca94b0e914610bca578063ccebcabb14610bea578063e473522a14610c195761031f565b8063a2a317221161012e578063a2a31722146109e1578063a694fc3a14610a01578063a784d49814610a21578063ac9650d814610a41578063ad4d35b514610a6e578063ae4fe67a14610a8e5761031f565b80638cc01c86146108105780639054e343146108915780639ce7abe5146108b1578063a02b9426146108d1578063a212daf8146108f1578063a2594d82146109c15761031f565b806342c516931161023457806374612092116101ed5780637c145cc7116101c75780637c145cc71461078057806381e21b56146107b057806382d66cb8146107d0578063872d0489146107f05761031f565b8063746120921461070a5780637573ef4f1461072a5780637a7664601461074a5761031f565b806342c51693146106085780634ca7ac22146106285780634d99dd161461064857806351a60b0214610668578063561285e4146106885780636230001a146106ea5761031f565b806325d9897e1161028657806325d9897e146104485780632e17de781461056b57806339514ad21461058b5780633993d849146105b35780633a78b732146105d35780633ccfd60b146105f35761031f565b8063010167e514610375578063026e402b1461039557806308ce5f68146103b5578063162ea5ed146103e85780632119537314610408578063259bc435146104285761031f565b3661031f5760405162461bcd60e51b815260206004820152601760248201527f524543454956455f4554485f4e4f545f414c4c4f57454400000000000000000060448201526064015b60405180910390fd5b34801561032b57600080fd5b506040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e81801561036f578184f35b8184fd5b005b34801561038157600080fd5b50610373610390366004615110565b610cfb565b3480156103a157600080fd5b506103736103b0366004615172565b610dce565b3480156103c157600080fd5b506103d56103d036600461519e565b610ede565b6040519081526020015b60405180910390f35b3480156103f457600080fd5b506103d56104033660046151d7565b610ef3565b34801561041457600080fd5b5061037361042336600461522a565b610fb8565b34801561043457600080fd5b5061037361044336600461526b565b611088565b34801561045457600080fd5b5061055e61046336600461519e565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff808216606084015264010000000082046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e082015260049091015461010082015290565b6040516103df9190615286565b34801561057757600080fd5b50610373610586366004615327565b611177565b34801561059757600080fd5b50601a546040516001600160401b0390911681526020016103df565b3480156105bf57600080fd5b506103736105ce36600461522a565b61120a565b3480156105df57600080fd5b506103736105ee366004615340565b6112a6565b3480156105ff57600080fd5b50610373611441565b34801561061457600080fd5b5061037361062336600461536c565b6114d3565b34801561063457600080fd5b506103736106433660046153c9565b611684565b34801561065457600080fd5b50610373610663366004615172565b61177e565b34801561067457600080fd5b5061037361068336600461519e565b611831565b34801561069457600080fd5b506106a86106a336600461519e565b611907565b6040516103df9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b3480156106f657600080fd5b506103736107053660046153f7565b6119ad565b34801561071657600080fd5b5061037361072536600461522a565b611a92565b34801561073657600080fd5b506103d561074536600461543d565b611b2e565b34801561075657600080fd5b506103d5610765366004615340565b6001600160a01b03166000908152600e602052604090205490565b34801561078c57600080fd5b506107a061079b366004615484565b611b92565b60405190151581526020016103df565b3480156107bc57600080fd5b506103736107cb3660046154cf565b611ba7565b3480156107dc57600080fd5b506103736107eb366004615110565b611e20565b3480156107fc57600080fd5b506103d561080b366004615527565b611f31565b34801561081c57600080fd5b5061087661082b366004615340565b60408051808201825260008082526020918201819052825180840184528181528083018281526001600160a01b03959095168252600e90925291909120805482526004015490915290565b604080518251815260209283015192810192909252016103df565b34801561089d57600080fd5b506103d56108ac366004615484565b611f86565b3480156108bd57600080fd5b506103736108cc366004615565565b61206e565b3480156108dd57600080fd5b506103d56108ec36600461522a565b612199565b3480156108fd57600080fd5b5061098e61090c366004615484565b60408051608080820183526000808352602080840182905283850182905260609384018290526001600160a01b039788168252601e815284822096881682529586528381209490961686529284529381902081519283018252805483526001810154938301939093526002830154908201526003909101549181019190915290565b6040516103df91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b3480156109cd57600080fd5b506103736109dc366004615340565b61222e565b3480156109ed57600080fd5b506103736109fc366004615172565b612342565b348015610a0d57600080fd5b50610373610a1c366004615327565b6123d3565b348015610a2d57600080fd5b506103d5610a3c366004615340565b612464565b348015610a4d57600080fd5b50610a61610a5c3660046155ea565b61246f565b6040516103df9190615683565b348015610a7a57600080fd5b50610373610a89366004615703565b612556565b348015610a9a57600080fd5b506107a0610aa9366004615340565b6001600160a01b031660009081526022602052604090205460ff1690565b348015610ad357600080fd5b50610b4e610ae2366004615327565b6040805160808082018352600080835260208084018290528385018290526060938401829052948152601d8552839020835191820184528054825260018101546001600160401b0316948201949094526002840154928101929092526003909201549181019190915290565b6040516103df9190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b348015610b9657600080fd5b50610373610ba5366004615743565b61262f565b348015610bb657600080fd5b50610373610bc5366004615703565b612747565b348015610bd657600080fd5b50610373610be536600461522a565b6127d9565b348015610bf657600080fd5b50610c0a610c05366004615484565b612a27565b604051905181526020016103df565b348015610c2557600080fd5b50610373612a79565b348015610c3a57600080fd5b50610373610c49366004615784565b612b4b565b348015610c5a57600080fd5b5061037361306d565b348015610c6f57600080fd5b50610373610c7e3660046157c3565b613149565b348015610c8f57600080fd5b506103d5610c9e36600461522a565b61322c565b348015610caf57600080fd5b506103d5610cbe36600461519e565b613300565b348015610ccf57600080fd5b5060205460ff166107a0565b348015610ce757600080fd5b50610373610cf636600461522a565b61330c565b610d036133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190615831565b15610d8257604051632b37d9d160e21b815260040160405180910390fd5b8484610d8f8282336133ff565b828233909192610db557604051630c76b97b60e41b81526004016103169392919061584e565b505050610dc587868887876134c3565b50505050505050565b610dd66133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e379190615831565b15610e5557604051632b37d9d160e21b815260040160405180910390fd5b80600003610e7657604051630a2a4e5b60e11b815260040160405180910390fd5b610ead33827f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190613842565b610eda827f00000000000000000000000000000000000000000000000000000000000000008360006138fa565b5050565b6000610eea8383613ad0565b90505b92915050565b6000610efd6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190615831565b15610f7c57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038216610fa357604051633dbb48ed60e21b815260040160405180910390fd5b610faf85858585613b08565b95945050505050565b8282610fc58282336133ff565b828233909192610feb57604051630c76b97b60e41b81526004016103169392919061584e565b505050610ff66133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611033573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110579190615831565b1561107557604051632b37d9d160e21b815260040160405180910390fd5b611080858585613d23565b505050505050565b6110906133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f19190615871565b6001600160a01b0316336001600160a01b03161461112257604051635d9044cd60e01b815260040160405180910390fd5b601a805467ffffffffffffffff19166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b61117f6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e09190615831565b156111fe57604051632b37d9d160e21b815260040160405180910390fd5b61120781613e21565b50565b6112126133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190615831565b1561129157604051632b37d9d160e21b815260040160405180910390fd5b6112a18383600080600086613ff4565b505050565b6112ae6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130f9190615831565b1561132d57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b602090815260408083203380855292529091206003810154600160a01b810463ffffffff908116911614158061139357506003810154600160c01b81046001600160401b039081166401000000009092041614155b156112a1576003810180546401000000006001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026bffffffffffffffffffffffff199095161793909317938490556040805193851684529190930490921660208201526001600160a01b0384811692908616917fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c6910160405180910390a3505050565b6114496133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190615831565b156114c857604051632b37d9d160e21b815260040160405180910390fd5b6114d133614157565b565b6114db6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c9190615831565b1561155a57604051632b37d9d160e21b815260040160405180910390fd5b83836115678282336133ff565b82823390919261158d57604051630c76b97b60e41b81526004016103169392919061584e565b50505061159d83620f4240101590565b83906115bf57604051631504950160e21b815260040161031691815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156115fb576115fb61588e565b600281111561160c5761160c61588e565b815260208101919091526040016000205583600281111561162f5761162f61588e565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161167491815260200190565b60405180910390a4505050505050565b61168c6133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ed9190615871565b6001600160a01b0316336001600160a01b03161461171e57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b6117866133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e79190615831565b1561180557604051632b37d9d160e21b815260040160405180910390fd5b6112a1827f00000000000000000000000000000000000000000000000000000000000000008333613b08565b6118396133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189a9190615831565b156118b857604051632b37d9d160e21b815260040160405180910390fd5b610eda827f0000000000000000000000000000000000000000000000000000000000000000837f0000000000000000000000000000000000000000000000000000000000000000600080613ff4565b6119396040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b61196b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60006119778585614250565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b6119b56133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a169190615831565b15611a3457604051632b37d9d160e21b815260040160405180910390fd5b81600003611a5557604051630a2a4e5b60e11b815260040160405180910390fd5b611a8033837f0000000000000000000000000000000000000000000000000000000000000000610e9d565b611a8c848484846138fa565b50505050565b611a9a6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afb9190615831565b15611b1957604051632b37d9d160e21b815260040160405180910390fd5b611b2383826142d4565b6112a183838361432a565b6001600160a01b038084166000908152601c60209081526040808320938616835292905290812081836002811115611b6857611b6861588e565b6002811115611b7957611b7961588e565b81526020019081526020016000205490505b9392505050565b6000611b9f8484846133ff565b949350505050565b611baf6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190615831565b15611c2e57604051632b37d9d160e21b815260040160405180910390fd5b8383611c3b8282336133ff565b828233909192611c6157604051630c76b97b60e41b81526004016103169392919061584e565b50505063ffffffff8416620f424010158490611c99576040516329bff5f560e01b815263ffffffff9091166004820152602401610316565b50601a5483906001600160401b03908116908216811015611ce05760405163ee5602e160e01b81526001600160401b03928316600482015291166024820152604401610316565b50506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b0316611d3f576040516330acea0d60e11b81526004016103169291906158a4565b5050600381015463ffffffff868116600160a01b90920416141580611d7b575060038101546001600160401b03858116600160c01b9092041614155b15610dc5576003810180546001600160401b038616600160c01b026001600160c01b0363ffffffff8916600160a01b02166001600160a01b039283161717909155604051878216918916907fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba90611e0f908990899063ffffffff9290921682526001600160401b0316602082015260400190565b60405180910390a350505050505050565b611e286133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e899190615831565b15611ea757604051632b37d9d160e21b815260040160405180910390fd5b8484611eb48282336133ff565b828233909192611eda57604051630c76b97b60e41b81526004016103169392919061584e565b5050506001600160a01b038616600090815260226020526040902054869060ff16611f2357604051622920f760e21b81526001600160a01b039091166004820152602401610316565b50610dc587868887876134c3565b600080611f3e8585613ad0565b90506000611f4c8686614473565b90506000611f6063ffffffff8616846158d4565b90506000611f6e8383614496565b9050611f7a81856158eb565b98975050505050505050565b6001600160a01b038084166000908152601e6020908152604080832086851684528252808320938516835292905290812060038101548203611fcc576000915050611b8b565b6001600160a01b038086166000908152601b60209081526040808320938816835292905290812082545b8015612062576000818152601d602052604090206001810154426001600160401b03909116116120515760028301546001840154825461203691906158d4565b61204091906158fe565b61204a90856158eb565b9350612057565b50612062565b600201549050611ff6565b50909695505050505050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af11580156120af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d39190615871565b6001600160a01b0316336001600160a01b0316146121335760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610316565b60405163623faf6160e01b81526001600160a01b0385169063623faf61906121619086908690600401615920565b600060405180830381600087803b15801561217b57600080fd5b505af115801561218f573d6000803e3d6000fd5b5050505050505050565b60006121a36133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122049190615831565b1561222257604051632b37d9d160e21b815260040160405180910390fd5b611b9f84848433613b08565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af115801561226f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122939190615871565b6001600160a01b0316336001600160a01b0316146122f35760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610316565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561232e57600080fd5b505af1158015611080573d6000803e3d6000fd5b61234a6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ab9190615831565b156123c957604051632b37d9d160e21b815260040160405180910390fd5b610eda82826142d4565b6123db6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243c9190615831565b1561245a57604051632b37d9d160e21b815260040160405180910390fd5b61120733826142d4565b6000610eed826144ad565b604080516000815260208101909152606090826001600160401b0381111561249957612499615962565b6040519080825280602002602001820160405280156124cc57816020015b60608152602001906001900390816124b75790505b50915060005b8381101561254e57612529308686848181106124f0576124f0615978565b9050602002810190612502919061598e565b85604051602001612515939291906159d4565b6040516020818303038152906040526144f8565b83828151811061253b5761253b615978565b60209081029190910101526001016124d2565b505092915050565b61255e6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561259b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bf9190615831565b156125dd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff1661262357604051622920f760e21b81526001600160a01b039091166004820152602401610316565b506112a1838383614565565b6126376133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126989190615831565b156126b657604051632b37d9d160e21b815260040160405180910390fd5b83836126c38282336133ff565b8282339091926126e957604051630c76b97b60e41b81526004016103169392919061584e565b50505085846126f98282336133ff565b82823390919261271f57604051630c76b97b60e41b81526004016103169392919061584e565b505050600061272f898988613d23565b905061273c89888361432a565b505050505050505050565b61274f6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190615831565b156127ce57604051632b37d9d160e21b815260040160405180910390fd5b6112a1838383614565565b6127e16133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128429190615831565b1561286057604051632b37d9d160e21b815260040160405180910390fd5b8060000361288157604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03640100000000830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004909201546101008201529084908490612956576040516330acea0d60e11b81526004016103169291906158a4565b505060006129648585614250565b90506000816003015411858590916129915760405163b6a70b3b60e01b81526004016103169291906158a4565b50508281600201546129a391906158eb565b60028201556129d333847f0000000000000000000000000000000000000000000000000000000000000000610e9d565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a151153085604051612a1891815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612a518686614250565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b612a816133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae29190615871565b6001600160a01b0316336001600160a01b031614612b1357604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b612b536133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb49190615831565b15612bd257604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612c018784614250565b9050600081600201548360000154612c1991906158eb565b9050808781612c445760405163587ab9ab60e11b815260048101929092526024820152604401610316565b50506000612c528883614496565b90506000612c64856000015483614496565b90508015612ed4576003850154600090612c8990839063ffffffff9081169061469516565b9050888181811015612cb757604051632f514d5760e21b815260048101929092526024820152604401610316565b50508815612d4e57612cf6888a7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031691906146fc565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612d4591815260200190565b60405180910390a45b612d8c612d5b8a8461594f565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031690614737565b8554600090612da3670de0b6b3a7640000856158d4565b612dad91906158fe565b9050670de0b6b3a7640000612dc2828261594f565b8860010154612dd191906158d4565b612ddb91906158fe565b60018801558654612ded90849061594f565b8755600287015415801590612e0457506001870154155b15612e285760006002880181905560048801805491612e22836159fb565b91905055505b6001600160a01b038c166000908152600e6020526040902060040154612e4f90849061594f565b6001600160a01b038d166000908152600e60205260409020600481019190915554612e7b90849061594f565b6001600160a01b038d81166000818152600e60209081526040918290209490945551868152918b169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a350505b612ede818361594f565b915081156130615760205460ff161561301357612f1b827f0000000000000000000000000000000000000000000000000000000000000000612d7d565b6002840154600090612f35670de0b6b3a7640000856158d4565b612f3f91906158fe565b9050828560020154612f51919061594f565b6002860155670de0b6b3a7640000612f69828261594f565b8660050154612f7891906158d4565b612f8291906158fe565b6005860155600685015415801590612f9c57506005850154155b15612fc05760006006860181905560078601805491612fba836159fb565b91905055505b866001600160a01b03168b6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b7718560405161300591815260200190565b60405180910390a350613061565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b248460405161305891815260200190565b60405180910390a35b50505050505050505050565b6130756133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d69190615871565b6001600160a01b0316336001600160a01b03161461310757604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff1916600190811782556040519081527f78bd9090b1ff40fc9c2d6056a25fb880530a766f5b0595d77f3cf33fe189c194910160405180910390a1565b6131516133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b29190615831565b156131d057604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166131f7576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b03831661321e5760405163a962605960e01b815260040160405180910390fd5b611080868686868686613ff4565b60006132366133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190615831565b156132b557604051632b37d9d160e21b815260040160405180910390fd5b83836132c28282336133ff565b8282339091926132e857604051630c76b97b60e41b81526004016103169392919061584e565b5050506132f686868661477f565b9695505050505050565b6000610eea8383614473565b6133146133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133759190615831565b1561339357604051632b37d9d160e21b815260040160405180910390fd5b82826133a08282336133ff565b8282339091926133c657604051630c76b97b60e41b81526004016103169392919061584e565b5050506133d485858561432a565b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b03160361342257506001611b8b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361348a57506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff16611b8b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff16611b8b565b600084116134e457604051630a2a4e5b60e11b815260040160405180910390fd5b8163ffffffff8116620f42401015613518576040516329bff5f560e01b815263ffffffff9091166004820152602401610316565b50601a5481906001600160401b0390811690821681101561355f5760405163ee5602e160e01b81526001600160401b03928316600482015291166024820152604401610316565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156135b857604051632b542c0d60e11b815260040160405180910390fd5b60006135c3866144ad565b90508481808211156135f15760405163ccaf28a960e01b815260048101929092526024820152604401610316565b505060405180610120016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b031681526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b0316021790555061010082015181600401559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546137df91906158eb565b60048201556040805187815263ffffffff861660208201526001600160401b038516918101919091526001600160a01b0380871691908916907f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc2590606001611e0f565b80156112a1576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af115801561389e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c29190615831565b6112a15760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610316565b6001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b0316613956576040516330acea0d60e11b81526004016103169291906158a4565b505060006139648585614250565b336000908152600482016020526040902060028201549192509015158061398d57506003820154155b868690916139b057604051631984edef60e31b81526004016103169291906158a4565b505060008260020154600014806139ce575082600501548360020154145b9050600081613a0957836005015484600201546139eb919061594f565b60038501546139fa90886158d4565b613a0491906158fe565b613a0b565b855b90508015801590613a1c5750848110155b81869091613a4657604051635d88e8d160e01b815260048101929092526024820152604401610316565b5050858460020154613a5891906158eb565b60028501556003840154613a6d9082906158eb565b60038501558254613a7f9082906158eb565b835560405186815233906001600160a01b0389811691908b16907feaefa9a428d7aa0b99b7ac8aec4885d6304a78cc8d6a78a6c99dd29e9693cdf49060200160405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610eea919061594f565b6000808311613b2a57604051637318ad9960e01b815260040160405180910390fd5b6000613b368686614250565b33600090815260048201602052604090208054919250908580821015613b785760405163ab99793560e01b815260048101929092526024820152604401610316565b5050600282015487908790613ba257604051631984edef60e31b81526004016103169291906158a4565b50506000826003015483600501548460020154613bbf919061594f565b613bc990886158d4565b613bd391906158fe565b905060008360050154600014613c065760058401546006850154613bf790846158d4565b613c0191906158fe565b613c08565b815b6001600160a01b038a81166000908152601b60209081526040808320938d1683529290529081206003015491925090613c529064010000000090046001600160401b0316426158eb565b9050828560050154613c6491906158eb565b60058601556006850154613c799083906158eb565b60068601556003850154613c8e90899061594f565b60038601558354613ca090899061594f565b84600001819055506000613cbc8b8b8a86868b600701546148fc565b9050336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f50d19209821f5d69c0884b007c6ba9ffde612c0cff5dd3234d0c6baf2c4556aa87604051613d0d91815260200190565b60405180910390a49a9950505050505050505050565b6001600160a01b038084166000908152601b60209081526040808320938616835292905290812060028101546001820154600483015484929190613d7290899089908290859087908c90614aa4565b865492955093509150613d8690849061594f565b845560028401829055600184018190556001600160a01b0388166000908152600e602052604081206004018054859290613dc190849061594f565b92505081905550866001600160a01b0316886001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d85604051613e0d91815260200190565b60405180910390a350909695505050505050565b336000829003613e4457604051630a2a4e5b60e11b815260040160405180910390fd5b6000613e4f826144ad565b9050828180821115613e7d5760405163ccaf28a960e01b815260048101929092526024820152604401610316565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613f2d57613eb8868361594f565b8355613ee585877f0000000000000000000000000000000000000000000000000000000000000000612ce6565b846001600160a01b03167f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc87604051613f2091815260200190565b60405180910390a2611080565b600283015415801590613f44575082600301544310155b15613f5257613f5285614157565b600283015415613f7c57613f79613f6d846003015443614bec565b84600201548389614c06565b90505b858360020154613f8c91906158eb565b6002840155613f9b81436158eb565b6003840181905560028401546040805191825260208201929092526001600160a01b038716917fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01910160405180910390a2505050505050565b60006140008787614250565b90508060020154600014158061401857506003810154155b8787909161403b57604051631984edef60e31b81526004016103169291906158a4565b5050600080826006015490506000836005015490506140638a8a3384868a8a60070154614aa4565b60028701549295509350915061407a90849061594f565b6002850155600684018290556005840181905582156140f4576001600160a01b038816158015906140b357506001600160a01b03871615155b156140c9576140c4888885896138fa565b6140f4565b6140f433847f0000000000000000000000000000000000000000000000000000000000000000612ce6565b336001600160a01b0316896001600160a01b03168b6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e8660405161414391815260200190565b60405180910390a450505050505050505050565b6001600160a01b0381166000908152600e602052604081206002810154909181900361419657604051630a2a4e5b60e11b815260040160405180910390fd5b6003820154438111156141bf57604051631d222f1b60e31b815260040161031691815260200190565b50600060028301819055600383015581546141db90829061594f565b825561420883827f0000000000000000000000000000000000000000000000000000000000000000612ce6565b826001600160a01b03167f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc8260405161424391815260200190565b60405180910390a2505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036142a957506001600160a01b0382166000908152601460205260409020610eed565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610eed565b806000036142f557604051630a2a4e5b60e11b815260040160405180910390fd5b61432033827f0000000000000000000000000000000000000000000000000000000000000000610e9d565b610eda8282614c5a565b6001600160a01b038084166000908152601b6020908152604080832093861683529290529081209082900361437257604051630a2a4e5b60e11b815260040160405180910390fd5b600381015484908490600160601b90046001600160401b03166143aa576040516330acea0d60e11b81526004016103169291906158a4565b505060006143b7856144ad565b90508281808211156143e55760405163ccaf28a960e01b815260048101929092526024820152604401610316565b505081546143f49084906158eb565b82556001600160a01b0385166000908152600e602052604090206004015461441d9084906158eb565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc2347459101612a18565b6000806144808484614250565b905080600501548160020154611b9f919061594f565b6000818311156144a65781610eea565b5090919050565b6001600160a01b0381166000908152600e602052604081206002810154600182015460048301549254919290916144e4919061594f565b6144ee919061594f565b610eed919061594f565b6060600080846001600160a01b0316846040516145159190615a14565b600060405180830381855af49150503d8060008114614550576040519150601f19603f3d011682016040523d82523d6000602084013e614555565b606091505b5091509150610faf858383614ccd565b336001600160a01b0383160361458e57604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036145fb573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff1916821515179055614637565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f84604051614688911515815260200190565b60405180910390a4505050565b60006146a483620f4240101590565b806146b757506146b782620f4240101590565b838390916146e15760405163768bf0eb60e11b815260048101929092526024820152604401610316565b50620f424090506146f283856158d4565b610eea91906158fe565b80156112a15760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb9060440161387f565b8015610eda57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561232e57600080fd5b6000816000036147a257604051630a2a4e5b60e11b815260040160405180910390fd5b60006147ae8585613ad0565b90508083808210156147dc5760405163587ab9ab60e11b815260048101929092526024820152604401610316565b50506001600160a01b038086166000908152601b60209081526040808320938816835292905290812060018101549091901561483657816001015485836002015461482791906158d4565b61483191906158fe565b614838565b845b600383015490915060009061485e9064010000000090046001600160401b0316426158eb565b905081836002015461487091906158eb565b600284015560018301546148859087906158eb565b836001018190555060006148a189898b868689600401546148fc565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa896040516148e891815260200190565b60405180910390a398975050505050505050565b6001600160a01b038087166000908152601e6020908152604080832089851684528252808320938816835292905290812060038101546064116149525760405163332b852b60e11b815260040160405180910390fd5b60028101546040516bffffffffffffffffffffffff1960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160408051808303601f1901815282825280516020918201206080840183528984526001600160401b038981168386019081526000868601818152606088018c8152858352601d909652959020955186555160018601805467ffffffffffffffff19169190921617905591516002840155516003928301559083015490915015614a325760018201546000908152601d602052604090206002018190555b614a3c8282614d29565b604080518781526001600160401b03871660208201529081018290526001600160a01b03808916918a8216918c16907f434422e55cc9ab3bcca23cbf515724bbad83af8dd645832a1abd3db5e641dea59060600160405180910390a498975050505050505050565b6001600160a01b038088166000908152601e602090815260408083208a8516845282528083209389168352929052908120600381015482918291614afb576040516307e332c560e31b815260040160405180910390fd5b60008080614b53614dbc614dd1614f30868f8f8e604051602001614b38949392919093845260208401929092526040830152606082015260800190565b60408051601f1981840301815291905288939291908e614f61565b9150915080806020019051810190614b6b9190615a30565b809c50819d508295505050508b6001600160a01b03168d6001600160a01b03168f6001600160a01b03167f9de822a9c144d03cad4a18bc322e9a3d91ffa99463d22e5c25da2a41d4c354d58587604051614bcf929190918252602082015260400190565b60405180910390a450909c989b5096995096975050505050505050565b6000818311614bfc576000610eea565b610eea828461594f565b6000614c1282856158eb565b6001614c1e84876158eb565b614c28919061594f565b614c3284866158d4565b614c3c87896158d4565b614c4691906158eb565b614c5091906158eb565b610faf91906158fe565b6001600160a01b0382166000908152600e6020526040902054614c7e9082906158eb565b6001600160a01b0383166000818152600e6020526040908190209290925590517f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc2906117729084815260200190565b606082614ce257614cdd8261501b565b611b8b565b8151158015614cf957506001600160a01b0384163b155b15614d2257604051639996b31560e01b81526001600160a01b0385166004820152602401610316565b5080611b8b565b612710826003015410614d4f576040516303a8c56b60e61b815260040160405180910390fd5b80614d6d57604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d899084906158eb565b90915550506003820154600003614d9e578082555b6001826003016000828254614db391906158eb565b90915550505050565b6000908152601d602052604090206002015490565b6000828152601d60205260408120600181015460609190426001600160401b039091161115614e1457505060408051602081019091526000815260019150614f29565b60008060008087806020019051810190614e2e9190615a5e565b93509350935093506000808287600301541490508015614e8b5786548490614e579087906158d4565b614e6191906158fe565b9150614e6d828661594f565b8754909550614e7c908561594f565b9350614e8882876158eb565b95505b865460018801546040805185815260208101939093526001600160401b039091169082015281151560608201528b907fbe7f1ad13b07d1f0e9574e97c844204d5433e4ab98133a1f0ce257764a6abeb79060800160405180910390a26040805160208101889052908101869052606081018590526080810184905260a001604051602081830303815290604052995060008a98509850505050505050505b9250929050565b6000908152601d6020526040812081815560018101805467ffffffffffffffff191690556002810182905560030155565b600060608760030154831115614f8a57604051634a411b9d60e11b815260040160405180910390fd5b60008315614f985783614f9e565b88600301545b89549094505b8015801590614fb35750600085115b1561500c57600080614fc983898c63ffffffff16565b915091508115614fda57505061500c565b965086614fe88c8c8b615044565b925086614ff481615a94565b9750508380615002906159fb565b9450505050614fa4565b50989397509295505050505050565b80511561502b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008084600301541161506a5760405163ddaf8f2160e01b815260040160405180910390fd5b600061507d85600001548563ffffffff16565b905061509085600001548463ffffffff16565b60018560030160008282546150a5919061594f565b909155505080855560038501546000036150c157600060018601555b5050915492915050565b6001600160a01b038116811461120757600080fd5b803563ffffffff811681146150f457600080fd5b919050565b80356001600160401b03811681146150f457600080fd5b600080600080600060a0868803121561512857600080fd5b8535615133816150cb565b94506020860135615143816150cb565b935060408601359250615158606087016150e0565b9150615166608087016150f9565b90509295509295909350565b6000806040838503121561518557600080fd5b8235615190816150cb565b946020939093013593505050565b600080604083850312156151b157600080fd5b82356151bc816150cb565b915060208301356151cc816150cb565b809150509250929050565b600080600080608085870312156151ed57600080fd5b84356151f8816150cb565b93506020850135615208816150cb565b925060408501359150606085013561521f816150cb565b939692955090935050565b60008060006060848603121561523f57600080fd5b833561524a816150cb565b9250602084013561525a816150cb565b929592945050506040919091013590565b60006020828403121561527d57600080fd5b610eea826150f9565b60006101208201905082518252602083015160208301526040830151604083015263ffffffff60608401511660608301526001600160401b03608084015116608083015260a08301516152e460a08401826001600160401b03169052565b5060c08301516152fc60c084018263ffffffff169052565b5060e083015161531760e08401826001600160401b03169052565b5061010092830151919092015290565b60006020828403121561533957600080fd5b5035919050565b60006020828403121561535257600080fd5b8135611b8b816150cb565b8035600381106150f457600080fd5b6000806000806080858703121561538257600080fd5b843561538d816150cb565b9350602085013561539d816150cb565b92506153ab6040860161535d565b9396929550929360600135925050565b801515811461120757600080fd5b600080604083850312156153dc57600080fd5b82356153e7816150cb565b915060208301356151cc816153bb565b6000806000806080858703121561540d57600080fd5b8435615418816150cb565b93506020850135615428816150cb565b93969395505050506040820135916060013590565b60008060006060848603121561545257600080fd5b833561545d816150cb565b9250602084013561546d816150cb565b915061547b6040850161535d565b90509250925092565b60008060006060848603121561549957600080fd5b83356154a4816150cb565b925060208401356154b4816150cb565b915060408401356154c4816150cb565b809150509250925092565b600080600080608085870312156154e557600080fd5b84356154f0816150cb565b93506020850135615500816150cb565b925061550e604086016150e0565b915061551c606086016150f9565b905092959194509250565b60008060006060848603121561553c57600080fd5b8335615547816150cb565b92506020840135615557816150cb565b915061547b604085016150e0565b60008060006040848603121561557a57600080fd5b8335615585816150cb565b925060208401356001600160401b038111156155a057600080fd5b8401601f810186136155b157600080fd5b80356001600160401b038111156155c757600080fd5b8660208284010111156155d957600080fd5b939660209190910195509293505050565b600080602083850312156155fd57600080fd5b82356001600160401b0381111561561357600080fd5b8301601f8101851361562457600080fd5b80356001600160401b0381111561563a57600080fd5b8560208260051b840101111561564f57600080fd5b6020919091019590945092505050565b60005b8381101561567a578181015183820152602001615662565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156156f757603f19878603018452815180518087526156d481602089016020850161565f565b601f01601f191695909501602090810195509384019391909101906001016156ab565b50929695505050505050565b60008060006060848603121561571857600080fd5b8335615723816150cb565b92506020840135615733816150cb565b915060408401356154c4816153bb565b6000806000806080858703121561575957600080fd5b8435615764816150cb565b93506020850135615774816150cb565b925060408501356153ab816150cb565b6000806000806080858703121561579a57600080fd5b84356157a5816150cb565b93506020850135925060408501359150606085013561521f816150cb565b60008060008060008060c087890312156157dc57600080fd5b86356157e7816150cb565b955060208701356157f7816150cb565b94506040870135615807816150cb565b93506060870135615817816150cb565b9598949750929560808101359460a0909101359350915050565b60006020828403121561584357600080fd5b8151611b8b816153bb565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561588357600080fd5b8151611b8b816150cb565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610eed57610eed6158be565b80820180821115610eed57610eed6158be565b60008261591b57634e487b7160e01b600052601260045260246000fd5b500490565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b81810381811115610eed57610eed6158be565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126159a557600080fd5b8301803591506001600160401b038211156159bf57600080fd5b602001915036819003821315614f2957600080fd5b8284823760008382016000815283516159f181836020880161565f565b0195945050505050565b600060018201615a0d57615a0d6158be565b5060010190565b60008251615a2681846020870161565f565b9190910192915050565b600080600060608486031215615a4557600080fd5b5050815160208301516040909301519094929350919050565b60008060008060808587031215615a7457600080fd5b505082516020840151604085015160609095015191969095509092509050565b600081615aa357615aa36158be565b50600019019056fea2646970667358221220a984158462a19071d33f0c9b0b8967a96b4b64feb78c617c0635061568508fff64736f6c634300081b0033", - "deployedBytecode": "0x6080604052600436106102cd5760003560e01c80638cc01c8611610175578063b7ca7241116100dc578063e76fede611610095578063f93f1cd01161006f578063f93f1cd014610c83578063fb744cc014610ca3578063fc54fb2714610cc3578063fecc9cc114610cdb5761031f565b8063e76fede614610c2e578063ef58bd6714610c4e578063f64b359814610c635761031f565b8063b7ca724114610ac7578063ba7fb0b414610b8a578063bc735d9014610baa578063ca94b0e914610bca578063ccebcabb14610bea578063e473522a14610c195761031f565b8063a2a317221161012e578063a2a31722146109e1578063a694fc3a14610a01578063a784d49814610a21578063ac9650d814610a41578063ad4d35b514610a6e578063ae4fe67a14610a8e5761031f565b80638cc01c86146108105780639054e343146108915780639ce7abe5146108b1578063a02b9426146108d1578063a212daf8146108f1578063a2594d82146109c15761031f565b806342c516931161023457806374612092116101ed5780637c145cc7116101c75780637c145cc71461078057806381e21b56146107b057806382d66cb8146107d0578063872d0489146107f05761031f565b8063746120921461070a5780637573ef4f1461072a5780637a7664601461074a5761031f565b806342c51693146106085780634ca7ac22146106285780634d99dd161461064857806351a60b0214610668578063561285e4146106885780636230001a146106ea5761031f565b806325d9897e1161028657806325d9897e146104485780632e17de781461056b57806339514ad21461058b5780633993d849146105b35780633a78b732146105d35780633ccfd60b146105f35761031f565b8063010167e514610375578063026e402b1461039557806308ce5f68146103b5578063162ea5ed146103e85780632119537314610408578063259bc435146104285761031f565b3661031f5760405162461bcd60e51b815260206004820152601760248201527f524543454956455f4554485f4e4f545f414c4c4f57454400000000000000000060448201526064015b60405180910390fd5b34801561032b57600080fd5b506040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e81801561036f578184f35b8184fd5b005b34801561038157600080fd5b50610373610390366004615110565b610cfb565b3480156103a157600080fd5b506103736103b0366004615172565b610dce565b3480156103c157600080fd5b506103d56103d036600461519e565b610ede565b6040519081526020015b60405180910390f35b3480156103f457600080fd5b506103d56104033660046151d7565b610ef3565b34801561041457600080fd5b5061037361042336600461522a565b610fb8565b34801561043457600080fd5b5061037361044336600461526b565b611088565b34801561045457600080fd5b5061055e61046336600461519e565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff808216606084015264010000000082046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e082015260049091015461010082015290565b6040516103df9190615286565b34801561057757600080fd5b50610373610586366004615327565b611177565b34801561059757600080fd5b50601a546040516001600160401b0390911681526020016103df565b3480156105bf57600080fd5b506103736105ce36600461522a565b61120a565b3480156105df57600080fd5b506103736105ee366004615340565b6112a6565b3480156105ff57600080fd5b50610373611441565b34801561061457600080fd5b5061037361062336600461536c565b6114d3565b34801561063457600080fd5b506103736106433660046153c9565b611684565b34801561065457600080fd5b50610373610663366004615172565b61177e565b34801561067457600080fd5b5061037361068336600461519e565b611831565b34801561069457600080fd5b506106a86106a336600461519e565b611907565b6040516103df9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b3480156106f657600080fd5b506103736107053660046153f7565b6119ad565b34801561071657600080fd5b5061037361072536600461522a565b611a92565b34801561073657600080fd5b506103d561074536600461543d565b611b2e565b34801561075657600080fd5b506103d5610765366004615340565b6001600160a01b03166000908152600e602052604090205490565b34801561078c57600080fd5b506107a061079b366004615484565b611b92565b60405190151581526020016103df565b3480156107bc57600080fd5b506103736107cb3660046154cf565b611ba7565b3480156107dc57600080fd5b506103736107eb366004615110565b611e20565b3480156107fc57600080fd5b506103d561080b366004615527565b611f31565b34801561081c57600080fd5b5061087661082b366004615340565b60408051808201825260008082526020918201819052825180840184528181528083018281526001600160a01b03959095168252600e90925291909120805482526004015490915290565b604080518251815260209283015192810192909252016103df565b34801561089d57600080fd5b506103d56108ac366004615484565b611f86565b3480156108bd57600080fd5b506103736108cc366004615565565b61206e565b3480156108dd57600080fd5b506103d56108ec36600461522a565b612199565b3480156108fd57600080fd5b5061098e61090c366004615484565b60408051608080820183526000808352602080840182905283850182905260609384018290526001600160a01b039788168252601e815284822096881682529586528381209490961686529284529381902081519283018252805483526001810154938301939093526002830154908201526003909101549181019190915290565b6040516103df91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b3480156109cd57600080fd5b506103736109dc366004615340565b61222e565b3480156109ed57600080fd5b506103736109fc366004615172565b612342565b348015610a0d57600080fd5b50610373610a1c366004615327565b6123d3565b348015610a2d57600080fd5b506103d5610a3c366004615340565b612464565b348015610a4d57600080fd5b50610a61610a5c3660046155ea565b61246f565b6040516103df9190615683565b348015610a7a57600080fd5b50610373610a89366004615703565b612556565b348015610a9a57600080fd5b506107a0610aa9366004615340565b6001600160a01b031660009081526022602052604090205460ff1690565b348015610ad357600080fd5b50610b4e610ae2366004615327565b6040805160808082018352600080835260208084018290528385018290526060938401829052948152601d8552839020835191820184528054825260018101546001600160401b0316948201949094526002840154928101929092526003909201549181019190915290565b6040516103df9190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b348015610b9657600080fd5b50610373610ba5366004615743565b61262f565b348015610bb657600080fd5b50610373610bc5366004615703565b612747565b348015610bd657600080fd5b50610373610be536600461522a565b6127d9565b348015610bf657600080fd5b50610c0a610c05366004615484565b612a27565b604051905181526020016103df565b348015610c2557600080fd5b50610373612a79565b348015610c3a57600080fd5b50610373610c49366004615784565b612b4b565b348015610c5a57600080fd5b5061037361306d565b348015610c6f57600080fd5b50610373610c7e3660046157c3565b613149565b348015610c8f57600080fd5b506103d5610c9e36600461522a565b61322c565b348015610caf57600080fd5b506103d5610cbe36600461519e565b613300565b348015610ccf57600080fd5b5060205460ff166107a0565b348015610ce757600080fd5b50610373610cf636600461522a565b61330c565b610d036133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190615831565b15610d8257604051632b37d9d160e21b815260040160405180910390fd5b8484610d8f8282336133ff565b828233909192610db557604051630c76b97b60e41b81526004016103169392919061584e565b505050610dc587868887876134c3565b50505050505050565b610dd66133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e379190615831565b15610e5557604051632b37d9d160e21b815260040160405180910390fd5b80600003610e7657604051630a2a4e5b60e11b815260040160405180910390fd5b610ead33827f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190613842565b610eda827f00000000000000000000000000000000000000000000000000000000000000008360006138fa565b5050565b6000610eea8383613ad0565b90505b92915050565b6000610efd6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190615831565b15610f7c57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038216610fa357604051633dbb48ed60e21b815260040160405180910390fd5b610faf85858585613b08565b95945050505050565b8282610fc58282336133ff565b828233909192610feb57604051630c76b97b60e41b81526004016103169392919061584e565b505050610ff66133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611033573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110579190615831565b1561107557604051632b37d9d160e21b815260040160405180910390fd5b611080858585613d23565b505050505050565b6110906133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f19190615871565b6001600160a01b0316336001600160a01b03161461112257604051635d9044cd60e01b815260040160405180910390fd5b601a805467ffffffffffffffff19166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b61117f6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e09190615831565b156111fe57604051632b37d9d160e21b815260040160405180910390fd5b61120781613e21565b50565b6112126133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190615831565b1561129157604051632b37d9d160e21b815260040160405180910390fd5b6112a18383600080600086613ff4565b505050565b6112ae6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130f9190615831565b1561132d57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b602090815260408083203380855292529091206003810154600160a01b810463ffffffff908116911614158061139357506003810154600160c01b81046001600160401b039081166401000000009092041614155b156112a1576003810180546401000000006001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026bffffffffffffffffffffffff199095161793909317938490556040805193851684529190930490921660208201526001600160a01b0384811692908616917fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c6910160405180910390a3505050565b6114496133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190615831565b156114c857604051632b37d9d160e21b815260040160405180910390fd5b6114d133614157565b565b6114db6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c9190615831565b1561155a57604051632b37d9d160e21b815260040160405180910390fd5b83836115678282336133ff565b82823390919261158d57604051630c76b97b60e41b81526004016103169392919061584e565b50505061159d83620f4240101590565b83906115bf57604051631504950160e21b815260040161031691815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156115fb576115fb61588e565b600281111561160c5761160c61588e565b815260208101919091526040016000205583600281111561162f5761162f61588e565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161167491815260200190565b60405180910390a4505050505050565b61168c6133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ed9190615871565b6001600160a01b0316336001600160a01b03161461171e57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b6117866133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e79190615831565b1561180557604051632b37d9d160e21b815260040160405180910390fd5b6112a1827f00000000000000000000000000000000000000000000000000000000000000008333613b08565b6118396133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189a9190615831565b156118b857604051632b37d9d160e21b815260040160405180910390fd5b610eda827f0000000000000000000000000000000000000000000000000000000000000000837f0000000000000000000000000000000000000000000000000000000000000000600080613ff4565b6119396040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b61196b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60006119778585614250565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b6119b56133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a169190615831565b15611a3457604051632b37d9d160e21b815260040160405180910390fd5b81600003611a5557604051630a2a4e5b60e11b815260040160405180910390fd5b611a8033837f0000000000000000000000000000000000000000000000000000000000000000610e9d565b611a8c848484846138fa565b50505050565b611a9a6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afb9190615831565b15611b1957604051632b37d9d160e21b815260040160405180910390fd5b611b2383826142d4565b6112a183838361432a565b6001600160a01b038084166000908152601c60209081526040808320938616835292905290812081836002811115611b6857611b6861588e565b6002811115611b7957611b7961588e565b81526020019081526020016000205490505b9392505050565b6000611b9f8484846133ff565b949350505050565b611baf6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190615831565b15611c2e57604051632b37d9d160e21b815260040160405180910390fd5b8383611c3b8282336133ff565b828233909192611c6157604051630c76b97b60e41b81526004016103169392919061584e565b50505063ffffffff8416620f424010158490611c99576040516329bff5f560e01b815263ffffffff9091166004820152602401610316565b50601a5483906001600160401b03908116908216811015611ce05760405163ee5602e160e01b81526001600160401b03928316600482015291166024820152604401610316565b50506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b0316611d3f576040516330acea0d60e11b81526004016103169291906158a4565b5050600381015463ffffffff868116600160a01b90920416141580611d7b575060038101546001600160401b03858116600160c01b9092041614155b15610dc5576003810180546001600160401b038616600160c01b026001600160c01b0363ffffffff8916600160a01b02166001600160a01b039283161717909155604051878216918916907fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba90611e0f908990899063ffffffff9290921682526001600160401b0316602082015260400190565b60405180910390a350505050505050565b611e286133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e899190615831565b15611ea757604051632b37d9d160e21b815260040160405180910390fd5b8484611eb48282336133ff565b828233909192611eda57604051630c76b97b60e41b81526004016103169392919061584e565b5050506001600160a01b038616600090815260226020526040902054869060ff16611f2357604051622920f760e21b81526001600160a01b039091166004820152602401610316565b50610dc587868887876134c3565b600080611f3e8585613ad0565b90506000611f4c8686614473565b90506000611f6063ffffffff8616846158d4565b90506000611f6e8383614496565b9050611f7a81856158eb565b98975050505050505050565b6001600160a01b038084166000908152601e6020908152604080832086851684528252808320938516835292905290812060038101548203611fcc576000915050611b8b565b6001600160a01b038086166000908152601b60209081526040808320938816835292905290812082545b8015612062576000818152601d602052604090206001810154426001600160401b03909116116120515760028301546001840154825461203691906158d4565b61204091906158fe565b61204a90856158eb565b9350612057565b50612062565b600201549050611ff6565b50909695505050505050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af11580156120af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d39190615871565b6001600160a01b0316336001600160a01b0316146121335760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610316565b60405163623faf6160e01b81526001600160a01b0385169063623faf61906121619086908690600401615920565b600060405180830381600087803b15801561217b57600080fd5b505af115801561218f573d6000803e3d6000fd5b5050505050505050565b60006121a36133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122049190615831565b1561222257604051632b37d9d160e21b815260040160405180910390fd5b611b9f84848433613b08565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af115801561226f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122939190615871565b6001600160a01b0316336001600160a01b0316146122f35760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610316565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561232e57600080fd5b505af1158015611080573d6000803e3d6000fd5b61234a6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ab9190615831565b156123c957604051632b37d9d160e21b815260040160405180910390fd5b610eda82826142d4565b6123db6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243c9190615831565b1561245a57604051632b37d9d160e21b815260040160405180910390fd5b61120733826142d4565b6000610eed826144ad565b604080516000815260208101909152606090826001600160401b0381111561249957612499615962565b6040519080825280602002602001820160405280156124cc57816020015b60608152602001906001900390816124b75790505b50915060005b8381101561254e57612529308686848181106124f0576124f0615978565b9050602002810190612502919061598e565b85604051602001612515939291906159d4565b6040516020818303038152906040526144f8565b83828151811061253b5761253b615978565b60209081029190910101526001016124d2565b505092915050565b61255e6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561259b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bf9190615831565b156125dd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff1661262357604051622920f760e21b81526001600160a01b039091166004820152602401610316565b506112a1838383614565565b6126376133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126989190615831565b156126b657604051632b37d9d160e21b815260040160405180910390fd5b83836126c38282336133ff565b8282339091926126e957604051630c76b97b60e41b81526004016103169392919061584e565b50505085846126f98282336133ff565b82823390919261271f57604051630c76b97b60e41b81526004016103169392919061584e565b505050600061272f898988613d23565b905061273c89888361432a565b505050505050505050565b61274f6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190615831565b156127ce57604051632b37d9d160e21b815260040160405180910390fd5b6112a1838383614565565b6127e16133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128429190615831565b1561286057604051632b37d9d160e21b815260040160405180910390fd5b8060000361288157604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03640100000000830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004909201546101008201529084908490612956576040516330acea0d60e11b81526004016103169291906158a4565b505060006129648585614250565b90506000816003015411858590916129915760405163b6a70b3b60e01b81526004016103169291906158a4565b50508281600201546129a391906158eb565b60028201556129d333847f0000000000000000000000000000000000000000000000000000000000000000610e9d565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a151153085604051612a1891815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612a518686614250565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b612a816133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae29190615871565b6001600160a01b0316336001600160a01b031614612b1357604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b612b536133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb49190615831565b15612bd257604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612c018784614250565b9050600081600201548360000154612c1991906158eb565b9050808781612c445760405163587ab9ab60e11b815260048101929092526024820152604401610316565b50506000612c528883614496565b90506000612c64856000015483614496565b90508015612ed4576003850154600090612c8990839063ffffffff9081169061469516565b9050888181811015612cb757604051632f514d5760e21b815260048101929092526024820152604401610316565b50508815612d4e57612cf6888a7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031691906146fc565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612d4591815260200190565b60405180910390a45b612d8c612d5b8a8461594f565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031690614737565b8554600090612da3670de0b6b3a7640000856158d4565b612dad91906158fe565b9050670de0b6b3a7640000612dc2828261594f565b8860010154612dd191906158d4565b612ddb91906158fe565b60018801558654612ded90849061594f565b8755600287015415801590612e0457506001870154155b15612e285760006002880181905560048801805491612e22836159fb565b91905055505b6001600160a01b038c166000908152600e6020526040902060040154612e4f90849061594f565b6001600160a01b038d166000908152600e60205260409020600481019190915554612e7b90849061594f565b6001600160a01b038d81166000818152600e60209081526040918290209490945551868152918b169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a350505b612ede818361594f565b915081156130615760205460ff161561301357612f1b827f0000000000000000000000000000000000000000000000000000000000000000612d7d565b6002840154600090612f35670de0b6b3a7640000856158d4565b612f3f91906158fe565b9050828560020154612f51919061594f565b6002860155670de0b6b3a7640000612f69828261594f565b8660050154612f7891906158d4565b612f8291906158fe565b6005860155600685015415801590612f9c57506005850154155b15612fc05760006006860181905560078601805491612fba836159fb565b91905055505b866001600160a01b03168b6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b7718560405161300591815260200190565b60405180910390a350613061565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b248460405161305891815260200190565b60405180910390a35b50505050505050505050565b6130756133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d69190615871565b6001600160a01b0316336001600160a01b03161461310757604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff1916600190811782556040519081527f78bd9090b1ff40fc9c2d6056a25fb880530a766f5b0595d77f3cf33fe189c194910160405180910390a1565b6131516133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b29190615831565b156131d057604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166131f7576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b03831661321e5760405163a962605960e01b815260040160405180910390fd5b611080868686868686613ff4565b60006132366133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190615831565b156132b557604051632b37d9d160e21b815260040160405180910390fd5b83836132c28282336133ff565b8282339091926132e857604051630c76b97b60e41b81526004016103169392919061584e565b5050506132f686868661477f565b9695505050505050565b6000610eea8383614473565b6133146133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133759190615831565b1561339357604051632b37d9d160e21b815260040160405180910390fd5b82826133a08282336133ff565b8282339091926133c657604051630c76b97b60e41b81526004016103169392919061584e565b5050506133d485858561432a565b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b03160361342257506001611b8b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361348a57506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff16611b8b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff16611b8b565b600084116134e457604051630a2a4e5b60e11b815260040160405180910390fd5b8163ffffffff8116620f42401015613518576040516329bff5f560e01b815263ffffffff9091166004820152602401610316565b50601a5481906001600160401b0390811690821681101561355f5760405163ee5602e160e01b81526001600160401b03928316600482015291166024820152604401610316565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156135b857604051632b542c0d60e11b815260040160405180910390fd5b60006135c3866144ad565b90508481808211156135f15760405163ccaf28a960e01b815260048101929092526024820152604401610316565b505060405180610120016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b031681526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b0316021790555061010082015181600401559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546137df91906158eb565b60048201556040805187815263ffffffff861660208201526001600160401b038516918101919091526001600160a01b0380871691908916907f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc2590606001611e0f565b80156112a1576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af115801561389e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c29190615831565b6112a15760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610316565b6001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b0316613956576040516330acea0d60e11b81526004016103169291906158a4565b505060006139648585614250565b336000908152600482016020526040902060028201549192509015158061398d57506003820154155b868690916139b057604051631984edef60e31b81526004016103169291906158a4565b505060008260020154600014806139ce575082600501548360020154145b9050600081613a0957836005015484600201546139eb919061594f565b60038501546139fa90886158d4565b613a0491906158fe565b613a0b565b855b90508015801590613a1c5750848110155b81869091613a4657604051635d88e8d160e01b815260048101929092526024820152604401610316565b5050858460020154613a5891906158eb565b60028501556003840154613a6d9082906158eb565b60038501558254613a7f9082906158eb565b835560405186815233906001600160a01b0389811691908b16907feaefa9a428d7aa0b99b7ac8aec4885d6304a78cc8d6a78a6c99dd29e9693cdf49060200160405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610eea919061594f565b6000808311613b2a57604051637318ad9960e01b815260040160405180910390fd5b6000613b368686614250565b33600090815260048201602052604090208054919250908580821015613b785760405163ab99793560e01b815260048101929092526024820152604401610316565b5050600282015487908790613ba257604051631984edef60e31b81526004016103169291906158a4565b50506000826003015483600501548460020154613bbf919061594f565b613bc990886158d4565b613bd391906158fe565b905060008360050154600014613c065760058401546006850154613bf790846158d4565b613c0191906158fe565b613c08565b815b6001600160a01b038a81166000908152601b60209081526040808320938d1683529290529081206003015491925090613c529064010000000090046001600160401b0316426158eb565b9050828560050154613c6491906158eb565b60058601556006850154613c799083906158eb565b60068601556003850154613c8e90899061594f565b60038601558354613ca090899061594f565b84600001819055506000613cbc8b8b8a86868b600701546148fc565b9050336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f50d19209821f5d69c0884b007c6ba9ffde612c0cff5dd3234d0c6baf2c4556aa87604051613d0d91815260200190565b60405180910390a49a9950505050505050505050565b6001600160a01b038084166000908152601b60209081526040808320938616835292905290812060028101546001820154600483015484929190613d7290899089908290859087908c90614aa4565b865492955093509150613d8690849061594f565b845560028401829055600184018190556001600160a01b0388166000908152600e602052604081206004018054859290613dc190849061594f565b92505081905550866001600160a01b0316886001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d85604051613e0d91815260200190565b60405180910390a350909695505050505050565b336000829003613e4457604051630a2a4e5b60e11b815260040160405180910390fd5b6000613e4f826144ad565b9050828180821115613e7d5760405163ccaf28a960e01b815260048101929092526024820152604401610316565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613f2d57613eb8868361594f565b8355613ee585877f0000000000000000000000000000000000000000000000000000000000000000612ce6565b846001600160a01b03167f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc87604051613f2091815260200190565b60405180910390a2611080565b600283015415801590613f44575082600301544310155b15613f5257613f5285614157565b600283015415613f7c57613f79613f6d846003015443614bec565b84600201548389614c06565b90505b858360020154613f8c91906158eb565b6002840155613f9b81436158eb565b6003840181905560028401546040805191825260208201929092526001600160a01b038716917fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01910160405180910390a2505050505050565b60006140008787614250565b90508060020154600014158061401857506003810154155b8787909161403b57604051631984edef60e31b81526004016103169291906158a4565b5050600080826006015490506000836005015490506140638a8a3384868a8a60070154614aa4565b60028701549295509350915061407a90849061594f565b6002850155600684018290556005840181905582156140f4576001600160a01b038816158015906140b357506001600160a01b03871615155b156140c9576140c4888885896138fa565b6140f4565b6140f433847f0000000000000000000000000000000000000000000000000000000000000000612ce6565b336001600160a01b0316896001600160a01b03168b6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e8660405161414391815260200190565b60405180910390a450505050505050505050565b6001600160a01b0381166000908152600e602052604081206002810154909181900361419657604051630a2a4e5b60e11b815260040160405180910390fd5b6003820154438111156141bf57604051631d222f1b60e31b815260040161031691815260200190565b50600060028301819055600383015581546141db90829061594f565b825561420883827f0000000000000000000000000000000000000000000000000000000000000000612ce6565b826001600160a01b03167f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc8260405161424391815260200190565b60405180910390a2505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036142a957506001600160a01b0382166000908152601460205260409020610eed565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610eed565b806000036142f557604051630a2a4e5b60e11b815260040160405180910390fd5b61432033827f0000000000000000000000000000000000000000000000000000000000000000610e9d565b610eda8282614c5a565b6001600160a01b038084166000908152601b6020908152604080832093861683529290529081209082900361437257604051630a2a4e5b60e11b815260040160405180910390fd5b600381015484908490600160601b90046001600160401b03166143aa576040516330acea0d60e11b81526004016103169291906158a4565b505060006143b7856144ad565b90508281808211156143e55760405163ccaf28a960e01b815260048101929092526024820152604401610316565b505081546143f49084906158eb565b82556001600160a01b0385166000908152600e602052604090206004015461441d9084906158eb565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc2347459101612a18565b6000806144808484614250565b905080600501548160020154611b9f919061594f565b6000818311156144a65781610eea565b5090919050565b6001600160a01b0381166000908152600e602052604081206002810154600182015460048301549254919290916144e4919061594f565b6144ee919061594f565b610eed919061594f565b6060600080846001600160a01b0316846040516145159190615a14565b600060405180830381855af49150503d8060008114614550576040519150601f19603f3d011682016040523d82523d6000602084013e614555565b606091505b5091509150610faf858383614ccd565b336001600160a01b0383160361458e57604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036145fb573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff1916821515179055614637565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f84604051614688911515815260200190565b60405180910390a4505050565b60006146a483620f4240101590565b806146b757506146b782620f4240101590565b838390916146e15760405163768bf0eb60e11b815260048101929092526024820152604401610316565b50620f424090506146f283856158d4565b610eea91906158fe565b80156112a15760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb9060440161387f565b8015610eda57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561232e57600080fd5b6000816000036147a257604051630a2a4e5b60e11b815260040160405180910390fd5b60006147ae8585613ad0565b90508083808210156147dc5760405163587ab9ab60e11b815260048101929092526024820152604401610316565b50506001600160a01b038086166000908152601b60209081526040808320938816835292905290812060018101549091901561483657816001015485836002015461482791906158d4565b61483191906158fe565b614838565b845b600383015490915060009061485e9064010000000090046001600160401b0316426158eb565b905081836002015461487091906158eb565b600284015560018301546148859087906158eb565b836001018190555060006148a189898b868689600401546148fc565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa896040516148e891815260200190565b60405180910390a398975050505050505050565b6001600160a01b038087166000908152601e6020908152604080832089851684528252808320938816835292905290812060038101546064116149525760405163332b852b60e11b815260040160405180910390fd5b60028101546040516bffffffffffffffffffffffff1960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160408051808303601f1901815282825280516020918201206080840183528984526001600160401b038981168386019081526000868601818152606088018c8152858352601d909652959020955186555160018601805467ffffffffffffffff19169190921617905591516002840155516003928301559083015490915015614a325760018201546000908152601d602052604090206002018190555b614a3c8282614d29565b604080518781526001600160401b03871660208201529081018290526001600160a01b03808916918a8216918c16907f434422e55cc9ab3bcca23cbf515724bbad83af8dd645832a1abd3db5e641dea59060600160405180910390a498975050505050505050565b6001600160a01b038088166000908152601e602090815260408083208a8516845282528083209389168352929052908120600381015482918291614afb576040516307e332c560e31b815260040160405180910390fd5b60008080614b53614dbc614dd1614f30868f8f8e604051602001614b38949392919093845260208401929092526040830152606082015260800190565b60408051601f1981840301815291905288939291908e614f61565b9150915080806020019051810190614b6b9190615a30565b809c50819d508295505050508b6001600160a01b03168d6001600160a01b03168f6001600160a01b03167f9de822a9c144d03cad4a18bc322e9a3d91ffa99463d22e5c25da2a41d4c354d58587604051614bcf929190918252602082015260400190565b60405180910390a450909c989b5096995096975050505050505050565b6000818311614bfc576000610eea565b610eea828461594f565b6000614c1282856158eb565b6001614c1e84876158eb565b614c28919061594f565b614c3284866158d4565b614c3c87896158d4565b614c4691906158eb565b614c5091906158eb565b610faf91906158fe565b6001600160a01b0382166000908152600e6020526040902054614c7e9082906158eb565b6001600160a01b0383166000818152600e6020526040908190209290925590517f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc2906117729084815260200190565b606082614ce257614cdd8261501b565b611b8b565b8151158015614cf957506001600160a01b0384163b155b15614d2257604051639996b31560e01b81526001600160a01b0385166004820152602401610316565b5080611b8b565b612710826003015410614d4f576040516303a8c56b60e61b815260040160405180910390fd5b80614d6d57604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d899084906158eb565b90915550506003820154600003614d9e578082555b6001826003016000828254614db391906158eb565b90915550505050565b6000908152601d602052604090206002015490565b6000828152601d60205260408120600181015460609190426001600160401b039091161115614e1457505060408051602081019091526000815260019150614f29565b60008060008087806020019051810190614e2e9190615a5e565b93509350935093506000808287600301541490508015614e8b5786548490614e579087906158d4565b614e6191906158fe565b9150614e6d828661594f565b8754909550614e7c908561594f565b9350614e8882876158eb565b95505b865460018801546040805185815260208101939093526001600160401b039091169082015281151560608201528b907fbe7f1ad13b07d1f0e9574e97c844204d5433e4ab98133a1f0ce257764a6abeb79060800160405180910390a26040805160208101889052908101869052606081018590526080810184905260a001604051602081830303815290604052995060008a98509850505050505050505b9250929050565b6000908152601d6020526040812081815560018101805467ffffffffffffffff191690556002810182905560030155565b600060608760030154831115614f8a57604051634a411b9d60e11b815260040160405180910390fd5b60008315614f985783614f9e565b88600301545b89549094505b8015801590614fb35750600085115b1561500c57600080614fc983898c63ffffffff16565b915091508115614fda57505061500c565b965086614fe88c8c8b615044565b925086614ff481615a94565b9750508380615002906159fb565b9450505050614fa4565b50989397509295505050505050565b80511561502b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008084600301541161506a5760405163ddaf8f2160e01b815260040160405180910390fd5b600061507d85600001548563ffffffff16565b905061509085600001548463ffffffff16565b60018560030160008282546150a5919061594f565b909155505080855560038501546000036150c157600060018601555b5050915492915050565b6001600160a01b038116811461120757600080fd5b803563ffffffff811681146150f457600080fd5b919050565b80356001600160401b03811681146150f457600080fd5b600080600080600060a0868803121561512857600080fd5b8535615133816150cb565b94506020860135615143816150cb565b935060408601359250615158606087016150e0565b9150615166608087016150f9565b90509295509295909350565b6000806040838503121561518557600080fd5b8235615190816150cb565b946020939093013593505050565b600080604083850312156151b157600080fd5b82356151bc816150cb565b915060208301356151cc816150cb565b809150509250929050565b600080600080608085870312156151ed57600080fd5b84356151f8816150cb565b93506020850135615208816150cb565b925060408501359150606085013561521f816150cb565b939692955090935050565b60008060006060848603121561523f57600080fd5b833561524a816150cb565b9250602084013561525a816150cb565b929592945050506040919091013590565b60006020828403121561527d57600080fd5b610eea826150f9565b60006101208201905082518252602083015160208301526040830151604083015263ffffffff60608401511660608301526001600160401b03608084015116608083015260a08301516152e460a08401826001600160401b03169052565b5060c08301516152fc60c084018263ffffffff169052565b5060e083015161531760e08401826001600160401b03169052565b5061010092830151919092015290565b60006020828403121561533957600080fd5b5035919050565b60006020828403121561535257600080fd5b8135611b8b816150cb565b8035600381106150f457600080fd5b6000806000806080858703121561538257600080fd5b843561538d816150cb565b9350602085013561539d816150cb565b92506153ab6040860161535d565b9396929550929360600135925050565b801515811461120757600080fd5b600080604083850312156153dc57600080fd5b82356153e7816150cb565b915060208301356151cc816153bb565b6000806000806080858703121561540d57600080fd5b8435615418816150cb565b93506020850135615428816150cb565b93969395505050506040820135916060013590565b60008060006060848603121561545257600080fd5b833561545d816150cb565b9250602084013561546d816150cb565b915061547b6040850161535d565b90509250925092565b60008060006060848603121561549957600080fd5b83356154a4816150cb565b925060208401356154b4816150cb565b915060408401356154c4816150cb565b809150509250925092565b600080600080608085870312156154e557600080fd5b84356154f0816150cb565b93506020850135615500816150cb565b925061550e604086016150e0565b915061551c606086016150f9565b905092959194509250565b60008060006060848603121561553c57600080fd5b8335615547816150cb565b92506020840135615557816150cb565b915061547b604085016150e0565b60008060006040848603121561557a57600080fd5b8335615585816150cb565b925060208401356001600160401b038111156155a057600080fd5b8401601f810186136155b157600080fd5b80356001600160401b038111156155c757600080fd5b8660208284010111156155d957600080fd5b939660209190910195509293505050565b600080602083850312156155fd57600080fd5b82356001600160401b0381111561561357600080fd5b8301601f8101851361562457600080fd5b80356001600160401b0381111561563a57600080fd5b8560208260051b840101111561564f57600080fd5b6020919091019590945092505050565b60005b8381101561567a578181015183820152602001615662565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156156f757603f19878603018452815180518087526156d481602089016020850161565f565b601f01601f191695909501602090810195509384019391909101906001016156ab565b50929695505050505050565b60008060006060848603121561571857600080fd5b8335615723816150cb565b92506020840135615733816150cb565b915060408401356154c4816153bb565b6000806000806080858703121561575957600080fd5b8435615764816150cb565b93506020850135615774816150cb565b925060408501356153ab816150cb565b6000806000806080858703121561579a57600080fd5b84356157a5816150cb565b93506020850135925060408501359150606085013561521f816150cb565b60008060008060008060c087890312156157dc57600080fd5b86356157e7816150cb565b955060208701356157f7816150cb565b94506040870135615807816150cb565b93506060870135615817816150cb565b9598949750929560808101359460a0909101359350915050565b60006020828403121561584357600080fd5b8151611b8b816153bb565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561588357600080fd5b8151611b8b816150cb565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610eed57610eed6158be565b80820180821115610eed57610eed6158be565b60008261591b57634e487b7160e01b600052601260045260246000fd5b500490565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b81810381811115610eed57610eed6158be565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126159a557600080fd5b8301803591506001600160401b038211156159bf57600080fd5b602001915036819003821315614f2957600080fd5b8284823760008382016000815283516159f181836020880161565f565b0195945050505050565b600060018201615a0d57615a0d6158be565b5060010190565b60008251615a2681846020870161565f565b9190910192915050565b600080600060608486031215615a4557600080fd5b5050815160208301516040909301519094929350919050565b60008060008060808587031215615a7457600080fd5b505082516020840151604085015160609095015191969095509092509050565b600081615aa357615aa36158be565b50600019019056fea2646970667358221220a984158462a19071d33f0c9b0b8967a96b4b64feb78c617c0635061568508fff64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking_Instance.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking_Instance.json deleted file mode 100644 index c619989d6..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStaking#HorizonStaking_Instance.json +++ /dev/null @@ -1,2384 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "HorizonStaking", - "sourceName": "contracts/staking/HorizonStaking.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "controller", - "type": "address" - }, - { - "internalType": "address", - "name": "stakingExtensionAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "subgraphDataServiceAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingCallerIsServiceProvider", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientIdleStake", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minShares", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientShares", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientStakeForLegacyAllocations", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minRequired", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientTokens", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidBeneficiaryZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "HorizonStakingInvalidDelegationFeeCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidDelegationPool", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidDelegationPoolState", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - } - ], - "name": "HorizonStakingInvalidMaxVerifierCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidProvision", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidServiceProviderZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "HorizonStakingInvalidThawingPeriod", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidVerifierZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidZeroShares", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidZeroTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "HorizonStakingNotAuthorized", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingNothingThawing", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingProvisionAlreadyExists", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minShares", - "type": "uint256" - } - ], - "name": "HorizonStakingSlippageProtection", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "until", - "type": "uint256" - } - ], - "name": "HorizonStakingStillThawing", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingTooManyThawRequests", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingTooManyTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingVerifierNotAllowed", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListEmptyList", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidIterations", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidZeroId", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListMaxElementsExceeded", - "type": "error" - }, - { - "inputs": [], - "name": "ManagedIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "ManagedOnlyController", - "type": "error" - }, - { - "inputs": [], - "name": "ManagedOnlyGovernor", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "AllowedLockedVerifierSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegatedTokensWithdrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "DelegationFeeCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegationSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "DelegationSlashingEnabled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegationSlashingSkipped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "MaxThawingPeriodSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "OperatorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionIncreased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionParametersSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionParametersStaged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionThawed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeDeposited", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "until", - "type": "uint256" - } - ], - "name": "StakeLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeWithdrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - } - ], - "name": "ThawRequestCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bool", - "name": "valid", - "type": "bool" - } - ], - "name": "ThawRequestFulfilled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "thawRequestsFulfilled", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ThawRequestsFulfilled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "ThawingPeriodCleared", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensDelegated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensDeprovisioned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensToDelegationPoolAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensUndelegated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "VerifierTokensSent", - "type": "event" - }, - { - "stateMutability": "nonpayable", - "type": "fallback" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "acceptProvisionParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "addToDelegationPool", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "addToProvision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "clearThawingPeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minSharesOut", - "type": "uint256" - } - ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "deprovision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getDelegatedTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "delegator", - "type": "address" - } - ], - "name": "getDelegation", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.Delegation", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - } - ], - "name": "getDelegationFeeCut", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getDelegationPool", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sharesThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.DelegationPool", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getIdleStake", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaxThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getProviderTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getProvision", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sharesThawing", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "createdAt", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "maxVerifierCutPending", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriodPending", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.Provision", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getServiceProvider", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokensStaked", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensProvisioned", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.ServiceProvider", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - } - ], - "name": "getThawRequest", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "internalType": "bytes32", - "name": "next", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.ThawRequest", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getThawRequestList", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "head", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "tail", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "internalType": "struct LinkedList.List", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getThawedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint32", - "name": "delegationRatio", - "type": "uint32" - } - ], - "name": "getTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "isAllowedLockedVerifier", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isAuthorized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isDelegationSlashingEnabled", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "provision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "provisionLocked", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "oldServiceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "oldVerifier", - "type": "address" - }, - { - "internalType": "address", - "name": "newServiceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "newVerifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "minSharesForNewProvider", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "redelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "oldVerifier", - "type": "address" - }, - { - "internalType": "address", - "name": "newVerifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "reprovision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setAllowedLockedVerifier", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "setDelegationFeeCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "setDelegationSlashingEnabled", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "setMaxThawingPeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setOperatorLocked", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint32", - "name": "newMaxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "newThawingPeriod", - "type": "uint64" - } - ], - "name": "setProvisionParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensVerifier", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifierDestination", - "type": "address" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stakeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stakeToProvision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "thaw", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - } - ], - "name": "undelegate", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "undelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "undelegate", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "unstake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "withdrawDelegated", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "newServiceProvider", - "type": "address" - } - ], - "name": "withdrawDelegated", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x61020060405234801561001157600080fd5b506040516160913803806160918339810160408190526100309161041b565b828181806001600160a01b03811661007d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b590610351565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e890610351565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261012190610351565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015b90610351565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019390610351565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101ce90610351565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020c90610351565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024890610351565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027d90610351565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103279790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b039081166101c052929092166101e052506104ce915050565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161038c91815260200190565b602060405180830381865afa1580156103a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cd919061045e565b9050826001600160a01b0382166103f85760405163218f5add60e11b81526004016100749190610480565b5092915050565b80516001600160a01b038116811461041657600080fd5b919050565b60008060006060848603121561043057600080fd5b610439846103ff565b9250610447602085016103ff565b9150610455604085016103ff565b90509250925092565b60006020828403121561047057600080fd5b610479826103ff565b9392505050565b602081526000825180602084015260005b818110156104ae5760208186018101516040868401015201610491565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615ae16105b06000396000610331015260008181610eb30152818161180b015281816118be015281816118e0015281816134240152818161425401526145900152600050506000505060005050600050506000505060006133dd015260005050600050506000505060008181610e7d01528181611a5c015281816129af01528181612cc601528181612d5d01528181612ef701528181613ec1015281816140d0015281816141e401526142fc0152615ae16000f3fe6080604052600436106102cd5760003560e01c80638cc01c8611610175578063b7ca7241116100dc578063e76fede611610095578063f93f1cd01161006f578063f93f1cd014610c83578063fb744cc014610ca3578063fc54fb2714610cc3578063fecc9cc114610cdb5761031f565b8063e76fede614610c2e578063ef58bd6714610c4e578063f64b359814610c635761031f565b8063b7ca724114610ac7578063ba7fb0b414610b8a578063bc735d9014610baa578063ca94b0e914610bca578063ccebcabb14610bea578063e473522a14610c195761031f565b8063a2a317221161012e578063a2a31722146109e1578063a694fc3a14610a01578063a784d49814610a21578063ac9650d814610a41578063ad4d35b514610a6e578063ae4fe67a14610a8e5761031f565b80638cc01c86146108105780639054e343146108915780639ce7abe5146108b1578063a02b9426146108d1578063a212daf8146108f1578063a2594d82146109c15761031f565b806342c516931161023457806374612092116101ed5780637c145cc7116101c75780637c145cc71461078057806381e21b56146107b057806382d66cb8146107d0578063872d0489146107f05761031f565b8063746120921461070a5780637573ef4f1461072a5780637a7664601461074a5761031f565b806342c51693146106085780634ca7ac22146106285780634d99dd161461064857806351a60b0214610668578063561285e4146106885780636230001a146106ea5761031f565b806325d9897e1161028657806325d9897e146104485780632e17de781461056b57806339514ad21461058b5780633993d849146105b35780633a78b732146105d35780633ccfd60b146105f35761031f565b8063010167e514610375578063026e402b1461039557806308ce5f68146103b5578063162ea5ed146103e85780632119537314610408578063259bc435146104285761031f565b3661031f5760405162461bcd60e51b815260206004820152601760248201527f524543454956455f4554485f4e4f545f414c4c4f57454400000000000000000060448201526064015b60405180910390fd5b34801561032b57600080fd5b506040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e81801561036f578184f35b8184fd5b005b34801561038157600080fd5b50610373610390366004615110565b610cfb565b3480156103a157600080fd5b506103736103b0366004615172565b610dce565b3480156103c157600080fd5b506103d56103d036600461519e565b610ede565b6040519081526020015b60405180910390f35b3480156103f457600080fd5b506103d56104033660046151d7565b610ef3565b34801561041457600080fd5b5061037361042336600461522a565b610fb8565b34801561043457600080fd5b5061037361044336600461526b565b611088565b34801561045457600080fd5b5061055e61046336600461519e565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff808216606084015264010000000082046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e082015260049091015461010082015290565b6040516103df9190615286565b34801561057757600080fd5b50610373610586366004615327565b611177565b34801561059757600080fd5b50601a546040516001600160401b0390911681526020016103df565b3480156105bf57600080fd5b506103736105ce36600461522a565b61120a565b3480156105df57600080fd5b506103736105ee366004615340565b6112a6565b3480156105ff57600080fd5b50610373611441565b34801561061457600080fd5b5061037361062336600461536c565b6114d3565b34801561063457600080fd5b506103736106433660046153c9565b611684565b34801561065457600080fd5b50610373610663366004615172565b61177e565b34801561067457600080fd5b5061037361068336600461519e565b611831565b34801561069457600080fd5b506106a86106a336600461519e565b611907565b6040516103df9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b3480156106f657600080fd5b506103736107053660046153f7565b6119ad565b34801561071657600080fd5b5061037361072536600461522a565b611a92565b34801561073657600080fd5b506103d561074536600461543d565b611b2e565b34801561075657600080fd5b506103d5610765366004615340565b6001600160a01b03166000908152600e602052604090205490565b34801561078c57600080fd5b506107a061079b366004615484565b611b92565b60405190151581526020016103df565b3480156107bc57600080fd5b506103736107cb3660046154cf565b611ba7565b3480156107dc57600080fd5b506103736107eb366004615110565b611e20565b3480156107fc57600080fd5b506103d561080b366004615527565b611f31565b34801561081c57600080fd5b5061087661082b366004615340565b60408051808201825260008082526020918201819052825180840184528181528083018281526001600160a01b03959095168252600e90925291909120805482526004015490915290565b604080518251815260209283015192810192909252016103df565b34801561089d57600080fd5b506103d56108ac366004615484565b611f86565b3480156108bd57600080fd5b506103736108cc366004615565565b61206e565b3480156108dd57600080fd5b506103d56108ec36600461522a565b612199565b3480156108fd57600080fd5b5061098e61090c366004615484565b60408051608080820183526000808352602080840182905283850182905260609384018290526001600160a01b039788168252601e815284822096881682529586528381209490961686529284529381902081519283018252805483526001810154938301939093526002830154908201526003909101549181019190915290565b6040516103df91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b3480156109cd57600080fd5b506103736109dc366004615340565b61222e565b3480156109ed57600080fd5b506103736109fc366004615172565b612342565b348015610a0d57600080fd5b50610373610a1c366004615327565b6123d3565b348015610a2d57600080fd5b506103d5610a3c366004615340565b612464565b348015610a4d57600080fd5b50610a61610a5c3660046155ea565b61246f565b6040516103df9190615683565b348015610a7a57600080fd5b50610373610a89366004615703565b612556565b348015610a9a57600080fd5b506107a0610aa9366004615340565b6001600160a01b031660009081526022602052604090205460ff1690565b348015610ad357600080fd5b50610b4e610ae2366004615327565b6040805160808082018352600080835260208084018290528385018290526060938401829052948152601d8552839020835191820184528054825260018101546001600160401b0316948201949094526002840154928101929092526003909201549181019190915290565b6040516103df9190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b348015610b9657600080fd5b50610373610ba5366004615743565b61262f565b348015610bb657600080fd5b50610373610bc5366004615703565b612747565b348015610bd657600080fd5b50610373610be536600461522a565b6127d9565b348015610bf657600080fd5b50610c0a610c05366004615484565b612a27565b604051905181526020016103df565b348015610c2557600080fd5b50610373612a79565b348015610c3a57600080fd5b50610373610c49366004615784565b612b4b565b348015610c5a57600080fd5b5061037361306d565b348015610c6f57600080fd5b50610373610c7e3660046157c3565b613149565b348015610c8f57600080fd5b506103d5610c9e36600461522a565b61322c565b348015610caf57600080fd5b506103d5610cbe36600461519e565b613300565b348015610ccf57600080fd5b5060205460ff166107a0565b348015610ce757600080fd5b50610373610cf636600461522a565b61330c565b610d036133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190615831565b15610d8257604051632b37d9d160e21b815260040160405180910390fd5b8484610d8f8282336133ff565b828233909192610db557604051630c76b97b60e41b81526004016103169392919061584e565b505050610dc587868887876134c3565b50505050505050565b610dd66133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e379190615831565b15610e5557604051632b37d9d160e21b815260040160405180910390fd5b80600003610e7657604051630a2a4e5b60e11b815260040160405180910390fd5b610ead33827f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190613842565b610eda827f00000000000000000000000000000000000000000000000000000000000000008360006138fa565b5050565b6000610eea8383613ad0565b90505b92915050565b6000610efd6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190615831565b15610f7c57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038216610fa357604051633dbb48ed60e21b815260040160405180910390fd5b610faf85858585613b08565b95945050505050565b8282610fc58282336133ff565b828233909192610feb57604051630c76b97b60e41b81526004016103169392919061584e565b505050610ff66133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611033573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110579190615831565b1561107557604051632b37d9d160e21b815260040160405180910390fd5b611080858585613d23565b505050505050565b6110906133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f19190615871565b6001600160a01b0316336001600160a01b03161461112257604051635d9044cd60e01b815260040160405180910390fd5b601a805467ffffffffffffffff19166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b61117f6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e09190615831565b156111fe57604051632b37d9d160e21b815260040160405180910390fd5b61120781613e21565b50565b6112126133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190615831565b1561129157604051632b37d9d160e21b815260040160405180910390fd5b6112a18383600080600086613ff4565b505050565b6112ae6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130f9190615831565b1561132d57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b602090815260408083203380855292529091206003810154600160a01b810463ffffffff908116911614158061139357506003810154600160c01b81046001600160401b039081166401000000009092041614155b156112a1576003810180546401000000006001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026bffffffffffffffffffffffff199095161793909317938490556040805193851684529190930490921660208201526001600160a01b0384811692908616917fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c6910160405180910390a3505050565b6114496133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190615831565b156114c857604051632b37d9d160e21b815260040160405180910390fd5b6114d133614157565b565b6114db6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c9190615831565b1561155a57604051632b37d9d160e21b815260040160405180910390fd5b83836115678282336133ff565b82823390919261158d57604051630c76b97b60e41b81526004016103169392919061584e565b50505061159d83620f4240101590565b83906115bf57604051631504950160e21b815260040161031691815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156115fb576115fb61588e565b600281111561160c5761160c61588e565b815260208101919091526040016000205583600281111561162f5761162f61588e565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161167491815260200190565b60405180910390a4505050505050565b61168c6133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ed9190615871565b6001600160a01b0316336001600160a01b03161461171e57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b6117866133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e79190615831565b1561180557604051632b37d9d160e21b815260040160405180910390fd5b6112a1827f00000000000000000000000000000000000000000000000000000000000000008333613b08565b6118396133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189a9190615831565b156118b857604051632b37d9d160e21b815260040160405180910390fd5b610eda827f0000000000000000000000000000000000000000000000000000000000000000837f0000000000000000000000000000000000000000000000000000000000000000600080613ff4565b6119396040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b61196b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60006119778585614250565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b6119b56133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a169190615831565b15611a3457604051632b37d9d160e21b815260040160405180910390fd5b81600003611a5557604051630a2a4e5b60e11b815260040160405180910390fd5b611a8033837f0000000000000000000000000000000000000000000000000000000000000000610e9d565b611a8c848484846138fa565b50505050565b611a9a6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afb9190615831565b15611b1957604051632b37d9d160e21b815260040160405180910390fd5b611b2383826142d4565b6112a183838361432a565b6001600160a01b038084166000908152601c60209081526040808320938616835292905290812081836002811115611b6857611b6861588e565b6002811115611b7957611b7961588e565b81526020019081526020016000205490505b9392505050565b6000611b9f8484846133ff565b949350505050565b611baf6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190615831565b15611c2e57604051632b37d9d160e21b815260040160405180910390fd5b8383611c3b8282336133ff565b828233909192611c6157604051630c76b97b60e41b81526004016103169392919061584e565b50505063ffffffff8416620f424010158490611c99576040516329bff5f560e01b815263ffffffff9091166004820152602401610316565b50601a5483906001600160401b03908116908216811015611ce05760405163ee5602e160e01b81526001600160401b03928316600482015291166024820152604401610316565b50506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b0316611d3f576040516330acea0d60e11b81526004016103169291906158a4565b5050600381015463ffffffff868116600160a01b90920416141580611d7b575060038101546001600160401b03858116600160c01b9092041614155b15610dc5576003810180546001600160401b038616600160c01b026001600160c01b0363ffffffff8916600160a01b02166001600160a01b039283161717909155604051878216918916907fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba90611e0f908990899063ffffffff9290921682526001600160401b0316602082015260400190565b60405180910390a350505050505050565b611e286133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e899190615831565b15611ea757604051632b37d9d160e21b815260040160405180910390fd5b8484611eb48282336133ff565b828233909192611eda57604051630c76b97b60e41b81526004016103169392919061584e565b5050506001600160a01b038616600090815260226020526040902054869060ff16611f2357604051622920f760e21b81526001600160a01b039091166004820152602401610316565b50610dc587868887876134c3565b600080611f3e8585613ad0565b90506000611f4c8686614473565b90506000611f6063ffffffff8616846158d4565b90506000611f6e8383614496565b9050611f7a81856158eb565b98975050505050505050565b6001600160a01b038084166000908152601e6020908152604080832086851684528252808320938516835292905290812060038101548203611fcc576000915050611b8b565b6001600160a01b038086166000908152601b60209081526040808320938816835292905290812082545b8015612062576000818152601d602052604090206001810154426001600160401b03909116116120515760028301546001840154825461203691906158d4565b61204091906158fe565b61204a90856158eb565b9350612057565b50612062565b600201549050611ff6565b50909695505050505050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af11580156120af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d39190615871565b6001600160a01b0316336001600160a01b0316146121335760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610316565b60405163623faf6160e01b81526001600160a01b0385169063623faf61906121619086908690600401615920565b600060405180830381600087803b15801561217b57600080fd5b505af115801561218f573d6000803e3d6000fd5b5050505050505050565b60006121a36133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122049190615831565b1561222257604051632b37d9d160e21b815260040160405180910390fd5b611b9f84848433613b08565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af115801561226f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122939190615871565b6001600160a01b0316336001600160a01b0316146122f35760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610316565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561232e57600080fd5b505af1158015611080573d6000803e3d6000fd5b61234a6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ab9190615831565b156123c957604051632b37d9d160e21b815260040160405180910390fd5b610eda82826142d4565b6123db6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243c9190615831565b1561245a57604051632b37d9d160e21b815260040160405180910390fd5b61120733826142d4565b6000610eed826144ad565b604080516000815260208101909152606090826001600160401b0381111561249957612499615962565b6040519080825280602002602001820160405280156124cc57816020015b60608152602001906001900390816124b75790505b50915060005b8381101561254e57612529308686848181106124f0576124f0615978565b9050602002810190612502919061598e565b85604051602001612515939291906159d4565b6040516020818303038152906040526144f8565b83828151811061253b5761253b615978565b60209081029190910101526001016124d2565b505092915050565b61255e6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561259b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bf9190615831565b156125dd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff1661262357604051622920f760e21b81526001600160a01b039091166004820152602401610316565b506112a1838383614565565b6126376133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126989190615831565b156126b657604051632b37d9d160e21b815260040160405180910390fd5b83836126c38282336133ff565b8282339091926126e957604051630c76b97b60e41b81526004016103169392919061584e565b50505085846126f98282336133ff565b82823390919261271f57604051630c76b97b60e41b81526004016103169392919061584e565b505050600061272f898988613d23565b905061273c89888361432a565b505050505050505050565b61274f6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190615831565b156127ce57604051632b37d9d160e21b815260040160405180910390fd5b6112a1838383614565565b6127e16133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128429190615831565b1561286057604051632b37d9d160e21b815260040160405180910390fd5b8060000361288157604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03640100000000830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004909201546101008201529084908490612956576040516330acea0d60e11b81526004016103169291906158a4565b505060006129648585614250565b90506000816003015411858590916129915760405163b6a70b3b60e01b81526004016103169291906158a4565b50508281600201546129a391906158eb565b60028201556129d333847f0000000000000000000000000000000000000000000000000000000000000000610e9d565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a151153085604051612a1891815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612a518686614250565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b612a816133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae29190615871565b6001600160a01b0316336001600160a01b031614612b1357604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b612b536133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb49190615831565b15612bd257604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612c018784614250565b9050600081600201548360000154612c1991906158eb565b9050808781612c445760405163587ab9ab60e11b815260048101929092526024820152604401610316565b50506000612c528883614496565b90506000612c64856000015483614496565b90508015612ed4576003850154600090612c8990839063ffffffff9081169061469516565b9050888181811015612cb757604051632f514d5760e21b815260048101929092526024820152604401610316565b50508815612d4e57612cf6888a7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031691906146fc565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612d4591815260200190565b60405180910390a45b612d8c612d5b8a8461594f565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031690614737565b8554600090612da3670de0b6b3a7640000856158d4565b612dad91906158fe565b9050670de0b6b3a7640000612dc2828261594f565b8860010154612dd191906158d4565b612ddb91906158fe565b60018801558654612ded90849061594f565b8755600287015415801590612e0457506001870154155b15612e285760006002880181905560048801805491612e22836159fb565b91905055505b6001600160a01b038c166000908152600e6020526040902060040154612e4f90849061594f565b6001600160a01b038d166000908152600e60205260409020600481019190915554612e7b90849061594f565b6001600160a01b038d81166000818152600e60209081526040918290209490945551868152918b169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a350505b612ede818361594f565b915081156130615760205460ff161561301357612f1b827f0000000000000000000000000000000000000000000000000000000000000000612d7d565b6002840154600090612f35670de0b6b3a7640000856158d4565b612f3f91906158fe565b9050828560020154612f51919061594f565b6002860155670de0b6b3a7640000612f69828261594f565b8660050154612f7891906158d4565b612f8291906158fe565b6005860155600685015415801590612f9c57506005850154155b15612fc05760006006860181905560078601805491612fba836159fb565b91905055505b866001600160a01b03168b6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b7718560405161300591815260200190565b60405180910390a350613061565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b248460405161305891815260200190565b60405180910390a35b50505050505050505050565b6130756133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d69190615871565b6001600160a01b0316336001600160a01b03161461310757604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff1916600190811782556040519081527f78bd9090b1ff40fc9c2d6056a25fb880530a766f5b0595d77f3cf33fe189c194910160405180910390a1565b6131516133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b29190615831565b156131d057604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166131f7576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b03831661321e5760405163a962605960e01b815260040160405180910390fd5b611080868686868686613ff4565b60006132366133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190615831565b156132b557604051632b37d9d160e21b815260040160405180910390fd5b83836132c28282336133ff565b8282339091926132e857604051630c76b97b60e41b81526004016103169392919061584e565b5050506132f686868661477f565b9695505050505050565b6000610eea8383614473565b6133146133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133759190615831565b1561339357604051632b37d9d160e21b815260040160405180910390fd5b82826133a08282336133ff565b8282339091926133c657604051630c76b97b60e41b81526004016103169392919061584e565b5050506133d485858561432a565b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b03160361342257506001611b8b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361348a57506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff16611b8b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff16611b8b565b600084116134e457604051630a2a4e5b60e11b815260040160405180910390fd5b8163ffffffff8116620f42401015613518576040516329bff5f560e01b815263ffffffff9091166004820152602401610316565b50601a5481906001600160401b0390811690821681101561355f5760405163ee5602e160e01b81526001600160401b03928316600482015291166024820152604401610316565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156135b857604051632b542c0d60e11b815260040160405180910390fd5b60006135c3866144ad565b90508481808211156135f15760405163ccaf28a960e01b815260048101929092526024820152604401610316565b505060405180610120016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b031681526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b0316021790555061010082015181600401559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546137df91906158eb565b60048201556040805187815263ffffffff861660208201526001600160401b038516918101919091526001600160a01b0380871691908916907f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc2590606001611e0f565b80156112a1576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af115801561389e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c29190615831565b6112a15760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610316565b6001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b0316613956576040516330acea0d60e11b81526004016103169291906158a4565b505060006139648585614250565b336000908152600482016020526040902060028201549192509015158061398d57506003820154155b868690916139b057604051631984edef60e31b81526004016103169291906158a4565b505060008260020154600014806139ce575082600501548360020154145b9050600081613a0957836005015484600201546139eb919061594f565b60038501546139fa90886158d4565b613a0491906158fe565b613a0b565b855b90508015801590613a1c5750848110155b81869091613a4657604051635d88e8d160e01b815260048101929092526024820152604401610316565b5050858460020154613a5891906158eb565b60028501556003840154613a6d9082906158eb565b60038501558254613a7f9082906158eb565b835560405186815233906001600160a01b0389811691908b16907feaefa9a428d7aa0b99b7ac8aec4885d6304a78cc8d6a78a6c99dd29e9693cdf49060200160405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610eea919061594f565b6000808311613b2a57604051637318ad9960e01b815260040160405180910390fd5b6000613b368686614250565b33600090815260048201602052604090208054919250908580821015613b785760405163ab99793560e01b815260048101929092526024820152604401610316565b5050600282015487908790613ba257604051631984edef60e31b81526004016103169291906158a4565b50506000826003015483600501548460020154613bbf919061594f565b613bc990886158d4565b613bd391906158fe565b905060008360050154600014613c065760058401546006850154613bf790846158d4565b613c0191906158fe565b613c08565b815b6001600160a01b038a81166000908152601b60209081526040808320938d1683529290529081206003015491925090613c529064010000000090046001600160401b0316426158eb565b9050828560050154613c6491906158eb565b60058601556006850154613c799083906158eb565b60068601556003850154613c8e90899061594f565b60038601558354613ca090899061594f565b84600001819055506000613cbc8b8b8a86868b600701546148fc565b9050336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f50d19209821f5d69c0884b007c6ba9ffde612c0cff5dd3234d0c6baf2c4556aa87604051613d0d91815260200190565b60405180910390a49a9950505050505050505050565b6001600160a01b038084166000908152601b60209081526040808320938616835292905290812060028101546001820154600483015484929190613d7290899089908290859087908c90614aa4565b865492955093509150613d8690849061594f565b845560028401829055600184018190556001600160a01b0388166000908152600e602052604081206004018054859290613dc190849061594f565b92505081905550866001600160a01b0316886001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d85604051613e0d91815260200190565b60405180910390a350909695505050505050565b336000829003613e4457604051630a2a4e5b60e11b815260040160405180910390fd5b6000613e4f826144ad565b9050828180821115613e7d5760405163ccaf28a960e01b815260048101929092526024820152604401610316565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613f2d57613eb8868361594f565b8355613ee585877f0000000000000000000000000000000000000000000000000000000000000000612ce6565b846001600160a01b03167f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc87604051613f2091815260200190565b60405180910390a2611080565b600283015415801590613f44575082600301544310155b15613f5257613f5285614157565b600283015415613f7c57613f79613f6d846003015443614bec565b84600201548389614c06565b90505b858360020154613f8c91906158eb565b6002840155613f9b81436158eb565b6003840181905560028401546040805191825260208201929092526001600160a01b038716917fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01910160405180910390a2505050505050565b60006140008787614250565b90508060020154600014158061401857506003810154155b8787909161403b57604051631984edef60e31b81526004016103169291906158a4565b5050600080826006015490506000836005015490506140638a8a3384868a8a60070154614aa4565b60028701549295509350915061407a90849061594f565b6002850155600684018290556005840181905582156140f4576001600160a01b038816158015906140b357506001600160a01b03871615155b156140c9576140c4888885896138fa565b6140f4565b6140f433847f0000000000000000000000000000000000000000000000000000000000000000612ce6565b336001600160a01b0316896001600160a01b03168b6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e8660405161414391815260200190565b60405180910390a450505050505050505050565b6001600160a01b0381166000908152600e602052604081206002810154909181900361419657604051630a2a4e5b60e11b815260040160405180910390fd5b6003820154438111156141bf57604051631d222f1b60e31b815260040161031691815260200190565b50600060028301819055600383015581546141db90829061594f565b825561420883827f0000000000000000000000000000000000000000000000000000000000000000612ce6565b826001600160a01b03167f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc8260405161424391815260200190565b60405180910390a2505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036142a957506001600160a01b0382166000908152601460205260409020610eed565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610eed565b806000036142f557604051630a2a4e5b60e11b815260040160405180910390fd5b61432033827f0000000000000000000000000000000000000000000000000000000000000000610e9d565b610eda8282614c5a565b6001600160a01b038084166000908152601b6020908152604080832093861683529290529081209082900361437257604051630a2a4e5b60e11b815260040160405180910390fd5b600381015484908490600160601b90046001600160401b03166143aa576040516330acea0d60e11b81526004016103169291906158a4565b505060006143b7856144ad565b90508281808211156143e55760405163ccaf28a960e01b815260048101929092526024820152604401610316565b505081546143f49084906158eb565b82556001600160a01b0385166000908152600e602052604090206004015461441d9084906158eb565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc2347459101612a18565b6000806144808484614250565b905080600501548160020154611b9f919061594f565b6000818311156144a65781610eea565b5090919050565b6001600160a01b0381166000908152600e602052604081206002810154600182015460048301549254919290916144e4919061594f565b6144ee919061594f565b610eed919061594f565b6060600080846001600160a01b0316846040516145159190615a14565b600060405180830381855af49150503d8060008114614550576040519150601f19603f3d011682016040523d82523d6000602084013e614555565b606091505b5091509150610faf858383614ccd565b336001600160a01b0383160361458e57604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036145fb573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff1916821515179055614637565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f84604051614688911515815260200190565b60405180910390a4505050565b60006146a483620f4240101590565b806146b757506146b782620f4240101590565b838390916146e15760405163768bf0eb60e11b815260048101929092526024820152604401610316565b50620f424090506146f283856158d4565b610eea91906158fe565b80156112a15760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb9060440161387f565b8015610eda57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561232e57600080fd5b6000816000036147a257604051630a2a4e5b60e11b815260040160405180910390fd5b60006147ae8585613ad0565b90508083808210156147dc5760405163587ab9ab60e11b815260048101929092526024820152604401610316565b50506001600160a01b038086166000908152601b60209081526040808320938816835292905290812060018101549091901561483657816001015485836002015461482791906158d4565b61483191906158fe565b614838565b845b600383015490915060009061485e9064010000000090046001600160401b0316426158eb565b905081836002015461487091906158eb565b600284015560018301546148859087906158eb565b836001018190555060006148a189898b868689600401546148fc565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa896040516148e891815260200190565b60405180910390a398975050505050505050565b6001600160a01b038087166000908152601e6020908152604080832089851684528252808320938816835292905290812060038101546064116149525760405163332b852b60e11b815260040160405180910390fd5b60028101546040516bffffffffffffffffffffffff1960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160408051808303601f1901815282825280516020918201206080840183528984526001600160401b038981168386019081526000868601818152606088018c8152858352601d909652959020955186555160018601805467ffffffffffffffff19169190921617905591516002840155516003928301559083015490915015614a325760018201546000908152601d602052604090206002018190555b614a3c8282614d29565b604080518781526001600160401b03871660208201529081018290526001600160a01b03808916918a8216918c16907f434422e55cc9ab3bcca23cbf515724bbad83af8dd645832a1abd3db5e641dea59060600160405180910390a498975050505050505050565b6001600160a01b038088166000908152601e602090815260408083208a8516845282528083209389168352929052908120600381015482918291614afb576040516307e332c560e31b815260040160405180910390fd5b60008080614b53614dbc614dd1614f30868f8f8e604051602001614b38949392919093845260208401929092526040830152606082015260800190565b60408051601f1981840301815291905288939291908e614f61565b9150915080806020019051810190614b6b9190615a30565b809c50819d508295505050508b6001600160a01b03168d6001600160a01b03168f6001600160a01b03167f9de822a9c144d03cad4a18bc322e9a3d91ffa99463d22e5c25da2a41d4c354d58587604051614bcf929190918252602082015260400190565b60405180910390a450909c989b5096995096975050505050505050565b6000818311614bfc576000610eea565b610eea828461594f565b6000614c1282856158eb565b6001614c1e84876158eb565b614c28919061594f565b614c3284866158d4565b614c3c87896158d4565b614c4691906158eb565b614c5091906158eb565b610faf91906158fe565b6001600160a01b0382166000908152600e6020526040902054614c7e9082906158eb565b6001600160a01b0383166000818152600e6020526040908190209290925590517f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc2906117729084815260200190565b606082614ce257614cdd8261501b565b611b8b565b8151158015614cf957506001600160a01b0384163b155b15614d2257604051639996b31560e01b81526001600160a01b0385166004820152602401610316565b5080611b8b565b612710826003015410614d4f576040516303a8c56b60e61b815260040160405180910390fd5b80614d6d57604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d899084906158eb565b90915550506003820154600003614d9e578082555b6001826003016000828254614db391906158eb565b90915550505050565b6000908152601d602052604090206002015490565b6000828152601d60205260408120600181015460609190426001600160401b039091161115614e1457505060408051602081019091526000815260019150614f29565b60008060008087806020019051810190614e2e9190615a5e565b93509350935093506000808287600301541490508015614e8b5786548490614e579087906158d4565b614e6191906158fe565b9150614e6d828661594f565b8754909550614e7c908561594f565b9350614e8882876158eb565b95505b865460018801546040805185815260208101939093526001600160401b039091169082015281151560608201528b907fbe7f1ad13b07d1f0e9574e97c844204d5433e4ab98133a1f0ce257764a6abeb79060800160405180910390a26040805160208101889052908101869052606081018590526080810184905260a001604051602081830303815290604052995060008a98509850505050505050505b9250929050565b6000908152601d6020526040812081815560018101805467ffffffffffffffff191690556002810182905560030155565b600060608760030154831115614f8a57604051634a411b9d60e11b815260040160405180910390fd5b60008315614f985783614f9e565b88600301545b89549094505b8015801590614fb35750600085115b1561500c57600080614fc983898c63ffffffff16565b915091508115614fda57505061500c565b965086614fe88c8c8b615044565b925086614ff481615a94565b9750508380615002906159fb565b9450505050614fa4565b50989397509295505050505050565b80511561502b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008084600301541161506a5760405163ddaf8f2160e01b815260040160405180910390fd5b600061507d85600001548563ffffffff16565b905061509085600001548463ffffffff16565b60018560030160008282546150a5919061594f565b909155505080855560038501546000036150c157600060018601555b5050915492915050565b6001600160a01b038116811461120757600080fd5b803563ffffffff811681146150f457600080fd5b919050565b80356001600160401b03811681146150f457600080fd5b600080600080600060a0868803121561512857600080fd5b8535615133816150cb565b94506020860135615143816150cb565b935060408601359250615158606087016150e0565b9150615166608087016150f9565b90509295509295909350565b6000806040838503121561518557600080fd5b8235615190816150cb565b946020939093013593505050565b600080604083850312156151b157600080fd5b82356151bc816150cb565b915060208301356151cc816150cb565b809150509250929050565b600080600080608085870312156151ed57600080fd5b84356151f8816150cb565b93506020850135615208816150cb565b925060408501359150606085013561521f816150cb565b939692955090935050565b60008060006060848603121561523f57600080fd5b833561524a816150cb565b9250602084013561525a816150cb565b929592945050506040919091013590565b60006020828403121561527d57600080fd5b610eea826150f9565b60006101208201905082518252602083015160208301526040830151604083015263ffffffff60608401511660608301526001600160401b03608084015116608083015260a08301516152e460a08401826001600160401b03169052565b5060c08301516152fc60c084018263ffffffff169052565b5060e083015161531760e08401826001600160401b03169052565b5061010092830151919092015290565b60006020828403121561533957600080fd5b5035919050565b60006020828403121561535257600080fd5b8135611b8b816150cb565b8035600381106150f457600080fd5b6000806000806080858703121561538257600080fd5b843561538d816150cb565b9350602085013561539d816150cb565b92506153ab6040860161535d565b9396929550929360600135925050565b801515811461120757600080fd5b600080604083850312156153dc57600080fd5b82356153e7816150cb565b915060208301356151cc816153bb565b6000806000806080858703121561540d57600080fd5b8435615418816150cb565b93506020850135615428816150cb565b93969395505050506040820135916060013590565b60008060006060848603121561545257600080fd5b833561545d816150cb565b9250602084013561546d816150cb565b915061547b6040850161535d565b90509250925092565b60008060006060848603121561549957600080fd5b83356154a4816150cb565b925060208401356154b4816150cb565b915060408401356154c4816150cb565b809150509250925092565b600080600080608085870312156154e557600080fd5b84356154f0816150cb565b93506020850135615500816150cb565b925061550e604086016150e0565b915061551c606086016150f9565b905092959194509250565b60008060006060848603121561553c57600080fd5b8335615547816150cb565b92506020840135615557816150cb565b915061547b604085016150e0565b60008060006040848603121561557a57600080fd5b8335615585816150cb565b925060208401356001600160401b038111156155a057600080fd5b8401601f810186136155b157600080fd5b80356001600160401b038111156155c757600080fd5b8660208284010111156155d957600080fd5b939660209190910195509293505050565b600080602083850312156155fd57600080fd5b82356001600160401b0381111561561357600080fd5b8301601f8101851361562457600080fd5b80356001600160401b0381111561563a57600080fd5b8560208260051b840101111561564f57600080fd5b6020919091019590945092505050565b60005b8381101561567a578181015183820152602001615662565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156156f757603f19878603018452815180518087526156d481602089016020850161565f565b601f01601f191695909501602090810195509384019391909101906001016156ab565b50929695505050505050565b60008060006060848603121561571857600080fd5b8335615723816150cb565b92506020840135615733816150cb565b915060408401356154c4816153bb565b6000806000806080858703121561575957600080fd5b8435615764816150cb565b93506020850135615774816150cb565b925060408501356153ab816150cb565b6000806000806080858703121561579a57600080fd5b84356157a5816150cb565b93506020850135925060408501359150606085013561521f816150cb565b60008060008060008060c087890312156157dc57600080fd5b86356157e7816150cb565b955060208701356157f7816150cb565b94506040870135615807816150cb565b93506060870135615817816150cb565b9598949750929560808101359460a0909101359350915050565b60006020828403121561584357600080fd5b8151611b8b816153bb565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561588357600080fd5b8151611b8b816150cb565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610eed57610eed6158be565b80820180821115610eed57610eed6158be565b60008261591b57634e487b7160e01b600052601260045260246000fd5b500490565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b81810381811115610eed57610eed6158be565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126159a557600080fd5b8301803591506001600160401b038211156159bf57600080fd5b602001915036819003821315614f2957600080fd5b8284823760008382016000815283516159f181836020880161565f565b0195945050505050565b600060018201615a0d57615a0d6158be565b5060010190565b60008251615a2681846020870161565f565b9190910192915050565b600080600060608486031215615a4557600080fd5b5050815160208301516040909301519094929350919050565b60008060008060808587031215615a7457600080fd5b505082516020840151604085015160609095015191969095509092509050565b600081615aa357615aa36158be565b50600019019056fea2646970667358221220a984158462a19071d33f0c9b0b8967a96b4b64feb78c617c0635061568508fff64736f6c634300081b0033", - "deployedBytecode": "0x6080604052600436106102cd5760003560e01c80638cc01c8611610175578063b7ca7241116100dc578063e76fede611610095578063f93f1cd01161006f578063f93f1cd014610c83578063fb744cc014610ca3578063fc54fb2714610cc3578063fecc9cc114610cdb5761031f565b8063e76fede614610c2e578063ef58bd6714610c4e578063f64b359814610c635761031f565b8063b7ca724114610ac7578063ba7fb0b414610b8a578063bc735d9014610baa578063ca94b0e914610bca578063ccebcabb14610bea578063e473522a14610c195761031f565b8063a2a317221161012e578063a2a31722146109e1578063a694fc3a14610a01578063a784d49814610a21578063ac9650d814610a41578063ad4d35b514610a6e578063ae4fe67a14610a8e5761031f565b80638cc01c86146108105780639054e343146108915780639ce7abe5146108b1578063a02b9426146108d1578063a212daf8146108f1578063a2594d82146109c15761031f565b806342c516931161023457806374612092116101ed5780637c145cc7116101c75780637c145cc71461078057806381e21b56146107b057806382d66cb8146107d0578063872d0489146107f05761031f565b8063746120921461070a5780637573ef4f1461072a5780637a7664601461074a5761031f565b806342c51693146106085780634ca7ac22146106285780634d99dd161461064857806351a60b0214610668578063561285e4146106885780636230001a146106ea5761031f565b806325d9897e1161028657806325d9897e146104485780632e17de781461056b57806339514ad21461058b5780633993d849146105b35780633a78b732146105d35780633ccfd60b146105f35761031f565b8063010167e514610375578063026e402b1461039557806308ce5f68146103b5578063162ea5ed146103e85780632119537314610408578063259bc435146104285761031f565b3661031f5760405162461bcd60e51b815260206004820152601760248201527f524543454956455f4554485f4e4f545f414c4c4f57454400000000000000000060448201526064015b60405180910390fd5b34801561032b57600080fd5b506040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e81801561036f578184f35b8184fd5b005b34801561038157600080fd5b50610373610390366004615110565b610cfb565b3480156103a157600080fd5b506103736103b0366004615172565b610dce565b3480156103c157600080fd5b506103d56103d036600461519e565b610ede565b6040519081526020015b60405180910390f35b3480156103f457600080fd5b506103d56104033660046151d7565b610ef3565b34801561041457600080fd5b5061037361042336600461522a565b610fb8565b34801561043457600080fd5b5061037361044336600461526b565b611088565b34801561045457600080fd5b5061055e61046336600461519e565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff808216606084015264010000000082046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e082015260049091015461010082015290565b6040516103df9190615286565b34801561057757600080fd5b50610373610586366004615327565b611177565b34801561059757600080fd5b50601a546040516001600160401b0390911681526020016103df565b3480156105bf57600080fd5b506103736105ce36600461522a565b61120a565b3480156105df57600080fd5b506103736105ee366004615340565b6112a6565b3480156105ff57600080fd5b50610373611441565b34801561061457600080fd5b5061037361062336600461536c565b6114d3565b34801561063457600080fd5b506103736106433660046153c9565b611684565b34801561065457600080fd5b50610373610663366004615172565b61177e565b34801561067457600080fd5b5061037361068336600461519e565b611831565b34801561069457600080fd5b506106a86106a336600461519e565b611907565b6040516103df9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b3480156106f657600080fd5b506103736107053660046153f7565b6119ad565b34801561071657600080fd5b5061037361072536600461522a565b611a92565b34801561073657600080fd5b506103d561074536600461543d565b611b2e565b34801561075657600080fd5b506103d5610765366004615340565b6001600160a01b03166000908152600e602052604090205490565b34801561078c57600080fd5b506107a061079b366004615484565b611b92565b60405190151581526020016103df565b3480156107bc57600080fd5b506103736107cb3660046154cf565b611ba7565b3480156107dc57600080fd5b506103736107eb366004615110565b611e20565b3480156107fc57600080fd5b506103d561080b366004615527565b611f31565b34801561081c57600080fd5b5061087661082b366004615340565b60408051808201825260008082526020918201819052825180840184528181528083018281526001600160a01b03959095168252600e90925291909120805482526004015490915290565b604080518251815260209283015192810192909252016103df565b34801561089d57600080fd5b506103d56108ac366004615484565b611f86565b3480156108bd57600080fd5b506103736108cc366004615565565b61206e565b3480156108dd57600080fd5b506103d56108ec36600461522a565b612199565b3480156108fd57600080fd5b5061098e61090c366004615484565b60408051608080820183526000808352602080840182905283850182905260609384018290526001600160a01b039788168252601e815284822096881682529586528381209490961686529284529381902081519283018252805483526001810154938301939093526002830154908201526003909101549181019190915290565b6040516103df91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b3480156109cd57600080fd5b506103736109dc366004615340565b61222e565b3480156109ed57600080fd5b506103736109fc366004615172565b612342565b348015610a0d57600080fd5b50610373610a1c366004615327565b6123d3565b348015610a2d57600080fd5b506103d5610a3c366004615340565b612464565b348015610a4d57600080fd5b50610a61610a5c3660046155ea565b61246f565b6040516103df9190615683565b348015610a7a57600080fd5b50610373610a89366004615703565b612556565b348015610a9a57600080fd5b506107a0610aa9366004615340565b6001600160a01b031660009081526022602052604090205460ff1690565b348015610ad357600080fd5b50610b4e610ae2366004615327565b6040805160808082018352600080835260208084018290528385018290526060938401829052948152601d8552839020835191820184528054825260018101546001600160401b0316948201949094526002840154928101929092526003909201549181019190915290565b6040516103df9190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b348015610b9657600080fd5b50610373610ba5366004615743565b61262f565b348015610bb657600080fd5b50610373610bc5366004615703565b612747565b348015610bd657600080fd5b50610373610be536600461522a565b6127d9565b348015610bf657600080fd5b50610c0a610c05366004615484565b612a27565b604051905181526020016103df565b348015610c2557600080fd5b50610373612a79565b348015610c3a57600080fd5b50610373610c49366004615784565b612b4b565b348015610c5a57600080fd5b5061037361306d565b348015610c6f57600080fd5b50610373610c7e3660046157c3565b613149565b348015610c8f57600080fd5b506103d5610c9e36600461522a565b61322c565b348015610caf57600080fd5b506103d5610cbe36600461519e565b613300565b348015610ccf57600080fd5b5060205460ff166107a0565b348015610ce757600080fd5b50610373610cf636600461522a565b61330c565b610d036133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190615831565b15610d8257604051632b37d9d160e21b815260040160405180910390fd5b8484610d8f8282336133ff565b828233909192610db557604051630c76b97b60e41b81526004016103169392919061584e565b505050610dc587868887876134c3565b50505050505050565b610dd66133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e379190615831565b15610e5557604051632b37d9d160e21b815260040160405180910390fd5b80600003610e7657604051630a2a4e5b60e11b815260040160405180910390fd5b610ead33827f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190613842565b610eda827f00000000000000000000000000000000000000000000000000000000000000008360006138fa565b5050565b6000610eea8383613ad0565b90505b92915050565b6000610efd6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190615831565b15610f7c57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038216610fa357604051633dbb48ed60e21b815260040160405180910390fd5b610faf85858585613b08565b95945050505050565b8282610fc58282336133ff565b828233909192610feb57604051630c76b97b60e41b81526004016103169392919061584e565b505050610ff66133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611033573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110579190615831565b1561107557604051632b37d9d160e21b815260040160405180910390fd5b611080858585613d23565b505050505050565b6110906133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f19190615871565b6001600160a01b0316336001600160a01b03161461112257604051635d9044cd60e01b815260040160405180910390fd5b601a805467ffffffffffffffff19166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b61117f6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e09190615831565b156111fe57604051632b37d9d160e21b815260040160405180910390fd5b61120781613e21565b50565b6112126133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190615831565b1561129157604051632b37d9d160e21b815260040160405180910390fd5b6112a18383600080600086613ff4565b505050565b6112ae6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130f9190615831565b1561132d57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b602090815260408083203380855292529091206003810154600160a01b810463ffffffff908116911614158061139357506003810154600160c01b81046001600160401b039081166401000000009092041614155b156112a1576003810180546401000000006001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026bffffffffffffffffffffffff199095161793909317938490556040805193851684529190930490921660208201526001600160a01b0384811692908616917fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c6910160405180910390a3505050565b6114496133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190615831565b156114c857604051632b37d9d160e21b815260040160405180910390fd5b6114d133614157565b565b6114db6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c9190615831565b1561155a57604051632b37d9d160e21b815260040160405180910390fd5b83836115678282336133ff565b82823390919261158d57604051630c76b97b60e41b81526004016103169392919061584e565b50505061159d83620f4240101590565b83906115bf57604051631504950160e21b815260040161031691815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156115fb576115fb61588e565b600281111561160c5761160c61588e565b815260208101919091526040016000205583600281111561162f5761162f61588e565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161167491815260200190565b60405180910390a4505050505050565b61168c6133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ed9190615871565b6001600160a01b0316336001600160a01b03161461171e57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b6117866133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e79190615831565b1561180557604051632b37d9d160e21b815260040160405180910390fd5b6112a1827f00000000000000000000000000000000000000000000000000000000000000008333613b08565b6118396133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189a9190615831565b156118b857604051632b37d9d160e21b815260040160405180910390fd5b610eda827f0000000000000000000000000000000000000000000000000000000000000000837f0000000000000000000000000000000000000000000000000000000000000000600080613ff4565b6119396040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b61196b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60006119778585614250565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b6119b56133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a169190615831565b15611a3457604051632b37d9d160e21b815260040160405180910390fd5b81600003611a5557604051630a2a4e5b60e11b815260040160405180910390fd5b611a8033837f0000000000000000000000000000000000000000000000000000000000000000610e9d565b611a8c848484846138fa565b50505050565b611a9a6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afb9190615831565b15611b1957604051632b37d9d160e21b815260040160405180910390fd5b611b2383826142d4565b6112a183838361432a565b6001600160a01b038084166000908152601c60209081526040808320938616835292905290812081836002811115611b6857611b6861588e565b6002811115611b7957611b7961588e565b81526020019081526020016000205490505b9392505050565b6000611b9f8484846133ff565b949350505050565b611baf6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190615831565b15611c2e57604051632b37d9d160e21b815260040160405180910390fd5b8383611c3b8282336133ff565b828233909192611c6157604051630c76b97b60e41b81526004016103169392919061584e565b50505063ffffffff8416620f424010158490611c99576040516329bff5f560e01b815263ffffffff9091166004820152602401610316565b50601a5483906001600160401b03908116908216811015611ce05760405163ee5602e160e01b81526001600160401b03928316600482015291166024820152604401610316565b50506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b0316611d3f576040516330acea0d60e11b81526004016103169291906158a4565b5050600381015463ffffffff868116600160a01b90920416141580611d7b575060038101546001600160401b03858116600160c01b9092041614155b15610dc5576003810180546001600160401b038616600160c01b026001600160c01b0363ffffffff8916600160a01b02166001600160a01b039283161717909155604051878216918916907fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba90611e0f908990899063ffffffff9290921682526001600160401b0316602082015260400190565b60405180910390a350505050505050565b611e286133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e899190615831565b15611ea757604051632b37d9d160e21b815260040160405180910390fd5b8484611eb48282336133ff565b828233909192611eda57604051630c76b97b60e41b81526004016103169392919061584e565b5050506001600160a01b038616600090815260226020526040902054869060ff16611f2357604051622920f760e21b81526001600160a01b039091166004820152602401610316565b50610dc587868887876134c3565b600080611f3e8585613ad0565b90506000611f4c8686614473565b90506000611f6063ffffffff8616846158d4565b90506000611f6e8383614496565b9050611f7a81856158eb565b98975050505050505050565b6001600160a01b038084166000908152601e6020908152604080832086851684528252808320938516835292905290812060038101548203611fcc576000915050611b8b565b6001600160a01b038086166000908152601b60209081526040808320938816835292905290812082545b8015612062576000818152601d602052604090206001810154426001600160401b03909116116120515760028301546001840154825461203691906158d4565b61204091906158fe565b61204a90856158eb565b9350612057565b50612062565b600201549050611ff6565b50909695505050505050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af11580156120af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d39190615871565b6001600160a01b0316336001600160a01b0316146121335760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610316565b60405163623faf6160e01b81526001600160a01b0385169063623faf61906121619086908690600401615920565b600060405180830381600087803b15801561217b57600080fd5b505af115801561218f573d6000803e3d6000fd5b5050505050505050565b60006121a36133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122049190615831565b1561222257604051632b37d9d160e21b815260040160405180910390fd5b611b9f84848433613b08565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af115801561226f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122939190615871565b6001600160a01b0316336001600160a01b0316146122f35760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610316565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561232e57600080fd5b505af1158015611080573d6000803e3d6000fd5b61234a6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ab9190615831565b156123c957604051632b37d9d160e21b815260040160405180910390fd5b610eda82826142d4565b6123db6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243c9190615831565b1561245a57604051632b37d9d160e21b815260040160405180910390fd5b61120733826142d4565b6000610eed826144ad565b604080516000815260208101909152606090826001600160401b0381111561249957612499615962565b6040519080825280602002602001820160405280156124cc57816020015b60608152602001906001900390816124b75790505b50915060005b8381101561254e57612529308686848181106124f0576124f0615978565b9050602002810190612502919061598e565b85604051602001612515939291906159d4565b6040516020818303038152906040526144f8565b83828151811061253b5761253b615978565b60209081029190910101526001016124d2565b505092915050565b61255e6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561259b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bf9190615831565b156125dd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff1661262357604051622920f760e21b81526001600160a01b039091166004820152602401610316565b506112a1838383614565565b6126376133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126989190615831565b156126b657604051632b37d9d160e21b815260040160405180910390fd5b83836126c38282336133ff565b8282339091926126e957604051630c76b97b60e41b81526004016103169392919061584e565b50505085846126f98282336133ff565b82823390919261271f57604051630c76b97b60e41b81526004016103169392919061584e565b505050600061272f898988613d23565b905061273c89888361432a565b505050505050505050565b61274f6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190615831565b156127ce57604051632b37d9d160e21b815260040160405180910390fd5b6112a1838383614565565b6127e16133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128429190615831565b1561286057604051632b37d9d160e21b815260040160405180910390fd5b8060000361288157604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03640100000000830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004909201546101008201529084908490612956576040516330acea0d60e11b81526004016103169291906158a4565b505060006129648585614250565b90506000816003015411858590916129915760405163b6a70b3b60e01b81526004016103169291906158a4565b50508281600201546129a391906158eb565b60028201556129d333847f0000000000000000000000000000000000000000000000000000000000000000610e9d565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a151153085604051612a1891815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612a518686614250565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b612a816133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae29190615871565b6001600160a01b0316336001600160a01b031614612b1357604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b612b536133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb49190615831565b15612bd257604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612c018784614250565b9050600081600201548360000154612c1991906158eb565b9050808781612c445760405163587ab9ab60e11b815260048101929092526024820152604401610316565b50506000612c528883614496565b90506000612c64856000015483614496565b90508015612ed4576003850154600090612c8990839063ffffffff9081169061469516565b9050888181811015612cb757604051632f514d5760e21b815260048101929092526024820152604401610316565b50508815612d4e57612cf6888a7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031691906146fc565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612d4591815260200190565b60405180910390a45b612d8c612d5b8a8461594f565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031690614737565b8554600090612da3670de0b6b3a7640000856158d4565b612dad91906158fe565b9050670de0b6b3a7640000612dc2828261594f565b8860010154612dd191906158d4565b612ddb91906158fe565b60018801558654612ded90849061594f565b8755600287015415801590612e0457506001870154155b15612e285760006002880181905560048801805491612e22836159fb565b91905055505b6001600160a01b038c166000908152600e6020526040902060040154612e4f90849061594f565b6001600160a01b038d166000908152600e60205260409020600481019190915554612e7b90849061594f565b6001600160a01b038d81166000818152600e60209081526040918290209490945551868152918b169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a350505b612ede818361594f565b915081156130615760205460ff161561301357612f1b827f0000000000000000000000000000000000000000000000000000000000000000612d7d565b6002840154600090612f35670de0b6b3a7640000856158d4565b612f3f91906158fe565b9050828560020154612f51919061594f565b6002860155670de0b6b3a7640000612f69828261594f565b8660050154612f7891906158d4565b612f8291906158fe565b6005860155600685015415801590612f9c57506005850154155b15612fc05760006006860181905560078601805491612fba836159fb565b91905055505b866001600160a01b03168b6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b7718560405161300591815260200190565b60405180910390a350613061565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b248460405161305891815260200190565b60405180910390a35b50505050505050505050565b6130756133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d69190615871565b6001600160a01b0316336001600160a01b03161461310757604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff1916600190811782556040519081527f78bd9090b1ff40fc9c2d6056a25fb880530a766f5b0595d77f3cf33fe189c194910160405180910390a1565b6131516133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b29190615831565b156131d057604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166131f7576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b03831661321e5760405163a962605960e01b815260040160405180910390fd5b611080868686868686613ff4565b60006132366133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190615831565b156132b557604051632b37d9d160e21b815260040160405180910390fd5b83836132c28282336133ff565b8282339091926132e857604051630c76b97b60e41b81526004016103169392919061584e565b5050506132f686868661477f565b9695505050505050565b6000610eea8383614473565b6133146133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133759190615831565b1561339357604051632b37d9d160e21b815260040160405180910390fd5b82826133a08282336133ff565b8282339091926133c657604051630c76b97b60e41b81526004016103169392919061584e565b5050506133d485858561432a565b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b03160361342257506001611b8b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361348a57506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff16611b8b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff16611b8b565b600084116134e457604051630a2a4e5b60e11b815260040160405180910390fd5b8163ffffffff8116620f42401015613518576040516329bff5f560e01b815263ffffffff9091166004820152602401610316565b50601a5481906001600160401b0390811690821681101561355f5760405163ee5602e160e01b81526001600160401b03928316600482015291166024820152604401610316565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156135b857604051632b542c0d60e11b815260040160405180910390fd5b60006135c3866144ad565b90508481808211156135f15760405163ccaf28a960e01b815260048101929092526024820152604401610316565b505060405180610120016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b031681526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b0316021790555061010082015181600401559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546137df91906158eb565b60048201556040805187815263ffffffff861660208201526001600160401b038516918101919091526001600160a01b0380871691908916907f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc2590606001611e0f565b80156112a1576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af115801561389e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c29190615831565b6112a15760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610316565b6001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b0316613956576040516330acea0d60e11b81526004016103169291906158a4565b505060006139648585614250565b336000908152600482016020526040902060028201549192509015158061398d57506003820154155b868690916139b057604051631984edef60e31b81526004016103169291906158a4565b505060008260020154600014806139ce575082600501548360020154145b9050600081613a0957836005015484600201546139eb919061594f565b60038501546139fa90886158d4565b613a0491906158fe565b613a0b565b855b90508015801590613a1c5750848110155b81869091613a4657604051635d88e8d160e01b815260048101929092526024820152604401610316565b5050858460020154613a5891906158eb565b60028501556003840154613a6d9082906158eb565b60038501558254613a7f9082906158eb565b835560405186815233906001600160a01b0389811691908b16907feaefa9a428d7aa0b99b7ac8aec4885d6304a78cc8d6a78a6c99dd29e9693cdf49060200160405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610eea919061594f565b6000808311613b2a57604051637318ad9960e01b815260040160405180910390fd5b6000613b368686614250565b33600090815260048201602052604090208054919250908580821015613b785760405163ab99793560e01b815260048101929092526024820152604401610316565b5050600282015487908790613ba257604051631984edef60e31b81526004016103169291906158a4565b50506000826003015483600501548460020154613bbf919061594f565b613bc990886158d4565b613bd391906158fe565b905060008360050154600014613c065760058401546006850154613bf790846158d4565b613c0191906158fe565b613c08565b815b6001600160a01b038a81166000908152601b60209081526040808320938d1683529290529081206003015491925090613c529064010000000090046001600160401b0316426158eb565b9050828560050154613c6491906158eb565b60058601556006850154613c799083906158eb565b60068601556003850154613c8e90899061594f565b60038601558354613ca090899061594f565b84600001819055506000613cbc8b8b8a86868b600701546148fc565b9050336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f50d19209821f5d69c0884b007c6ba9ffde612c0cff5dd3234d0c6baf2c4556aa87604051613d0d91815260200190565b60405180910390a49a9950505050505050505050565b6001600160a01b038084166000908152601b60209081526040808320938616835292905290812060028101546001820154600483015484929190613d7290899089908290859087908c90614aa4565b865492955093509150613d8690849061594f565b845560028401829055600184018190556001600160a01b0388166000908152600e602052604081206004018054859290613dc190849061594f565b92505081905550866001600160a01b0316886001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d85604051613e0d91815260200190565b60405180910390a350909695505050505050565b336000829003613e4457604051630a2a4e5b60e11b815260040160405180910390fd5b6000613e4f826144ad565b9050828180821115613e7d5760405163ccaf28a960e01b815260048101929092526024820152604401610316565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613f2d57613eb8868361594f565b8355613ee585877f0000000000000000000000000000000000000000000000000000000000000000612ce6565b846001600160a01b03167f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc87604051613f2091815260200190565b60405180910390a2611080565b600283015415801590613f44575082600301544310155b15613f5257613f5285614157565b600283015415613f7c57613f79613f6d846003015443614bec565b84600201548389614c06565b90505b858360020154613f8c91906158eb565b6002840155613f9b81436158eb565b6003840181905560028401546040805191825260208201929092526001600160a01b038716917fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01910160405180910390a2505050505050565b60006140008787614250565b90508060020154600014158061401857506003810154155b8787909161403b57604051631984edef60e31b81526004016103169291906158a4565b5050600080826006015490506000836005015490506140638a8a3384868a8a60070154614aa4565b60028701549295509350915061407a90849061594f565b6002850155600684018290556005840181905582156140f4576001600160a01b038816158015906140b357506001600160a01b03871615155b156140c9576140c4888885896138fa565b6140f4565b6140f433847f0000000000000000000000000000000000000000000000000000000000000000612ce6565b336001600160a01b0316896001600160a01b03168b6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e8660405161414391815260200190565b60405180910390a450505050505050505050565b6001600160a01b0381166000908152600e602052604081206002810154909181900361419657604051630a2a4e5b60e11b815260040160405180910390fd5b6003820154438111156141bf57604051631d222f1b60e31b815260040161031691815260200190565b50600060028301819055600383015581546141db90829061594f565b825561420883827f0000000000000000000000000000000000000000000000000000000000000000612ce6565b826001600160a01b03167f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc8260405161424391815260200190565b60405180910390a2505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036142a957506001600160a01b0382166000908152601460205260409020610eed565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610eed565b806000036142f557604051630a2a4e5b60e11b815260040160405180910390fd5b61432033827f0000000000000000000000000000000000000000000000000000000000000000610e9d565b610eda8282614c5a565b6001600160a01b038084166000908152601b6020908152604080832093861683529290529081209082900361437257604051630a2a4e5b60e11b815260040160405180910390fd5b600381015484908490600160601b90046001600160401b03166143aa576040516330acea0d60e11b81526004016103169291906158a4565b505060006143b7856144ad565b90508281808211156143e55760405163ccaf28a960e01b815260048101929092526024820152604401610316565b505081546143f49084906158eb565b82556001600160a01b0385166000908152600e602052604090206004015461441d9084906158eb565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc2347459101612a18565b6000806144808484614250565b905080600501548160020154611b9f919061594f565b6000818311156144a65781610eea565b5090919050565b6001600160a01b0381166000908152600e602052604081206002810154600182015460048301549254919290916144e4919061594f565b6144ee919061594f565b610eed919061594f565b6060600080846001600160a01b0316846040516145159190615a14565b600060405180830381855af49150503d8060008114614550576040519150601f19603f3d011682016040523d82523d6000602084013e614555565b606091505b5091509150610faf858383614ccd565b336001600160a01b0383160361458e57604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036145fb573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff1916821515179055614637565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f84604051614688911515815260200190565b60405180910390a4505050565b60006146a483620f4240101590565b806146b757506146b782620f4240101590565b838390916146e15760405163768bf0eb60e11b815260048101929092526024820152604401610316565b50620f424090506146f283856158d4565b610eea91906158fe565b80156112a15760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb9060440161387f565b8015610eda57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561232e57600080fd5b6000816000036147a257604051630a2a4e5b60e11b815260040160405180910390fd5b60006147ae8585613ad0565b90508083808210156147dc5760405163587ab9ab60e11b815260048101929092526024820152604401610316565b50506001600160a01b038086166000908152601b60209081526040808320938816835292905290812060018101549091901561483657816001015485836002015461482791906158d4565b61483191906158fe565b614838565b845b600383015490915060009061485e9064010000000090046001600160401b0316426158eb565b905081836002015461487091906158eb565b600284015560018301546148859087906158eb565b836001018190555060006148a189898b868689600401546148fc565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa896040516148e891815260200190565b60405180910390a398975050505050505050565b6001600160a01b038087166000908152601e6020908152604080832089851684528252808320938816835292905290812060038101546064116149525760405163332b852b60e11b815260040160405180910390fd5b60028101546040516bffffffffffffffffffffffff1960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160408051808303601f1901815282825280516020918201206080840183528984526001600160401b038981168386019081526000868601818152606088018c8152858352601d909652959020955186555160018601805467ffffffffffffffff19169190921617905591516002840155516003928301559083015490915015614a325760018201546000908152601d602052604090206002018190555b614a3c8282614d29565b604080518781526001600160401b03871660208201529081018290526001600160a01b03808916918a8216918c16907f434422e55cc9ab3bcca23cbf515724bbad83af8dd645832a1abd3db5e641dea59060600160405180910390a498975050505050505050565b6001600160a01b038088166000908152601e602090815260408083208a8516845282528083209389168352929052908120600381015482918291614afb576040516307e332c560e31b815260040160405180910390fd5b60008080614b53614dbc614dd1614f30868f8f8e604051602001614b38949392919093845260208401929092526040830152606082015260800190565b60408051601f1981840301815291905288939291908e614f61565b9150915080806020019051810190614b6b9190615a30565b809c50819d508295505050508b6001600160a01b03168d6001600160a01b03168f6001600160a01b03167f9de822a9c144d03cad4a18bc322e9a3d91ffa99463d22e5c25da2a41d4c354d58587604051614bcf929190918252602082015260400190565b60405180910390a450909c989b5096995096975050505050505050565b6000818311614bfc576000610eea565b610eea828461594f565b6000614c1282856158eb565b6001614c1e84876158eb565b614c28919061594f565b614c3284866158d4565b614c3c87896158d4565b614c4691906158eb565b614c5091906158eb565b610faf91906158fe565b6001600160a01b0382166000908152600e6020526040902054614c7e9082906158eb565b6001600160a01b0383166000818152600e6020526040908190209290925590517f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc2906117729084815260200190565b606082614ce257614cdd8261501b565b611b8b565b8151158015614cf957506001600160a01b0384163b155b15614d2257604051639996b31560e01b81526001600160a01b0385166004820152602401610316565b5080611b8b565b612710826003015410614d4f576040516303a8c56b60e61b815260040160405180910390fd5b80614d6d57604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d899084906158eb565b90915550506003820154600003614d9e578082555b6001826003016000828254614db391906158eb565b90915550505050565b6000908152601d602052604090206002015490565b6000828152601d60205260408120600181015460609190426001600160401b039091161115614e1457505060408051602081019091526000815260019150614f29565b60008060008087806020019051810190614e2e9190615a5e565b93509350935093506000808287600301541490508015614e8b5786548490614e579087906158d4565b614e6191906158fe565b9150614e6d828661594f565b8754909550614e7c908561594f565b9350614e8882876158eb565b95505b865460018801546040805185815260208101939093526001600160401b039091169082015281151560608201528b907fbe7f1ad13b07d1f0e9574e97c844204d5433e4ab98133a1f0ce257764a6abeb79060800160405180910390a26040805160208101889052908101869052606081018590526080810184905260a001604051602081830303815290604052995060008a98509850505050505050505b9250929050565b6000908152601d6020526040812081815560018101805467ffffffffffffffff191690556002810182905560030155565b600060608760030154831115614f8a57604051634a411b9d60e11b815260040160405180910390fd5b60008315614f985783614f9e565b88600301545b89549094505b8015801590614fb35750600085115b1561500c57600080614fc983898c63ffffffff16565b915091508115614fda57505061500c565b965086614fe88c8c8b615044565b925086614ff481615a94565b9750508380615002906159fb565b9450505050614fa4565b50989397509295505050505050565b80511561502b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008084600301541161506a5760405163ddaf8f2160e01b815260040160405180910390fd5b600061507d85600001548563ffffffff16565b905061509085600001548463ffffffff16565b60018560030160008282546150a5919061594f565b909155505080855560038501546000036150c157600060018601555b5050915492915050565b6001600160a01b038116811461120757600080fd5b803563ffffffff811681146150f457600080fd5b919050565b80356001600160401b03811681146150f457600080fd5b600080600080600060a0868803121561512857600080fd5b8535615133816150cb565b94506020860135615143816150cb565b935060408601359250615158606087016150e0565b9150615166608087016150f9565b90509295509295909350565b6000806040838503121561518557600080fd5b8235615190816150cb565b946020939093013593505050565b600080604083850312156151b157600080fd5b82356151bc816150cb565b915060208301356151cc816150cb565b809150509250929050565b600080600080608085870312156151ed57600080fd5b84356151f8816150cb565b93506020850135615208816150cb565b925060408501359150606085013561521f816150cb565b939692955090935050565b60008060006060848603121561523f57600080fd5b833561524a816150cb565b9250602084013561525a816150cb565b929592945050506040919091013590565b60006020828403121561527d57600080fd5b610eea826150f9565b60006101208201905082518252602083015160208301526040830151604083015263ffffffff60608401511660608301526001600160401b03608084015116608083015260a08301516152e460a08401826001600160401b03169052565b5060c08301516152fc60c084018263ffffffff169052565b5060e083015161531760e08401826001600160401b03169052565b5061010092830151919092015290565b60006020828403121561533957600080fd5b5035919050565b60006020828403121561535257600080fd5b8135611b8b816150cb565b8035600381106150f457600080fd5b6000806000806080858703121561538257600080fd5b843561538d816150cb565b9350602085013561539d816150cb565b92506153ab6040860161535d565b9396929550929360600135925050565b801515811461120757600080fd5b600080604083850312156153dc57600080fd5b82356153e7816150cb565b915060208301356151cc816153bb565b6000806000806080858703121561540d57600080fd5b8435615418816150cb565b93506020850135615428816150cb565b93969395505050506040820135916060013590565b60008060006060848603121561545257600080fd5b833561545d816150cb565b9250602084013561546d816150cb565b915061547b6040850161535d565b90509250925092565b60008060006060848603121561549957600080fd5b83356154a4816150cb565b925060208401356154b4816150cb565b915060408401356154c4816150cb565b809150509250925092565b600080600080608085870312156154e557600080fd5b84356154f0816150cb565b93506020850135615500816150cb565b925061550e604086016150e0565b915061551c606086016150f9565b905092959194509250565b60008060006060848603121561553c57600080fd5b8335615547816150cb565b92506020840135615557816150cb565b915061547b604085016150e0565b60008060006040848603121561557a57600080fd5b8335615585816150cb565b925060208401356001600160401b038111156155a057600080fd5b8401601f810186136155b157600080fd5b80356001600160401b038111156155c757600080fd5b8660208284010111156155d957600080fd5b939660209190910195509293505050565b600080602083850312156155fd57600080fd5b82356001600160401b0381111561561357600080fd5b8301601f8101851361562457600080fd5b80356001600160401b0381111561563a57600080fd5b8560208260051b840101111561564f57600080fd5b6020919091019590945092505050565b60005b8381101561567a578181015183820152602001615662565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156156f757603f19878603018452815180518087526156d481602089016020850161565f565b601f01601f191695909501602090810195509384019391909101906001016156ab565b50929695505050505050565b60008060006060848603121561571857600080fd5b8335615723816150cb565b92506020840135615733816150cb565b915060408401356154c4816153bb565b6000806000806080858703121561575957600080fd5b8435615764816150cb565b93506020850135615774816150cb565b925060408501356153ab816150cb565b6000806000806080858703121561579a57600080fd5b84356157a5816150cb565b93506020850135925060408501359150606085013561521f816150cb565b60008060008060008060c087890312156157dc57600080fd5b86356157e7816150cb565b955060208701356157f7816150cb565b94506040870135615807816150cb565b93506060870135615817816150cb565b9598949750929560808101359460a0909101359350915050565b60006020828403121561584357600080fd5b8151611b8b816153bb565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561588357600080fd5b8151611b8b816150cb565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610eed57610eed6158be565b80820180821115610eed57610eed6158be565b60008261591b57634e487b7160e01b600052601260045260246000fd5b500490565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b81810381811115610eed57610eed6158be565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126159a557600080fd5b8301803591506001600160401b038211156159bf57600080fd5b602001915036819003821315614f2957600080fd5b8284823760008382016000815283516159f181836020880161565f565b0195945050505050565b600060018201615a0d57615a0d6158be565b5060010190565b60008251615a2681846020870161565f565b9190910192915050565b600080600060608486031215615a4557600080fd5b5050815160208301516040909301519094929350919050565b60008060008060808587031215615a7457600080fd5b505082516020840151604085015160609095015191969095509092509050565b600081615aa357615aa36158be565b50600019019056fea2646970667358221220a984158462a19071d33f0c9b0b8967a96b4b64feb78c617c0635061568508fff64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStakingExtension#ExponentialRebates.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStakingExtension#ExponentialRebates.json deleted file mode 100644 index fc0c0c29f..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStakingExtension#ExponentialRebates.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ExponentialRebates", - "sourceName": "contracts/staking/libraries/ExponentialRebates.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "fees", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "stake", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "alphaNumerator", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "alphaDenominator", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "lambdaNumerator", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "lambdaDenominator", - "type": "uint32" - } - ], - "name": "exponentialRebates", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "bytecode": "0x610c2d610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806349484d811461003a575b600080fd5b61004d610048366004610a66565b61005f565b60405190815260200160405180910390f35b6000806100728660030b8660030b61011c565b9050806000036100855787915050610112565b87600003610097576000915050610112565b60006100a98560030b8560030b61011c565b905060006100b8828a8c61013c565b9050600f6100c582610153565b13156100d657899350505050610112565b60006100ff6001607f1b6100fa866100f56100f087610ae2565b610169565b610882565b61089d565b905061010b818c6108d4565b9450505050505b9695505050505050565b600061013561012f846001607f1b610920565b83610988565b9392505050565b600061014b61012f8585610920565b949350505050565b60006101636001607f1b83610b14565b92915050565b60006101796101ff607c1b610ae2565b82121561018857506000919050565b8160000361019b57506001607f1b919050565b60008213156101c55760405162461bcd60e51b81526004016101bc90610b42565b60405180910390fd5b6000806101d66001607c1b85610b69565b91508190506001607f1b6101ea8280610b7d565b6101f49190610b14565b9050610208816710e1b3be415a0000610b7d565b6102129084610bad565b92506001607f1b6102238383610b7d565b61022d9190610b14565b9050610241816705a0913f6b1e0000610b7d565b61024b9084610bad565b92506001607f1b61025c8383610b7d565b6102669190610b14565b905061027a81670168244fdac78000610b7d565b6102849084610bad565b92506001607f1b6102958383610b7d565b61029f9190610b14565b90506102b281664807432bc18000610b7d565b6102bc9084610bad565b92506001607f1b6102cd8383610b7d565b6102d79190610b14565b90506102ea81660c0135dca04000610b7d565b6102f49084610bad565b92506001607f1b6103058383610b7d565b61030f9190610b14565b9050610322816601b707b1cdc000610b7d565b61032c9084610bad565b92506001607f1b61033d8383610b7d565b6103479190610b14565b9050610359816536e0f639b800610b7d565b6103639084610bad565b92506001607f1b6103748383610b7d565b61037e9190610b14565b905061039081650618fee9f800610b7d565b61039a9084610bad565b92506001607f1b6103ab8383610b7d565b6103b59190610b14565b90506103c681649c197dcc00610b7d565b6103d09084610bad565b92506001607f1b6103e18383610b7d565b6103eb9190610b14565b90506103fc81640e30dce400610b7d565b6104069084610bad565b92506001607f1b6104178383610b7d565b6104219190610b14565b90506104328164012ebd1300610b7d565b61043c9084610bad565b92506001607f1b61044d8383610b7d565b6104579190610b14565b9050610467816317499f00610b7d565b6104719084610bad565b92506001607f1b6104828383610b7d565b61048c9190610b14565b905061049c816301a9d480610b7d565b6104a69084610bad565b92506001607f1b6104b78383610b7d565b6104c19190610b14565b90506104d081621c6380610b7d565b6104da9084610bad565b92506001607f1b6104eb8383610b7d565b6104f59190610b14565b9050610504816201c638610b7d565b61050e9084610bad565b92506001607f1b61051f8383610b7d565b6105299190610b14565b905061053781611ab8610b7d565b6105419084610bad565b92506001607f1b6105528383610b7d565b61055c9190610b14565b905061056a8161017c610b7d565b6105749084610bad565b92506001607f1b6105858383610b7d565b61058f9190610b14565b905061059c816014610b7d565b6105a69084610bad565b92506001607f1b6105b78383610b7d565b6105c19190610b14565b90506105ce816001610b7d565b6105d89084610bad565b92506001607f1b826105f26721c3677c82b4000086610b14565b6105fc9190610bad565b6106069190610bad565b925061061184610ae2565b9350600160841b841615610657577243cbaf42a000812488fc5c220ad7b97bf6e99e61064a6cf1aaddd7742e56d32fb9f9974485610b7d565b6106549190610b14565b92505b600160831b84161561069c577105d27a9f51c31b7c2f8038212a057477999161068f6e0afe10820813d65dfe6a33c07f738f85610b7d565b6106999190610b14565b92505b600160821b8416156106e157701b4c902e273a58678d6d3bfdb93db96d026106d46f02582ab704279e8efd15e0265855c47a85610b7d565b6106de9190610b14565b92505b600160811b841615610726577003b1cc971a9bb5b9867477440d6d1577506107196f1152aaa3bf81cb9fdb76eae12d02957185610b7d565b6107239190610b14565b92505b600160801b84161561076b5770015bf0a8b1457695355fb8ac404e7a79e361075e6f2f16ac6c59de6f8d5d6f63c1482a7c8685610b7d565b6107689190610b14565b92505b6001607f1b8416156107af576fd3094c70f034de4b96ff7d5b6f99fcd86107a26f4da2cbf1be5827f9eb3ad1aa9866ebb385610b7d565b6107ac9190610b14565b92505b6001607e1b8416156107f3576fa45af1e1f40c333b3de1db4dd55f29a76107e66f63afbe7ab2082ba1a0ae5e4eb1b479dc85610b7d565b6107f09190610b14565b92505b6001607d1b841615610837576f910b022db7ae67ce76b441c27035c6a161082a6f70f5a893b608861e1f58934f97aea57d85610b7d565b6108349190610b14565b92505b6001607c1b84161561087b576f88415abbe9a76bead8d00cf112e4d4a861086e6f783eafef1c0a8f3978c7f81824d62ebf85610b7d565b6108789190610b14565b92505b5050919050565b60006001607f1b6108938484610920565b6101359190610b14565b6000600160ff1b82036108c25760405162461bcd60e51b81526004016101bc90610b42565b610135836108cf84610ae2565b6109f2565b6000808212156108f65760405162461bcd60e51b81526004016101bc90610b42565b60006109028484610920565b905060008113610916576000915050610163565b607f1c9392505050565b600082158061092d575081155b1561093a57506000610163565b508181028183828161094e5761094e610afe565b0514158061096b57508282828161096757610967610afe565b0514155b156101635760405162461bcd60e51b81526004016101bc90610bd5565b6000816000036109aa5760405162461bcd60e51b81526004016101bc90610bd5565b600160ff1b831480156109be575081600019145b156109db5760405162461bcd60e51b81526004016101bc90610bd5565b8183816109ea576109ea610afe565b059392505050565b818101600083128015610a055750600082125b8015610a1057508281135b8061096b5750600083138015610a265750600082135b801561096b5750828112156101635760405162461bcd60e51b81526004016101bc90610bd5565b803563ffffffff81168114610a6157600080fd5b919050565b60008060008060008060c08789031215610a7f57600080fd5b8635955060208701359450610a9660408801610a4d565b9350610aa460608801610a4d565b9250610ab260808801610a4d565b9150610ac060a08801610a4d565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610af757610af7610acc565b5060000390565b634e487b7160e01b600052601260045260246000fd5b600082610b2357610b23610afe565b600160ff1b821460001984141615610b3d57610b3d610acc565b500590565b6020808252600d908201526c6f75742d6f662d626f756e647360981b604082015260600190565b600082610b7857610b78610afe565b500790565b80820260008212600160ff1b84141615610b9957610b99610acc565b818105831482151761016357610163610acc565b8082018281126000831280158216821582161715610bcd57610bcd610acc565b505092915050565b6020808252600890820152676f766572666c6f7760c01b60408201526060019056fea26469706673582212201cac81319f1bc19d15bc3a02519b03e3559a9cf147525a96caa8cb800f74da2864736f6c634300081b0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806349484d811461003a575b600080fd5b61004d610048366004610a66565b61005f565b60405190815260200160405180910390f35b6000806100728660030b8660030b61011c565b9050806000036100855787915050610112565b87600003610097576000915050610112565b60006100a98560030b8560030b61011c565b905060006100b8828a8c61013c565b9050600f6100c582610153565b13156100d657899350505050610112565b60006100ff6001607f1b6100fa866100f56100f087610ae2565b610169565b610882565b61089d565b905061010b818c6108d4565b9450505050505b9695505050505050565b600061013561012f846001607f1b610920565b83610988565b9392505050565b600061014b61012f8585610920565b949350505050565b60006101636001607f1b83610b14565b92915050565b60006101796101ff607c1b610ae2565b82121561018857506000919050565b8160000361019b57506001607f1b919050565b60008213156101c55760405162461bcd60e51b81526004016101bc90610b42565b60405180910390fd5b6000806101d66001607c1b85610b69565b91508190506001607f1b6101ea8280610b7d565b6101f49190610b14565b9050610208816710e1b3be415a0000610b7d565b6102129084610bad565b92506001607f1b6102238383610b7d565b61022d9190610b14565b9050610241816705a0913f6b1e0000610b7d565b61024b9084610bad565b92506001607f1b61025c8383610b7d565b6102669190610b14565b905061027a81670168244fdac78000610b7d565b6102849084610bad565b92506001607f1b6102958383610b7d565b61029f9190610b14565b90506102b281664807432bc18000610b7d565b6102bc9084610bad565b92506001607f1b6102cd8383610b7d565b6102d79190610b14565b90506102ea81660c0135dca04000610b7d565b6102f49084610bad565b92506001607f1b6103058383610b7d565b61030f9190610b14565b9050610322816601b707b1cdc000610b7d565b61032c9084610bad565b92506001607f1b61033d8383610b7d565b6103479190610b14565b9050610359816536e0f639b800610b7d565b6103639084610bad565b92506001607f1b6103748383610b7d565b61037e9190610b14565b905061039081650618fee9f800610b7d565b61039a9084610bad565b92506001607f1b6103ab8383610b7d565b6103b59190610b14565b90506103c681649c197dcc00610b7d565b6103d09084610bad565b92506001607f1b6103e18383610b7d565b6103eb9190610b14565b90506103fc81640e30dce400610b7d565b6104069084610bad565b92506001607f1b6104178383610b7d565b6104219190610b14565b90506104328164012ebd1300610b7d565b61043c9084610bad565b92506001607f1b61044d8383610b7d565b6104579190610b14565b9050610467816317499f00610b7d565b6104719084610bad565b92506001607f1b6104828383610b7d565b61048c9190610b14565b905061049c816301a9d480610b7d565b6104a69084610bad565b92506001607f1b6104b78383610b7d565b6104c19190610b14565b90506104d081621c6380610b7d565b6104da9084610bad565b92506001607f1b6104eb8383610b7d565b6104f59190610b14565b9050610504816201c638610b7d565b61050e9084610bad565b92506001607f1b61051f8383610b7d565b6105299190610b14565b905061053781611ab8610b7d565b6105419084610bad565b92506001607f1b6105528383610b7d565b61055c9190610b14565b905061056a8161017c610b7d565b6105749084610bad565b92506001607f1b6105858383610b7d565b61058f9190610b14565b905061059c816014610b7d565b6105a69084610bad565b92506001607f1b6105b78383610b7d565b6105c19190610b14565b90506105ce816001610b7d565b6105d89084610bad565b92506001607f1b826105f26721c3677c82b4000086610b14565b6105fc9190610bad565b6106069190610bad565b925061061184610ae2565b9350600160841b841615610657577243cbaf42a000812488fc5c220ad7b97bf6e99e61064a6cf1aaddd7742e56d32fb9f9974485610b7d565b6106549190610b14565b92505b600160831b84161561069c577105d27a9f51c31b7c2f8038212a057477999161068f6e0afe10820813d65dfe6a33c07f738f85610b7d565b6106999190610b14565b92505b600160821b8416156106e157701b4c902e273a58678d6d3bfdb93db96d026106d46f02582ab704279e8efd15e0265855c47a85610b7d565b6106de9190610b14565b92505b600160811b841615610726577003b1cc971a9bb5b9867477440d6d1577506107196f1152aaa3bf81cb9fdb76eae12d02957185610b7d565b6107239190610b14565b92505b600160801b84161561076b5770015bf0a8b1457695355fb8ac404e7a79e361075e6f2f16ac6c59de6f8d5d6f63c1482a7c8685610b7d565b6107689190610b14565b92505b6001607f1b8416156107af576fd3094c70f034de4b96ff7d5b6f99fcd86107a26f4da2cbf1be5827f9eb3ad1aa9866ebb385610b7d565b6107ac9190610b14565b92505b6001607e1b8416156107f3576fa45af1e1f40c333b3de1db4dd55f29a76107e66f63afbe7ab2082ba1a0ae5e4eb1b479dc85610b7d565b6107f09190610b14565b92505b6001607d1b841615610837576f910b022db7ae67ce76b441c27035c6a161082a6f70f5a893b608861e1f58934f97aea57d85610b7d565b6108349190610b14565b92505b6001607c1b84161561087b576f88415abbe9a76bead8d00cf112e4d4a861086e6f783eafef1c0a8f3978c7f81824d62ebf85610b7d565b6108789190610b14565b92505b5050919050565b60006001607f1b6108938484610920565b6101359190610b14565b6000600160ff1b82036108c25760405162461bcd60e51b81526004016101bc90610b42565b610135836108cf84610ae2565b6109f2565b6000808212156108f65760405162461bcd60e51b81526004016101bc90610b42565b60006109028484610920565b905060008113610916576000915050610163565b607f1c9392505050565b600082158061092d575081155b1561093a57506000610163565b508181028183828161094e5761094e610afe565b0514158061096b57508282828161096757610967610afe565b0514155b156101635760405162461bcd60e51b81526004016101bc90610bd5565b6000816000036109aa5760405162461bcd60e51b81526004016101bc90610bd5565b600160ff1b831480156109be575081600019145b156109db5760405162461bcd60e51b81526004016101bc90610bd5565b8183816109ea576109ea610afe565b059392505050565b818101600083128015610a055750600082125b8015610a1057508281135b8061096b5750600083138015610a265750600082135b801561096b5750828112156101635760405162461bcd60e51b81526004016101bc90610bd5565b803563ffffffff81168114610a6157600080fd5b919050565b60008060008060008060c08789031215610a7f57600080fd5b8635955060208701359450610a9660408801610a4d565b9350610aa460608801610a4d565b9250610ab260808801610a4d565b9150610ac060a08801610a4d565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610af757610af7610acc565b5060000390565b634e487b7160e01b600052601260045260246000fd5b600082610b2357610b23610afe565b600160ff1b821460001984141615610b3d57610b3d610acc565b500590565b6020808252600d908201526c6f75742d6f662d626f756e647360981b604082015260600190565b600082610b7857610b78610afe565b500790565b80820260008212600160ff1b84141615610b9957610b99610acc565b818105831482151761016357610163610acc565b8082018281126000831280158216821582161715610bcd57610bcd610acc565b505092915050565b6020808252600890820152676f766572666c6f7760c01b60408201526060019056fea26469706673582212201cac81319f1bc19d15bc3a02519b03e3559a9cf147525a96caa8cb800f74da2864736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStakingExtension#HorizonStakingExtension.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStakingExtension#HorizonStakingExtension.json deleted file mode 100644 index d773a8b94..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/HorizonStakingExtension#HorizonStakingExtension.json +++ /dev/null @@ -1,1173 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "HorizonStakingExtension", - "sourceName": "contracts/staking/HorizonStakingExtension.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "controller", - "type": "address" - }, - { - "internalType": "address", - "name": "subgraphDataServiceAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "ManagedIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "ManagedOnlyController", - "type": "error" - }, - { - "inputs": [], - "name": "ManagedOnlyGovernor", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "PPMMathInvalidPPM", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "epoch", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationID", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isPublic", - "type": "bool" - } - ], - "name": "AllocationClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "assetHolder", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationID", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "epoch", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "protocolTax", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "curationFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "queryFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "queryRebates", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "delegationRewards", - "type": "uint256" - } - ], - "name": "RebateCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeDeposited", - "type": "event" - }, - { - "inputs": [], - "name": "__DEPRECATED_getThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - } - ], - "name": "closeAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "getAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAtEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAtEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "collectedFees", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "__DEPRECATED_effectiveAllocation", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "distributedRebates", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingExtension.Allocation", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "getAllocationData", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "getAllocationState", - "outputs": [ - { - "internalType": "enum IHorizonStakingExtension.AllocationState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getDelegatedTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "delegator", - "type": "address" - } - ], - "name": "getDelegation", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.Delegation", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - } - ], - "name": "getDelegationFeeCut", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getDelegationPool", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sharesThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.DelegationPool", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getIdleStake", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "getIndexerStakedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaxThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getProviderTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getProvision", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sharesThawing", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "createdAt", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "maxVerifierCutPending", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriodPending", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.Provision", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getServiceProvider", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokensStaked", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensProvisioned", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.ServiceProvider", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getSubgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - } - ], - "name": "getThawRequest", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "internalType": "bytes32", - "name": "next", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.ThawRequest", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getThawRequestList", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "head", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "tail", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "internalType": "struct LinkedList.List", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getThawedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint32", - "name": "delegationRatio", - "type": "uint32" - } - ], - "name": "getTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "hasStake", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "isActiveAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "isAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "isAllowedLockedVerifier", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isDelegationSlashingEnabled", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "isOperator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x6101e060405234801561001157600080fd5b5060405161311a38038061311a83398101604081905261003091610411565b818181806001600160a01b03811661007d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b590610347565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e890610347565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261012190610347565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015b90610347565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019390610347565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101ce90610347565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020c90610347565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024890610347565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027d90610347565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103279790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b03166101c052506104b4915050565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161038291815260200190565b602060405180830381865afa15801561039f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c39190610444565b9050826001600160a01b0382166103ee5760405163218f5add60e11b81526004016100749190610466565b5092915050565b80516001600160a01b038116811461040c57600080fd5b919050565b6000806040838503121561042457600080fd5b61042d836103f5565b915061043b602084016103f5565b90509250929050565b60006020828403121561045657600080fd5b61045f826103f5565b9392505050565b602081526000825180602084015260005b818110156104945760208186018101516040868401015201610477565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051612bb061056a6000396000818161196c0152611b6c01526000611d910152600050506000505060008181611e73015281816121bf01526122c901526000818161120a01526118a5015260008181610be70152610e19015260005050600050506000505060008181610f870152818161113d01528181611d5901528181611ee801526120d00152612bb06000f3fe6080604052600436106101dc5760003560e01c806398c657dc11610102578063b7ca724111610095578063e73e14bf11610064578063e73e14bf14610a60578063f1d60d6614610a98578063fb744cc014610ab8578063fc54fb2714610ad857600080fd5b8063b7ca724114610926578063c0641994146109e9578063ccebcabb14610a04578063e2e1e8e914610a3357600080fd5b8063a784d498116100d1578063a784d49814610856578063ac9650d814610876578063ae4fe67a146108a3578063b6363cf2146108dc57600080fd5b806398c657dc146107195780639ce7abe514610746578063a212daf814610766578063a2594d821461083657600080fd5b8063561285e41161017a578063872d048911610149578063872d0489146106385780638cc01c86146106585780638d3c100a146106d95780639054e343146106f957600080fd5b8063561285e4146105865780636a3ca383146105e85780637573ef4f146106185780637a766460146102fb57600080fd5b806325d9897e116101b657806325d9897e1461033157806339514ad21461045457806344c32a611461048657806355c85269146104a857600080fd5b806308ce5f68146102335780630e022923146102665780631787e69f146102fb57600080fd5b3661022e5760405162461bcd60e51b815260206004820152601760248201527f524543454956455f4554485f4e4f545f414c4c4f57454400000000000000000060448201526064015b60405180910390fd5b600080fd5b34801561023f57600080fd5b5061025361024e3660046125ad565b610af0565b6040519081526020015b60405180910390f35b34801561027257600080fd5b506102866102813660046125e6565b610b05565b60405161025d919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b34801561030757600080fd5b506102536103163660046125e6565b6001600160a01b03166000908152600e602052604090205490565b34801561033d57600080fd5b5061044761034c3660046125ad565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff808216606084015264010000000082046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e082015260049091015461010082015290565b60405161025d9190612603565b34801561046057600080fd5b50601a546001600160401b03165b6040516001600160401b03909116815260200161025d565b34801561049257600080fd5b506104a66104a13660046126a4565b610be5565b005b3480156104b457600080fd5b506105546104c33660046125e6565b6001600160a01b039081166000908152600f602090815260408083208151610120810183528154909516808652600182015493860184905260028201549286018390526003820154606087015260048201546080870152600582015460a0870152600682015460c0870152600782015460e08701819052600890920154610100909601959095529394919390929091565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a00161025d565b34801561059257600080fd5b506105a66105a13660046125ad565b610c93565b60405161025d9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b3480156105f457600080fd5b506106086106033660046125e6565b610d39565b604051901515815260200161025d565b34801561062457600080fd5b506102536106333660046126d0565b610d5e565b34801561064457600080fd5b5061025361065336600461271f565b610dc2565b34801561066457600080fd5b506106be6106733660046125e6565b60408051808201825260008082526020918201819052825180840184528181528083018281526001600160a01b03959095168252600e90925291909120805482526004015490915290565b6040805182518152602092830151928101929092520161025d565b3480156106e557600080fd5b506104a66106f4366004612768565b610e17565b34801561070557600080fd5b5061025361071436600461278d565b6112e3565b34801561072557600080fd5b506107396107343660046125e6565b6113cb565b60405161025d91906127e3565b34801561075257600080fd5b506104a661076136600461280b565b6113d6565b34801561077257600080fd5b5061080361078136600461278d565b60408051608080820183526000808352602080840182905283850182905260609384018290526001600160a01b039788168252601e815284822096881682529586528381209490961686529284529381902081519283018252805483526001810154938301939093526002830154908201526003909101549181019190915290565b60405161025d91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b34801561084257600080fd5b506104a66108513660046125e6565b611501565b34801561086257600080fd5b506102536108713660046125e6565b61161d565b34801561088257600080fd5b50610896610891366004612890565b611628565b60405161025d9190612929565b3480156108af57600080fd5b506106086108be3660046125e6565b6001600160a01b031660009081526022602052604090205460ff1690565b3480156108e857600080fd5b506106086108f73660046125ad565b6001600160a01b0380821660009081526015602090815260408083209386168352929052205460ff1692915050565b34801561093257600080fd5b506109ad6109413660046129a9565b6040805160808082018352600080835260208084018290528385018290526060938401829052948152601d8552839020835191820184528054825260018101546001600160401b0316948201949094526002840154928101929092526003909201549181019190915290565b60405161025d9190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b3480156109f557600080fd5b50600d5463ffffffff1661046e565b348015610a1057600080fd5b50610a24610a1f36600461278d565b61170f565b6040519051815260200161025d565b348015610a3f57600080fd5b50610253610a4e3660046129a9565b60009081526010602052604090205490565b348015610a6c57600080fd5b50610608610a7b3660046125e6565b6001600160a01b03166000908152600e6020526040902054151590565b348015610aa457600080fd5b50610608610ab33660046125e6565b611761565b348015610ac457600080fd5b50610253610ad33660046125ad565b611786565b348015610ae457600080fd5b5060205460ff16610608565b6000610afc8383611792565b90505b92915050565b610b6060405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b039081166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6791906129c2565b15610c8557604051632b37d9d160e21b815260040160405180910390fd5b610c8f82826117ca565b5050565b610cc56040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b610cf76040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000610d038585611b68565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b60006001610d4683611bec565b6002811115610d5757610d576127cd565b1492915050565b6001600160a01b038084166000908152601c60209081526040808320938616835292905290812081836002811115610d9857610d986127cd565b6002811115610da957610da96127cd565b81526020019081526020016000205490505b9392505050565b600080610dcf8585611792565b90506000610ddd8686611c45565b90506000610df163ffffffff8616846129fa565b90506000610dff8383611c70565b9050610e0b8185612a11565b98975050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9991906129c2565b15610eb757604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038116610ef65760405162461bcd60e51b815260206004820152600660248201526521616c6c6f6360d01b6044820152606401610225565b6000610f0182611bec565b90506000816002811115610f1757610f176127cd565b03610f4f5760405162461bcd60e51b81526020600482015260086024820152670858dbdb1b1958dd60c21b6044820152606401610225565b82600003610f5c57505050565b6001600160a01b0382166000908152600f60205260408120600181015490918590808080610fb633867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190611c87565b600d54610fd1908690600160401b900463ffffffff16611d44565b9350610fdd8486612a24565b600d54909550610ffe9087908790640100000000900463ffffffff16611d7d565b925061100a8386612a24565b945084876005015461101c9190612a11565b6005880155600287015460009015806110425750601954600160a01b900463ffffffff16155b61110d5760058801546002890154600d546019546040516349484d8160e01b81526004810194909452602484019290925263ffffffff600160a01b80830482166044860152600160c01b928390048216606486015283048116608485015291041660a482015273__$8eb3cac1482a31d7a7f2cbe7dc8bdcd821$__906349484d819060c401602060405180830381865af41580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190612a37565b611110565b60005b9050611120818960080154611f90565b925061112c8387611c70565b925061116c61113b8488612a24565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031690611faa565b82156111d4578288600801546111829190612a11565b6008890155875461119c906001600160a01b031684611ff2565b91506111a88284612a24565b88546001600160a01b039081166000818152601760205260409020549295506111d49286921615612084565b5086546001600160a01b038a8116918891167ff5ded07502b6feba4c13b19a0c6646efd4b4119f439bcbd49076e4f0ed1eec4b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128a9190612a37565b604080516001600160a01b039093168352602083019190915281018f9052606081018990526080810188905260a081018a905260c0810187905260e081018690526101000160405180910390a450505050505050505050565b6001600160a01b038084166000908152601e6020908152604080832086851684528252808320938516835292905290812060038101548203611329576000915050610dbb565b6001600160a01b038086166000908152601b60209081526040808320938816835292905290812082545b80156113bf576000818152601d602052604090206001810154426001600160401b03909116116113ae5760028301546001840154825461139391906129fa565b61139d9190612a50565b6113a79085612a11565b93506113b4565b506113bf565b600201549050611353565b50909695505050505050565b6000610aff82611bec565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611417573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143b9190612a72565b6001600160a01b0316336001600160a01b03161461149b5760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610225565b60405163623faf6160e01b81526001600160a01b0385169063623faf61906114c99086908690600401612a8f565b600060405180830381600087803b1580156114e357600080fd5b505af11580156114f7573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115669190612a72565b6001600160a01b0316336001600160a01b0316146115c65760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610225565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561160157600080fd5b505af1158015611615573d6000803e3d6000fd5b505050505050565b6000610aff826120fa565b604080516000815260208101909152606090826001600160401b0381111561165257611652612abe565b60405190808252806020026020018201604052801561168557816020015b60608152602001906001900390816116705790505b50915060005b83811015611707576116e2308686848181106116a9576116a9612ad4565b90506020028101906116bb9190612aea565b856040516020016116ce93929190612b37565b604051602081830303815290604052612145565b8382815181106116f4576116f4612ad4565b602090810291909101015260010161168b565b505092915050565b60408051602081019091526000815260408051602081019091526000815260006117398686611b68565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b60008061176d83611bec565b600281111561177e5761177e6127cd565b141592915050565b6000610afc8383611c45565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610afc9190612a24565b60006117d583611bec565b905060018160028111156117eb576117eb6127cd565b146118225760405162461bcd60e51b81526020600482015260076024820152662161637469766560c81b6044820152606401610225565b6001600160a01b038381166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611901573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119259190612a37565b60808201819052606082015160009161193d91611f90565b9050600082600001516001600160a01b0316336001600160a01b031614806119ae575082516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600090815260156020908152604080832093909416825291909152205460ff165b600d54909150600160801b900463ffffffff16821115806119d157506040830151155b15611a0b5780611a0b5760405162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b6044820152606401610225565b60808301516001600160a01b0387166000908152600f6020526040908190206004019190915583015115611aef57808015611a4557508415155b15611a5d57611a588684600001516121bb565b611a6c565b611a6a83602001516122a8565b505b60408084015184516001600160a01b03166000908152600e6020529190912060010154611a999190612a24565b83516001600160a01b03166000908152600e602090815260408083206001019390935582860151818701518352601090915291902054611ad99190612a24565b6020808501516000908152601090915260409020555b60208084015184516080808701516040808901518151928352958201959095523394810194909452606084018990528415908401526001600160a01b03808a16939116907ff6725dd105a6fc88bb79a6e4627f128577186c567a17c94818d201c2a4ce14039060a00160405180910390a4505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611bc157506001600160a01b0382166000908152601460205260409020610aff565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610aff565b6001600160a01b038082166000908152600f6020526040812080549192909116611c195750600092915050565b600381015415801590611c2e57506004810154155b15611c3c5750600192915050565b50600292915050565b600080611c528484611b68565b905080600501548160020154611c689190612a24565b949350505050565b600081831115611c805781610afc565b5090919050565b8015611d3f576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0791906129c2565b611d3f5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610225565b505050565b600080611d518484612336565b9050610afc817f000000000000000000000000000000000000000000000000000000000000000061115d565b600082600003611d8f57506000610dbb565b7f000000000000000000000000000000000000000000000000000000000000000060008315801590611dc957506001600160a01b03821615155b9050808015611e3c5750604051634c4ea0ed60e01b8152600481018790526001600160a01b03831690634c4ea0ed90602401602060405180830381865afa158015611e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3c91906129c2565b15611f84576000611e4d8686612336565b90508015611f7a576040516307470bfb60e21b8152600481018890526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631d1c2fec906024016020604051808303816000875af1158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee09190612a37565b50611f1883827f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190612388565b60405163102ae65160e31b815260048101889052602481018290526001600160a01b03841690638157328890604401600060405180830381600087803b158015611f6157600080fd5b505af1158015611f75573d6000803e3d6000fd5b505050505b9250610dbb915050565b50600095945050505050565b6000818311611fa0576000610afc565b610afc8284612a24565b8015610c8f57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561160157600080fd5b6001600160a01b038216600090815260146020526040812060028101548291901580159061203157508054600160401b900463ffffffff16620f424010155b1561207c5780546000906120579063ffffffff600160401b90910481169087906123c316565b90506120638186612a24565b92508282600201546120759190612a11565b6002830155505b509392505050565b8260000361209157505050565b80156120a157611d3f828461242a565b6001600160a01b03808316600090815260176020526040902054166120f481156120cb57816120cd565b835b857f0000000000000000000000000000000000000000000000000000000000000000611f08565b50505050565b6001600160a01b0381166000908152600e602052604081206002810154600182015460048301549254919290916121319190612a24565b61213b9190612a24565b610aff9190612a24565b6060600080846001600160a01b0316846040516121629190612b5e565b600060405180830381855af49150503d806000811461219d576040519150601f19603f3d011682016040523d82523d6000602084013e6121a2565b606091505b50915091506121b28583836124a9565b95945050505050565b60007f0000000000000000000000000000000000000000000000000000000000000000604051636dba849360e11b81526001600160a01b038581166004830152919091169063db750926906024016020604051808303816000875af1158015612228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224c9190612a37565b90508060000361225b57505050565b60006122678383612505565b905060006122758284612a24565b6001600160a01b038086166000908152601760205260409020549192506122a191839187911615612084565b5050505050565b6040516377561f0760e11b8152600481018290526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063eeac3e0e906024016020604051808303816000875af1158015612312573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aff9190612a37565b600061234582620f4240101590565b829061236757604051633dc311df60e01b815260040161022591815260200190565b5061237e8361237984620f4240612a24565b6123c3565b610afc9084612a24565b8015611d3f5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611cc4565b60006123d283620f4240101590565b806123e557506123e582620f4240101590565b8383909161240f5760405163768bf0eb60e11b815260048101929092526024820152604401610225565b50620f4240905061242083856129fa565b610afc9190612a50565b6001600160a01b0382166000908152600e602052604090205461244e908290612a11565b6001600160a01b0383166000818152600e6020526040908190209290925590517f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29061249d9084815260200190565b60405180910390a25050565b6060826124be576124b98261256c565b610dbb565b81511580156124d557506001600160a01b0384163b155b156124fe57604051639996b31560e01b81526001600160a01b0385166004820152602401610225565b5080610dbb565b6001600160a01b038216600090815260146020526040812060028101548291901580159061254557508054640100000000900463ffffffff16620f424010155b1561207c5780546000906120579063ffffffff64010000000090910481169087906123c316565b80511561257c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b038116811461259557600080fd5b600080604083850312156125c057600080fd5b82356125cb81612598565b915060208301356125db81612598565b809150509250929050565b6000602082840312156125f857600080fd5b8135610afc81612598565b60006101208201905082518252602083015160208301526040830151604083015263ffffffff60608401511660608301526001600160401b03608084015116608083015260a083015161266160a08401826001600160401b03169052565b5060c083015161267960c084018263ffffffff169052565b5060e083015161269460e08401826001600160401b03169052565b5061010092830151919092015290565b600080604083850312156126b757600080fd5b82356126c281612598565b946020939093013593505050565b6000806000606084860312156126e557600080fd5b83356126f081612598565b9250602084013561270081612598565b915060408401356003811061271457600080fd5b809150509250925092565b60008060006060848603121561273457600080fd5b833561273f81612598565b9250602084013561274f81612598565b9150604084013563ffffffff8116811461271457600080fd5b6000806040838503121561277b57600080fd5b8235915060208301356125db81612598565b6000806000606084860312156127a257600080fd5b83356127ad81612598565b925060208401356127bd81612598565b9150604084013561271481612598565b634e487b7160e01b600052602160045260246000fd5b602081016003831061280557634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006040848603121561282057600080fd5b833561282b81612598565b925060208401356001600160401b0381111561284657600080fd5b8401601f8101861361285757600080fd5b80356001600160401b0381111561286d57600080fd5b86602082840101111561287f57600080fd5b939660209190910195509293505050565b600080602083850312156128a357600080fd5b82356001600160401b038111156128b957600080fd5b8301601f810185136128ca57600080fd5b80356001600160401b038111156128e057600080fd5b8560208260051b84010111156128f557600080fd5b6020919091019590945092505050565b60005b83811015612920578181015183820152602001612908565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561299d57603f198786030184528151805180875261297a816020890160208501612905565b601f01601f19169590950160209081019550938401939190910190600101612951565b50929695505050505050565b6000602082840312156129bb57600080fd5b5035919050565b6000602082840312156129d457600080fd5b81518015158114610afc57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610aff57610aff6129e4565b80820180821115610aff57610aff6129e4565b81810381811115610aff57610aff6129e4565b600060208284031215612a4957600080fd5b5051919050565b600082612a6d57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612a8457600080fd5b8151610afc81612598565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112612b0157600080fd5b8301803591506001600160401b03821115612b1b57600080fd5b602001915036819003821315612b3057600080fd5b9250929050565b828482376000838201600081528351612b54818360208801612905565b0195945050505050565b60008251612b70818460208701612905565b919091019291505056fea26469706673582212202248057a8bce81db640fbc5d05cef1efff890ddbde3697383b1612b453370f4364736f6c634300081b0033", - "deployedBytecode": "0x6080604052600436106101dc5760003560e01c806398c657dc11610102578063b7ca724111610095578063e73e14bf11610064578063e73e14bf14610a60578063f1d60d6614610a98578063fb744cc014610ab8578063fc54fb2714610ad857600080fd5b8063b7ca724114610926578063c0641994146109e9578063ccebcabb14610a04578063e2e1e8e914610a3357600080fd5b8063a784d498116100d1578063a784d49814610856578063ac9650d814610876578063ae4fe67a146108a3578063b6363cf2146108dc57600080fd5b806398c657dc146107195780639ce7abe514610746578063a212daf814610766578063a2594d821461083657600080fd5b8063561285e41161017a578063872d048911610149578063872d0489146106385780638cc01c86146106585780638d3c100a146106d95780639054e343146106f957600080fd5b8063561285e4146105865780636a3ca383146105e85780637573ef4f146106185780637a766460146102fb57600080fd5b806325d9897e116101b657806325d9897e1461033157806339514ad21461045457806344c32a611461048657806355c85269146104a857600080fd5b806308ce5f68146102335780630e022923146102665780631787e69f146102fb57600080fd5b3661022e5760405162461bcd60e51b815260206004820152601760248201527f524543454956455f4554485f4e4f545f414c4c4f57454400000000000000000060448201526064015b60405180910390fd5b600080fd5b34801561023f57600080fd5b5061025361024e3660046125ad565b610af0565b6040519081526020015b60405180910390f35b34801561027257600080fd5b506102866102813660046125e6565b610b05565b60405161025d919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b34801561030757600080fd5b506102536103163660046125e6565b6001600160a01b03166000908152600e602052604090205490565b34801561033d57600080fd5b5061044761034c3660046125ad565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff808216606084015264010000000082046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e082015260049091015461010082015290565b60405161025d9190612603565b34801561046057600080fd5b50601a546001600160401b03165b6040516001600160401b03909116815260200161025d565b34801561049257600080fd5b506104a66104a13660046126a4565b610be5565b005b3480156104b457600080fd5b506105546104c33660046125e6565b6001600160a01b039081166000908152600f602090815260408083208151610120810183528154909516808652600182015493860184905260028201549286018390526003820154606087015260048201546080870152600582015460a0870152600682015460c0870152600782015460e08701819052600890920154610100909601959095529394919390929091565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a00161025d565b34801561059257600080fd5b506105a66105a13660046125ad565b610c93565b60405161025d9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b3480156105f457600080fd5b506106086106033660046125e6565b610d39565b604051901515815260200161025d565b34801561062457600080fd5b506102536106333660046126d0565b610d5e565b34801561064457600080fd5b5061025361065336600461271f565b610dc2565b34801561066457600080fd5b506106be6106733660046125e6565b60408051808201825260008082526020918201819052825180840184528181528083018281526001600160a01b03959095168252600e90925291909120805482526004015490915290565b6040805182518152602092830151928101929092520161025d565b3480156106e557600080fd5b506104a66106f4366004612768565b610e17565b34801561070557600080fd5b5061025361071436600461278d565b6112e3565b34801561072557600080fd5b506107396107343660046125e6565b6113cb565b60405161025d91906127e3565b34801561075257600080fd5b506104a661076136600461280b565b6113d6565b34801561077257600080fd5b5061080361078136600461278d565b60408051608080820183526000808352602080840182905283850182905260609384018290526001600160a01b039788168252601e815284822096881682529586528381209490961686529284529381902081519283018252805483526001810154938301939093526002830154908201526003909101549181019190915290565b60405161025d91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b34801561084257600080fd5b506104a66108513660046125e6565b611501565b34801561086257600080fd5b506102536108713660046125e6565b61161d565b34801561088257600080fd5b50610896610891366004612890565b611628565b60405161025d9190612929565b3480156108af57600080fd5b506106086108be3660046125e6565b6001600160a01b031660009081526022602052604090205460ff1690565b3480156108e857600080fd5b506106086108f73660046125ad565b6001600160a01b0380821660009081526015602090815260408083209386168352929052205460ff1692915050565b34801561093257600080fd5b506109ad6109413660046129a9565b6040805160808082018352600080835260208084018290528385018290526060938401829052948152601d8552839020835191820184528054825260018101546001600160401b0316948201949094526002840154928101929092526003909201549181019190915290565b60405161025d9190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b3480156109f557600080fd5b50600d5463ffffffff1661046e565b348015610a1057600080fd5b50610a24610a1f36600461278d565b61170f565b6040519051815260200161025d565b348015610a3f57600080fd5b50610253610a4e3660046129a9565b60009081526010602052604090205490565b348015610a6c57600080fd5b50610608610a7b3660046125e6565b6001600160a01b03166000908152600e6020526040902054151590565b348015610aa457600080fd5b50610608610ab33660046125e6565b611761565b348015610ac457600080fd5b50610253610ad33660046125ad565b611786565b348015610ae457600080fd5b5060205460ff16610608565b6000610afc8383611792565b90505b92915050565b610b6060405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b039081166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6791906129c2565b15610c8557604051632b37d9d160e21b815260040160405180910390fd5b610c8f82826117ca565b5050565b610cc56040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b610cf76040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000610d038585611b68565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b60006001610d4683611bec565b6002811115610d5757610d576127cd565b1492915050565b6001600160a01b038084166000908152601c60209081526040808320938616835292905290812081836002811115610d9857610d986127cd565b6002811115610da957610da96127cd565b81526020019081526020016000205490505b9392505050565b600080610dcf8585611792565b90506000610ddd8686611c45565b90506000610df163ffffffff8616846129fa565b90506000610dff8383611c70565b9050610e0b8185612a11565b98975050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9991906129c2565b15610eb757604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038116610ef65760405162461bcd60e51b815260206004820152600660248201526521616c6c6f6360d01b6044820152606401610225565b6000610f0182611bec565b90506000816002811115610f1757610f176127cd565b03610f4f5760405162461bcd60e51b81526020600482015260086024820152670858dbdb1b1958dd60c21b6044820152606401610225565b82600003610f5c57505050565b6001600160a01b0382166000908152600f60205260408120600181015490918590808080610fb633867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190611c87565b600d54610fd1908690600160401b900463ffffffff16611d44565b9350610fdd8486612a24565b600d54909550610ffe9087908790640100000000900463ffffffff16611d7d565b925061100a8386612a24565b945084876005015461101c9190612a11565b6005880155600287015460009015806110425750601954600160a01b900463ffffffff16155b61110d5760058801546002890154600d546019546040516349484d8160e01b81526004810194909452602484019290925263ffffffff600160a01b80830482166044860152600160c01b928390048216606486015283048116608485015291041660a482015273__$8eb3cac1482a31d7a7f2cbe7dc8bdcd821$__906349484d819060c401602060405180830381865af41580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190612a37565b611110565b60005b9050611120818960080154611f90565b925061112c8387611c70565b925061116c61113b8488612a24565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031690611faa565b82156111d4578288600801546111829190612a11565b6008890155875461119c906001600160a01b031684611ff2565b91506111a88284612a24565b88546001600160a01b039081166000818152601760205260409020549295506111d49286921615612084565b5086546001600160a01b038a8116918891167ff5ded07502b6feba4c13b19a0c6646efd4b4119f439bcbd49076e4f0ed1eec4b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128a9190612a37565b604080516001600160a01b039093168352602083019190915281018f9052606081018990526080810188905260a081018a905260c0810187905260e081018690526101000160405180910390a450505050505050505050565b6001600160a01b038084166000908152601e6020908152604080832086851684528252808320938516835292905290812060038101548203611329576000915050610dbb565b6001600160a01b038086166000908152601b60209081526040808320938816835292905290812082545b80156113bf576000818152601d602052604090206001810154426001600160401b03909116116113ae5760028301546001840154825461139391906129fa565b61139d9190612a50565b6113a79085612a11565b93506113b4565b506113bf565b600201549050611353565b50909695505050505050565b6000610aff82611bec565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611417573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143b9190612a72565b6001600160a01b0316336001600160a01b03161461149b5760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610225565b60405163623faf6160e01b81526001600160a01b0385169063623faf61906114c99086908690600401612a8f565b600060405180830381600087803b1580156114e357600080fd5b505af11580156114f7573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115669190612a72565b6001600160a01b0316336001600160a01b0316146115c65760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610225565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561160157600080fd5b505af1158015611615573d6000803e3d6000fd5b505050505050565b6000610aff826120fa565b604080516000815260208101909152606090826001600160401b0381111561165257611652612abe565b60405190808252806020026020018201604052801561168557816020015b60608152602001906001900390816116705790505b50915060005b83811015611707576116e2308686848181106116a9576116a9612ad4565b90506020028101906116bb9190612aea565b856040516020016116ce93929190612b37565b604051602081830303815290604052612145565b8382815181106116f4576116f4612ad4565b602090810291909101015260010161168b565b505092915050565b60408051602081019091526000815260408051602081019091526000815260006117398686611b68565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b60008061176d83611bec565b600281111561177e5761177e6127cd565b141592915050565b6000610afc8383611c45565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610afc9190612a24565b60006117d583611bec565b905060018160028111156117eb576117eb6127cd565b146118225760405162461bcd60e51b81526020600482015260076024820152662161637469766560c81b6044820152606401610225565b6001600160a01b038381166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611901573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119259190612a37565b60808201819052606082015160009161193d91611f90565b9050600082600001516001600160a01b0316336001600160a01b031614806119ae575082516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600090815260156020908152604080832093909416825291909152205460ff165b600d54909150600160801b900463ffffffff16821115806119d157506040830151155b15611a0b5780611a0b5760405162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b6044820152606401610225565b60808301516001600160a01b0387166000908152600f6020526040908190206004019190915583015115611aef57808015611a4557508415155b15611a5d57611a588684600001516121bb565b611a6c565b611a6a83602001516122a8565b505b60408084015184516001600160a01b03166000908152600e6020529190912060010154611a999190612a24565b83516001600160a01b03166000908152600e602090815260408083206001019390935582860151818701518352601090915291902054611ad99190612a24565b6020808501516000908152601090915260409020555b60208084015184516080808701516040808901518151928352958201959095523394810194909452606084018990528415908401526001600160a01b03808a16939116907ff6725dd105a6fc88bb79a6e4627f128577186c567a17c94818d201c2a4ce14039060a00160405180910390a4505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611bc157506001600160a01b0382166000908152601460205260409020610aff565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610aff565b6001600160a01b038082166000908152600f6020526040812080549192909116611c195750600092915050565b600381015415801590611c2e57506004810154155b15611c3c5750600192915050565b50600292915050565b600080611c528484611b68565b905080600501548160020154611c689190612a24565b949350505050565b600081831115611c805781610afc565b5090919050565b8015611d3f576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0791906129c2565b611d3f5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610225565b505050565b600080611d518484612336565b9050610afc817f000000000000000000000000000000000000000000000000000000000000000061115d565b600082600003611d8f57506000610dbb565b7f000000000000000000000000000000000000000000000000000000000000000060008315801590611dc957506001600160a01b03821615155b9050808015611e3c5750604051634c4ea0ed60e01b8152600481018790526001600160a01b03831690634c4ea0ed90602401602060405180830381865afa158015611e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3c91906129c2565b15611f84576000611e4d8686612336565b90508015611f7a576040516307470bfb60e21b8152600481018890526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631d1c2fec906024016020604051808303816000875af1158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee09190612a37565b50611f1883827f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190612388565b60405163102ae65160e31b815260048101889052602481018290526001600160a01b03841690638157328890604401600060405180830381600087803b158015611f6157600080fd5b505af1158015611f75573d6000803e3d6000fd5b505050505b9250610dbb915050565b50600095945050505050565b6000818311611fa0576000610afc565b610afc8284612a24565b8015610c8f57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561160157600080fd5b6001600160a01b038216600090815260146020526040812060028101548291901580159061203157508054600160401b900463ffffffff16620f424010155b1561207c5780546000906120579063ffffffff600160401b90910481169087906123c316565b90506120638186612a24565b92508282600201546120759190612a11565b6002830155505b509392505050565b8260000361209157505050565b80156120a157611d3f828461242a565b6001600160a01b03808316600090815260176020526040902054166120f481156120cb57816120cd565b835b857f0000000000000000000000000000000000000000000000000000000000000000611f08565b50505050565b6001600160a01b0381166000908152600e602052604081206002810154600182015460048301549254919290916121319190612a24565b61213b9190612a24565b610aff9190612a24565b6060600080846001600160a01b0316846040516121629190612b5e565b600060405180830381855af49150503d806000811461219d576040519150601f19603f3d011682016040523d82523d6000602084013e6121a2565b606091505b50915091506121b28583836124a9565b95945050505050565b60007f0000000000000000000000000000000000000000000000000000000000000000604051636dba849360e11b81526001600160a01b038581166004830152919091169063db750926906024016020604051808303816000875af1158015612228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224c9190612a37565b90508060000361225b57505050565b60006122678383612505565b905060006122758284612a24565b6001600160a01b038086166000908152601760205260409020549192506122a191839187911615612084565b5050505050565b6040516377561f0760e11b8152600481018290526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063eeac3e0e906024016020604051808303816000875af1158015612312573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aff9190612a37565b600061234582620f4240101590565b829061236757604051633dc311df60e01b815260040161022591815260200190565b5061237e8361237984620f4240612a24565b6123c3565b610afc9084612a24565b8015611d3f5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611cc4565b60006123d283620f4240101590565b806123e557506123e582620f4240101590565b8383909161240f5760405163768bf0eb60e11b815260048101929092526024820152604401610225565b50620f4240905061242083856129fa565b610afc9190612a50565b6001600160a01b0382166000908152600e602052604090205461244e908290612a11565b6001600160a01b0383166000818152600e6020526040908190209290925590517f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29061249d9084815260200190565b60405180910390a25050565b6060826124be576124b98261256c565b610dbb565b81511580156124d557506001600160a01b0384163b155b156124fe57604051639996b31560e01b81526001600160a01b0385166004820152602401610225565b5080610dbb565b6001600160a01b038216600090815260146020526040812060028101548291901580159061254557508054640100000000900463ffffffff16620f424010155b1561207c5780546000906120579063ffffffff64010000000090910481169087906123c316565b80511561257c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b038116811461259557600080fd5b600080604083850312156125c057600080fd5b82356125cb81612598565b915060208301356125db81612598565b809150509250929050565b6000602082840312156125f857600080fd5b8135610afc81612598565b60006101208201905082518252602083015160208301526040830151604083015263ffffffff60608401511660608301526001600160401b03608084015116608083015260a083015161266160a08401826001600160401b03169052565b5060c083015161267960c084018263ffffffff169052565b5060e083015161269460e08401826001600160401b03169052565b5061010092830151919092015290565b600080604083850312156126b757600080fd5b82356126c281612598565b946020939093013593505050565b6000806000606084860312156126e557600080fd5b83356126f081612598565b9250602084013561270081612598565b915060408401356003811061271457600080fd5b809150509250925092565b60008060006060848603121561273457600080fd5b833561273f81612598565b9250602084013561274f81612598565b9150604084013563ffffffff8116811461271457600080fd5b6000806040838503121561277b57600080fd5b8235915060208301356125db81612598565b6000806000606084860312156127a257600080fd5b83356127ad81612598565b925060208401356127bd81612598565b9150604084013561271481612598565b634e487b7160e01b600052602160045260246000fd5b602081016003831061280557634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006040848603121561282057600080fd5b833561282b81612598565b925060208401356001600160401b0381111561284657600080fd5b8401601f8101861361285757600080fd5b80356001600160401b0381111561286d57600080fd5b86602082840101111561287f57600080fd5b939660209190910195509293505050565b600080602083850312156128a357600080fd5b82356001600160401b038111156128b957600080fd5b8301601f810185136128ca57600080fd5b80356001600160401b038111156128e057600080fd5b8560208260051b84010111156128f557600080fd5b6020919091019590945092505050565b60005b83811015612920578181015183820152602001612908565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561299d57603f198786030184528151805180875261297a816020890160208501612905565b601f01601f19169590950160209081019550938401939190910190600101612951565b50929695505050505050565b6000602082840312156129bb57600080fd5b5035919050565b6000602082840312156129d457600080fd5b81518015158114610afc57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610aff57610aff6129e4565b80820180821115610aff57610aff6129e4565b81810381811115610aff57610aff6129e4565b600060208284031215612a4957600080fd5b5051919050565b600082612a6d57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612a8457600080fd5b8151610afc81612598565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112612b0157600080fd5b8301803591506001600160401b03821115612b1b57600080fd5b602001915036819003821315612b3057600080fd5b9250929050565b828482376000838201600081528351612b54818360208801612905565b0195945050505050565b60008251612b70818460208701612905565b919091019291505056fea26469706673582212202248057a8bce81db640fbc5d05cef1efff890ddbde3697383b1612b453370f4364736f6c634300081b0033", - "linkReferences": { - "contracts/staking/libraries/ExponentialRebates.sol": { - "ExponentialRebates": [ - { - "length": 20, - "start": 5652 - } - ] - } - }, - "deployedLinkReferences": { - "contracts/staking/libraries/ExponentialRebates.sol": { - "ExponentialRebates": [ - { - "length": 20, - "start": 4266 - } - ] - } - } -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow.json deleted file mode 100644 index da4e99cc5..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow.json +++ /dev/null @@ -1,835 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "PaymentsEscrow", - "sourceName": "contracts/payments/PaymentsEscrow.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "controller", - "type": "address" - }, - { - "internalType": "uint256", - "name": "revokeCollectorThawingPeriod", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "withdrawEscrowThawingPeriod", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balanceBefore", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balanceAfter", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "PaymentsEscrowInconsistentCollection", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minAllowance", - "type": "uint256" - } - ], - "name": "PaymentsEscrowInsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minBalance", - "type": "uint256" - } - ], - "name": "PaymentsEscrowInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "PaymentsEscrowInvalidZeroTokens", - "type": "error" - }, - { - "inputs": [], - "name": "PaymentsEscrowIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "PaymentsEscrowNotThawing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "currentTimestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "PaymentsEscrowStillThawing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "thawingPeriod", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxWaitPeriod", - "type": "uint256" - } - ], - "name": "PaymentsEscrowThawingPeriodTooLong", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "addedAllowance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newTotalAllowance", - "type": "uint256" - } - ], - "name": "AuthorizedCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "CancelThaw", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "CancelThawCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "EscrowCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "RevokeCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "Thaw", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "ThawCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "Withdraw", - "type": "event" - }, - { - "inputs": [], - "name": "MAX_WAIT_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "REVOKE_COLLECTOR_THAWING_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "WITHDRAW_ESCROW_THAWING_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector_", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - } - ], - "name": "approveCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "authorizedCollectors", - "outputs": [ - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "cancelThawCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "deposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "depositTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "escrowAccounts", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector_", - "type": "address" - } - ], - "name": "revokeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "thaw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "thawCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x61020060405234801561001157600080fd5b506040516121d83803806121d88339810160408190526100309161046b565b826001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b2906103a1565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e5906103a1565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e906103a1565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b6020820152610158906103a1565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610190906103a1565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb906103a1565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b6020820152610209906103a1565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b6020820152610245906103a1565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a906103a1565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450816276a7008082111561035c57604051635c0f65a160e01b815260048101929092526024820152604401610071565b508190506276a7008082111561038e57604051635c0f65a160e01b815260048101929092526024820152604401610071565b50506101c0919091526101e05250610510565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103dc91815260200190565b602060405180830381865afa1580156103f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041d91906104a0565b9050826001600160a01b0382166104485760405163218f5add60e11b815260040161007191906104c2565b5092915050565b80516001600160a01b038116811461046657600080fd5b919050565b60008060006060848603121561048057600080fd5b6104898461044f565b602085015160409095015190969495509392505050565b6000602082840312156104b257600080fd5b6104bb8261044f565b9392505050565b602081526000825180602084015260005b818110156104f057602081860181015160408684010152016104d3565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051611be36105f56000396000818161020801526111c801526000818161015001526103a401526000505060005050600050506000505060005050600081816103010152818161041d01528181610590015281816106d90152818161078b015281816109cf01528181610a8001528181611049015261124d01526000505060008181610cbd0152610d6501526000505060008181610c0101528181610c8e01528181610ddb015281816113c5015261148f0152611be36000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b2168b6b11610071578063b2168b6b14610278578063beb6eceb14610282578063d6bd603c146102c6578063f93f1cd0146102d9578063f940e385146102ec57600080fd5b80638129fc1c1461022a5780638340f5491461023257806387dbfe8214610245578063ac9650d81461025857600080fd5b806372eb521e116100de57806372eb521e1461018557806378a24c54146101985780637a8df28b146101ab5780637b8ae6cf1461020357600080fd5b80630ee36be31461011057806332825b81146101255780634f9d392e146101385780636cd476561461014b575b600080fd5b61012361011e366004611762565b6102ff565b005b610123610133366004611762565b61041b565b61012361014636600461177d565b61058e565b6101727f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101236101933660046117a7565b6106d7565b6101236101a6366004611762565b610789565b6101e86101b93660046117f2565b600160208181526000948552604080862082529385528385209052908352912080549181015460029091015483565b6040805193845260208401929092529082015260600161017c565b6101727f000000000000000000000000000000000000000000000000000000000000000081565b6101236108bf565b610123610240366004611835565b6109cd565b610123610253366004611872565b610a7e565b61026b6102663660046118e0565b610f0f565b60405161017c919061197b565b6101726276a70081565b6102b16102903660046119fb565b60006020818152928152604080822090935290815220805460019091015482565b6040805192835260208301919091520161017c565b6101726102d43660046117f2565b610ff8565b6101236102e7366004611835565b611047565b6101236102fa3660046119fb565b61124b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103819190611a2e565b1561039f57604051639e68cf0b60e01b815260040160405180910390fd5b6103c97f000000000000000000000000000000000000000000000000000000000000000042611a66565b336000818152602081815260408083206001600160a01b03871680855292528083206001019490945592517f47c16ea40fc834cf4be3dc9ec160a1ff77ba18b1231e9e6886e3231c708326ff9190a350565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190611a2e565b156104bb57604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03851684529091528120600181015490910361050157604051638cbd172f60e01b815260040160405180910390fd5b6001810154429081811061053657604051633c50db7960e11b8152600481019290925260248201526044015b60405180910390fd5b5050336000818152602081815260408083206001600160a01b0387168085529252808320838155600101839055519092917f3d7c3b7414bb2ce0675b85ea842ee937d10fe3b291f1cb2dc3361510bd113d9091a35050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106109190611a2e565b1561062e57604051639e68cf0b60e01b815260040160405180910390fd5b8060000361064f57604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03861684529091528120805490918391839190610684908490611a66565b909155505080546040805184815260208101929092526001600160a01b0385169133917f61715ac91d89f310ff71b2ccccdce0ebbd98d1ae31e8482559060139ac54a69d910160405180910390a3505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107599190611a2e565b1561077757604051639e68cf0b60e01b815260040160405180910390fd5b6107838484848461143b565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190611a2e565b1561082957604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0385168452909152812060010154900361086d57604051638cbd172f60e01b815260040160405180910390fd5b336000818152602081815260408083206001600160a01b0386168085529252808320600101839055519092917f988de7a3afe0d801be198872279c1fd9771d8013712ee4f00652354c8a6ec27d91a350565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156109055750825b905060008267ffffffffffffffff1660011480156109225750303b155b905081158015610930575080155b1561094e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561097857845460ff60401b1916600160401b1785555b610980611505565b83156109c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4f9190611a2e565b15610a6d57604051639e68cf0b60e01b815260040160405180910390fd5b610a793384848461143b565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b009190611a2e565b15610b1e57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038516600090815260208181526040808320338452909152902080548480821015610b6c5760405163b0b503e760e01b81526004810192909252602482015260440161052d565b50506001600160a01b038087166000908152600160209081526040808320338452825280832093891683529290522080548580821015610bc857604051633db4e69160e01b81526004810192909252602482015260440161052d565b505084826000016000828254610bde9190611a79565b9091555050805485908290600090610bf7908490611a79565b90915550600090507f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a9190611a8c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018990526044016020604051808303816000875af1158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d9190611a2e565b50604051633634bc1d60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636c69783a90610da2908c908b908b908b908b90600401611aa5565b600060405180830381600087803b158015610dbc57600080fd5b505af1158015610dd0573d6000803e3d6000fd5b505050506000610dfd7f000000000000000000000000000000000000000000000000000000000000000090565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e679190611a8c565b9050610e738188611a66565b8214828289909192610ea957604051631f82726b60e21b815260048101939093526024830191909152604482015260640161052d565b505050876001600160a01b0316336001600160a01b03168a6001600160a01b03167fedeef164a6af3d5877b558880222d022aafee6e9787cafd3e5055f7d33306dd68a604051610efb91815260200190565b60405180910390a450505050505050505050565b6040805160008152602081019091526060908267ffffffffffffffff811115610f3a57610f3a611af0565b604051908082528060200260200182016040528015610f6d57816020015b6060815260200190600190039081610f585790505b50915060005b83811015610fef57610fca30868684818110610f9157610f91611b06565b9050602002810190610fa39190611b1c565b85604051602001610fb693929190611b6a565b60405160208183030381529060405261150f565b838281518110610fdc57610fdc611b06565b6020908102919091010152600101610f73565b50505b92915050565b6001600160a01b03808416600090815260016020818152604080842087861685528252808420948616845293905291812091820154825491929161103c9190611a79565b9150505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c99190611a2e565b156110e757604051639e68cf0b60e01b815260040160405180910390fd5b3360009081526001602090815260408083206001600160a01b038781168552908352818420908616845290915281209082900361118d57806001015460000361114357604051638cbd172f60e01b815260040160405180910390fd5b600060018201819055600282018190556040516001600160a01b0385169133917fb2486c13d5da6cdbddffe9f9ec53350f7f15033cec803877fd75ff89d734c9489190a350505050565b805482808210156111ba57604051633db4e69160e01b81526004810192909252602482015260440161052d565b5050600181018290556111ed7f000000000000000000000000000000000000000000000000000000000000000042611a66565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc9161123d91888252602082015260400190565b60405180910390a450505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cd9190611a2e565b156112eb57604051639e68cf0b60e01b815260040160405180910390fd5b3360009081526001602090815260408083206001600160a01b03868116855290835281842090851684529091528120600281015490910361133f57604051638cbd172f60e01b815260040160405180910390fd5b6002810154429081811061136f57604051633c50db7960e11b81526004810192909252602482015260440161052d565b50506000816000015482600101541161138c57816001015461138f565b81545b9050808260000160008282546113a59190611a79565b909155505060006001830181905560028301556113ec6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611585565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f78460405161123d91815260200190565b6001600160a01b038085166000908152600160209081526040808320878516845282528083209386168352929052908120805483929061147c908490611a66565b909155506114b690506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611637565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a968460405161123d91815260200190565b61150d611678565b565b6060600080846001600160a01b03168460405161152c9190611b91565b600060405180830381855af49150503d8060008114611567576040519150601f19603f3d011682016040523d82523d6000602084013e61156c565b606091505b509150915061157c8583836116c1565b95945050505050565b8015610a795760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af11580156115db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ff9190611a2e565b610a795760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161052d565b8015610a79576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064016115bc565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661150d57604051631afcd79f60e31b815260040160405180910390fd5b6060826116d6576116d18261171d565b611040565b81511580156116ed57506001600160a01b0384163b155b1561171657604051639996b31560e01b81526001600160a01b038516600482015260240161052d565b5080611040565b80511561172d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461175d57600080fd5b919050565b60006020828403121561177457600080fd5b61104082611746565b6000806040838503121561179057600080fd5b61179983611746565b946020939093013593505050565b600080600080608085870312156117bd57600080fd5b6117c685611746565b93506117d460208601611746565b92506117e260408601611746565b9396929550929360600135925050565b60008060006060848603121561180757600080fd5b61181084611746565b925061181e60208501611746565b915061182c60408501611746565b90509250925092565b60008060006060848603121561184a57600080fd5b61185384611746565b925061186160208501611746565b929592945050506040919091013590565b60008060008060008060c0878903121561188b57600080fd5b86356003811061189a57600080fd5b95506118a860208801611746565b94506118b660408801611746565b9350606087013592506118cb60808801611746565b9598949750929591949360a090920135925050565b600080602083850312156118f357600080fd5b823567ffffffffffffffff81111561190a57600080fd5b8301601f8101851361191b57600080fd5b803567ffffffffffffffff81111561193257600080fd5b8560208260051b840101111561194757600080fd5b6020919091019590945092505050565b60005b8381101561197257818101518382015260200161195a565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156119ef57603f19878603018452815180518087526119cc816020890160208501611957565b601f01601f191695909501602090810195509384019391909101906001016119a3565b50929695505050505050565b60008060408385031215611a0e57600080fd5b611a1783611746565b9150611a2560208401611746565b90509250929050565b600060208284031215611a4057600080fd5b8151801515811461104057600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610ff257610ff2611a50565b81810381811115610ff257610ff2611a50565b600060208284031215611a9e57600080fd5b5051919050565b60a0810160038710611ac757634e487b7160e01b600052602160045260246000fd5b9581526001600160a01b0394851660208201526040810193909352921660608201526080015290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112611b3357600080fd5b83018035915067ffffffffffffffff821115611b4e57600080fd5b602001915036819003821315611b6357600080fd5b9250929050565b828482376000838201600081528351611b87818360208801611957565b0195945050505050565b60008251611ba3818460208701611957565b919091019291505056fea2646970667358221220a2310128f8eef1d4020c2e25f9c893bf4089333983224daab65c35fcea8e45cd64736f6c634300081b0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b2168b6b11610071578063b2168b6b14610278578063beb6eceb14610282578063d6bd603c146102c6578063f93f1cd0146102d9578063f940e385146102ec57600080fd5b80638129fc1c1461022a5780638340f5491461023257806387dbfe8214610245578063ac9650d81461025857600080fd5b806372eb521e116100de57806372eb521e1461018557806378a24c54146101985780637a8df28b146101ab5780637b8ae6cf1461020357600080fd5b80630ee36be31461011057806332825b81146101255780634f9d392e146101385780636cd476561461014b575b600080fd5b61012361011e366004611762565b6102ff565b005b610123610133366004611762565b61041b565b61012361014636600461177d565b61058e565b6101727f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101236101933660046117a7565b6106d7565b6101236101a6366004611762565b610789565b6101e86101b93660046117f2565b600160208181526000948552604080862082529385528385209052908352912080549181015460029091015483565b6040805193845260208401929092529082015260600161017c565b6101727f000000000000000000000000000000000000000000000000000000000000000081565b6101236108bf565b610123610240366004611835565b6109cd565b610123610253366004611872565b610a7e565b61026b6102663660046118e0565b610f0f565b60405161017c919061197b565b6101726276a70081565b6102b16102903660046119fb565b60006020818152928152604080822090935290815220805460019091015482565b6040805192835260208301919091520161017c565b6101726102d43660046117f2565b610ff8565b6101236102e7366004611835565b611047565b6101236102fa3660046119fb565b61124b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103819190611a2e565b1561039f57604051639e68cf0b60e01b815260040160405180910390fd5b6103c97f000000000000000000000000000000000000000000000000000000000000000042611a66565b336000818152602081815260408083206001600160a01b03871680855292528083206001019490945592517f47c16ea40fc834cf4be3dc9ec160a1ff77ba18b1231e9e6886e3231c708326ff9190a350565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190611a2e565b156104bb57604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03851684529091528120600181015490910361050157604051638cbd172f60e01b815260040160405180910390fd5b6001810154429081811061053657604051633c50db7960e11b8152600481019290925260248201526044015b60405180910390fd5b5050336000818152602081815260408083206001600160a01b0387168085529252808320838155600101839055519092917f3d7c3b7414bb2ce0675b85ea842ee937d10fe3b291f1cb2dc3361510bd113d9091a35050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106109190611a2e565b1561062e57604051639e68cf0b60e01b815260040160405180910390fd5b8060000361064f57604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03861684529091528120805490918391839190610684908490611a66565b909155505080546040805184815260208101929092526001600160a01b0385169133917f61715ac91d89f310ff71b2ccccdce0ebbd98d1ae31e8482559060139ac54a69d910160405180910390a3505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107599190611a2e565b1561077757604051639e68cf0b60e01b815260040160405180910390fd5b6107838484848461143b565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190611a2e565b1561082957604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0385168452909152812060010154900361086d57604051638cbd172f60e01b815260040160405180910390fd5b336000818152602081815260408083206001600160a01b0386168085529252808320600101839055519092917f988de7a3afe0d801be198872279c1fd9771d8013712ee4f00652354c8a6ec27d91a350565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156109055750825b905060008267ffffffffffffffff1660011480156109225750303b155b905081158015610930575080155b1561094e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561097857845460ff60401b1916600160401b1785555b610980611505565b83156109c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4f9190611a2e565b15610a6d57604051639e68cf0b60e01b815260040160405180910390fd5b610a793384848461143b565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b009190611a2e565b15610b1e57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038516600090815260208181526040808320338452909152902080548480821015610b6c5760405163b0b503e760e01b81526004810192909252602482015260440161052d565b50506001600160a01b038087166000908152600160209081526040808320338452825280832093891683529290522080548580821015610bc857604051633db4e69160e01b81526004810192909252602482015260440161052d565b505084826000016000828254610bde9190611a79565b9091555050805485908290600090610bf7908490611a79565b90915550600090507f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a9190611a8c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018990526044016020604051808303816000875af1158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d9190611a2e565b50604051633634bc1d60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636c69783a90610da2908c908b908b908b908b90600401611aa5565b600060405180830381600087803b158015610dbc57600080fd5b505af1158015610dd0573d6000803e3d6000fd5b505050506000610dfd7f000000000000000000000000000000000000000000000000000000000000000090565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e679190611a8c565b9050610e738188611a66565b8214828289909192610ea957604051631f82726b60e21b815260048101939093526024830191909152604482015260640161052d565b505050876001600160a01b0316336001600160a01b03168a6001600160a01b03167fedeef164a6af3d5877b558880222d022aafee6e9787cafd3e5055f7d33306dd68a604051610efb91815260200190565b60405180910390a450505050505050505050565b6040805160008152602081019091526060908267ffffffffffffffff811115610f3a57610f3a611af0565b604051908082528060200260200182016040528015610f6d57816020015b6060815260200190600190039081610f585790505b50915060005b83811015610fef57610fca30868684818110610f9157610f91611b06565b9050602002810190610fa39190611b1c565b85604051602001610fb693929190611b6a565b60405160208183030381529060405261150f565b838281518110610fdc57610fdc611b06565b6020908102919091010152600101610f73565b50505b92915050565b6001600160a01b03808416600090815260016020818152604080842087861685528252808420948616845293905291812091820154825491929161103c9190611a79565b9150505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c99190611a2e565b156110e757604051639e68cf0b60e01b815260040160405180910390fd5b3360009081526001602090815260408083206001600160a01b038781168552908352818420908616845290915281209082900361118d57806001015460000361114357604051638cbd172f60e01b815260040160405180910390fd5b600060018201819055600282018190556040516001600160a01b0385169133917fb2486c13d5da6cdbddffe9f9ec53350f7f15033cec803877fd75ff89d734c9489190a350505050565b805482808210156111ba57604051633db4e69160e01b81526004810192909252602482015260440161052d565b5050600181018290556111ed7f000000000000000000000000000000000000000000000000000000000000000042611a66565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc9161123d91888252602082015260400190565b60405180910390a450505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cd9190611a2e565b156112eb57604051639e68cf0b60e01b815260040160405180910390fd5b3360009081526001602090815260408083206001600160a01b03868116855290835281842090851684529091528120600281015490910361133f57604051638cbd172f60e01b815260040160405180910390fd5b6002810154429081811061136f57604051633c50db7960e11b81526004810192909252602482015260440161052d565b50506000816000015482600101541161138c57816001015461138f565b81545b9050808260000160008282546113a59190611a79565b909155505060006001830181905560028301556113ec6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611585565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f78460405161123d91815260200190565b6001600160a01b038085166000908152600160209081526040808320878516845282528083209386168352929052908120805483929061147c908490611a66565b909155506114b690506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611637565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a968460405161123d91815260200190565b61150d611678565b565b6060600080846001600160a01b03168460405161152c9190611b91565b600060405180830381855af49150503d8060008114611567576040519150601f19603f3d011682016040523d82523d6000602084013e61156c565b606091505b509150915061157c8583836116c1565b95945050505050565b8015610a795760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af11580156115db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ff9190611a2e565b610a795760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161052d565b8015610a79576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064016115bc565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661150d57604051631afcd79f60e31b815260040160405180910390fd5b6060826116d6576116d18261171d565b611040565b81511580156116ed57506001600160a01b0384163b155b1561171657604051639996b31560e01b81526001600160a01b038516600482015260240161052d565b5080611040565b80511561172d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461175d57600080fd5b919050565b60006020828403121561177457600080fd5b61104082611746565b6000806040838503121561179057600080fd5b61179983611746565b946020939093013593505050565b600080600080608085870312156117bd57600080fd5b6117c685611746565b93506117d460208601611746565b92506117e260408601611746565b9396929550929360600135925050565b60008060006060848603121561180757600080fd5b61181084611746565b925061181e60208501611746565b915061182c60408501611746565b90509250925092565b60008060006060848603121561184a57600080fd5b61185384611746565b925061186160208501611746565b929592945050506040919091013590565b60008060008060008060c0878903121561188b57600080fd5b86356003811061189a57600080fd5b95506118a860208801611746565b94506118b660408801611746565b9350606087013592506118cb60808801611746565b9598949750929591949360a090920135925050565b600080602083850312156118f357600080fd5b823567ffffffffffffffff81111561190a57600080fd5b8301601f8101851361191b57600080fd5b803567ffffffffffffffff81111561193257600080fd5b8560208260051b840101111561194757600080fd5b6020919091019590945092505050565b60005b8381101561197257818101518382015260200161195a565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156119ef57603f19878603018452815180518087526119cc816020890160208501611957565b601f01601f191695909501602090810195509384019391909101906001016119a3565b50929695505050505050565b60008060408385031215611a0e57600080fd5b611a1783611746565b9150611a2560208401611746565b90509250929050565b600060208284031215611a4057600080fd5b8151801515811461104057600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610ff257610ff2611a50565b81810381811115610ff257610ff2611a50565b600060208284031215611a9e57600080fd5b5051919050565b60a0810160038710611ac757634e487b7160e01b600052602160045260246000fd5b9581526001600160a01b0394851660208201526040810193909352921660608201526080015290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112611b3357600080fd5b83018035915067ffffffffffffffff821115611b4e57600080fd5b602001915036819003821315611b6357600080fd5b9250929050565b828482376000838201600081528351611b87818360208801611957565b0195945050505050565b60008251611ba3818460208701611957565b919091019291505056fea2646970667358221220a2310128f8eef1d4020c2e25f9c893bf4089333983224daab65c35fcea8e45cd64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow_Instance.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow_Instance.json deleted file mode 100644 index da4e99cc5..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/PaymentsEscrow#PaymentsEscrow_Instance.json +++ /dev/null @@ -1,835 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "PaymentsEscrow", - "sourceName": "contracts/payments/PaymentsEscrow.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "controller", - "type": "address" - }, - { - "internalType": "uint256", - "name": "revokeCollectorThawingPeriod", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "withdrawEscrowThawingPeriod", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balanceBefore", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balanceAfter", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "PaymentsEscrowInconsistentCollection", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minAllowance", - "type": "uint256" - } - ], - "name": "PaymentsEscrowInsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minBalance", - "type": "uint256" - } - ], - "name": "PaymentsEscrowInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "PaymentsEscrowInvalidZeroTokens", - "type": "error" - }, - { - "inputs": [], - "name": "PaymentsEscrowIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "PaymentsEscrowNotThawing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "currentTimestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "PaymentsEscrowStillThawing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "thawingPeriod", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxWaitPeriod", - "type": "uint256" - } - ], - "name": "PaymentsEscrowThawingPeriodTooLong", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "addedAllowance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newTotalAllowance", - "type": "uint256" - } - ], - "name": "AuthorizedCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "CancelThaw", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "CancelThawCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "EscrowCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "RevokeCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "Thaw", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "ThawCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "Withdraw", - "type": "event" - }, - { - "inputs": [], - "name": "MAX_WAIT_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "REVOKE_COLLECTOR_THAWING_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "WITHDRAW_ESCROW_THAWING_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector_", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - } - ], - "name": "approveCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "authorizedCollectors", - "outputs": [ - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "cancelThawCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "deposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "depositTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "escrowAccounts", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector_", - "type": "address" - } - ], - "name": "revokeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "thaw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "thawCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x61020060405234801561001157600080fd5b506040516121d83803806121d88339810160408190526100309161046b565b826001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b2906103a1565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e5906103a1565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e906103a1565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b6020820152610158906103a1565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610190906103a1565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb906103a1565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b6020820152610209906103a1565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b6020820152610245906103a1565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a906103a1565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450816276a7008082111561035c57604051635c0f65a160e01b815260048101929092526024820152604401610071565b508190506276a7008082111561038e57604051635c0f65a160e01b815260048101929092526024820152604401610071565b50506101c0919091526101e05250610510565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103dc91815260200190565b602060405180830381865afa1580156103f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041d91906104a0565b9050826001600160a01b0382166104485760405163218f5add60e11b815260040161007191906104c2565b5092915050565b80516001600160a01b038116811461046657600080fd5b919050565b60008060006060848603121561048057600080fd5b6104898461044f565b602085015160409095015190969495509392505050565b6000602082840312156104b257600080fd5b6104bb8261044f565b9392505050565b602081526000825180602084015260005b818110156104f057602081860181015160408684010152016104d3565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051611be36105f56000396000818161020801526111c801526000818161015001526103a401526000505060005050600050506000505060005050600081816103010152818161041d01528181610590015281816106d90152818161078b015281816109cf01528181610a8001528181611049015261124d01526000505060008181610cbd0152610d6501526000505060008181610c0101528181610c8e01528181610ddb015281816113c5015261148f0152611be36000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b2168b6b11610071578063b2168b6b14610278578063beb6eceb14610282578063d6bd603c146102c6578063f93f1cd0146102d9578063f940e385146102ec57600080fd5b80638129fc1c1461022a5780638340f5491461023257806387dbfe8214610245578063ac9650d81461025857600080fd5b806372eb521e116100de57806372eb521e1461018557806378a24c54146101985780637a8df28b146101ab5780637b8ae6cf1461020357600080fd5b80630ee36be31461011057806332825b81146101255780634f9d392e146101385780636cd476561461014b575b600080fd5b61012361011e366004611762565b6102ff565b005b610123610133366004611762565b61041b565b61012361014636600461177d565b61058e565b6101727f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101236101933660046117a7565b6106d7565b6101236101a6366004611762565b610789565b6101e86101b93660046117f2565b600160208181526000948552604080862082529385528385209052908352912080549181015460029091015483565b6040805193845260208401929092529082015260600161017c565b6101727f000000000000000000000000000000000000000000000000000000000000000081565b6101236108bf565b610123610240366004611835565b6109cd565b610123610253366004611872565b610a7e565b61026b6102663660046118e0565b610f0f565b60405161017c919061197b565b6101726276a70081565b6102b16102903660046119fb565b60006020818152928152604080822090935290815220805460019091015482565b6040805192835260208301919091520161017c565b6101726102d43660046117f2565b610ff8565b6101236102e7366004611835565b611047565b6101236102fa3660046119fb565b61124b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103819190611a2e565b1561039f57604051639e68cf0b60e01b815260040160405180910390fd5b6103c97f000000000000000000000000000000000000000000000000000000000000000042611a66565b336000818152602081815260408083206001600160a01b03871680855292528083206001019490945592517f47c16ea40fc834cf4be3dc9ec160a1ff77ba18b1231e9e6886e3231c708326ff9190a350565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190611a2e565b156104bb57604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03851684529091528120600181015490910361050157604051638cbd172f60e01b815260040160405180910390fd5b6001810154429081811061053657604051633c50db7960e11b8152600481019290925260248201526044015b60405180910390fd5b5050336000818152602081815260408083206001600160a01b0387168085529252808320838155600101839055519092917f3d7c3b7414bb2ce0675b85ea842ee937d10fe3b291f1cb2dc3361510bd113d9091a35050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106109190611a2e565b1561062e57604051639e68cf0b60e01b815260040160405180910390fd5b8060000361064f57604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03861684529091528120805490918391839190610684908490611a66565b909155505080546040805184815260208101929092526001600160a01b0385169133917f61715ac91d89f310ff71b2ccccdce0ebbd98d1ae31e8482559060139ac54a69d910160405180910390a3505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107599190611a2e565b1561077757604051639e68cf0b60e01b815260040160405180910390fd5b6107838484848461143b565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190611a2e565b1561082957604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0385168452909152812060010154900361086d57604051638cbd172f60e01b815260040160405180910390fd5b336000818152602081815260408083206001600160a01b0386168085529252808320600101839055519092917f988de7a3afe0d801be198872279c1fd9771d8013712ee4f00652354c8a6ec27d91a350565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156109055750825b905060008267ffffffffffffffff1660011480156109225750303b155b905081158015610930575080155b1561094e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561097857845460ff60401b1916600160401b1785555b610980611505565b83156109c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4f9190611a2e565b15610a6d57604051639e68cf0b60e01b815260040160405180910390fd5b610a793384848461143b565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b009190611a2e565b15610b1e57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038516600090815260208181526040808320338452909152902080548480821015610b6c5760405163b0b503e760e01b81526004810192909252602482015260440161052d565b50506001600160a01b038087166000908152600160209081526040808320338452825280832093891683529290522080548580821015610bc857604051633db4e69160e01b81526004810192909252602482015260440161052d565b505084826000016000828254610bde9190611a79565b9091555050805485908290600090610bf7908490611a79565b90915550600090507f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a9190611a8c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018990526044016020604051808303816000875af1158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d9190611a2e565b50604051633634bc1d60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636c69783a90610da2908c908b908b908b908b90600401611aa5565b600060405180830381600087803b158015610dbc57600080fd5b505af1158015610dd0573d6000803e3d6000fd5b505050506000610dfd7f000000000000000000000000000000000000000000000000000000000000000090565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e679190611a8c565b9050610e738188611a66565b8214828289909192610ea957604051631f82726b60e21b815260048101939093526024830191909152604482015260640161052d565b505050876001600160a01b0316336001600160a01b03168a6001600160a01b03167fedeef164a6af3d5877b558880222d022aafee6e9787cafd3e5055f7d33306dd68a604051610efb91815260200190565b60405180910390a450505050505050505050565b6040805160008152602081019091526060908267ffffffffffffffff811115610f3a57610f3a611af0565b604051908082528060200260200182016040528015610f6d57816020015b6060815260200190600190039081610f585790505b50915060005b83811015610fef57610fca30868684818110610f9157610f91611b06565b9050602002810190610fa39190611b1c565b85604051602001610fb693929190611b6a565b60405160208183030381529060405261150f565b838281518110610fdc57610fdc611b06565b6020908102919091010152600101610f73565b50505b92915050565b6001600160a01b03808416600090815260016020818152604080842087861685528252808420948616845293905291812091820154825491929161103c9190611a79565b9150505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c99190611a2e565b156110e757604051639e68cf0b60e01b815260040160405180910390fd5b3360009081526001602090815260408083206001600160a01b038781168552908352818420908616845290915281209082900361118d57806001015460000361114357604051638cbd172f60e01b815260040160405180910390fd5b600060018201819055600282018190556040516001600160a01b0385169133917fb2486c13d5da6cdbddffe9f9ec53350f7f15033cec803877fd75ff89d734c9489190a350505050565b805482808210156111ba57604051633db4e69160e01b81526004810192909252602482015260440161052d565b5050600181018290556111ed7f000000000000000000000000000000000000000000000000000000000000000042611a66565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc9161123d91888252602082015260400190565b60405180910390a450505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cd9190611a2e565b156112eb57604051639e68cf0b60e01b815260040160405180910390fd5b3360009081526001602090815260408083206001600160a01b03868116855290835281842090851684529091528120600281015490910361133f57604051638cbd172f60e01b815260040160405180910390fd5b6002810154429081811061136f57604051633c50db7960e11b81526004810192909252602482015260440161052d565b50506000816000015482600101541161138c57816001015461138f565b81545b9050808260000160008282546113a59190611a79565b909155505060006001830181905560028301556113ec6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611585565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f78460405161123d91815260200190565b6001600160a01b038085166000908152600160209081526040808320878516845282528083209386168352929052908120805483929061147c908490611a66565b909155506114b690506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611637565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a968460405161123d91815260200190565b61150d611678565b565b6060600080846001600160a01b03168460405161152c9190611b91565b600060405180830381855af49150503d8060008114611567576040519150601f19603f3d011682016040523d82523d6000602084013e61156c565b606091505b509150915061157c8583836116c1565b95945050505050565b8015610a795760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af11580156115db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ff9190611a2e565b610a795760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161052d565b8015610a79576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064016115bc565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661150d57604051631afcd79f60e31b815260040160405180910390fd5b6060826116d6576116d18261171d565b611040565b81511580156116ed57506001600160a01b0384163b155b1561171657604051639996b31560e01b81526001600160a01b038516600482015260240161052d565b5080611040565b80511561172d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461175d57600080fd5b919050565b60006020828403121561177457600080fd5b61104082611746565b6000806040838503121561179057600080fd5b61179983611746565b946020939093013593505050565b600080600080608085870312156117bd57600080fd5b6117c685611746565b93506117d460208601611746565b92506117e260408601611746565b9396929550929360600135925050565b60008060006060848603121561180757600080fd5b61181084611746565b925061181e60208501611746565b915061182c60408501611746565b90509250925092565b60008060006060848603121561184a57600080fd5b61185384611746565b925061186160208501611746565b929592945050506040919091013590565b60008060008060008060c0878903121561188b57600080fd5b86356003811061189a57600080fd5b95506118a860208801611746565b94506118b660408801611746565b9350606087013592506118cb60808801611746565b9598949750929591949360a090920135925050565b600080602083850312156118f357600080fd5b823567ffffffffffffffff81111561190a57600080fd5b8301601f8101851361191b57600080fd5b803567ffffffffffffffff81111561193257600080fd5b8560208260051b840101111561194757600080fd5b6020919091019590945092505050565b60005b8381101561197257818101518382015260200161195a565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156119ef57603f19878603018452815180518087526119cc816020890160208501611957565b601f01601f191695909501602090810195509384019391909101906001016119a3565b50929695505050505050565b60008060408385031215611a0e57600080fd5b611a1783611746565b9150611a2560208401611746565b90509250929050565b600060208284031215611a4057600080fd5b8151801515811461104057600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610ff257610ff2611a50565b81810381811115610ff257610ff2611a50565b600060208284031215611a9e57600080fd5b5051919050565b60a0810160038710611ac757634e487b7160e01b600052602160045260246000fd5b9581526001600160a01b0394851660208201526040810193909352921660608201526080015290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112611b3357600080fd5b83018035915067ffffffffffffffff821115611b4e57600080fd5b602001915036819003821315611b6357600080fd5b9250929050565b828482376000838201600081528351611b87818360208801611957565b0195945050505050565b60008251611ba3818460208701611957565b919091019291505056fea2646970667358221220a2310128f8eef1d4020c2e25f9c893bf4089333983224daab65c35fcea8e45cd64736f6c634300081b0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b2168b6b11610071578063b2168b6b14610278578063beb6eceb14610282578063d6bd603c146102c6578063f93f1cd0146102d9578063f940e385146102ec57600080fd5b80638129fc1c1461022a5780638340f5491461023257806387dbfe8214610245578063ac9650d81461025857600080fd5b806372eb521e116100de57806372eb521e1461018557806378a24c54146101985780637a8df28b146101ab5780637b8ae6cf1461020357600080fd5b80630ee36be31461011057806332825b81146101255780634f9d392e146101385780636cd476561461014b575b600080fd5b61012361011e366004611762565b6102ff565b005b610123610133366004611762565b61041b565b61012361014636600461177d565b61058e565b6101727f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101236101933660046117a7565b6106d7565b6101236101a6366004611762565b610789565b6101e86101b93660046117f2565b600160208181526000948552604080862082529385528385209052908352912080549181015460029091015483565b6040805193845260208401929092529082015260600161017c565b6101727f000000000000000000000000000000000000000000000000000000000000000081565b6101236108bf565b610123610240366004611835565b6109cd565b610123610253366004611872565b610a7e565b61026b6102663660046118e0565b610f0f565b60405161017c919061197b565b6101726276a70081565b6102b16102903660046119fb565b60006020818152928152604080822090935290815220805460019091015482565b6040805192835260208301919091520161017c565b6101726102d43660046117f2565b610ff8565b6101236102e7366004611835565b611047565b6101236102fa3660046119fb565b61124b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103819190611a2e565b1561039f57604051639e68cf0b60e01b815260040160405180910390fd5b6103c97f000000000000000000000000000000000000000000000000000000000000000042611a66565b336000818152602081815260408083206001600160a01b03871680855292528083206001019490945592517f47c16ea40fc834cf4be3dc9ec160a1ff77ba18b1231e9e6886e3231c708326ff9190a350565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190611a2e565b156104bb57604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03851684529091528120600181015490910361050157604051638cbd172f60e01b815260040160405180910390fd5b6001810154429081811061053657604051633c50db7960e11b8152600481019290925260248201526044015b60405180910390fd5b5050336000818152602081815260408083206001600160a01b0387168085529252808320838155600101839055519092917f3d7c3b7414bb2ce0675b85ea842ee937d10fe3b291f1cb2dc3361510bd113d9091a35050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106109190611a2e565b1561062e57604051639e68cf0b60e01b815260040160405180910390fd5b8060000361064f57604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03861684529091528120805490918391839190610684908490611a66565b909155505080546040805184815260208101929092526001600160a01b0385169133917f61715ac91d89f310ff71b2ccccdce0ebbd98d1ae31e8482559060139ac54a69d910160405180910390a3505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107599190611a2e565b1561077757604051639e68cf0b60e01b815260040160405180910390fd5b6107838484848461143b565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190611a2e565b1561082957604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0385168452909152812060010154900361086d57604051638cbd172f60e01b815260040160405180910390fd5b336000818152602081815260408083206001600160a01b0386168085529252808320600101839055519092917f988de7a3afe0d801be198872279c1fd9771d8013712ee4f00652354c8a6ec27d91a350565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156109055750825b905060008267ffffffffffffffff1660011480156109225750303b155b905081158015610930575080155b1561094e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561097857845460ff60401b1916600160401b1785555b610980611505565b83156109c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4f9190611a2e565b15610a6d57604051639e68cf0b60e01b815260040160405180910390fd5b610a793384848461143b565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b009190611a2e565b15610b1e57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038516600090815260208181526040808320338452909152902080548480821015610b6c5760405163b0b503e760e01b81526004810192909252602482015260440161052d565b50506001600160a01b038087166000908152600160209081526040808320338452825280832093891683529290522080548580821015610bc857604051633db4e69160e01b81526004810192909252602482015260440161052d565b505084826000016000828254610bde9190611a79565b9091555050805485908290600090610bf7908490611a79565b90915550600090507f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a9190611a8c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018990526044016020604051808303816000875af1158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d9190611a2e565b50604051633634bc1d60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636c69783a90610da2908c908b908b908b908b90600401611aa5565b600060405180830381600087803b158015610dbc57600080fd5b505af1158015610dd0573d6000803e3d6000fd5b505050506000610dfd7f000000000000000000000000000000000000000000000000000000000000000090565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e679190611a8c565b9050610e738188611a66565b8214828289909192610ea957604051631f82726b60e21b815260048101939093526024830191909152604482015260640161052d565b505050876001600160a01b0316336001600160a01b03168a6001600160a01b03167fedeef164a6af3d5877b558880222d022aafee6e9787cafd3e5055f7d33306dd68a604051610efb91815260200190565b60405180910390a450505050505050505050565b6040805160008152602081019091526060908267ffffffffffffffff811115610f3a57610f3a611af0565b604051908082528060200260200182016040528015610f6d57816020015b6060815260200190600190039081610f585790505b50915060005b83811015610fef57610fca30868684818110610f9157610f91611b06565b9050602002810190610fa39190611b1c565b85604051602001610fb693929190611b6a565b60405160208183030381529060405261150f565b838281518110610fdc57610fdc611b06565b6020908102919091010152600101610f73565b50505b92915050565b6001600160a01b03808416600090815260016020818152604080842087861685528252808420948616845293905291812091820154825491929161103c9190611a79565b9150505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c99190611a2e565b156110e757604051639e68cf0b60e01b815260040160405180910390fd5b3360009081526001602090815260408083206001600160a01b038781168552908352818420908616845290915281209082900361118d57806001015460000361114357604051638cbd172f60e01b815260040160405180910390fd5b600060018201819055600282018190556040516001600160a01b0385169133917fb2486c13d5da6cdbddffe9f9ec53350f7f15033cec803877fd75ff89d734c9489190a350505050565b805482808210156111ba57604051633db4e69160e01b81526004810192909252602482015260440161052d565b5050600181018290556111ed7f000000000000000000000000000000000000000000000000000000000000000042611a66565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc9161123d91888252602082015260400190565b60405180910390a450505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cd9190611a2e565b156112eb57604051639e68cf0b60e01b815260040160405180910390fd5b3360009081526001602090815260408083206001600160a01b03868116855290835281842090851684529091528120600281015490910361133f57604051638cbd172f60e01b815260040160405180910390fd5b6002810154429081811061136f57604051633c50db7960e11b81526004810192909252602482015260440161052d565b50506000816000015482600101541161138c57816001015461138f565b81545b9050808260000160008282546113a59190611a79565b909155505060006001830181905560028301556113ec6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611585565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f78460405161123d91815260200190565b6001600160a01b038085166000908152600160209081526040808320878516845282528083209386168352929052908120805483929061147c908490611a66565b909155506114b690506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611637565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a968460405161123d91815260200190565b61150d611678565b565b6060600080846001600160a01b03168460405161152c9190611b91565b600060405180830381855af49150503d8060008114611567576040519150601f19603f3d011682016040523d82523d6000602084013e61156c565b606091505b509150915061157c8583836116c1565b95945050505050565b8015610a795760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af11580156115db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ff9190611a2e565b610a795760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161052d565b8015610a79576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064016115bc565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661150d57604051631afcd79f60e31b815260040160405180910390fd5b6060826116d6576116d18261171d565b611040565b81511580156116ed57506001600160a01b0384163b155b1561171657604051639996b31560e01b81526001600160a01b038516600482015260240161052d565b5080611040565b80511561172d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461175d57600080fd5b919050565b60006020828403121561177457600080fd5b61104082611746565b6000806040838503121561179057600080fd5b61179983611746565b946020939093013593505050565b600080600080608085870312156117bd57600080fd5b6117c685611746565b93506117d460208601611746565b92506117e260408601611746565b9396929550929360600135925050565b60008060006060848603121561180757600080fd5b61181084611746565b925061181e60208501611746565b915061182c60408501611746565b90509250925092565b60008060006060848603121561184a57600080fd5b61185384611746565b925061186160208501611746565b929592945050506040919091013590565b60008060008060008060c0878903121561188b57600080fd5b86356003811061189a57600080fd5b95506118a860208801611746565b94506118b660408801611746565b9350606087013592506118cb60808801611746565b9598949750929591949360a090920135925050565b600080602083850312156118f357600080fd5b823567ffffffffffffffff81111561190a57600080fd5b8301601f8101851361191b57600080fd5b803567ffffffffffffffff81111561193257600080fd5b8560208260051b840101111561194757600080fd5b6020919091019590945092505050565b60005b8381101561197257818101518382015260200161195a565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156119ef57603f19878603018452815180518087526119cc816020890160208501611957565b601f01601f191695909501602090810195509384019391909101906001016119a3565b50929695505050505050565b60008060408385031215611a0e57600080fd5b611a1783611746565b9150611a2560208401611746565b90509250929050565b600060208284031215611a4057600080fd5b8151801515811461104057600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610ff257610ff2611a50565b81810381811115610ff257610ff2611a50565b600060208284031215611a9e57600080fd5b5051919050565b60a0810160038710611ac757634e487b7160e01b600052602160045260246000fd5b9581526001600160a01b0394851660208201526040810193909352921660608201526080015290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112611b3357600080fd5b83018035915067ffffffffffffffff821115611b4e57600080fd5b602001915036819003821315611b6357600080fd5b9250929050565b828482376000838201600081528351611b87818360208801611957565b0195945050505050565b60008251611ba3818460208701611957565b919091019291505056fea2646970667358221220a2310128f8eef1d4020c2e25f9c893bf4089333983224daab65c35fcea8e45cd64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#GraphProxy.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#GraphProxy.json deleted file mode 100644 index 2cfb21e41..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#GraphProxy.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "GraphProxy", - "sourceName": "contracts/upgrades/GraphProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_impl", - "type": "address" - }, - { - "internalType": "address", - "name": "_admin", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldAdmin", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "ImplementationUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldPendingImplementation", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newPendingImplementation", - "type": "address" - } - ], - "name": "PendingImplementationUpdated", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "name": "acceptUpgrade", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptUpgradeAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "admin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "pendingImplementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newAdmin", - "type": "address" - } - ], - "name": "setAdmin", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c", - "deployedBytecode": "0x6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager.json deleted file mode 100644 index 909757608..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager.json +++ /dev/null @@ -1,635 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "RewardsManager", - "sourceName": "contracts/rewards/RewardsManager.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "nameHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractSynced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "param", - "type": "string" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationID", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "RewardsAssigned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "RewardsDenied", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sinceBlock", - "type": "uint256" - } - ], - "name": "RewardsDenylistUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "name": "SetController", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldSubgraphService", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newSubgraphService", - "type": "address" - } - ], - "name": "SubgraphServiceSet", - "type": "event" - }, - { - "inputs": [], - "name": "accRewardsPerSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "accRewardsPerSignalLastBlockUpdated", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_accRewardsPerAllocatedToken", - "type": "uint256" - } - ], - "name": "calcRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "controller", - "outputs": [ - { - "internalType": "contract IController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "denylist", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getAccRewardsForSubgraph", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getAccRewardsPerAllocatedToken", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getAccRewardsPerSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getNewRewardsPerSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allocationID", - "type": "address" - } - ], - "name": "getRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "isDenied", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "issuancePerBlock", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumSubgraphSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "onSubgraphAllocationUpdate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "onSubgraphSignalUpdate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "setController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "bool", - "name": "_deny", - "type": "bool" - } - ], - "name": "setDenied", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32[]", - "name": "_subgraphDeploymentID", - "type": "bytes32[]" - }, - { - "internalType": "bool[]", - "name": "_deny", - "type": "bool[]" - } - ], - "name": "setDeniedMany", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_issuancePerBlock", - "type": "uint256" - } - ], - "name": "setIssuancePerBlock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_minimumSubgraphSignal", - "type": "uint256" - } - ], - "name": "setMinimumSubgraphSignal", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_subgraphAvailabilityOracle", - "type": "address" - } - ], - "name": "setSubgraphAvailabilityOracle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_subgraphService", - "type": "address" - } - ], - "name": "setSubgraphService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "subgraphAvailabilityOracle", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "subgraphService", - "outputs": [ - { - "internalType": "contract IRewardsIssuer", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "subgraphs", - "outputs": [ - { - "internalType": "uint256", - "name": "accRewardsForSubgraph", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsForSubgraphSnapshot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerSignalSnapshot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "syncAllContracts", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allocationID", - "type": "address" - } - ], - "name": "takeRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "updateAccRewardsPerSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e051610100516101205161014051611eb861017360003980610fe1525080610fb8525080610f8f528061194f525080610f6652806116d2525080610f3d525080610f14525080610eeb52806115165250611eb86000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806392eefe9b1161010f578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103cb578063e820e284146103d3578063eeac3e0e146103f3578063f77c479114610406576101e5565b8063c8a5f81e14610395578063d6866ea5146103a8578063db750926146103b0578063e242cf1e146103c3576101e5565b8063a8cc0ee2116100de578063a8cc0ee21461036a578063b951acd714610372578063c4d66de81461037a578063c7d1117d1461038d576101e5565b806392eefe9b1461031e57806393a90a1e146103315780639ce7abe514610344578063a2594d8214610357576101e5565b806326058249116101875780636c080f18116101565780636c080f18146102da578063702a280e146102e257806379ee54f7146103035780639006ce8b14610316576101e5565b806326058249146102895780634986594f146102915780634bbfc1c5146102b45780635c6cbd59146102c7576101e5565b80631324a506116101c35780631324a5061461023057806316a84ab2146102435780631d1c2fec146102635780631debaded14610276576101e5565b806305bb8c6b146101ea5780630903c094146102085780631156bdc11461021d575b600080fd5b6101f261040e565b6040516101ff9190611c75565b60405180910390f35b61021b610216366004611a54565b61041d565b005b61021b61022b366004611b75565b610479565b61021b61023e366004611b8d565b61048d565b610256610251366004611b75565b6104ce565b6040516101ff9190611cad565b610256610271366004611b75565b6104e0565b61021b610284366004611ad4565b610519565b6101f26105b8565b6102a461029f366004611b75565b6105c7565b6040516101ff9493929190611e23565b61021b6102c2366004611b75565b6105ee565b6102566102d5366004611b75565b6106ea565b6102566107db565b6102f56102f0366004611b75565b6107e1565b6040516101ff929190611e15565b610256610311366004611a54565b610955565b610256610b3d565b61021b61032c366004611a54565b610b43565b61021b61033f366004611a54565b610b54565b61021b610352366004611bbc565b610bae565b61021b610365366004611a54565b610d04565b610256610e1f565b610256610e3b565b61021b610388366004611a54565b610e41565b610256610ead565b6102566103a3366004611c54565b610ec5565b61021b610ee6565b6102566103be366004611a54565b611007565b610256611232565b610256611238565b6103e66103e1366004611b75565b611347565b6040516101ff9190611ca2565b610256610401366004611b75565b61135b565b6101f261138d565b600f546001600160a01b031681565b61042561139c565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611cb6565b60405180910390a150565b61048161139c565b61048a81611470565b50565b600f546001600160a01b031633146104c05760405162461bcd60e51b81526004016104b790611ced565b60405180910390fd5b6104ca82826114ac565b5050565b60116020526000908152604090205481565b60006104ea610ead565b506000828152601060205260409020610502836106ea565b808255600d5460029092019190915590505b919050565b600f546001600160a01b031633146105435760405162461bcd60e51b81526004016104b790611ced565b8281146105625760405162461bcd60e51b81526004016104b790611dcc565b60005b838110156105b1576105a985858381811061057c57fe5b9050602002013584848481811061058f57fe5b90506020020160208101906105a49190611b3d565b6114ac565b600101610565565b5050505050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b031633148061069b575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561064e57600080fd5b505afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106869190611a70565b6001600160a01b0316336001600160a01b0316145b6106b75760405162461bcd60e51b81526004016104b790611ded565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611d3c565b60008181526010602052604081208161070161150f565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161072c9190611cad565b60206040518083038186803b15801561074457600080fd5b505afa158015610758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077c9190611c3c565b905060006012548210156107915760006107c3565b6107c3670de0b6b3a76400006107bd846107b787600201546107b1610e1f565b9061153a565b90611597565b906115f0565b83549091506107d29082611657565b95945050505050565b60145481565b60008181526010602052604081208190816107fb856106ea565b9050600061080d8284600101546116b1565b905060008060405180604001604052806108256116cb565b6001600160a01b03908116825260155416602090910152905060005b600281101561090457600082826002811061085857fe5b60200201516001600160a01b0316146108fc5781816002811061087757fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016108a79190611cad565b60206040518083038186803b1580156108bf57600080fd5b505afa1580156108d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f79190611c3c565b830192505b600101610841565b508161091b57600084965096505050505050610950565b6000610933836107bd86670de0b6b3a7640000611597565b60038701549091506109459082611657565b975093955050505050505b915091565b60008060009050600060405180604001604052806109716116cb565b6001600160a01b03908116825260155416602090910152905060005b6002811015610a685760008282600281106109a457fe5b60200201516001600160a01b031614610a60578181600281106109c357fe5b60200201516001600160a01b0316636a3ca383866040518263ffffffff1660e01b81526004016109f39190611c75565b60206040518083038186803b158015610a0b57600080fd5b505afa158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a439190611b59565b15610a6057818160028110610a5457fe5b60200201519250610a68565b60010161098d565b506001600160a01b038216610a8257600092505050610514565b600080600080856001600160a01b03166355c85269896040518263ffffffff1660e01b8152600401610ab49190611c75565b60a06040518083038186803b158015610acc57600080fd5b505afa158015610ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b049190611a8c565b9450945094509450506000610b18856107e1565b509050610b30610b298585846116f6565b8390611657565b9998505050505050505050565b600e5481565b610b4b61171b565b61048a8161177a565b610b5c61139c565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6020811015610c1457600080fd5b50516001600160a01b03163314610c72576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610ce657600080fd5b505af1158015610cfa573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610d4057600080fd5b505af1158015610d54573d6000803e3d6000fd5b505050506040513d6020811015610d6a57600080fd5b50516001600160a01b03163314610dc8576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e0357600080fd5b505af1158015610e17573d6000803e3d6000fd5b505050505050565b6000610e35610e2c611238565b600d5490611657565b90505b90565b60125481565b610e49611822565b6001600160a01b0316336001600160a01b031614610ea4576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61048a81610b4b565b6000610eb7610e1f565b600d81905543600e55905090565b6000610edd670de0b6b3a76400006107bd8486611597565b90505b92915050565b610f0f7f0000000000000000000000000000000000000000000000000000000000000000611847565b610f387f0000000000000000000000000000000000000000000000000000000000000000611847565b610f617f0000000000000000000000000000000000000000000000000000000000000000611847565b610f8a7f0000000000000000000000000000000000000000000000000000000000000000611847565b610fb37f0000000000000000000000000000000000000000000000000000000000000000611847565b610fdc7f0000000000000000000000000000000000000000000000000000000000000000611847565b6110057f0000000000000000000000000000000000000000000000000000000000000000611847565b565b6000336110126116cb565b6001600160a01b0316816001600160a01b0316148061103e57506015546001600160a01b038281169116145b61105a5760405162461bcd60e51b81526004016104b790611d95565b6000806000806000856001600160a01b03166355c85269896040518263ffffffff1660e01b815260040161108e9190611c75565b60a06040518083038186803b1580156110a657600080fd5b505afa1580156110ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110de9190611a8c565b9450945094509450945060006110f38561135b565b90506110fe85611347565b1561115357886001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000975050505050505050610514565b600061116a6111638686856116f6565b8490611657565b905080156111da5761117a611948565b6001600160a01b03166340c10f1989836040518363ffffffff1660e01b81526004016111a7929190611c89565b600060405180830381600087803b1580156111c157600080fd5b505af11580156111d5573d6000803e3d6000fd5b505050505b896001600160a01b0316876001600160a01b03167fbf5617ec135b48259c44e1ae312a03606f36e174082ef2e87042b86ceebace648360405161121d9190611cad565b60405180910390a39998505050505050505050565b600d5481565b600080611250600e544361153a90919063ffffffff16565b905080611261576000915050610e38565b601454611272576000915050610e38565b600061127c611948565b90506000816001600160a01b03166370a0823161129761150f565b6040518263ffffffff1660e01b81526004016112b39190611c75565b60206040518083038186803b1580156112cb57600080fd5b505afa1580156112df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113039190611c3c565b9050806113165760009350505050610e38565b6014546000906113269085611597565b905061133e826107bd83670de0b6b3a7640000611597565b94505050505090565b600090815260116020526040902054151590565b60008181526010602052604081208180611374856107e1565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b1580156113e857600080fd5b505afa1580156113fc573d6000803e3d6000fd5b505050506040513d602081101561141257600080fd5b50516001600160a01b03163314611005576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611478610ead565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611d6b565b6000816114ba5760006114bc565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a90611502908490611cad565b60405180910390a2505050565b6000610e357f000000000000000000000000000000000000000000000000000000000000000061196f565b600082821115611591576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826115a657506000610ee0565b828202828482816115b357fe5b0414610edd5760405162461bcd60e51b8152600401808060200182810382526021815260200180611e626021913960400191505060405180910390fd5b6000808211611646576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161164f57fe5b049392505050565b600082820183811015610edd576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008183116116c1576000610edd565b610edd838361153a565b6000610e357f000000000000000000000000000000000000000000000000000000000000000061196f565b600080611703838561153a565b90506107d2670de0b6b3a76400006107bd8388611597565b6000546001600160a01b03163314611005576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166117ce576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561189457600080fd5b505afa1580156118a8573d6000803e3d6000fd5b505050506040513d60208110156118be57600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ca5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610e357f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b031680610ee05760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b1580156119d857600080fd5b505afa1580156119ec573d6000803e3d6000fd5b505050506040513d6020811015611a0257600080fd5b50519392505050565b60008083601f840112611a1c578182fd5b50813567ffffffffffffffff811115611a33578182fd5b6020830191508360208083028501011115611a4d57600080fd5b9250929050565b600060208284031215611a65578081fd5b8135610edd81611e3e565b600060208284031215611a81578081fd5b8151610edd81611e3e565b600080600080600060a08688031215611aa3578081fd5b8551611aae81611e3e565b602087015160408801516060890151608090990151929a91995097965090945092505050565b60008060008060408587031215611ae9578384fd5b843567ffffffffffffffff80821115611b00578586fd5b611b0c88838901611a0b565b90965094506020870135915080821115611b24578384fd5b50611b3187828801611a0b565b95989497509550505050565b600060208284031215611b4e578081fd5b8135610edd81611e53565b600060208284031215611b6a578081fd5b8151610edd81611e53565b600060208284031215611b86578081fd5b5035919050565b60008060408385031215611b9f578182fd5b823591506020830135611bb181611e53565b809150509250929050565b600080600060408486031215611bd0578283fd5b8335611bdb81611e3e565b9250602084013567ffffffffffffffff80821115611bf7578384fd5b818601915086601f830112611c0a578384fd5b813581811115611c18578485fd5b876020828501011115611c29578485fd5b6020830194508093505050509250925092565b600060208284031215611c4d578081fd5b5051919050565b60008060408385031215611c66578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b602080825260079082015266042d8cadccee8d60cb1b604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461048a57600080fd5b801515811461048a57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f18b1a1091f1c6856415c7806703c6da0f0a9f186640f4b0f22d6d3964d5934764736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c806392eefe9b1161010f578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103cb578063e820e284146103d3578063eeac3e0e146103f3578063f77c479114610406576101e5565b8063c8a5f81e14610395578063d6866ea5146103a8578063db750926146103b0578063e242cf1e146103c3576101e5565b8063a8cc0ee2116100de578063a8cc0ee21461036a578063b951acd714610372578063c4d66de81461037a578063c7d1117d1461038d576101e5565b806392eefe9b1461031e57806393a90a1e146103315780639ce7abe514610344578063a2594d8214610357576101e5565b806326058249116101875780636c080f18116101565780636c080f18146102da578063702a280e146102e257806379ee54f7146103035780639006ce8b14610316576101e5565b806326058249146102895780634986594f146102915780634bbfc1c5146102b45780635c6cbd59146102c7576101e5565b80631324a506116101c35780631324a5061461023057806316a84ab2146102435780631d1c2fec146102635780631debaded14610276576101e5565b806305bb8c6b146101ea5780630903c094146102085780631156bdc11461021d575b600080fd5b6101f261040e565b6040516101ff9190611c75565b60405180910390f35b61021b610216366004611a54565b61041d565b005b61021b61022b366004611b75565b610479565b61021b61023e366004611b8d565b61048d565b610256610251366004611b75565b6104ce565b6040516101ff9190611cad565b610256610271366004611b75565b6104e0565b61021b610284366004611ad4565b610519565b6101f26105b8565b6102a461029f366004611b75565b6105c7565b6040516101ff9493929190611e23565b61021b6102c2366004611b75565b6105ee565b6102566102d5366004611b75565b6106ea565b6102566107db565b6102f56102f0366004611b75565b6107e1565b6040516101ff929190611e15565b610256610311366004611a54565b610955565b610256610b3d565b61021b61032c366004611a54565b610b43565b61021b61033f366004611a54565b610b54565b61021b610352366004611bbc565b610bae565b61021b610365366004611a54565b610d04565b610256610e1f565b610256610e3b565b61021b610388366004611a54565b610e41565b610256610ead565b6102566103a3366004611c54565b610ec5565b61021b610ee6565b6102566103be366004611a54565b611007565b610256611232565b610256611238565b6103e66103e1366004611b75565b611347565b6040516101ff9190611ca2565b610256610401366004611b75565b61135b565b6101f261138d565b600f546001600160a01b031681565b61042561139c565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611cb6565b60405180910390a150565b61048161139c565b61048a81611470565b50565b600f546001600160a01b031633146104c05760405162461bcd60e51b81526004016104b790611ced565b60405180910390fd5b6104ca82826114ac565b5050565b60116020526000908152604090205481565b60006104ea610ead565b506000828152601060205260409020610502836106ea565b808255600d5460029092019190915590505b919050565b600f546001600160a01b031633146105435760405162461bcd60e51b81526004016104b790611ced565b8281146105625760405162461bcd60e51b81526004016104b790611dcc565b60005b838110156105b1576105a985858381811061057c57fe5b9050602002013584848481811061058f57fe5b90506020020160208101906105a49190611b3d565b6114ac565b600101610565565b5050505050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b031633148061069b575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561064e57600080fd5b505afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106869190611a70565b6001600160a01b0316336001600160a01b0316145b6106b75760405162461bcd60e51b81526004016104b790611ded565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611d3c565b60008181526010602052604081208161070161150f565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161072c9190611cad565b60206040518083038186803b15801561074457600080fd5b505afa158015610758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077c9190611c3c565b905060006012548210156107915760006107c3565b6107c3670de0b6b3a76400006107bd846107b787600201546107b1610e1f565b9061153a565b90611597565b906115f0565b83549091506107d29082611657565b95945050505050565b60145481565b60008181526010602052604081208190816107fb856106ea565b9050600061080d8284600101546116b1565b905060008060405180604001604052806108256116cb565b6001600160a01b03908116825260155416602090910152905060005b600281101561090457600082826002811061085857fe5b60200201516001600160a01b0316146108fc5781816002811061087757fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016108a79190611cad565b60206040518083038186803b1580156108bf57600080fd5b505afa1580156108d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f79190611c3c565b830192505b600101610841565b508161091b57600084965096505050505050610950565b6000610933836107bd86670de0b6b3a7640000611597565b60038701549091506109459082611657565b975093955050505050505b915091565b60008060009050600060405180604001604052806109716116cb565b6001600160a01b03908116825260155416602090910152905060005b6002811015610a685760008282600281106109a457fe5b60200201516001600160a01b031614610a60578181600281106109c357fe5b60200201516001600160a01b0316636a3ca383866040518263ffffffff1660e01b81526004016109f39190611c75565b60206040518083038186803b158015610a0b57600080fd5b505afa158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a439190611b59565b15610a6057818160028110610a5457fe5b60200201519250610a68565b60010161098d565b506001600160a01b038216610a8257600092505050610514565b600080600080856001600160a01b03166355c85269896040518263ffffffff1660e01b8152600401610ab49190611c75565b60a06040518083038186803b158015610acc57600080fd5b505afa158015610ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b049190611a8c565b9450945094509450506000610b18856107e1565b509050610b30610b298585846116f6565b8390611657565b9998505050505050505050565b600e5481565b610b4b61171b565b61048a8161177a565b610b5c61139c565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6020811015610c1457600080fd5b50516001600160a01b03163314610c72576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610ce657600080fd5b505af1158015610cfa573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610d4057600080fd5b505af1158015610d54573d6000803e3d6000fd5b505050506040513d6020811015610d6a57600080fd5b50516001600160a01b03163314610dc8576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e0357600080fd5b505af1158015610e17573d6000803e3d6000fd5b505050505050565b6000610e35610e2c611238565b600d5490611657565b90505b90565b60125481565b610e49611822565b6001600160a01b0316336001600160a01b031614610ea4576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61048a81610b4b565b6000610eb7610e1f565b600d81905543600e55905090565b6000610edd670de0b6b3a76400006107bd8486611597565b90505b92915050565b610f0f7f0000000000000000000000000000000000000000000000000000000000000000611847565b610f387f0000000000000000000000000000000000000000000000000000000000000000611847565b610f617f0000000000000000000000000000000000000000000000000000000000000000611847565b610f8a7f0000000000000000000000000000000000000000000000000000000000000000611847565b610fb37f0000000000000000000000000000000000000000000000000000000000000000611847565b610fdc7f0000000000000000000000000000000000000000000000000000000000000000611847565b6110057f0000000000000000000000000000000000000000000000000000000000000000611847565b565b6000336110126116cb565b6001600160a01b0316816001600160a01b0316148061103e57506015546001600160a01b038281169116145b61105a5760405162461bcd60e51b81526004016104b790611d95565b6000806000806000856001600160a01b03166355c85269896040518263ffffffff1660e01b815260040161108e9190611c75565b60a06040518083038186803b1580156110a657600080fd5b505afa1580156110ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110de9190611a8c565b9450945094509450945060006110f38561135b565b90506110fe85611347565b1561115357886001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000975050505050505050610514565b600061116a6111638686856116f6565b8490611657565b905080156111da5761117a611948565b6001600160a01b03166340c10f1989836040518363ffffffff1660e01b81526004016111a7929190611c89565b600060405180830381600087803b1580156111c157600080fd5b505af11580156111d5573d6000803e3d6000fd5b505050505b896001600160a01b0316876001600160a01b03167fbf5617ec135b48259c44e1ae312a03606f36e174082ef2e87042b86ceebace648360405161121d9190611cad565b60405180910390a39998505050505050505050565b600d5481565b600080611250600e544361153a90919063ffffffff16565b905080611261576000915050610e38565b601454611272576000915050610e38565b600061127c611948565b90506000816001600160a01b03166370a0823161129761150f565b6040518263ffffffff1660e01b81526004016112b39190611c75565b60206040518083038186803b1580156112cb57600080fd5b505afa1580156112df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113039190611c3c565b9050806113165760009350505050610e38565b6014546000906113269085611597565b905061133e826107bd83670de0b6b3a7640000611597565b94505050505090565b600090815260116020526040902054151590565b60008181526010602052604081208180611374856107e1565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b1580156113e857600080fd5b505afa1580156113fc573d6000803e3d6000fd5b505050506040513d602081101561141257600080fd5b50516001600160a01b03163314611005576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611478610ead565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611d6b565b6000816114ba5760006114bc565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a90611502908490611cad565b60405180910390a2505050565b6000610e357f000000000000000000000000000000000000000000000000000000000000000061196f565b600082821115611591576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826115a657506000610ee0565b828202828482816115b357fe5b0414610edd5760405162461bcd60e51b8152600401808060200182810382526021815260200180611e626021913960400191505060405180910390fd5b6000808211611646576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161164f57fe5b049392505050565b600082820183811015610edd576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008183116116c1576000610edd565b610edd838361153a565b6000610e357f000000000000000000000000000000000000000000000000000000000000000061196f565b600080611703838561153a565b90506107d2670de0b6b3a76400006107bd8388611597565b6000546001600160a01b03163314611005576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166117ce576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561189457600080fd5b505afa1580156118a8573d6000803e3d6000fd5b505050506040513d60208110156118be57600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ca5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610e357f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b031680610ee05760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b1580156119d857600080fd5b505afa1580156119ec573d6000803e3d6000fd5b505050506040513d6020811015611a0257600080fd5b50519392505050565b60008083601f840112611a1c578182fd5b50813567ffffffffffffffff811115611a33578182fd5b6020830191508360208083028501011115611a4d57600080fd5b9250929050565b600060208284031215611a65578081fd5b8135610edd81611e3e565b600060208284031215611a81578081fd5b8151610edd81611e3e565b600080600080600060a08688031215611aa3578081fd5b8551611aae81611e3e565b602087015160408801516060890151608090990151929a91995097965090945092505050565b60008060008060408587031215611ae9578384fd5b843567ffffffffffffffff80821115611b00578586fd5b611b0c88838901611a0b565b90965094506020870135915080821115611b24578384fd5b50611b3187828801611a0b565b95989497509550505050565b600060208284031215611b4e578081fd5b8135610edd81611e53565b600060208284031215611b6a578081fd5b8151610edd81611e53565b600060208284031215611b86578081fd5b5035919050565b60008060408385031215611b9f578182fd5b823591506020830135611bb181611e53565b809150509250929050565b600080600060408486031215611bd0578283fd5b8335611bdb81611e3e565b9250602084013567ffffffffffffffff80821115611bf7578384fd5b818601915086601f830112611c0a578384fd5b813581811115611c18578485fd5b876020828501011115611c29578485fd5b6020830194508093505050509250925092565b600060208284031215611c4d578081fd5b5051919050565b60008060408385031215611c66578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b602080825260079082015266042d8cadccee8d60cb1b604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461048a57600080fd5b801515811461048a57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f18b1a1091f1c6856415c7806703c6da0f0a9f186640f4b0f22d6d3964d5934764736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager_Instance.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager_Instance.json deleted file mode 100644 index 909757608..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/RewardsManager#RewardsManager_Instance.json +++ /dev/null @@ -1,635 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "RewardsManager", - "sourceName": "contracts/rewards/RewardsManager.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "nameHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "ContractSynced", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "param", - "type": "string" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationID", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "RewardsAssigned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "RewardsDenied", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sinceBlock", - "type": "uint256" - } - ], - "name": "RewardsDenylistUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "name": "SetController", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "oldSubgraphService", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newSubgraphService", - "type": "address" - } - ], - "name": "SubgraphServiceSet", - "type": "event" - }, - { - "inputs": [], - "name": "accRewardsPerSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "accRewardsPerSignalLastBlockUpdated", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - } - ], - "name": "acceptProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IGraphProxy", - "name": "_proxy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "acceptProxyAndCall", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_accRewardsPerAllocatedToken", - "type": "uint256" - } - ], - "name": "calcRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "controller", - "outputs": [ - { - "internalType": "contract IController", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "denylist", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getAccRewardsForSubgraph", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getAccRewardsPerAllocatedToken", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getAccRewardsPerSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getNewRewardsPerSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allocationID", - "type": "address" - } - ], - "name": "getRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "isDenied", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "issuancePerBlock", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumSubgraphSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "onSubgraphAllocationUpdate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "onSubgraphSignalUpdate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "setController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "bool", - "name": "_deny", - "type": "bool" - } - ], - "name": "setDenied", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32[]", - "name": "_subgraphDeploymentID", - "type": "bytes32[]" - }, - { - "internalType": "bool[]", - "name": "_deny", - "type": "bool[]" - } - ], - "name": "setDeniedMany", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_issuancePerBlock", - "type": "uint256" - } - ], - "name": "setIssuancePerBlock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_minimumSubgraphSignal", - "type": "uint256" - } - ], - "name": "setMinimumSubgraphSignal", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_subgraphAvailabilityOracle", - "type": "address" - } - ], - "name": "setSubgraphAvailabilityOracle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_subgraphService", - "type": "address" - } - ], - "name": "setSubgraphService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "subgraphAvailabilityOracle", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "subgraphService", - "outputs": [ - { - "internalType": "contract IRewardsIssuer", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "subgraphs", - "outputs": [ - { - "internalType": "uint256", - "name": "accRewardsForSubgraph", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsForSubgraphSnapshot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerSignalSnapshot", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "syncAllContracts", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allocationID", - "type": "address" - } - ], - "name": "takeRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "updateAccRewardsPerSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e051610100516101205161014051611eb861017360003980610fe1525080610fb8525080610f8f528061194f525080610f6652806116d2525080610f3d525080610f14525080610eeb52806115165250611eb86000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806392eefe9b1161010f578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103cb578063e820e284146103d3578063eeac3e0e146103f3578063f77c479114610406576101e5565b8063c8a5f81e14610395578063d6866ea5146103a8578063db750926146103b0578063e242cf1e146103c3576101e5565b8063a8cc0ee2116100de578063a8cc0ee21461036a578063b951acd714610372578063c4d66de81461037a578063c7d1117d1461038d576101e5565b806392eefe9b1461031e57806393a90a1e146103315780639ce7abe514610344578063a2594d8214610357576101e5565b806326058249116101875780636c080f18116101565780636c080f18146102da578063702a280e146102e257806379ee54f7146103035780639006ce8b14610316576101e5565b806326058249146102895780634986594f146102915780634bbfc1c5146102b45780635c6cbd59146102c7576101e5565b80631324a506116101c35780631324a5061461023057806316a84ab2146102435780631d1c2fec146102635780631debaded14610276576101e5565b806305bb8c6b146101ea5780630903c094146102085780631156bdc11461021d575b600080fd5b6101f261040e565b6040516101ff9190611c75565b60405180910390f35b61021b610216366004611a54565b61041d565b005b61021b61022b366004611b75565b610479565b61021b61023e366004611b8d565b61048d565b610256610251366004611b75565b6104ce565b6040516101ff9190611cad565b610256610271366004611b75565b6104e0565b61021b610284366004611ad4565b610519565b6101f26105b8565b6102a461029f366004611b75565b6105c7565b6040516101ff9493929190611e23565b61021b6102c2366004611b75565b6105ee565b6102566102d5366004611b75565b6106ea565b6102566107db565b6102f56102f0366004611b75565b6107e1565b6040516101ff929190611e15565b610256610311366004611a54565b610955565b610256610b3d565b61021b61032c366004611a54565b610b43565b61021b61033f366004611a54565b610b54565b61021b610352366004611bbc565b610bae565b61021b610365366004611a54565b610d04565b610256610e1f565b610256610e3b565b61021b610388366004611a54565b610e41565b610256610ead565b6102566103a3366004611c54565b610ec5565b61021b610ee6565b6102566103be366004611a54565b611007565b610256611232565b610256611238565b6103e66103e1366004611b75565b611347565b6040516101ff9190611ca2565b610256610401366004611b75565b61135b565b6101f261138d565b600f546001600160a01b031681565b61042561139c565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611cb6565b60405180910390a150565b61048161139c565b61048a81611470565b50565b600f546001600160a01b031633146104c05760405162461bcd60e51b81526004016104b790611ced565b60405180910390fd5b6104ca82826114ac565b5050565b60116020526000908152604090205481565b60006104ea610ead565b506000828152601060205260409020610502836106ea565b808255600d5460029092019190915590505b919050565b600f546001600160a01b031633146105435760405162461bcd60e51b81526004016104b790611ced565b8281146105625760405162461bcd60e51b81526004016104b790611dcc565b60005b838110156105b1576105a985858381811061057c57fe5b9050602002013584848481811061058f57fe5b90506020020160208101906105a49190611b3d565b6114ac565b600101610565565b5050505050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b031633148061069b575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561064e57600080fd5b505afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106869190611a70565b6001600160a01b0316336001600160a01b0316145b6106b75760405162461bcd60e51b81526004016104b790611ded565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611d3c565b60008181526010602052604081208161070161150f565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161072c9190611cad565b60206040518083038186803b15801561074457600080fd5b505afa158015610758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077c9190611c3c565b905060006012548210156107915760006107c3565b6107c3670de0b6b3a76400006107bd846107b787600201546107b1610e1f565b9061153a565b90611597565b906115f0565b83549091506107d29082611657565b95945050505050565b60145481565b60008181526010602052604081208190816107fb856106ea565b9050600061080d8284600101546116b1565b905060008060405180604001604052806108256116cb565b6001600160a01b03908116825260155416602090910152905060005b600281101561090457600082826002811061085857fe5b60200201516001600160a01b0316146108fc5781816002811061087757fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016108a79190611cad565b60206040518083038186803b1580156108bf57600080fd5b505afa1580156108d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f79190611c3c565b830192505b600101610841565b508161091b57600084965096505050505050610950565b6000610933836107bd86670de0b6b3a7640000611597565b60038701549091506109459082611657565b975093955050505050505b915091565b60008060009050600060405180604001604052806109716116cb565b6001600160a01b03908116825260155416602090910152905060005b6002811015610a685760008282600281106109a457fe5b60200201516001600160a01b031614610a60578181600281106109c357fe5b60200201516001600160a01b0316636a3ca383866040518263ffffffff1660e01b81526004016109f39190611c75565b60206040518083038186803b158015610a0b57600080fd5b505afa158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a439190611b59565b15610a6057818160028110610a5457fe5b60200201519250610a68565b60010161098d565b506001600160a01b038216610a8257600092505050610514565b600080600080856001600160a01b03166355c85269896040518263ffffffff1660e01b8152600401610ab49190611c75565b60a06040518083038186803b158015610acc57600080fd5b505afa158015610ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b049190611a8c565b9450945094509450506000610b18856107e1565b509050610b30610b298585846116f6565b8390611657565b9998505050505050505050565b600e5481565b610b4b61171b565b61048a8161177a565b610b5c61139c565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6020811015610c1457600080fd5b50516001600160a01b03163314610c72576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610ce657600080fd5b505af1158015610cfa573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610d4057600080fd5b505af1158015610d54573d6000803e3d6000fd5b505050506040513d6020811015610d6a57600080fd5b50516001600160a01b03163314610dc8576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e0357600080fd5b505af1158015610e17573d6000803e3d6000fd5b505050505050565b6000610e35610e2c611238565b600d5490611657565b90505b90565b60125481565b610e49611822565b6001600160a01b0316336001600160a01b031614610ea4576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61048a81610b4b565b6000610eb7610e1f565b600d81905543600e55905090565b6000610edd670de0b6b3a76400006107bd8486611597565b90505b92915050565b610f0f7f0000000000000000000000000000000000000000000000000000000000000000611847565b610f387f0000000000000000000000000000000000000000000000000000000000000000611847565b610f617f0000000000000000000000000000000000000000000000000000000000000000611847565b610f8a7f0000000000000000000000000000000000000000000000000000000000000000611847565b610fb37f0000000000000000000000000000000000000000000000000000000000000000611847565b610fdc7f0000000000000000000000000000000000000000000000000000000000000000611847565b6110057f0000000000000000000000000000000000000000000000000000000000000000611847565b565b6000336110126116cb565b6001600160a01b0316816001600160a01b0316148061103e57506015546001600160a01b038281169116145b61105a5760405162461bcd60e51b81526004016104b790611d95565b6000806000806000856001600160a01b03166355c85269896040518263ffffffff1660e01b815260040161108e9190611c75565b60a06040518083038186803b1580156110a657600080fd5b505afa1580156110ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110de9190611a8c565b9450945094509450945060006110f38561135b565b90506110fe85611347565b1561115357886001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000975050505050505050610514565b600061116a6111638686856116f6565b8490611657565b905080156111da5761117a611948565b6001600160a01b03166340c10f1989836040518363ffffffff1660e01b81526004016111a7929190611c89565b600060405180830381600087803b1580156111c157600080fd5b505af11580156111d5573d6000803e3d6000fd5b505050505b896001600160a01b0316876001600160a01b03167fbf5617ec135b48259c44e1ae312a03606f36e174082ef2e87042b86ceebace648360405161121d9190611cad565b60405180910390a39998505050505050505050565b600d5481565b600080611250600e544361153a90919063ffffffff16565b905080611261576000915050610e38565b601454611272576000915050610e38565b600061127c611948565b90506000816001600160a01b03166370a0823161129761150f565b6040518263ffffffff1660e01b81526004016112b39190611c75565b60206040518083038186803b1580156112cb57600080fd5b505afa1580156112df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113039190611c3c565b9050806113165760009350505050610e38565b6014546000906113269085611597565b905061133e826107bd83670de0b6b3a7640000611597565b94505050505090565b600090815260116020526040902054151590565b60008181526010602052604081208180611374856107e1565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b1580156113e857600080fd5b505afa1580156113fc573d6000803e3d6000fd5b505050506040513d602081101561141257600080fd5b50516001600160a01b03163314611005576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611478610ead565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611d6b565b6000816114ba5760006114bc565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a90611502908490611cad565b60405180910390a2505050565b6000610e357f000000000000000000000000000000000000000000000000000000000000000061196f565b600082821115611591576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826115a657506000610ee0565b828202828482816115b357fe5b0414610edd5760405162461bcd60e51b8152600401808060200182810382526021815260200180611e626021913960400191505060405180910390fd5b6000808211611646576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161164f57fe5b049392505050565b600082820183811015610edd576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008183116116c1576000610edd565b610edd838361153a565b6000610e357f000000000000000000000000000000000000000000000000000000000000000061196f565b600080611703838561153a565b90506107d2670de0b6b3a76400006107bd8388611597565b6000546001600160a01b03163314611005576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166117ce576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561189457600080fd5b505afa1580156118a8573d6000803e3d6000fd5b505050506040513d60208110156118be57600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ca5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610e357f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b031680610ee05760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b1580156119d857600080fd5b505afa1580156119ec573d6000803e3d6000fd5b505050506040513d6020811015611a0257600080fd5b50519392505050565b60008083601f840112611a1c578182fd5b50813567ffffffffffffffff811115611a33578182fd5b6020830191508360208083028501011115611a4d57600080fd5b9250929050565b600060208284031215611a65578081fd5b8135610edd81611e3e565b600060208284031215611a81578081fd5b8151610edd81611e3e565b600080600080600060a08688031215611aa3578081fd5b8551611aae81611e3e565b602087015160408801516060890151608090990151929a91995097965090945092505050565b60008060008060408587031215611ae9578384fd5b843567ffffffffffffffff80821115611b00578586fd5b611b0c88838901611a0b565b90965094506020870135915080821115611b24578384fd5b50611b3187828801611a0b565b95989497509550505050565b600060208284031215611b4e578081fd5b8135610edd81611e53565b600060208284031215611b6a578081fd5b8151610edd81611e53565b600060208284031215611b86578081fd5b5035919050565b60008060408385031215611b9f578182fd5b823591506020830135611bb181611e53565b809150509250929050565b600080600060408486031215611bd0578283fd5b8335611bdb81611e3e565b9250602084013567ffffffffffffffff80821115611bf7578384fd5b818601915086601f830112611c0a578384fd5b813581811115611c18578485fd5b876020828501011115611c29578485fd5b6020830194508093505050509250925092565b600060208284031215611c4d578081fd5b5051919050565b60008060408385031215611c66578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b602080825260079082015266042d8cadccee8d60cb1b604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461048a57600080fd5b801515811461048a57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f18b1a1091f1c6856415c7806703c6da0f0a9f186640f4b0f22d6d3964d5934764736f6c63430007060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c806392eefe9b1161010f578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103cb578063e820e284146103d3578063eeac3e0e146103f3578063f77c479114610406576101e5565b8063c8a5f81e14610395578063d6866ea5146103a8578063db750926146103b0578063e242cf1e146103c3576101e5565b8063a8cc0ee2116100de578063a8cc0ee21461036a578063b951acd714610372578063c4d66de81461037a578063c7d1117d1461038d576101e5565b806392eefe9b1461031e57806393a90a1e146103315780639ce7abe514610344578063a2594d8214610357576101e5565b806326058249116101875780636c080f18116101565780636c080f18146102da578063702a280e146102e257806379ee54f7146103035780639006ce8b14610316576101e5565b806326058249146102895780634986594f146102915780634bbfc1c5146102b45780635c6cbd59146102c7576101e5565b80631324a506116101c35780631324a5061461023057806316a84ab2146102435780631d1c2fec146102635780631debaded14610276576101e5565b806305bb8c6b146101ea5780630903c094146102085780631156bdc11461021d575b600080fd5b6101f261040e565b6040516101ff9190611c75565b60405180910390f35b61021b610216366004611a54565b61041d565b005b61021b61022b366004611b75565b610479565b61021b61023e366004611b8d565b61048d565b610256610251366004611b75565b6104ce565b6040516101ff9190611cad565b610256610271366004611b75565b6104e0565b61021b610284366004611ad4565b610519565b6101f26105b8565b6102a461029f366004611b75565b6105c7565b6040516101ff9493929190611e23565b61021b6102c2366004611b75565b6105ee565b6102566102d5366004611b75565b6106ea565b6102566107db565b6102f56102f0366004611b75565b6107e1565b6040516101ff929190611e15565b610256610311366004611a54565b610955565b610256610b3d565b61021b61032c366004611a54565b610b43565b61021b61033f366004611a54565b610b54565b61021b610352366004611bbc565b610bae565b61021b610365366004611a54565b610d04565b610256610e1f565b610256610e3b565b61021b610388366004611a54565b610e41565b610256610ead565b6102566103a3366004611c54565b610ec5565b61021b610ee6565b6102566103be366004611a54565b611007565b610256611232565b610256611238565b6103e66103e1366004611b75565b611347565b6040516101ff9190611ca2565b610256610401366004611b75565b61135b565b6101f261138d565b600f546001600160a01b031681565b61042561139c565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611cb6565b60405180910390a150565b61048161139c565b61048a81611470565b50565b600f546001600160a01b031633146104c05760405162461bcd60e51b81526004016104b790611ced565b60405180910390fd5b6104ca82826114ac565b5050565b60116020526000908152604090205481565b60006104ea610ead565b506000828152601060205260409020610502836106ea565b808255600d5460029092019190915590505b919050565b600f546001600160a01b031633146105435760405162461bcd60e51b81526004016104b790611ced565b8281146105625760405162461bcd60e51b81526004016104b790611dcc565b60005b838110156105b1576105a985858381811061057c57fe5b9050602002013584848481811061058f57fe5b90506020020160208101906105a49190611b3d565b6114ac565b600101610565565b5050505050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b031633148061069b575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561064e57600080fd5b505afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106869190611a70565b6001600160a01b0316336001600160a01b0316145b6106b75760405162461bcd60e51b81526004016104b790611ded565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611d3c565b60008181526010602052604081208161070161150f565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161072c9190611cad565b60206040518083038186803b15801561074457600080fd5b505afa158015610758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077c9190611c3c565b905060006012548210156107915760006107c3565b6107c3670de0b6b3a76400006107bd846107b787600201546107b1610e1f565b9061153a565b90611597565b906115f0565b83549091506107d29082611657565b95945050505050565b60145481565b60008181526010602052604081208190816107fb856106ea565b9050600061080d8284600101546116b1565b905060008060405180604001604052806108256116cb565b6001600160a01b03908116825260155416602090910152905060005b600281101561090457600082826002811061085857fe5b60200201516001600160a01b0316146108fc5781816002811061087757fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016108a79190611cad565b60206040518083038186803b1580156108bf57600080fd5b505afa1580156108d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f79190611c3c565b830192505b600101610841565b508161091b57600084965096505050505050610950565b6000610933836107bd86670de0b6b3a7640000611597565b60038701549091506109459082611657565b975093955050505050505b915091565b60008060009050600060405180604001604052806109716116cb565b6001600160a01b03908116825260155416602090910152905060005b6002811015610a685760008282600281106109a457fe5b60200201516001600160a01b031614610a60578181600281106109c357fe5b60200201516001600160a01b0316636a3ca383866040518263ffffffff1660e01b81526004016109f39190611c75565b60206040518083038186803b158015610a0b57600080fd5b505afa158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a439190611b59565b15610a6057818160028110610a5457fe5b60200201519250610a68565b60010161098d565b506001600160a01b038216610a8257600092505050610514565b600080600080856001600160a01b03166355c85269896040518263ffffffff1660e01b8152600401610ab49190611c75565b60a06040518083038186803b158015610acc57600080fd5b505afa158015610ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b049190611a8c565b9450945094509450506000610b18856107e1565b509050610b30610b298585846116f6565b8390611657565b9998505050505050505050565b600e5481565b610b4b61171b565b61048a8161177a565b610b5c61139c565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6020811015610c1457600080fd5b50516001600160a01b03163314610c72576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610ce657600080fd5b505af1158015610cfa573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610d4057600080fd5b505af1158015610d54573d6000803e3d6000fd5b505050506040513d6020811015610d6a57600080fd5b50516001600160a01b03163314610dc8576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e0357600080fd5b505af1158015610e17573d6000803e3d6000fd5b505050505050565b6000610e35610e2c611238565b600d5490611657565b90505b90565b60125481565b610e49611822565b6001600160a01b0316336001600160a01b031614610ea4576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61048a81610b4b565b6000610eb7610e1f565b600d81905543600e55905090565b6000610edd670de0b6b3a76400006107bd8486611597565b90505b92915050565b610f0f7f0000000000000000000000000000000000000000000000000000000000000000611847565b610f387f0000000000000000000000000000000000000000000000000000000000000000611847565b610f617f0000000000000000000000000000000000000000000000000000000000000000611847565b610f8a7f0000000000000000000000000000000000000000000000000000000000000000611847565b610fb37f0000000000000000000000000000000000000000000000000000000000000000611847565b610fdc7f0000000000000000000000000000000000000000000000000000000000000000611847565b6110057f0000000000000000000000000000000000000000000000000000000000000000611847565b565b6000336110126116cb565b6001600160a01b0316816001600160a01b0316148061103e57506015546001600160a01b038281169116145b61105a5760405162461bcd60e51b81526004016104b790611d95565b6000806000806000856001600160a01b03166355c85269896040518263ffffffff1660e01b815260040161108e9190611c75565b60a06040518083038186803b1580156110a657600080fd5b505afa1580156110ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110de9190611a8c565b9450945094509450945060006110f38561135b565b90506110fe85611347565b1561115357886001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000975050505050505050610514565b600061116a6111638686856116f6565b8490611657565b905080156111da5761117a611948565b6001600160a01b03166340c10f1989836040518363ffffffff1660e01b81526004016111a7929190611c89565b600060405180830381600087803b1580156111c157600080fd5b505af11580156111d5573d6000803e3d6000fd5b505050505b896001600160a01b0316876001600160a01b03167fbf5617ec135b48259c44e1ae312a03606f36e174082ef2e87042b86ceebace648360405161121d9190611cad565b60405180910390a39998505050505050505050565b600d5481565b600080611250600e544361153a90919063ffffffff16565b905080611261576000915050610e38565b601454611272576000915050610e38565b600061127c611948565b90506000816001600160a01b03166370a0823161129761150f565b6040518263ffffffff1660e01b81526004016112b39190611c75565b60206040518083038186803b1580156112cb57600080fd5b505afa1580156112df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113039190611c3c565b9050806113165760009350505050610e38565b6014546000906113269085611597565b905061133e826107bd83670de0b6b3a7640000611597565b94505050505090565b600090815260116020526040902054151590565b60008181526010602052604081208180611374856107e1565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b1580156113e857600080fd5b505afa1580156113fc573d6000803e3d6000fd5b505050506040513d602081101561141257600080fd5b50516001600160a01b03163314611005576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611478610ead565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611d6b565b6000816114ba5760006114bc565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a90611502908490611cad565b60405180910390a2505050565b6000610e357f000000000000000000000000000000000000000000000000000000000000000061196f565b600082821115611591576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826115a657506000610ee0565b828202828482816115b357fe5b0414610edd5760405162461bcd60e51b8152600401808060200182810382526021815260200180611e626021913960400191505060405180910390fd5b6000808211611646576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161164f57fe5b049392505050565b600082820183811015610edd576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008183116116c1576000610edd565b610edd838361153a565b6000610e357f000000000000000000000000000000000000000000000000000000000000000061196f565b600080611703838561153a565b90506107d2670de0b6b3a76400006107bd8388611597565b6000546001600160a01b03163314611005576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166117ce576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561189457600080fd5b505afa1580156118a8573d6000803e3d6000fd5b505050506040513d60208110156118be57600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ca5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610e357f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b031680610ee05760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b1580156119d857600080fd5b505afa1580156119ec573d6000803e3d6000fd5b505050506040513d6020811015611a0257600080fd5b50519392505050565b60008083601f840112611a1c578182fd5b50813567ffffffffffffffff811115611a33578182fd5b6020830191508360208083028501011115611a4d57600080fd5b9250929050565b600060208284031215611a65578081fd5b8135610edd81611e3e565b600060208284031215611a81578081fd5b8151610edd81611e3e565b600080600080600060a08688031215611aa3578081fd5b8551611aae81611e3e565b602087015160408801516060890151608090990151929a91995097965090945092505050565b60008060008060408587031215611ae9578384fd5b843567ffffffffffffffff80821115611b00578586fd5b611b0c88838901611a0b565b90965094506020870135915080821115611b24578384fd5b50611b3187828801611a0b565b95989497509550505050565b600060208284031215611b4e578081fd5b8135610edd81611e53565b600060208284031215611b6a578081fd5b8151610edd81611e53565b600060208284031215611b86578081fd5b5035919050565b60008060408385031215611b9f578182fd5b823591506020830135611bb181611e53565b809150509250929050565b600080600060408486031215611bd0578283fd5b8335611bdb81611e3e565b9250602084013567ffffffffffffffff80821115611bf7578384fd5b818601915086601f830112611c0a578384fd5b813581811115611c18578485fd5b876020828501011115611c29578485fd5b6020830194508093505050509250925092565b600060208284031215611c4d578081fd5b5051919050565b60008060408385031215611c66578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b602080825260079082015266042d8cadccee8d60cb1b604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461048a57600080fd5b801515811461048a57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f18b1a1091f1c6856415c7806703c6da0f0a9f186640f4b0f22d6d3964d5934764736f6c63430007060033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#ProxyAdmin.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#ProxyAdmin.json deleted file mode 100644 index 942e4b2e5..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#ProxyAdmin.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ProxyAdmin", - "sourceName": "contracts/proxy/transparent/ProxyAdmin.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract ITransparentUpgradeableProxy", - "name": "proxy", - "type": "address" - }, - { - "internalType": "address", - "name": "implementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.dbg.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.dbg.json deleted file mode 100644 index 4922c5523..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/e51c04f0f0fdce5715962999616918b7.json" -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.json deleted file mode 100644 index 428ef34d9..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService.json +++ /dev/null @@ -1,2393 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SubgraphService", - "sourceName": "contracts/SubgraphService.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "internalType": "address", - "name": "disputeManager", - "type": "address" - }, - { - "internalType": "address", - "name": "tapCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "curation", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationAlreadyExists", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - } - ], - "name": "AllocationClosed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationDoesNotExist", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationManagerAllocationClosed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationManagerAllocationSameSize", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationManagerInvalidAllocationProof", - "type": "error" - }, - { - "inputs": [], - "name": "AllocationManagerInvalidZeroAllocationId", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - } - ], - "name": "DataServiceFeesClaimNotFound", - "type": "error" - }, - { - "inputs": [], - "name": "DataServiceFeesZeroTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "DataServicePausableNotPauseGuardian", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "disputeManager", - "type": "address" - } - ], - "name": "DirectoryNotDisputeManager", - "type": "error" - }, - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - }, - { - "inputs": [], - "name": "EnforcedPause", - "type": "error" - }, - { - "inputs": [], - "name": "ExpectedPause", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "LegacyAllocationAlreadyMigrated", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "LegacyAllocationExists", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListEmptyList", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidIterations", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidZeroId", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListMaxElementsExceeded", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidRange", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidValue", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "ProvisionManagerNotAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionManagerProvisionNotFound", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokensAvailable", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensRequired", - "type": "uint256" - } - ], - "name": "ProvisionTrackerInsufficientTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceAllocationIsAltruistic", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceAllocationNotAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceCannotForceCloseAllocation", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceEmptyGeohash", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceEmptyUrl", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balanceBefore", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balanceAfter", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "SubgraphServiceInconsistentCollection", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceIndexerAlreadyRegistered", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "providedIndexer", - "type": "address" - }, - { - "internalType": "address", - "name": "expectedIndexer", - "type": "address" - } - ], - "name": "SubgraphServiceIndexerMismatch", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "SubgraphServiceIndexerNotRegistered", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "SubgraphServiceInvalidCurationCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - } - ], - "name": "SubgraphServiceInvalidPaymentType", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "ravIndexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationIndexer", - "type": "address" - } - ], - "name": "SubgraphServiceInvalidRAV", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceInvalidZeroStakeToFeesRatio", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newTokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "oldTokens", - "type": "uint256" - } - ], - "name": "AllocationResized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "CurationCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "ratio", - "type": "uint32" - } - ], - "name": "DelegationRatioSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "EIP712DomainChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensIndexerRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDelegationRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "currentEpoch", - "type": "uint256" - } - ], - "name": "IndexingRewardsCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "LegacyAllocationMigrated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "maxPOIStaleness", - "type": "uint256" - } - ], - "name": "MaxPOIStalenessSet", - "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": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "PauseGuardianSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionPendingParametersAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionTokensRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensCollected", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensCurators", - "type": "uint256" - } - ], - "name": "QueryFeesCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "rewardsDestination", - "type": "address" - } - ], - "name": "RewardsDestinationSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServicePaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceProviderRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServiceProviderSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStopped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "unlockTimestamp", - "type": "uint256" - } - ], - "name": "StakeClaimLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "releasableAt", - "type": "uint256" - } - ], - "name": "StakeClaimReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimsCount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReleased", - "type": "uint256" - } - ], - "name": "StakeClaimsReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "ratio", - "type": "uint256" - } - ], - "name": "StakeToFeesRatioSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "subgraphService", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "disputeManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "tapCollector", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "curation", - "type": "address" - } - ], - "name": "SubgraphServiceDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "min", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "max", - "type": "uint64" - } - ], - "name": "ThawingPeriodRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "min", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "max", - "type": "uint32" - } - ], - "name": "VerifierCutRangeSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "acceptProvisionPendingParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "allocationProvisionTracker", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "allocations", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lastPOIPresentedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - } - ], - "name": "claims", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "releasableAt", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "nextClaim", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "claimsLists", - "outputs": [ - { - "internalType": "bytes32", - "name": "head", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "tail", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "curationFeesCut", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "delegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "eip712Domain", - "outputs": [ - { - "internalType": "bytes1", - "name": "fields", - "type": "bytes1" - }, - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifyingContract", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "uint256[]", - "name": "extensions", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "encodeAllocationProof", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "feesProvisionTracker", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "forceCloseAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lastPOIPresentedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "internalType": "struct Allocation.State", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getAllocationData", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDelegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getLegacyAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "internalType": "struct LegacyAllocation.State", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProvisionTokensRange", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "getSubgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThawingPeriodRange", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCutRange", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "indexers", - "outputs": [ - { - "internalType": "uint256", - "name": "registeredAt", - "type": "uint256" - }, - { - "internalType": "string", - "name": "url", - "type": "string" - }, - { - "internalType": "string", - "name": "geoHash", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "minimumProvisionTokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maximumDelegationRatio", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "stakeToFeesRatio", - "type": "uint256" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "isActiveAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "isOverAllocated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "isStaleAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "legacyAllocations", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxPOIStaleness", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "migrateLegacyAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "minimumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pauseGuardian", - "type": "address" - } - ], - "name": "pauseGuardians", - "outputs": [ - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numClaimsToRelease", - "type": "uint256" - } - ], - "name": "releaseStake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "resizeAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "rewardsDestination", - "outputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "setCurationCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "delegationRatio", - "type": "uint32" - } - ], - "name": "setDelegationRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "maxPOIStaleness", - "type": "uint256" - } - ], - "name": "setMaxPOIStaleness", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "minimumProvisionTokens", - "type": "uint256" - } - ], - "name": "setMinimumProvisionTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pauseGuardian", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setPauseGuardian", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "rewardsDestination", - "type": "address" - } - ], - "name": "setRewardsDestination", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "stakeToFeesRatio_", - "type": "uint256" - } - ], - "name": "setStakeToFeesRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "stakeToFeesRatio", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "startService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "stopService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "subgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x61024060405234801561001157600080fd5b5060405161668f38038061668f83398101604081905261003091610541565b3083838387806001600160a01b03811661007f5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b7906103c5565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100ea906103c5565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b6020820152610123906103c5565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015d906103c5565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610195906103c5565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101d0906103c5565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020e906103c5565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024a906103c5565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027f906103c5565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103299790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b038481166101c08190528482166101e08190528483166102008190529284166102208190526040805193845260208401929092529082019290925260608101919091527f4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda79060800160405180910390a1505050506103bc61047360201b60201c565b50505050610605565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161040091815260200190565b602060405180830381865afa15801561041d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104419190610595565b9050826001600160a01b03821661046c5760405163218f5add60e11b815260040161007691906105b7565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104c35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146105225780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461053c57600080fd5b919050565b6000806000806080858703121561055757600080fd5b61056085610525565b935061056e60208601610525565b925061057c60408601610525565b915061058a60608601610525565b905092959194509250565b6000602082840312156105a757600080fd5b6105b082610525565b9392505050565b602081526000825180602084015260005b818110156105e557602081860181015160408684010152016105c8565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051615ff161069e60003960006143f801526000612fa9015260008181611a1801526138d00152600050506000505060005050600050506000613fe6015260006137fd01526000505060005050600050506000612045015260006143d40152615ff16000f3fe608060405234801561001057600080fd5b50600436106102ce5760003560e01c80638180083b1161017e578063a827a90c116100df578063a827a90c146108f6578063ac9650d814610909578063b15d2a2c14610929578063ba38f67d1461093c578063bfdfa7af1461094f578063cb8347fe14610966578063cbe5f3f214610979578063ce0fc0cc14610999578063ce56c98b146109ac578063d07a7a84146109bf578063dedf6726146109c8578063e2e1e8e9146109db578063e6f50054146109fb578063eff0f59214610a0e578063f2fde38b14610a4357600080fd5b80638180083b14610795578063819ba366146107a857806381e777a7146107c5578063832bc923146107d85780638456cb59146107eb57806384b0196e146107f357806385e82baf1461080e57806388812583146108175780638d2f29481461082e5780638da5cb5b146108595780639249c5c1146108615780639384e0781461087857806393d4e7cb1461089b5780639aafa5d1146108dc57600080fd5b80634f793cdc116102335780634f793cdc146104b157806352a9039c146104d357806355c85269146105735780635c975abb146106365780636234e2161461063e5780636a3ca3831461065e5780636d9a395114610671578063715018a6146106ec57806371ce020a146106f45780637203ca781461070a5780637337182314610740578063772495c3146107495780637aa31bce1461075c5780637dfe6d281461076f5780637e89bac31461078257600080fd5b80630e022923146102d3578063138dea081461035457806313c474c91461036b5780631cafa218146103c05780631dd42f60146103d55780631ebb7c30146103e857806324b8fbf61461040e578063355779621461042157806336fdd28a146104345780633afd23fe1461043d5780633f0ed79d1461045d5780633f4ba83a1461048057806345f5448514610488578063482468b71461049b575b600080fd5b6102e66102e1366004615151565b610a56565b60405161034b919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0828101519082015260c0808301519082015260e091820151918101919091526101000190565b60405180910390f35b61035d60d75481565b60405190815260200161034b565b6103a0610379366004615151565b606a6020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b6103d36103ce366004615180565b610ad8565b005b6103d36103e33660046151b8565b610c56565b600254600160c01b900463ffffffff165b60405163ffffffff909116815260200161034b565b6103d361041c366004615216565b610c6f565b6103d361042f366004615278565b610e9a565b61035d60005481565b61035d61044b3660046152b1565b60a26020526000908152604090205481565b61047061046b366004615151565b610eb0565b604051901515815260200161034b565b6103d3610ed1565b6103d36104963660046152b1565b610f15565b6104a3610f1f565b60405161034b9291906152ca565b6104c46104bf366004615151565b610f32565b60405161034b93929190615331565b61052e6104e1366004615151565b609d60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b03909616969495939492939192909188565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e08201526101000161034b565b610604610581366004615151565b6001600160a01b039081166000908152609d60209081526040918290208251610100810184528154909416808552600182015492850183905260028201549385018490526003820154606086015260048201546080860152600582015460a0860152600682015460c0860181905260079092015460e09095018590529491939091565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a00161034b565b610470611065565b61035d61064c366004615151565b609f6020526000908152604090205481565b61047061066c366004615151565b61107a565b6106c861067f366004615151565b604080518082018252600080825260209182018190526001600160a01b039384168152609e82528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b03168152602092830151928101929092520161034b565b6103d36110f6565b6106fc611108565b60405161034b929190615366565b610733610718366004615151565b60a1602052600090815260409020546001600160a01b031681565b60405161034b9190615380565b61035d60015481565b6103d3610757366004615151565b611113565b6103d361076a3660046152b1565b61111d565b6103d361077d366004615394565b61112e565b6103d36107903660046152b1565b611146565b6103d36107a3366004615216565b6111ba565b6107b0611345565b6040805192835260208301919091520161034b565b6103d36107d3366004615394565b611355565b6103d36107e63660046152b1565b6114bb565b6103d36114cf565b6107fb611511565b60405161034b97969594939291906153c4565b61035d60a05481565b6002546103f990600160801b900463ffffffff1681565b600254610841906001600160401b031681565b6040516001600160401b03909116815260200161034b565b6107336115ba565b6002546103f990600160a01b900463ffffffff1681565b610470610886366004615151565b60676020526000908152604090205460ff1681565b6108ce6108a9366004615151565b609e60205260009081526040902080546001909101546001600160a01b039091169082565b60405161034b92919061545c565b60025461084190600160401b90046001600160401b031681565b6103d3610904366004615151565b6115d5565b61091c610917366004615475565b611682565b60405161034b91906154ea565b61035d61093736600461554f565b611769565b61047061094a366004615151565b6119f7565b6002546103f990600160c01b900463ffffffff1681565b6103d3610974366004615216565b611a15565b61035d610987366004615151565b60686020526000908152604090205481565b6103d36109a7366004615216565b611b54565b61035d6109ba3660046155b7565b611c83565b61035d60d65481565b6103d36109d6366004615216565b611c96565b61035d6109e93660046152b1565b600090815260a2602052604090205490565b6103d3610a093660046152b1565b611e24565b6103a0610a1c3660046152b1565b60696020526000908152604090208054600182015460028301546003909301549192909184565b6103d3610a51366004615151565b611e35565b610a5e6150eb565b506001600160a01b039081166000908152609d6020908152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015290565b6000610ae2611e70565b805490915060ff600160401b82041615906001600160401b0316600081158015610b095750825b90506000826001600160401b03166001148015610b255750303b155b905081158015610b33575080155b15610b515760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7b57845460ff60401b1916600160401b1785555b610b8433611e94565b610b8c611ea5565b610b94611ead565b610b9c611ec5565b610be86040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250611ed5565b610bf488600019611ef1565b610bfd87611f67565b610c0686611fbb565b8315610c4c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610c5e612011565b610c6781611f67565b50565b905090565b82610c78612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610ca7939291906155e5565b602060405180830381865afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190615608565b81339091610d145760405163cc5d3c8b60e01b8152600401610d0b929190615625565b60405180910390fd5b5050836000610d2282612067565b9050610d2d81612162565b610d38816000612194565b610d40612274565b60008080610d5087890189615756565b9250925092506000835111610d7857604051630783843960e51b815260040160405180910390fd5b6000825111610d9a57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b038916600090815260d5602052604090205415610dd157604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815260d59092529290208151815591519091906001820190610e1b9082615852565b5060408201516002820190610e309082615852565b5050506001600160a01b03811615610e4c57610e4c898261229a565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610e87929190615910565b60405180910390a2505050505050505050565b610ea2612011565b610eac82826122f1565b5050565b60a054600090610ecb90610ec5609d85612358565b906123d2565b92915050565b3360008181526067602052604090205460ff16610f02576040516372e3ef9760e01b8152600401610d0b9190615380565b50610f0b61240f565b610f13612434565b565b610c673382612480565b600080610f2a61252d565b915091509091565b60d56020526000908152604090208054600182018054919291610f54906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f80906157d1565b8015610fcd5780601f10610fa257610100808354040283529160200191610fcd565b820191906000526020600020905b815481529060010190602001808311610fb057829003601f168201915b505050505090806002018054610fe2906157d1565b80601f016020809104026020016040519081016040528092919081815260200182805461100e906157d1565b801561105b5780601f106110305761010080835404028352916020019161105b565b820191906000526020600020905b81548152906001019060200180831161103e57829003601f168201915b5050505050905083565b6000806110706125a4565b5460ff1692915050565b6001600160a01b038082166000908152609d60209081526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007015460e083015290610ecb906125c8565b6110fe612011565b610f1360006125e7565b600080610f2a612643565b610c67338261229a565b611125612011565b610c67816126be565b611136612011565b6111418383836126f3565b505050565b61114e612011565b61115b81620f4240101590565b819061117d57604051631c9c717b60e01b8152600401610d0b91815260200190565b5060d78190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b826111c3612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016111f2939291906155e5565b602060405180830381865afa15801561120f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112339190615608565b813390916112565760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d56020526040902054849081906112935760405163ee27189960e01b8152600401610d0b9190615380565b5061129c612274565b60006112aa84860186615151565b90506001600160a01b0386166112c1609d83612358565b51879183916001600160a01b0316146112ef5760405163c0bbff1360e01b8152600401610d0b929190615625565b50506112fa81612746565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051611335929190615910565b60405180910390a2505050505050565b600080610f2a6000546001549091565b8261135e612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b815260040161138d939291906155e5565b602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190615608565b813390916113f15760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50508360006113ff82612067565b905061140a81612162565b611415816000612194565b6001600160a01b038616600090815260d56020526040902054869081906114505760405163ee27189960e01b8152600401610d0b9190615380565b50611459612274565b6001600160a01b03871661146e609d88612358565b51889188916001600160a01b03161461149c5760405163c0bbff1360e01b8152600401610d0b929190615625565b5050610c4c8686600260189054906101000a900463ffffffff1661289c565b6114c3612011565b610c6781600019611ef1565b3360008181526067602052604090205460ff16611500576040516372e3ef9760e01b8152600401610d0b9190615380565b50611509612274565b610f13612c28565b6000606080600080600060606000611527612c6f565b805490915015801561153b57506001810154155b61157f5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610d0b565b611587612c93565b61158f612d34565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806115c5612d51565b546001600160a01b031692915050565b60006115e2609d83612358565b905060006115fb60a054836123d290919063ffffffff16565b825160025491925060009161161d9190600160c01b900463ffffffff16612d75565b905081806116285750805b849061164757604051623477b560e51b8152600401610d0b9190615380565b5061165183612d94565b158490611672576040516317c7b35d60e31b8152600401610d0b9190615380565b5061167c84612746565b50505050565b604080516000815260208101909152606090826001600160401b038111156116ac576116ac61563f565b6040519080825280602002602001820160405280156116df57816020015b60608152602001906001900390816116ca5790505b50915060005b838110156117615761173c3086868481811061170357611703615968565b9050602002810190611715919061597e565b85604051602001611728939291906159c4565b604051602081830303815290604052612db3565b83828151811061174e5761174e615968565b60209081029190910101526001016116e5565b505092915050565b600084611774612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117a3939291906155e5565b602060405180830381865afa1580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e49190615608565b813390916118075760405163cc5d3c8b60e01b8152600401610d0b929190615625565b505085600061181582612067565b905061182081612162565b61182b816000612194565b6001600160a01b038816600090815260d56020526040902054889081906118665760405163ee27189960e01b8152600401610d0b9190615380565b5061186f612274565b600080896002811115611884576118846159eb565b036118e2576000611897888a018a615a16565b8051602001519091508b6001600160a01b03828116908216146118cf57604051631a071d0760e01b8152600401610d0b929190615625565b50506118da81612e29565b915050611995565b60028960028111156118f6576118f66159eb565b0361197a5760008061190a898b018b615b3b565b90925090506001600160a01b038c16611924609d84612358565b518d9184916001600160a01b0316146119525760405163c0bbff1360e01b8152600401610d0b929190615625565b50506119718282600260189054906101000a900463ffffffff1661332e565b92505050611995565b8860405163047031cf60e41b8152600401610d0b9190615b89565b8860028111156119a7576119a76159eb565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff5836040516119e291815260200190565b60405180910390a39998505050505050505050565b6000610ecb82600260189054906101000a900463ffffffff16612d75565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381168214611a625760405163cdc0567f60e01b8152600401610d0b929190615625565b506000905080611a7483850185615b97565b91509150611a80612043565b6001600160a01b031663e76fede6868484611a996138ce565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c5883604051611b4591815260200190565b60405180910390a25050505050565b82611b5d612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611b8c939291906155e5565b602060405180830381865afa158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190615608565b81339091611bf05760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d5602052604090205484908190611c2d5760405163ee27189960e01b8152600401610d0b9190615380565b50611c36612274565b611c3f856138f2565b611c4885613908565b6040516001600160a01b038616907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a25050505050565b6000611c8f838361397b565b9392505050565b82611c9f612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611cce939291906155e5565b602060405180830381865afa158015611ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0f9190615608565b81339091611d325760405163cc5d3c8b60e01b8152600401610d0b929190615625565b5050836000611d4082612067565b9050611d4b81612162565b611d56816000612194565b6001600160a01b038616600090815260d5602052604090205486908190611d915760405163ee27189960e01b8152600401610d0b9190615380565b50611d9a612274565b6000808080611dab898b018b615bb9565b9350935093509350611dd38b83868685600260189054906101000a900463ffffffff166139ea565b508a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b604051611e0f929190615910565b60405180910390a25050505050505050505050565b611e2c612011565b610c6781611fbb565b611e3d612011565b6001600160a01b038116611e67576000604051631e4fbdf760e01b8152600401610d0b9190615380565b610c67816125e7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611e9c613b73565b610c6781613b98565b610f13613b73565b611eb5613b73565b611ebd613ba0565b610f13611ea5565b611ecd613b73565b611ebd613bd5565b611edd613b73565b611ee78282613bf2565b610eac8282613c04565b818180821115611f1d5760405163ccccdafb60e01b815260048101929092526024820152604401610d0b565b50506000829055600181905560408051838152602081018390527f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f56884991015b60405180910390a15050565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f906020016111af565b80600003611fdc5760405163bc71a04360e01b815260040160405180910390fd5b60d68190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23906020016111af565b3361201a6115ba565b6001600160a01b031614610f13573360405163118cdaa760e01b8152600401610d0b9190615380565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052906120b8612043565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b81526004016120e5929190615625565b61012060405180830381865afa158015612103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121279190615c36565b90508060a001516001600160401b031660001415839061215b57604051637b3c09bf60e01b8152600401610d0b9190615380565b5092915050565b610c67816000015160005460015460405180604001604052806006815260200165746f6b656e7360d01b815250613c0c565b60008061219f612643565b915091506000836121b45784608001516121ba565b8460e001515b9050612208816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b815250613c0c565b60008061221361252d565b9150915060008661222857876060015161222e565b8760c001515b9050610c4c8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b815250613c0c565b61227c611065565b15610f135760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b03828116600081815260a1602052604080822080546001600160a01b0319169486169485179055517f3349d2e561f8c23a3ff42257745c8fb53e4bf3cbd4046672a3c4a0c7ee8a7b319190a35050565b6122f9612274565b6001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b6123606150eb565b61236a8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e08201529392505050565b6000806123e784606001518560a00151613ce8565b6123f19042615955565b90506123fc846125c8565b801561240757508281115b949350505050565b612417611065565b610f1357604051638dfc202b60e01b815260040160405180910390fd5b61243c61240f565b60006124466125a4565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516111af9190615380565b6001600160a01b0382166000818152606a602090815260408083208151928301849052828201949094528051808303820181526060909201905281906124d4908490613cfe90613d6990613e629089613e87565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb83838060200190518101906125189190615cd8565b60408051928352602083019190915201611b45565b6000806125386138ce565b6001600160a01b031663846337136040518163ffffffff1660e01b8152600401602060405180830381865afa158015612575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125999190615cf1565b92620f424092509050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006125d78260600151151590565b8015610ecb575050608001511590565b60006125f1612d51565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60008061264e6138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561268b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126af9190615d0e565b926001600160401b0392509050565b60a08190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba906020016111af565b612700609e848484613f41565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6000612753609d83612358565b90506127de82612761613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161279291815260200190565b6020604051808303816000875af11580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d59190615cd8565b609d9190614008565b6127e9609d836140b0565b805160408201516127fc91609f9161415b565b806040015160a2600083602001518152602001908152602001600020546128239190615955565b60a2600083602001518152602001908152602001600020819055508060200151826001600160a01b031682600001516001600160a01b03167f663a6f978de61dc3e2441026c082be709377b083ab642a8ce71386f8b91c710b846040015160405161289091815260200190565b60405180910390a45050565b6128a46150eb565b60006128b1609d86612358565b90506128bc816125c8565b85906128dc57604051631eb5ff9560e01b8152600401610d0b9190615380565b508060400151841415858590916129085760405163f32518cd60e01b8152600401610d0b92919061545c565b505060408101518085111561293e57612939612922612043565b835161292e8489615955565b609f929190886141e0565b612957565b81516129579061294e8784615955565b609f919061415b565b6000612961613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161299291815260200190565b6020604051808303816000875af11580156129b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d59190615cd8565b905060006129e284612d94565b156129ee5760006129fd565b60c08401516129fd9083615955565b6001600160a01b0389166000908152609d60205260409020600281018990556006018390559050612a2c613fe4565b604051636452fc0f60e11b815260048101859052602481018390526001600160a01b03919091169063c8a5f81e90604401602060405180830381865afa158015612a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9e9190615cd8565b6001600160a01b0389166000908152609d602052604081206007018054909190612ac9908490615d2b565b909155505082871115612b1157612ae08388615955565b60a26000866020015181526020019081526020016000206000828254612b069190615d2b565b90915550612b479050565b612b1b8784615955565b60a26000866020015181526020019081526020016000206000828254612b419190615955565b90915550505b8360200151886001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f8a87604051612b9e929190918252602082015260400190565b60405180910390a4505050506001600160a01b039384166000908152609d6020908152604091829020825161010081018452815490971687526001810154918701919091526002810154918601919091526003810154606086015260048101546080860152600581015460a0860152600681015460c08601526007015460e0850152509192915050565b612c30612274565b6000612c3a6125a4565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124733390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b60606000612c9f612c6f565b9050806002018054612cb0906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054612cdc906157d1565b8015612d295780601f10612cfe57610100808354040283529160200191612d29565b820191906000526020600020905b815481529060010190602001808311612d0c57829003601f168201915b505050505091505090565b60606000612d40612c6f565b9050806003018054612cb0906157d1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000612d8c612d82612043565b609f9085856142e5565b159392505050565b6000612da38260600151151590565b8015610ecb575050604001511590565b6060600080846001600160a01b031684604051612dd09190615d3e565b600060405180830381855af49150503d8060008114612e0b576040519150601f19603f3d011682016040523d82523d6000602084013e612e10565b606091505b5091509150612e2085838361437f565b95945050505050565b80516020808201516080909201518051600093928492612e4e92810182019101615d5a565b90506000612e5d609d83612358565b805190915083906001600160a01b0381811690831614612e9257604051634508fbf760e11b8152600401610d0b929190615625565b50506020810151612ea4846000612480565b6000612eae6143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612ed99190615380565b602060405180830381865afa158015612ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1a9190615cd8565b90506000612f266143f6565b6001600160a01b0316634c4ea0ed846040518263ffffffff1660e01b8152600401612f5391815260200190565b602060405180830381865afa158015612f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f949190615608565b612f9f576000612fa3565b60d7545b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637f07d28360008b85604051602001612feb929190615d77565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401613017929190615e16565b6020604051808303816000875af1158015613036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305a9190615cd8565b90506000613068828461441a565b905060006130746143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161309f9190615380565b602060405180830381865afa1580156130bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e09190615cd8565b9050806130ed8387615d2b565b1485828490919261312257604051631b0d791f60e11b8152600481019390935260248301919091526044820152606401610d0b565b5050831590506132db57600060d6548461313c9190615e36565b905060006131486138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a99190615d0e565b6131bc906001600160401b031642615d2b565b90506131c98b8383614481565b83156132d8576131d7613fe4565b6001600160a01b0316631d1c2fec896040518263ffffffff1660e01b815260040161320491815260200190565b6020604051808303816000875af1158015613223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132479190615cd8565b5061326c6132536143f6565b8561325c6143d2565b6001600160a01b031691906145f3565b6132746143f6565b60405163102ae65160e31b8152600481018a9052602481018690526001600160a01b039190911690638157328890604401600060405180830381600087803b1580156132bf57600080fd5b505af11580156132d3573d6000803e3d6000fd5b505050505b50505b60408051848152602081018490526001600160a01b038b16917f60a56d4d503735b4848feb6f491f14d7415262346b820d3b5a3d2733201bda36910160405180910390a250909998505050505050505050565b60008061333c609d86612358565b9050613347816125c8565b859061336757604051631eb5ff9560e01b8152600401610d0b9190615380565b50600061337f60a054836123d290919063ffffffff16565b158015613392575061339082612d94565b155b801561339d57508415155b6133a857600061341e565b6133b0613fe4565b6001600160a01b031663db750926876040518263ffffffff1660e01b81526004016133db9190615380565b6020604051808303816000875af11580156133fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341e9190615cd8565b905061345d8661342c613fe4565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b815260040161279291815260200190565b613468609d876146a2565b613473609d8761474d565b60008082156137c2576000613486612043565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f916134b9913090600290600401615e4d565b602060405180830381865afa1580156134d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134fa9190615cd8565b90506000613506612043565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613536913090600401615625565b60a060405180830381865afa158015613553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135779190615e72565b9050600081602001511161358c576000613596565b613596858361441a565b9250821561368b576135a66143d2565b6001600160a01b031663095ea7b36135bc612043565b856040518363ffffffff1660e01b81526004016135da92919061545c565b6020604051808303816000875af11580156135f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361d9190615608565b50613626612043565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e9916136589130908890600401615ec7565b600060405180830381600087803b15801561367257600080fd5b505af1158015613686573d6000803e3d6000fd5b505050505b6136958386615955565b935083156137bf5785516001600160a01b03908116600090815260a1602052604090205416806137b0576136c76143d2565b6001600160a01b031663095ea7b36136dd612043565b876040518363ffffffff1660e01b81526004016136fb92919061545c565b6020604051808303816000875af115801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190615608565b50613747612043565b8751604051633a30904960e11b81526001600160a01b0392909216916374612092916137799130908a90600401615ec7565b600060405180830381600087803b15801561379357600080fd5b505af11580156137a7573d6000803e3d6000fd5b505050506137bd565b6137bd818661325c6143d2565b505b50505b602084015184516001600160a01b038a811691167f7df4dbb3b3c999ca3e143d3fe67abfa22078fd572d49d411278648c773912e318686868d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387d9190615cd8565b604080519586526020860194909452928401919091526060830152608082015260a00160405180910390a483516138b49087612d75565b156138c2576138c288612746565b50909695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006138fd82612067565b9050610eac81612162565b6139138160016147f9565b61391b612043565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016139469190615380565b600060405180830381600087803b15801561396057600080fd5b505af1158015613974573d6000803e3d6000fd5b5050505050565b6000611c8f7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016139cf939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614810565b6139f26150eb565b6001600160a01b038616613a1957604051634ffdf5ef60e11b815260040160405180910390fd5b613a2487878561483d565b613a2f609e8761488c565b6000613abc88888888613a40613fe4565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b8152600401613a6d91815260200190565b6020604051808303816000875af1158015613a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ab09190615cd8565b609d94939291906148e1565b9050613ad4613ac9612043565b609f908a88876141e0565b806040015160a260008360200151815260200190815260200160002054613afb9190615d2b565b60a26000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167f3bd4419f8defec88dd042e31b8e8743f00803aed288fe7c31c9cf0689d295cf28460400151604051613b6091815260200190565b60405180910390a4979650505050505050565b613b7b614a2e565b610f1357604051631afcd79f60e31b815260040160405180910390fd5b611e3d613b73565b613ba8613b73565b613bb56000600019611ef1565b613bc36000620f4240614a48565b610f1360006001600160401b03614b1a565b613bdd613b73565b6000613be76125a4565b805460ff1916905550565b613bfa613b73565b610eac8282614ba7565b610eac613b73565b613c17848484614be8565b8185858590919293610c4c57604051630871e13d60e01b8152600401610d0b9493929190615eeb565b6001600160a01b03808216600090815260208481526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401529091613cc09060600151151590565b8390613ce0576040516342daadaf60e01b8152600401610d0b9190615380565b509392505050565b6000818311613cf75781611c8f565b5090919050565b60008181526069602090815260408083208151608081018352815481526001820154938101849052600282015492810192909252600301546060820152908390613d5e5760405163107349a960e21b8152600401610d0b91815260200190565b506060015192915050565b600060606000613d7885614bff565b90504281604001511115613da057505060408051602081019091526000815260019150613e5b565b60008085806020019051810190613db79190615f1a565b84519193509150613dcc90606890839061415b565b82516040808501518151928352602083015288916001600160a01b038416917f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f44910160405180910390a38251613e229083615d2b565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152606960205260408120818155600181018290556002810182905560030155565b600060608760030154831115613eb057604051634a411b9d60e11b815260040160405180910390fd5b60008315613ebe5783613ec4565b88600301545b89549094505b8015801590613ed95750600085115b15613f3257600080613eef83898c63ffffffff16565b915091508115613f00575050613f32565b965086613f0e8c8c8b614c8d565b925086613f1a81615f40565b9750508380613f2890615f57565b9450505050613eca565b50989397509295505050505050565b6001600160a01b038281166000908152602086815260409182902082518084019093528054909316808352600190930154910152829015613f9657604051632d3e5fb960e01b8152600401610d0b9190615380565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006140148484613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614080906125c8565b600482015484916140a6576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050600601555050565b60006140bc8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614128906125c8565b6004820154839161414e576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426004909101555050565b8060000361416857505050565b6001600160a01b03821660009081526020849052604090205481808210156141ac57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038216600090815260208490526040812080548392906141d6908490615955565b9091555050505050565b8115613974576001600160a01b03831660009081526020869052604081205461420a908490615d2b565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161423e93929190615f70565b602060405180830381865afa15801561425b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061427f9190615cd8565b90508082818111156142ad57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038516600090815260208890526040812080548692906142d7908490615d2b565b909155505050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161431893929190615f70565b602060405180830381865afa158015614335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143599190615cd8565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b6060826143945761438f82614d14565b611c8f565b81511580156143ab57506001600160a01b0384163b155b156143cb5783604051639996b31560e01b8152600401610d0b9190615380565b5080611c8f565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b600061442983620f4240101590565b8061443c575061443c82620f4240101590565b838390916144665760405163768bf0eb60e11b815260048101929092526024820152604401610d0b565b50620f424090506144778385615e36565b611c8f9190615f99565b816000036144a257604051638f4c63d960e01b815260040160405180910390fd5b6144ce6144ad612043565b600254606891908690869063ffffffff600160c01b9091048116906141e016565b6001600160a01b0383166000908152606a6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52606990985295909720915182559351600182015592519083015591516003918201558101549091901561459c57600182015460009081526069602052604090206003018190555b6145a68282614d3d565b604080518581526020810185905282916001600160a01b038816917f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f910160405180910390a35050505050565b80156111415760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90614627908590859060040161545c565b6020604051808303816000875af1158015614646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061466a9190615608565b6111415760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610d0b565b60006146ae8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015290915061471a906125c8565b60048201548391614740576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426005909101555050565b60006147598383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201529091506147c5906125c8565b600482015483916147eb576040516361b66e0d60e01b8152600401610d0b92919061545c565b505060006007909101555050565b600061480483612067565b90506111418183612194565b6000610ecb61481d614dd0565b8360405161190160f01b8152600281019290925260228201526042902090565b600061485261484c858561397b565b83614dda565b905080836001600160a01b038083169082161461488457604051638c5b935d60e01b8152600401610d0b929190615625565b505050505050565b6001600160a01b03818116600090815260208481526040918290208251808401909352805490931680835260019093015491015281901561114157604051638173627160e01b8152600401610d0b9190615380565b6148e96150eb565b6001600160a01b0380861660009081526020898152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015261496a9060600151151590565b15859061498b57604051630bc4def560e01b8152600401610d0b9190615380565b505060408051610100810182526001600160a01b0396871681526020808201958652818301948552426060830190815260006080840181815260a0850182815260c0860197885260e086018381529a8c1683529b90935293909320825181546001600160a01b0319169916989098178855945160018801559251600287015551600386015591516004850155935160058401555160068301555160079091015590565b6000614a38611e70565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614a765760405163ccccdafb60e01b8152600401610d0b9291906152ca565b508290508163ffffffff8116620f42401015614aa75760405163ccccdafb60e01b8152600401610d0b9291906152ca565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b029190911667ffffffffffffffff60801b19909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a3690611f5b90849084906152ca565b81816001600160401b038082169083161115614b4b5760405163ccccdafb60e01b8152600401610d0b929190615366565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d190611f5b9084908490615366565b614baf613b73565b6000614bb9612c6f565b905060028101614bc98482615852565b5060038101614bd88382615852565b5060008082556001909101555050565b600082841015801561240757505090911115919050565b614c2d6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152606960209081526040918290208251608081018452815481526001820154928101839052600282015493810193909352600301546060830152839061215b5760405163107349a960e21b8152600401610d0b91815260200190565b600080846003015411614cb35760405163ddaf8f2160e01b815260040160405180910390fd5b6000614cc685600001548563ffffffff16565b9050614cd985600001548463ffffffff16565b6001856003016000828254614cee9190615955565b90915550508085556003850154600003614d0a57600060018601555b5050915492915050565b805115614d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b612710826003015410614d63576040516303a8c56b60e61b815260040160405180910390fd5b80614d8157604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d9d908490615d2b565b90915550506003820154600003614db2578082555b6001826003016000828254614dc79190615d2b565b90915550505050565b6000610c6a614e04565b600080600080614dea8686614e78565b925092509250614dfa8282614ec5565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614e2f614f7e565b614e37614fe5565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614eb25760208401516040850151606086015160001a614ea488828585615026565b955095509550505050614ebe565b50508151600091506002905b9250925092565b6000826003811115614ed957614ed96159eb565b03614ee2575050565b6001826003811115614ef657614ef66159eb565b03614f145760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614f2857614f286159eb565b03614f495760405163fce698f760e01b815260048101829052602401610d0b565b6003826003811115614f5d57614f5d6159eb565b03610eac576040516335e2f38360e21b815260048101829052602401610d0b565b600080614f89612c6f565b90506000614f95612c93565b805190915015614fad57805160209091012092915050565b81548015614fbc579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614ff0612c6f565b90506000614ffc612d34565b80519091501561501457805160209091012092915050565b60018201548015614fbc579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0384111561505757506000915060039050826150e1565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156150ab573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166150d7575060009250600191508290506150e1565b9250600091508190505b9450945094915050565b60405180610100016040528060006001600160a01b03168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0381168114610c6757600080fd5b60006020828403121561516357600080fd5b8135611c8f8161513c565b63ffffffff81168114610c6757600080fd5b60008060006060848603121561519557600080fd5b8335925060208401356151a78161516e565b929592945050506040919091013590565b6000602082840312156151ca57600080fd5b8135611c8f8161516e565b60008083601f8401126151e757600080fd5b5081356001600160401b038111156151fe57600080fd5b602083019150836020828501011115613e5b57600080fd5b60008060006040848603121561522b57600080fd5b83356152368161513c565b925060208401356001600160401b0381111561525157600080fd5b61525d868287016151d5565b9497909650939450505050565b8015158114610c6757600080fd5b6000806040838503121561528b57600080fd5b82356152968161513c565b915060208301356152a68161526a565b809150509250929050565b6000602082840312156152c357600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156152fc5781810151838201526020016152e4565b50506000910152565b6000815180845261531d8160208601602086016152e1565b601f01601f19169290920160200192915050565b83815260606020820152600061534a6060830185615305565b828103604084015261535c8185615305565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b6001600160a01b0391909116815260200190565b6000806000606084860312156153a957600080fd5b83356153b48161513c565b925060208401356151a78161513c565b60ff60f81b8816815260e0602082015260006153e360e0830189615305565b82810360408401526153f58189615305565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561544b57835183526020938401939092019160010161542d565b50909b9a5050505050505050505050565b6001600160a01b03929092168252602082015260400190565b6000806020838503121561548857600080fd5b82356001600160401b0381111561549e57600080fd5b8301601f810185136154af57600080fd5b80356001600160401b038111156154c557600080fd5b8560208260051b84010111156154da57600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561554357603f1987860301845261552e858351615305565b94506020938401939190910190600101615512565b50929695505050505050565b6000806000806060858703121561556557600080fd5b84356155708161513c565b935060208501356003811061558457600080fd5b925060408501356001600160401b0381111561559f57600080fd5b6155ab878288016151d5565b95989497509550505050565b600080604083850312156155ca57600080fd5b82356155d58161513c565b915060208301356152a68161513c565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561561a57600080fd5b8151611c8f8161526a565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156156775761567761563f565b60405290565b60405160a081016001600160401b03811182821017156156775761567761563f565b60405161012081016001600160401b03811182821017156156775761567761563f565b600082601f8301126156d357600080fd5b8135602083016000806001600160401b038411156156f3576156f361563f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156157215761572161563f565b60405283815290508082840187101561573957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561576b57600080fd5b83356001600160401b0381111561578157600080fd5b61578d868287016156c2565b93505060208401356001600160401b038111156157a957600080fd5b6157b5868287016156c2565b92505060408401356157c68161513c565b809150509250925092565b600181811c908216806157e557607f821691505b60208210810361580557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561114157806000526020600020601f840160051c810160208510156158325750805b601f840160051c820191505b81811015613974576000815560010161583e565b81516001600160401b0381111561586b5761586b61563f565b61587f8161587984546157d1565b8461580b565b6020601f8211600181146158b3576000831561589b5750848201515b600019600385901b1c1916600184901b178455613974565b600084815260208120601f198516915b828110156158e357878501518255602094850194600190920191016158c3565b50848210156159015786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ecb57610ecb61593f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261599557600080fd5b8301803591506001600160401b038211156159af57600080fd5b602001915036819003821315613e5b57600080fd5b8284823760008382016000815283516159e18183602088016152e1565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6001600160401b0381168114610c6757600080fd5b600060208284031215615a2857600080fd5b81356001600160401b03811115615a3e57600080fd5b820160408185031215615a5057600080fd5b615a58615655565b81356001600160401b03811115615a6e57600080fd5b820160a08187031215615a8057600080fd5b615a8861567d565b8135615a938161513c565b81526020820135615aa38161513c565b60208201526040820135615ab681615a01565b604082015260608201356001600160801b0381168114615ad557600080fd5b606082015260808201356001600160401b03811115615af357600080fd5b615aff888285016156c2565b60808301525082525060208201356001600160401b03811115615b2157600080fd5b615b2d868285016156c2565b602083015250949350505050565b60008060408385031215615b4e57600080fd5b8235615b598161513c565b946020939093013593505050565b60038110615b8557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610ecb8284615b67565b60008060408385031215615baa57600080fd5b50508035926020909101359150565b60008060008060808587031215615bcf57600080fd5b84359350602085013592506040850135615be88161513c565b915060608501356001600160401b03811115615c0357600080fd5b615c0f878288016156c2565b91505092959194509250565b8051615c268161516e565b919050565b8051615c2681615a01565b6000610120828403128015615c4a57600080fd5b506000615c5561569f565b835181526020808501519082015260408085015190820152615c7960608501615c1b565b6060820152615c8a60808501615c2b565b6080820152615c9b60a08501615c2b565b60a0820152615cac60c08501615c1b565b60c0820152615cbd60e08501615c2b565b60e08201526101009384015193810193909352509092915050565b600060208284031215615cea57600080fd5b5051919050565b600060208284031215615d0357600080fd5b8151611c8f8161516e565b600060208284031215615d2057600080fd5b8151611c8f81615a01565b80820180821115610ecb57610ecb61593f565b60008251615d508184602087016152e1565b9190910192915050565b600060208284031215615d6c57600080fd5b8151611c8f8161513c565b604081526000835160408084015260018060a01b03815116608084015260018060a01b0360208201511660a08401526001600160401b0360408201511660c084015260018060801b0360608201511660e08401526080810151905060a0610100840152615de8610120840182615305565b90506020850151603f19848303016060850152615e058282615305565b925050508260208301529392505050565b615e208184615b67565b6040602082015260006124076040830184615305565b8082028115828204841417610ecb57610ecb61593f565b6001600160a01b03848116825283166020820152606081016124076040830184615b67565b600060a0828403128015615e8557600080fd5b506000615e9061567d565b8351815260208085015190820152604080850151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b608081526000615efe6080830187615305565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615f2d57600080fd5b825160208401519092506152a68161513c565b600081615f4f57615f4f61593f565b506000190190565b600060018201615f6957615f6961593f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b600082615fb657634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209c05e49a7d3d7f3015873a2c41e2f68419180f16cef8fd91645f14bc8e8b733264736f6c634300081b0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102ce5760003560e01c80638180083b1161017e578063a827a90c116100df578063a827a90c146108f6578063ac9650d814610909578063b15d2a2c14610929578063ba38f67d1461093c578063bfdfa7af1461094f578063cb8347fe14610966578063cbe5f3f214610979578063ce0fc0cc14610999578063ce56c98b146109ac578063d07a7a84146109bf578063dedf6726146109c8578063e2e1e8e9146109db578063e6f50054146109fb578063eff0f59214610a0e578063f2fde38b14610a4357600080fd5b80638180083b14610795578063819ba366146107a857806381e777a7146107c5578063832bc923146107d85780638456cb59146107eb57806384b0196e146107f357806385e82baf1461080e57806388812583146108175780638d2f29481461082e5780638da5cb5b146108595780639249c5c1146108615780639384e0781461087857806393d4e7cb1461089b5780639aafa5d1146108dc57600080fd5b80634f793cdc116102335780634f793cdc146104b157806352a9039c146104d357806355c85269146105735780635c975abb146106365780636234e2161461063e5780636a3ca3831461065e5780636d9a395114610671578063715018a6146106ec57806371ce020a146106f45780637203ca781461070a5780637337182314610740578063772495c3146107495780637aa31bce1461075c5780637dfe6d281461076f5780637e89bac31461078257600080fd5b80630e022923146102d3578063138dea081461035457806313c474c91461036b5780631cafa218146103c05780631dd42f60146103d55780631ebb7c30146103e857806324b8fbf61461040e578063355779621461042157806336fdd28a146104345780633afd23fe1461043d5780633f0ed79d1461045d5780633f4ba83a1461048057806345f5448514610488578063482468b71461049b575b600080fd5b6102e66102e1366004615151565b610a56565b60405161034b919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0828101519082015260c0808301519082015260e091820151918101919091526101000190565b60405180910390f35b61035d60d75481565b60405190815260200161034b565b6103a0610379366004615151565b606a6020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b6103d36103ce366004615180565b610ad8565b005b6103d36103e33660046151b8565b610c56565b600254600160c01b900463ffffffff165b60405163ffffffff909116815260200161034b565b6103d361041c366004615216565b610c6f565b6103d361042f366004615278565b610e9a565b61035d60005481565b61035d61044b3660046152b1565b60a26020526000908152604090205481565b61047061046b366004615151565b610eb0565b604051901515815260200161034b565b6103d3610ed1565b6103d36104963660046152b1565b610f15565b6104a3610f1f565b60405161034b9291906152ca565b6104c46104bf366004615151565b610f32565b60405161034b93929190615331565b61052e6104e1366004615151565b609d60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b03909616969495939492939192909188565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e08201526101000161034b565b610604610581366004615151565b6001600160a01b039081166000908152609d60209081526040918290208251610100810184528154909416808552600182015492850183905260028201549385018490526003820154606086015260048201546080860152600582015460a0860152600682015460c0860181905260079092015460e09095018590529491939091565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a00161034b565b610470611065565b61035d61064c366004615151565b609f6020526000908152604090205481565b61047061066c366004615151565b61107a565b6106c861067f366004615151565b604080518082018252600080825260209182018190526001600160a01b039384168152609e82528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b03168152602092830151928101929092520161034b565b6103d36110f6565b6106fc611108565b60405161034b929190615366565b610733610718366004615151565b60a1602052600090815260409020546001600160a01b031681565b60405161034b9190615380565b61035d60015481565b6103d3610757366004615151565b611113565b6103d361076a3660046152b1565b61111d565b6103d361077d366004615394565b61112e565b6103d36107903660046152b1565b611146565b6103d36107a3366004615216565b6111ba565b6107b0611345565b6040805192835260208301919091520161034b565b6103d36107d3366004615394565b611355565b6103d36107e63660046152b1565b6114bb565b6103d36114cf565b6107fb611511565b60405161034b97969594939291906153c4565b61035d60a05481565b6002546103f990600160801b900463ffffffff1681565b600254610841906001600160401b031681565b6040516001600160401b03909116815260200161034b565b6107336115ba565b6002546103f990600160a01b900463ffffffff1681565b610470610886366004615151565b60676020526000908152604090205460ff1681565b6108ce6108a9366004615151565b609e60205260009081526040902080546001909101546001600160a01b039091169082565b60405161034b92919061545c565b60025461084190600160401b90046001600160401b031681565b6103d3610904366004615151565b6115d5565b61091c610917366004615475565b611682565b60405161034b91906154ea565b61035d61093736600461554f565b611769565b61047061094a366004615151565b6119f7565b6002546103f990600160c01b900463ffffffff1681565b6103d3610974366004615216565b611a15565b61035d610987366004615151565b60686020526000908152604090205481565b6103d36109a7366004615216565b611b54565b61035d6109ba3660046155b7565b611c83565b61035d60d65481565b6103d36109d6366004615216565b611c96565b61035d6109e93660046152b1565b600090815260a2602052604090205490565b6103d3610a093660046152b1565b611e24565b6103a0610a1c3660046152b1565b60696020526000908152604090208054600182015460028301546003909301549192909184565b6103d3610a51366004615151565b611e35565b610a5e6150eb565b506001600160a01b039081166000908152609d6020908152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015290565b6000610ae2611e70565b805490915060ff600160401b82041615906001600160401b0316600081158015610b095750825b90506000826001600160401b03166001148015610b255750303b155b905081158015610b33575080155b15610b515760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7b57845460ff60401b1916600160401b1785555b610b8433611e94565b610b8c611ea5565b610b94611ead565b610b9c611ec5565b610be86040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250611ed5565b610bf488600019611ef1565b610bfd87611f67565b610c0686611fbb565b8315610c4c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610c5e612011565b610c6781611f67565b50565b905090565b82610c78612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610ca7939291906155e5565b602060405180830381865afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190615608565b81339091610d145760405163cc5d3c8b60e01b8152600401610d0b929190615625565b60405180910390fd5b5050836000610d2282612067565b9050610d2d81612162565b610d38816000612194565b610d40612274565b60008080610d5087890189615756565b9250925092506000835111610d7857604051630783843960e51b815260040160405180910390fd5b6000825111610d9a57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b038916600090815260d5602052604090205415610dd157604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815260d59092529290208151815591519091906001820190610e1b9082615852565b5060408201516002820190610e309082615852565b5050506001600160a01b03811615610e4c57610e4c898261229a565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610e87929190615910565b60405180910390a2505050505050505050565b610ea2612011565b610eac82826122f1565b5050565b60a054600090610ecb90610ec5609d85612358565b906123d2565b92915050565b3360008181526067602052604090205460ff16610f02576040516372e3ef9760e01b8152600401610d0b9190615380565b50610f0b61240f565b610f13612434565b565b610c673382612480565b600080610f2a61252d565b915091509091565b60d56020526000908152604090208054600182018054919291610f54906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f80906157d1565b8015610fcd5780601f10610fa257610100808354040283529160200191610fcd565b820191906000526020600020905b815481529060010190602001808311610fb057829003601f168201915b505050505090806002018054610fe2906157d1565b80601f016020809104026020016040519081016040528092919081815260200182805461100e906157d1565b801561105b5780601f106110305761010080835404028352916020019161105b565b820191906000526020600020905b81548152906001019060200180831161103e57829003601f168201915b5050505050905083565b6000806110706125a4565b5460ff1692915050565b6001600160a01b038082166000908152609d60209081526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007015460e083015290610ecb906125c8565b6110fe612011565b610f1360006125e7565b600080610f2a612643565b610c67338261229a565b611125612011565b610c67816126be565b611136612011565b6111418383836126f3565b505050565b61114e612011565b61115b81620f4240101590565b819061117d57604051631c9c717b60e01b8152600401610d0b91815260200190565b5060d78190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b826111c3612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016111f2939291906155e5565b602060405180830381865afa15801561120f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112339190615608565b813390916112565760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d56020526040902054849081906112935760405163ee27189960e01b8152600401610d0b9190615380565b5061129c612274565b60006112aa84860186615151565b90506001600160a01b0386166112c1609d83612358565b51879183916001600160a01b0316146112ef5760405163c0bbff1360e01b8152600401610d0b929190615625565b50506112fa81612746565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051611335929190615910565b60405180910390a2505050505050565b600080610f2a6000546001549091565b8261135e612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b815260040161138d939291906155e5565b602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190615608565b813390916113f15760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50508360006113ff82612067565b905061140a81612162565b611415816000612194565b6001600160a01b038616600090815260d56020526040902054869081906114505760405163ee27189960e01b8152600401610d0b9190615380565b50611459612274565b6001600160a01b03871661146e609d88612358565b51889188916001600160a01b03161461149c5760405163c0bbff1360e01b8152600401610d0b929190615625565b5050610c4c8686600260189054906101000a900463ffffffff1661289c565b6114c3612011565b610c6781600019611ef1565b3360008181526067602052604090205460ff16611500576040516372e3ef9760e01b8152600401610d0b9190615380565b50611509612274565b610f13612c28565b6000606080600080600060606000611527612c6f565b805490915015801561153b57506001810154155b61157f5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610d0b565b611587612c93565b61158f612d34565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806115c5612d51565b546001600160a01b031692915050565b60006115e2609d83612358565b905060006115fb60a054836123d290919063ffffffff16565b825160025491925060009161161d9190600160c01b900463ffffffff16612d75565b905081806116285750805b849061164757604051623477b560e51b8152600401610d0b9190615380565b5061165183612d94565b158490611672576040516317c7b35d60e31b8152600401610d0b9190615380565b5061167c84612746565b50505050565b604080516000815260208101909152606090826001600160401b038111156116ac576116ac61563f565b6040519080825280602002602001820160405280156116df57816020015b60608152602001906001900390816116ca5790505b50915060005b838110156117615761173c3086868481811061170357611703615968565b9050602002810190611715919061597e565b85604051602001611728939291906159c4565b604051602081830303815290604052612db3565b83828151811061174e5761174e615968565b60209081029190910101526001016116e5565b505092915050565b600084611774612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117a3939291906155e5565b602060405180830381865afa1580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e49190615608565b813390916118075760405163cc5d3c8b60e01b8152600401610d0b929190615625565b505085600061181582612067565b905061182081612162565b61182b816000612194565b6001600160a01b038816600090815260d56020526040902054889081906118665760405163ee27189960e01b8152600401610d0b9190615380565b5061186f612274565b600080896002811115611884576118846159eb565b036118e2576000611897888a018a615a16565b8051602001519091508b6001600160a01b03828116908216146118cf57604051631a071d0760e01b8152600401610d0b929190615625565b50506118da81612e29565b915050611995565b60028960028111156118f6576118f66159eb565b0361197a5760008061190a898b018b615b3b565b90925090506001600160a01b038c16611924609d84612358565b518d9184916001600160a01b0316146119525760405163c0bbff1360e01b8152600401610d0b929190615625565b50506119718282600260189054906101000a900463ffffffff1661332e565b92505050611995565b8860405163047031cf60e41b8152600401610d0b9190615b89565b8860028111156119a7576119a76159eb565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff5836040516119e291815260200190565b60405180910390a39998505050505050505050565b6000610ecb82600260189054906101000a900463ffffffff16612d75565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381168214611a625760405163cdc0567f60e01b8152600401610d0b929190615625565b506000905080611a7483850185615b97565b91509150611a80612043565b6001600160a01b031663e76fede6868484611a996138ce565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c5883604051611b4591815260200190565b60405180910390a25050505050565b82611b5d612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611b8c939291906155e5565b602060405180830381865afa158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190615608565b81339091611bf05760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d5602052604090205484908190611c2d5760405163ee27189960e01b8152600401610d0b9190615380565b50611c36612274565b611c3f856138f2565b611c4885613908565b6040516001600160a01b038616907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a25050505050565b6000611c8f838361397b565b9392505050565b82611c9f612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611cce939291906155e5565b602060405180830381865afa158015611ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0f9190615608565b81339091611d325760405163cc5d3c8b60e01b8152600401610d0b929190615625565b5050836000611d4082612067565b9050611d4b81612162565b611d56816000612194565b6001600160a01b038616600090815260d5602052604090205486908190611d915760405163ee27189960e01b8152600401610d0b9190615380565b50611d9a612274565b6000808080611dab898b018b615bb9565b9350935093509350611dd38b83868685600260189054906101000a900463ffffffff166139ea565b508a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b604051611e0f929190615910565b60405180910390a25050505050505050505050565b611e2c612011565b610c6781611fbb565b611e3d612011565b6001600160a01b038116611e67576000604051631e4fbdf760e01b8152600401610d0b9190615380565b610c67816125e7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611e9c613b73565b610c6781613b98565b610f13613b73565b611eb5613b73565b611ebd613ba0565b610f13611ea5565b611ecd613b73565b611ebd613bd5565b611edd613b73565b611ee78282613bf2565b610eac8282613c04565b818180821115611f1d5760405163ccccdafb60e01b815260048101929092526024820152604401610d0b565b50506000829055600181905560408051838152602081018390527f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f56884991015b60405180910390a15050565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f906020016111af565b80600003611fdc5760405163bc71a04360e01b815260040160405180910390fd5b60d68190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23906020016111af565b3361201a6115ba565b6001600160a01b031614610f13573360405163118cdaa760e01b8152600401610d0b9190615380565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052906120b8612043565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b81526004016120e5929190615625565b61012060405180830381865afa158015612103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121279190615c36565b90508060a001516001600160401b031660001415839061215b57604051637b3c09bf60e01b8152600401610d0b9190615380565b5092915050565b610c67816000015160005460015460405180604001604052806006815260200165746f6b656e7360d01b815250613c0c565b60008061219f612643565b915091506000836121b45784608001516121ba565b8460e001515b9050612208816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b815250613c0c565b60008061221361252d565b9150915060008661222857876060015161222e565b8760c001515b9050610c4c8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b815250613c0c565b61227c611065565b15610f135760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b03828116600081815260a1602052604080822080546001600160a01b0319169486169485179055517f3349d2e561f8c23a3ff42257745c8fb53e4bf3cbd4046672a3c4a0c7ee8a7b319190a35050565b6122f9612274565b6001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b6123606150eb565b61236a8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e08201529392505050565b6000806123e784606001518560a00151613ce8565b6123f19042615955565b90506123fc846125c8565b801561240757508281115b949350505050565b612417611065565b610f1357604051638dfc202b60e01b815260040160405180910390fd5b61243c61240f565b60006124466125a4565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516111af9190615380565b6001600160a01b0382166000818152606a602090815260408083208151928301849052828201949094528051808303820181526060909201905281906124d4908490613cfe90613d6990613e629089613e87565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb83838060200190518101906125189190615cd8565b60408051928352602083019190915201611b45565b6000806125386138ce565b6001600160a01b031663846337136040518163ffffffff1660e01b8152600401602060405180830381865afa158015612575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125999190615cf1565b92620f424092509050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006125d78260600151151590565b8015610ecb575050608001511590565b60006125f1612d51565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60008061264e6138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561268b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126af9190615d0e565b926001600160401b0392509050565b60a08190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba906020016111af565b612700609e848484613f41565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6000612753609d83612358565b90506127de82612761613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161279291815260200190565b6020604051808303816000875af11580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d59190615cd8565b609d9190614008565b6127e9609d836140b0565b805160408201516127fc91609f9161415b565b806040015160a2600083602001518152602001908152602001600020546128239190615955565b60a2600083602001518152602001908152602001600020819055508060200151826001600160a01b031682600001516001600160a01b03167f663a6f978de61dc3e2441026c082be709377b083ab642a8ce71386f8b91c710b846040015160405161289091815260200190565b60405180910390a45050565b6128a46150eb565b60006128b1609d86612358565b90506128bc816125c8565b85906128dc57604051631eb5ff9560e01b8152600401610d0b9190615380565b508060400151841415858590916129085760405163f32518cd60e01b8152600401610d0b92919061545c565b505060408101518085111561293e57612939612922612043565b835161292e8489615955565b609f929190886141e0565b612957565b81516129579061294e8784615955565b609f919061415b565b6000612961613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161299291815260200190565b6020604051808303816000875af11580156129b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d59190615cd8565b905060006129e284612d94565b156129ee5760006129fd565b60c08401516129fd9083615955565b6001600160a01b0389166000908152609d60205260409020600281018990556006018390559050612a2c613fe4565b604051636452fc0f60e11b815260048101859052602481018390526001600160a01b03919091169063c8a5f81e90604401602060405180830381865afa158015612a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9e9190615cd8565b6001600160a01b0389166000908152609d602052604081206007018054909190612ac9908490615d2b565b909155505082871115612b1157612ae08388615955565b60a26000866020015181526020019081526020016000206000828254612b069190615d2b565b90915550612b479050565b612b1b8784615955565b60a26000866020015181526020019081526020016000206000828254612b419190615955565b90915550505b8360200151886001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f8a87604051612b9e929190918252602082015260400190565b60405180910390a4505050506001600160a01b039384166000908152609d6020908152604091829020825161010081018452815490971687526001810154918701919091526002810154918601919091526003810154606086015260048101546080860152600581015460a0860152600681015460c08601526007015460e0850152509192915050565b612c30612274565b6000612c3a6125a4565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124733390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b60606000612c9f612c6f565b9050806002018054612cb0906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054612cdc906157d1565b8015612d295780601f10612cfe57610100808354040283529160200191612d29565b820191906000526020600020905b815481529060010190602001808311612d0c57829003601f168201915b505050505091505090565b60606000612d40612c6f565b9050806003018054612cb0906157d1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000612d8c612d82612043565b609f9085856142e5565b159392505050565b6000612da38260600151151590565b8015610ecb575050604001511590565b6060600080846001600160a01b031684604051612dd09190615d3e565b600060405180830381855af49150503d8060008114612e0b576040519150601f19603f3d011682016040523d82523d6000602084013e612e10565b606091505b5091509150612e2085838361437f565b95945050505050565b80516020808201516080909201518051600093928492612e4e92810182019101615d5a565b90506000612e5d609d83612358565b805190915083906001600160a01b0381811690831614612e9257604051634508fbf760e11b8152600401610d0b929190615625565b50506020810151612ea4846000612480565b6000612eae6143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612ed99190615380565b602060405180830381865afa158015612ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1a9190615cd8565b90506000612f266143f6565b6001600160a01b0316634c4ea0ed846040518263ffffffff1660e01b8152600401612f5391815260200190565b602060405180830381865afa158015612f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f949190615608565b612f9f576000612fa3565b60d7545b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637f07d28360008b85604051602001612feb929190615d77565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401613017929190615e16565b6020604051808303816000875af1158015613036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305a9190615cd8565b90506000613068828461441a565b905060006130746143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161309f9190615380565b602060405180830381865afa1580156130bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e09190615cd8565b9050806130ed8387615d2b565b1485828490919261312257604051631b0d791f60e11b8152600481019390935260248301919091526044820152606401610d0b565b5050831590506132db57600060d6548461313c9190615e36565b905060006131486138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a99190615d0e565b6131bc906001600160401b031642615d2b565b90506131c98b8383614481565b83156132d8576131d7613fe4565b6001600160a01b0316631d1c2fec896040518263ffffffff1660e01b815260040161320491815260200190565b6020604051808303816000875af1158015613223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132479190615cd8565b5061326c6132536143f6565b8561325c6143d2565b6001600160a01b031691906145f3565b6132746143f6565b60405163102ae65160e31b8152600481018a9052602481018690526001600160a01b039190911690638157328890604401600060405180830381600087803b1580156132bf57600080fd5b505af11580156132d3573d6000803e3d6000fd5b505050505b50505b60408051848152602081018490526001600160a01b038b16917f60a56d4d503735b4848feb6f491f14d7415262346b820d3b5a3d2733201bda36910160405180910390a250909998505050505050505050565b60008061333c609d86612358565b9050613347816125c8565b859061336757604051631eb5ff9560e01b8152600401610d0b9190615380565b50600061337f60a054836123d290919063ffffffff16565b158015613392575061339082612d94565b155b801561339d57508415155b6133a857600061341e565b6133b0613fe4565b6001600160a01b031663db750926876040518263ffffffff1660e01b81526004016133db9190615380565b6020604051808303816000875af11580156133fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341e9190615cd8565b905061345d8661342c613fe4565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b815260040161279291815260200190565b613468609d876146a2565b613473609d8761474d565b60008082156137c2576000613486612043565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f916134b9913090600290600401615e4d565b602060405180830381865afa1580156134d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134fa9190615cd8565b90506000613506612043565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613536913090600401615625565b60a060405180830381865afa158015613553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135779190615e72565b9050600081602001511161358c576000613596565b613596858361441a565b9250821561368b576135a66143d2565b6001600160a01b031663095ea7b36135bc612043565b856040518363ffffffff1660e01b81526004016135da92919061545c565b6020604051808303816000875af11580156135f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361d9190615608565b50613626612043565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e9916136589130908890600401615ec7565b600060405180830381600087803b15801561367257600080fd5b505af1158015613686573d6000803e3d6000fd5b505050505b6136958386615955565b935083156137bf5785516001600160a01b03908116600090815260a1602052604090205416806137b0576136c76143d2565b6001600160a01b031663095ea7b36136dd612043565b876040518363ffffffff1660e01b81526004016136fb92919061545c565b6020604051808303816000875af115801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190615608565b50613747612043565b8751604051633a30904960e11b81526001600160a01b0392909216916374612092916137799130908a90600401615ec7565b600060405180830381600087803b15801561379357600080fd5b505af11580156137a7573d6000803e3d6000fd5b505050506137bd565b6137bd818661325c6143d2565b505b50505b602084015184516001600160a01b038a811691167f7df4dbb3b3c999ca3e143d3fe67abfa22078fd572d49d411278648c773912e318686868d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387d9190615cd8565b604080519586526020860194909452928401919091526060830152608082015260a00160405180910390a483516138b49087612d75565b156138c2576138c288612746565b50909695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006138fd82612067565b9050610eac81612162565b6139138160016147f9565b61391b612043565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016139469190615380565b600060405180830381600087803b15801561396057600080fd5b505af1158015613974573d6000803e3d6000fd5b5050505050565b6000611c8f7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016139cf939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614810565b6139f26150eb565b6001600160a01b038616613a1957604051634ffdf5ef60e11b815260040160405180910390fd5b613a2487878561483d565b613a2f609e8761488c565b6000613abc88888888613a40613fe4565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b8152600401613a6d91815260200190565b6020604051808303816000875af1158015613a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ab09190615cd8565b609d94939291906148e1565b9050613ad4613ac9612043565b609f908a88876141e0565b806040015160a260008360200151815260200190815260200160002054613afb9190615d2b565b60a26000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167f3bd4419f8defec88dd042e31b8e8743f00803aed288fe7c31c9cf0689d295cf28460400151604051613b6091815260200190565b60405180910390a4979650505050505050565b613b7b614a2e565b610f1357604051631afcd79f60e31b815260040160405180910390fd5b611e3d613b73565b613ba8613b73565b613bb56000600019611ef1565b613bc36000620f4240614a48565b610f1360006001600160401b03614b1a565b613bdd613b73565b6000613be76125a4565b805460ff1916905550565b613bfa613b73565b610eac8282614ba7565b610eac613b73565b613c17848484614be8565b8185858590919293610c4c57604051630871e13d60e01b8152600401610d0b9493929190615eeb565b6001600160a01b03808216600090815260208481526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401529091613cc09060600151151590565b8390613ce0576040516342daadaf60e01b8152600401610d0b9190615380565b509392505050565b6000818311613cf75781611c8f565b5090919050565b60008181526069602090815260408083208151608081018352815481526001820154938101849052600282015492810192909252600301546060820152908390613d5e5760405163107349a960e21b8152600401610d0b91815260200190565b506060015192915050565b600060606000613d7885614bff565b90504281604001511115613da057505060408051602081019091526000815260019150613e5b565b60008085806020019051810190613db79190615f1a565b84519193509150613dcc90606890839061415b565b82516040808501518151928352602083015288916001600160a01b038416917f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f44910160405180910390a38251613e229083615d2b565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152606960205260408120818155600181018290556002810182905560030155565b600060608760030154831115613eb057604051634a411b9d60e11b815260040160405180910390fd5b60008315613ebe5783613ec4565b88600301545b89549094505b8015801590613ed95750600085115b15613f3257600080613eef83898c63ffffffff16565b915091508115613f00575050613f32565b965086613f0e8c8c8b614c8d565b925086613f1a81615f40565b9750508380613f2890615f57565b9450505050613eca565b50989397509295505050505050565b6001600160a01b038281166000908152602086815260409182902082518084019093528054909316808352600190930154910152829015613f9657604051632d3e5fb960e01b8152600401610d0b9190615380565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006140148484613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614080906125c8565b600482015484916140a6576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050600601555050565b60006140bc8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614128906125c8565b6004820154839161414e576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426004909101555050565b8060000361416857505050565b6001600160a01b03821660009081526020849052604090205481808210156141ac57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038216600090815260208490526040812080548392906141d6908490615955565b9091555050505050565b8115613974576001600160a01b03831660009081526020869052604081205461420a908490615d2b565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161423e93929190615f70565b602060405180830381865afa15801561425b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061427f9190615cd8565b90508082818111156142ad57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038516600090815260208890526040812080548692906142d7908490615d2b565b909155505050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161431893929190615f70565b602060405180830381865afa158015614335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143599190615cd8565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b6060826143945761438f82614d14565b611c8f565b81511580156143ab57506001600160a01b0384163b155b156143cb5783604051639996b31560e01b8152600401610d0b9190615380565b5080611c8f565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b600061442983620f4240101590565b8061443c575061443c82620f4240101590565b838390916144665760405163768bf0eb60e11b815260048101929092526024820152604401610d0b565b50620f424090506144778385615e36565b611c8f9190615f99565b816000036144a257604051638f4c63d960e01b815260040160405180910390fd5b6144ce6144ad612043565b600254606891908690869063ffffffff600160c01b9091048116906141e016565b6001600160a01b0383166000908152606a6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52606990985295909720915182559351600182015592519083015591516003918201558101549091901561459c57600182015460009081526069602052604090206003018190555b6145a68282614d3d565b604080518581526020810185905282916001600160a01b038816917f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f910160405180910390a35050505050565b80156111415760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90614627908590859060040161545c565b6020604051808303816000875af1158015614646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061466a9190615608565b6111415760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610d0b565b60006146ae8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015290915061471a906125c8565b60048201548391614740576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426005909101555050565b60006147598383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201529091506147c5906125c8565b600482015483916147eb576040516361b66e0d60e01b8152600401610d0b92919061545c565b505060006007909101555050565b600061480483612067565b90506111418183612194565b6000610ecb61481d614dd0565b8360405161190160f01b8152600281019290925260228201526042902090565b600061485261484c858561397b565b83614dda565b905080836001600160a01b038083169082161461488457604051638c5b935d60e01b8152600401610d0b929190615625565b505050505050565b6001600160a01b03818116600090815260208481526040918290208251808401909352805490931680835260019093015491015281901561114157604051638173627160e01b8152600401610d0b9190615380565b6148e96150eb565b6001600160a01b0380861660009081526020898152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015261496a9060600151151590565b15859061498b57604051630bc4def560e01b8152600401610d0b9190615380565b505060408051610100810182526001600160a01b0396871681526020808201958652818301948552426060830190815260006080840181815260a0850182815260c0860197885260e086018381529a8c1683529b90935293909320825181546001600160a01b0319169916989098178855945160018801559251600287015551600386015591516004850155935160058401555160068301555160079091015590565b6000614a38611e70565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614a765760405163ccccdafb60e01b8152600401610d0b9291906152ca565b508290508163ffffffff8116620f42401015614aa75760405163ccccdafb60e01b8152600401610d0b9291906152ca565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b029190911667ffffffffffffffff60801b19909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a3690611f5b90849084906152ca565b81816001600160401b038082169083161115614b4b5760405163ccccdafb60e01b8152600401610d0b929190615366565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d190611f5b9084908490615366565b614baf613b73565b6000614bb9612c6f565b905060028101614bc98482615852565b5060038101614bd88382615852565b5060008082556001909101555050565b600082841015801561240757505090911115919050565b614c2d6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152606960209081526040918290208251608081018452815481526001820154928101839052600282015493810193909352600301546060830152839061215b5760405163107349a960e21b8152600401610d0b91815260200190565b600080846003015411614cb35760405163ddaf8f2160e01b815260040160405180910390fd5b6000614cc685600001548563ffffffff16565b9050614cd985600001548463ffffffff16565b6001856003016000828254614cee9190615955565b90915550508085556003850154600003614d0a57600060018601555b5050915492915050565b805115614d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b612710826003015410614d63576040516303a8c56b60e61b815260040160405180910390fd5b80614d8157604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d9d908490615d2b565b90915550506003820154600003614db2578082555b6001826003016000828254614dc79190615d2b565b90915550505050565b6000610c6a614e04565b600080600080614dea8686614e78565b925092509250614dfa8282614ec5565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614e2f614f7e565b614e37614fe5565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614eb25760208401516040850151606086015160001a614ea488828585615026565b955095509550505050614ebe565b50508151600091506002905b9250925092565b6000826003811115614ed957614ed96159eb565b03614ee2575050565b6001826003811115614ef657614ef66159eb565b03614f145760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614f2857614f286159eb565b03614f495760405163fce698f760e01b815260048101829052602401610d0b565b6003826003811115614f5d57614f5d6159eb565b03610eac576040516335e2f38360e21b815260048101829052602401610d0b565b600080614f89612c6f565b90506000614f95612c93565b805190915015614fad57805160209091012092915050565b81548015614fbc579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614ff0612c6f565b90506000614ffc612d34565b80519091501561501457805160209091012092915050565b60018201548015614fbc579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0384111561505757506000915060039050826150e1565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156150ab573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166150d7575060009250600191508290506150e1565b9250600091508190505b9450945094915050565b60405180610100016040528060006001600160a01b03168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0381168114610c6757600080fd5b60006020828403121561516357600080fd5b8135611c8f8161513c565b63ffffffff81168114610c6757600080fd5b60008060006060848603121561519557600080fd5b8335925060208401356151a78161516e565b929592945050506040919091013590565b6000602082840312156151ca57600080fd5b8135611c8f8161516e565b60008083601f8401126151e757600080fd5b5081356001600160401b038111156151fe57600080fd5b602083019150836020828501011115613e5b57600080fd5b60008060006040848603121561522b57600080fd5b83356152368161513c565b925060208401356001600160401b0381111561525157600080fd5b61525d868287016151d5565b9497909650939450505050565b8015158114610c6757600080fd5b6000806040838503121561528b57600080fd5b82356152968161513c565b915060208301356152a68161526a565b809150509250929050565b6000602082840312156152c357600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156152fc5781810151838201526020016152e4565b50506000910152565b6000815180845261531d8160208601602086016152e1565b601f01601f19169290920160200192915050565b83815260606020820152600061534a6060830185615305565b828103604084015261535c8185615305565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b6001600160a01b0391909116815260200190565b6000806000606084860312156153a957600080fd5b83356153b48161513c565b925060208401356151a78161513c565b60ff60f81b8816815260e0602082015260006153e360e0830189615305565b82810360408401526153f58189615305565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561544b57835183526020938401939092019160010161542d565b50909b9a5050505050505050505050565b6001600160a01b03929092168252602082015260400190565b6000806020838503121561548857600080fd5b82356001600160401b0381111561549e57600080fd5b8301601f810185136154af57600080fd5b80356001600160401b038111156154c557600080fd5b8560208260051b84010111156154da57600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561554357603f1987860301845261552e858351615305565b94506020938401939190910190600101615512565b50929695505050505050565b6000806000806060858703121561556557600080fd5b84356155708161513c565b935060208501356003811061558457600080fd5b925060408501356001600160401b0381111561559f57600080fd5b6155ab878288016151d5565b95989497509550505050565b600080604083850312156155ca57600080fd5b82356155d58161513c565b915060208301356152a68161513c565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561561a57600080fd5b8151611c8f8161526a565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156156775761567761563f565b60405290565b60405160a081016001600160401b03811182821017156156775761567761563f565b60405161012081016001600160401b03811182821017156156775761567761563f565b600082601f8301126156d357600080fd5b8135602083016000806001600160401b038411156156f3576156f361563f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156157215761572161563f565b60405283815290508082840187101561573957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561576b57600080fd5b83356001600160401b0381111561578157600080fd5b61578d868287016156c2565b93505060208401356001600160401b038111156157a957600080fd5b6157b5868287016156c2565b92505060408401356157c68161513c565b809150509250925092565b600181811c908216806157e557607f821691505b60208210810361580557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561114157806000526020600020601f840160051c810160208510156158325750805b601f840160051c820191505b81811015613974576000815560010161583e565b81516001600160401b0381111561586b5761586b61563f565b61587f8161587984546157d1565b8461580b565b6020601f8211600181146158b3576000831561589b5750848201515b600019600385901b1c1916600184901b178455613974565b600084815260208120601f198516915b828110156158e357878501518255602094850194600190920191016158c3565b50848210156159015786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ecb57610ecb61593f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261599557600080fd5b8301803591506001600160401b038211156159af57600080fd5b602001915036819003821315613e5b57600080fd5b8284823760008382016000815283516159e18183602088016152e1565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6001600160401b0381168114610c6757600080fd5b600060208284031215615a2857600080fd5b81356001600160401b03811115615a3e57600080fd5b820160408185031215615a5057600080fd5b615a58615655565b81356001600160401b03811115615a6e57600080fd5b820160a08187031215615a8057600080fd5b615a8861567d565b8135615a938161513c565b81526020820135615aa38161513c565b60208201526040820135615ab681615a01565b604082015260608201356001600160801b0381168114615ad557600080fd5b606082015260808201356001600160401b03811115615af357600080fd5b615aff888285016156c2565b60808301525082525060208201356001600160401b03811115615b2157600080fd5b615b2d868285016156c2565b602083015250949350505050565b60008060408385031215615b4e57600080fd5b8235615b598161513c565b946020939093013593505050565b60038110615b8557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610ecb8284615b67565b60008060408385031215615baa57600080fd5b50508035926020909101359150565b60008060008060808587031215615bcf57600080fd5b84359350602085013592506040850135615be88161513c565b915060608501356001600160401b03811115615c0357600080fd5b615c0f878288016156c2565b91505092959194509250565b8051615c268161516e565b919050565b8051615c2681615a01565b6000610120828403128015615c4a57600080fd5b506000615c5561569f565b835181526020808501519082015260408085015190820152615c7960608501615c1b565b6060820152615c8a60808501615c2b565b6080820152615c9b60a08501615c2b565b60a0820152615cac60c08501615c1b565b60c0820152615cbd60e08501615c2b565b60e08201526101009384015193810193909352509092915050565b600060208284031215615cea57600080fd5b5051919050565b600060208284031215615d0357600080fd5b8151611c8f8161516e565b600060208284031215615d2057600080fd5b8151611c8f81615a01565b80820180821115610ecb57610ecb61593f565b60008251615d508184602087016152e1565b9190910192915050565b600060208284031215615d6c57600080fd5b8151611c8f8161513c565b604081526000835160408084015260018060a01b03815116608084015260018060a01b0360208201511660a08401526001600160401b0360408201511660c084015260018060801b0360608201511660e08401526080810151905060a0610100840152615de8610120840182615305565b90506020850151603f19848303016060850152615e058282615305565b925050508260208301529392505050565b615e208184615b67565b6040602082015260006124076040830184615305565b8082028115828204841417610ecb57610ecb61593f565b6001600160a01b03848116825283166020820152606081016124076040830184615b67565b600060a0828403128015615e8557600080fd5b506000615e9061567d565b8351815260208085015190820152604080850151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b608081526000615efe6080830187615305565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615f2d57600080fd5b825160208401519092506152a68161513c565b600081615f4f57615f4f61593f565b506000190190565b600060018201615f6957615f6961593f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b600082615fb657634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209c05e49a7d3d7f3015873a2c41e2f68419180f16cef8fd91645f14bc8e8b733264736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_Instance.dbg.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_Instance.dbg.json deleted file mode 100644 index 4922c5523..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_Instance.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/e51c04f0f0fdce5715962999616918b7.json" -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_Instance.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_Instance.json deleted file mode 100644 index 428ef34d9..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphService#SubgraphService_Instance.json +++ /dev/null @@ -1,2393 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SubgraphService", - "sourceName": "contracts/SubgraphService.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "internalType": "address", - "name": "disputeManager", - "type": "address" - }, - { - "internalType": "address", - "name": "tapCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "curation", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationAlreadyExists", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - } - ], - "name": "AllocationClosed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationDoesNotExist", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationManagerAllocationClosed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationManagerAllocationSameSize", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationManagerInvalidAllocationProof", - "type": "error" - }, - { - "inputs": [], - "name": "AllocationManagerInvalidZeroAllocationId", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - } - ], - "name": "DataServiceFeesClaimNotFound", - "type": "error" - }, - { - "inputs": [], - "name": "DataServiceFeesZeroTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "DataServicePausableNotPauseGuardian", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "disputeManager", - "type": "address" - } - ], - "name": "DirectoryNotDisputeManager", - "type": "error" - }, - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - }, - { - "inputs": [], - "name": "EnforcedPause", - "type": "error" - }, - { - "inputs": [], - "name": "ExpectedPause", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "LegacyAllocationAlreadyMigrated", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "LegacyAllocationExists", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListEmptyList", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidIterations", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidZeroId", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListMaxElementsExceeded", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidRange", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidValue", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "ProvisionManagerNotAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionManagerProvisionNotFound", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokensAvailable", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensRequired", - "type": "uint256" - } - ], - "name": "ProvisionTrackerInsufficientTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceAllocationIsAltruistic", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceAllocationNotAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceCannotForceCloseAllocation", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceEmptyGeohash", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceEmptyUrl", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balanceBefore", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balanceAfter", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "SubgraphServiceInconsistentCollection", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceIndexerAlreadyRegistered", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "providedIndexer", - "type": "address" - }, - { - "internalType": "address", - "name": "expectedIndexer", - "type": "address" - } - ], - "name": "SubgraphServiceIndexerMismatch", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "SubgraphServiceIndexerNotRegistered", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "SubgraphServiceInvalidCurationCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - } - ], - "name": "SubgraphServiceInvalidPaymentType", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "ravIndexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationIndexer", - "type": "address" - } - ], - "name": "SubgraphServiceInvalidRAV", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceInvalidZeroStakeToFeesRatio", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newTokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "oldTokens", - "type": "uint256" - } - ], - "name": "AllocationResized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "CurationCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "ratio", - "type": "uint32" - } - ], - "name": "DelegationRatioSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "EIP712DomainChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensIndexerRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDelegationRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "currentEpoch", - "type": "uint256" - } - ], - "name": "IndexingRewardsCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "LegacyAllocationMigrated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "maxPOIStaleness", - "type": "uint256" - } - ], - "name": "MaxPOIStalenessSet", - "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": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "PauseGuardianSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionPendingParametersAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionTokensRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensCollected", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensCurators", - "type": "uint256" - } - ], - "name": "QueryFeesCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "rewardsDestination", - "type": "address" - } - ], - "name": "RewardsDestinationSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServicePaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceProviderRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServiceProviderSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStopped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "unlockTimestamp", - "type": "uint256" - } - ], - "name": "StakeClaimLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "releasableAt", - "type": "uint256" - } - ], - "name": "StakeClaimReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimsCount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReleased", - "type": "uint256" - } - ], - "name": "StakeClaimsReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "ratio", - "type": "uint256" - } - ], - "name": "StakeToFeesRatioSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "subgraphService", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "disputeManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "tapCollector", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "curation", - "type": "address" - } - ], - "name": "SubgraphServiceDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "min", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "max", - "type": "uint64" - } - ], - "name": "ThawingPeriodRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "min", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "max", - "type": "uint32" - } - ], - "name": "VerifierCutRangeSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "acceptProvisionPendingParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "allocationProvisionTracker", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "allocations", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lastPOIPresentedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - } - ], - "name": "claims", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "releasableAt", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "nextClaim", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "claimsLists", - "outputs": [ - { - "internalType": "bytes32", - "name": "head", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "tail", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "curationFeesCut", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "delegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "eip712Domain", - "outputs": [ - { - "internalType": "bytes1", - "name": "fields", - "type": "bytes1" - }, - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifyingContract", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "uint256[]", - "name": "extensions", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "encodeAllocationProof", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "feesProvisionTracker", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "forceCloseAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lastPOIPresentedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "internalType": "struct Allocation.State", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getAllocationData", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDelegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getLegacyAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "internalType": "struct LegacyAllocation.State", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProvisionTokensRange", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "getSubgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThawingPeriodRange", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCutRange", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "indexers", - "outputs": [ - { - "internalType": "uint256", - "name": "registeredAt", - "type": "uint256" - }, - { - "internalType": "string", - "name": "url", - "type": "string" - }, - { - "internalType": "string", - "name": "geoHash", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "minimumProvisionTokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maximumDelegationRatio", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "stakeToFeesRatio", - "type": "uint256" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "isActiveAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "isOverAllocated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "isStaleAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "legacyAllocations", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxPOIStaleness", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "migrateLegacyAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "minimumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pauseGuardian", - "type": "address" - } - ], - "name": "pauseGuardians", - "outputs": [ - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numClaimsToRelease", - "type": "uint256" - } - ], - "name": "releaseStake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "resizeAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "rewardsDestination", - "outputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "setCurationCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "delegationRatio", - "type": "uint32" - } - ], - "name": "setDelegationRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "maxPOIStaleness", - "type": "uint256" - } - ], - "name": "setMaxPOIStaleness", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "minimumProvisionTokens", - "type": "uint256" - } - ], - "name": "setMinimumProvisionTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pauseGuardian", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setPauseGuardian", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "rewardsDestination", - "type": "address" - } - ], - "name": "setRewardsDestination", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "stakeToFeesRatio_", - "type": "uint256" - } - ], - "name": "setStakeToFeesRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "stakeToFeesRatio", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "startService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "stopService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "subgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x61024060405234801561001157600080fd5b5060405161668f38038061668f83398101604081905261003091610541565b3083838387806001600160a01b03811661007f5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b7906103c5565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100ea906103c5565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b6020820152610123906103c5565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015d906103c5565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610195906103c5565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101d0906103c5565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020e906103c5565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024a906103c5565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027f906103c5565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103299790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b038481166101c08190528482166101e08190528483166102008190529284166102208190526040805193845260208401929092529082019290925260608101919091527f4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda79060800160405180910390a1505050506103bc61047360201b60201c565b50505050610605565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161040091815260200190565b602060405180830381865afa15801561041d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104419190610595565b9050826001600160a01b03821661046c5760405163218f5add60e11b815260040161007691906105b7565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104c35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146105225780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461053c57600080fd5b919050565b6000806000806080858703121561055757600080fd5b61056085610525565b935061056e60208601610525565b925061057c60408601610525565b915061058a60608601610525565b905092959194509250565b6000602082840312156105a757600080fd5b6105b082610525565b9392505050565b602081526000825180602084015260005b818110156105e557602081860181015160408684010152016105c8565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051615ff161069e60003960006143f801526000612fa9015260008181611a1801526138d00152600050506000505060005050600050506000613fe6015260006137fd01526000505060005050600050506000612045015260006143d40152615ff16000f3fe608060405234801561001057600080fd5b50600436106102ce5760003560e01c80638180083b1161017e578063a827a90c116100df578063a827a90c146108f6578063ac9650d814610909578063b15d2a2c14610929578063ba38f67d1461093c578063bfdfa7af1461094f578063cb8347fe14610966578063cbe5f3f214610979578063ce0fc0cc14610999578063ce56c98b146109ac578063d07a7a84146109bf578063dedf6726146109c8578063e2e1e8e9146109db578063e6f50054146109fb578063eff0f59214610a0e578063f2fde38b14610a4357600080fd5b80638180083b14610795578063819ba366146107a857806381e777a7146107c5578063832bc923146107d85780638456cb59146107eb57806384b0196e146107f357806385e82baf1461080e57806388812583146108175780638d2f29481461082e5780638da5cb5b146108595780639249c5c1146108615780639384e0781461087857806393d4e7cb1461089b5780639aafa5d1146108dc57600080fd5b80634f793cdc116102335780634f793cdc146104b157806352a9039c146104d357806355c85269146105735780635c975abb146106365780636234e2161461063e5780636a3ca3831461065e5780636d9a395114610671578063715018a6146106ec57806371ce020a146106f45780637203ca781461070a5780637337182314610740578063772495c3146107495780637aa31bce1461075c5780637dfe6d281461076f5780637e89bac31461078257600080fd5b80630e022923146102d3578063138dea081461035457806313c474c91461036b5780631cafa218146103c05780631dd42f60146103d55780631ebb7c30146103e857806324b8fbf61461040e578063355779621461042157806336fdd28a146104345780633afd23fe1461043d5780633f0ed79d1461045d5780633f4ba83a1461048057806345f5448514610488578063482468b71461049b575b600080fd5b6102e66102e1366004615151565b610a56565b60405161034b919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0828101519082015260c0808301519082015260e091820151918101919091526101000190565b60405180910390f35b61035d60d75481565b60405190815260200161034b565b6103a0610379366004615151565b606a6020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b6103d36103ce366004615180565b610ad8565b005b6103d36103e33660046151b8565b610c56565b600254600160c01b900463ffffffff165b60405163ffffffff909116815260200161034b565b6103d361041c366004615216565b610c6f565b6103d361042f366004615278565b610e9a565b61035d60005481565b61035d61044b3660046152b1565b60a26020526000908152604090205481565b61047061046b366004615151565b610eb0565b604051901515815260200161034b565b6103d3610ed1565b6103d36104963660046152b1565b610f15565b6104a3610f1f565b60405161034b9291906152ca565b6104c46104bf366004615151565b610f32565b60405161034b93929190615331565b61052e6104e1366004615151565b609d60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b03909616969495939492939192909188565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e08201526101000161034b565b610604610581366004615151565b6001600160a01b039081166000908152609d60209081526040918290208251610100810184528154909416808552600182015492850183905260028201549385018490526003820154606086015260048201546080860152600582015460a0860152600682015460c0860181905260079092015460e09095018590529491939091565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a00161034b565b610470611065565b61035d61064c366004615151565b609f6020526000908152604090205481565b61047061066c366004615151565b61107a565b6106c861067f366004615151565b604080518082018252600080825260209182018190526001600160a01b039384168152609e82528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b03168152602092830151928101929092520161034b565b6103d36110f6565b6106fc611108565b60405161034b929190615366565b610733610718366004615151565b60a1602052600090815260409020546001600160a01b031681565b60405161034b9190615380565b61035d60015481565b6103d3610757366004615151565b611113565b6103d361076a3660046152b1565b61111d565b6103d361077d366004615394565b61112e565b6103d36107903660046152b1565b611146565b6103d36107a3366004615216565b6111ba565b6107b0611345565b6040805192835260208301919091520161034b565b6103d36107d3366004615394565b611355565b6103d36107e63660046152b1565b6114bb565b6103d36114cf565b6107fb611511565b60405161034b97969594939291906153c4565b61035d60a05481565b6002546103f990600160801b900463ffffffff1681565b600254610841906001600160401b031681565b6040516001600160401b03909116815260200161034b565b6107336115ba565b6002546103f990600160a01b900463ffffffff1681565b610470610886366004615151565b60676020526000908152604090205460ff1681565b6108ce6108a9366004615151565b609e60205260009081526040902080546001909101546001600160a01b039091169082565b60405161034b92919061545c565b60025461084190600160401b90046001600160401b031681565b6103d3610904366004615151565b6115d5565b61091c610917366004615475565b611682565b60405161034b91906154ea565b61035d61093736600461554f565b611769565b61047061094a366004615151565b6119f7565b6002546103f990600160c01b900463ffffffff1681565b6103d3610974366004615216565b611a15565b61035d610987366004615151565b60686020526000908152604090205481565b6103d36109a7366004615216565b611b54565b61035d6109ba3660046155b7565b611c83565b61035d60d65481565b6103d36109d6366004615216565b611c96565b61035d6109e93660046152b1565b600090815260a2602052604090205490565b6103d3610a093660046152b1565b611e24565b6103a0610a1c3660046152b1565b60696020526000908152604090208054600182015460028301546003909301549192909184565b6103d3610a51366004615151565b611e35565b610a5e6150eb565b506001600160a01b039081166000908152609d6020908152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015290565b6000610ae2611e70565b805490915060ff600160401b82041615906001600160401b0316600081158015610b095750825b90506000826001600160401b03166001148015610b255750303b155b905081158015610b33575080155b15610b515760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7b57845460ff60401b1916600160401b1785555b610b8433611e94565b610b8c611ea5565b610b94611ead565b610b9c611ec5565b610be86040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250611ed5565b610bf488600019611ef1565b610bfd87611f67565b610c0686611fbb565b8315610c4c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610c5e612011565b610c6781611f67565b50565b905090565b82610c78612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610ca7939291906155e5565b602060405180830381865afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190615608565b81339091610d145760405163cc5d3c8b60e01b8152600401610d0b929190615625565b60405180910390fd5b5050836000610d2282612067565b9050610d2d81612162565b610d38816000612194565b610d40612274565b60008080610d5087890189615756565b9250925092506000835111610d7857604051630783843960e51b815260040160405180910390fd5b6000825111610d9a57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b038916600090815260d5602052604090205415610dd157604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815260d59092529290208151815591519091906001820190610e1b9082615852565b5060408201516002820190610e309082615852565b5050506001600160a01b03811615610e4c57610e4c898261229a565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610e87929190615910565b60405180910390a2505050505050505050565b610ea2612011565b610eac82826122f1565b5050565b60a054600090610ecb90610ec5609d85612358565b906123d2565b92915050565b3360008181526067602052604090205460ff16610f02576040516372e3ef9760e01b8152600401610d0b9190615380565b50610f0b61240f565b610f13612434565b565b610c673382612480565b600080610f2a61252d565b915091509091565b60d56020526000908152604090208054600182018054919291610f54906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f80906157d1565b8015610fcd5780601f10610fa257610100808354040283529160200191610fcd565b820191906000526020600020905b815481529060010190602001808311610fb057829003601f168201915b505050505090806002018054610fe2906157d1565b80601f016020809104026020016040519081016040528092919081815260200182805461100e906157d1565b801561105b5780601f106110305761010080835404028352916020019161105b565b820191906000526020600020905b81548152906001019060200180831161103e57829003601f168201915b5050505050905083565b6000806110706125a4565b5460ff1692915050565b6001600160a01b038082166000908152609d60209081526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007015460e083015290610ecb906125c8565b6110fe612011565b610f1360006125e7565b600080610f2a612643565b610c67338261229a565b611125612011565b610c67816126be565b611136612011565b6111418383836126f3565b505050565b61114e612011565b61115b81620f4240101590565b819061117d57604051631c9c717b60e01b8152600401610d0b91815260200190565b5060d78190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b826111c3612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016111f2939291906155e5565b602060405180830381865afa15801561120f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112339190615608565b813390916112565760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d56020526040902054849081906112935760405163ee27189960e01b8152600401610d0b9190615380565b5061129c612274565b60006112aa84860186615151565b90506001600160a01b0386166112c1609d83612358565b51879183916001600160a01b0316146112ef5760405163c0bbff1360e01b8152600401610d0b929190615625565b50506112fa81612746565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051611335929190615910565b60405180910390a2505050505050565b600080610f2a6000546001549091565b8261135e612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b815260040161138d939291906155e5565b602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190615608565b813390916113f15760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50508360006113ff82612067565b905061140a81612162565b611415816000612194565b6001600160a01b038616600090815260d56020526040902054869081906114505760405163ee27189960e01b8152600401610d0b9190615380565b50611459612274565b6001600160a01b03871661146e609d88612358565b51889188916001600160a01b03161461149c5760405163c0bbff1360e01b8152600401610d0b929190615625565b5050610c4c8686600260189054906101000a900463ffffffff1661289c565b6114c3612011565b610c6781600019611ef1565b3360008181526067602052604090205460ff16611500576040516372e3ef9760e01b8152600401610d0b9190615380565b50611509612274565b610f13612c28565b6000606080600080600060606000611527612c6f565b805490915015801561153b57506001810154155b61157f5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610d0b565b611587612c93565b61158f612d34565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806115c5612d51565b546001600160a01b031692915050565b60006115e2609d83612358565b905060006115fb60a054836123d290919063ffffffff16565b825160025491925060009161161d9190600160c01b900463ffffffff16612d75565b905081806116285750805b849061164757604051623477b560e51b8152600401610d0b9190615380565b5061165183612d94565b158490611672576040516317c7b35d60e31b8152600401610d0b9190615380565b5061167c84612746565b50505050565b604080516000815260208101909152606090826001600160401b038111156116ac576116ac61563f565b6040519080825280602002602001820160405280156116df57816020015b60608152602001906001900390816116ca5790505b50915060005b838110156117615761173c3086868481811061170357611703615968565b9050602002810190611715919061597e565b85604051602001611728939291906159c4565b604051602081830303815290604052612db3565b83828151811061174e5761174e615968565b60209081029190910101526001016116e5565b505092915050565b600084611774612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117a3939291906155e5565b602060405180830381865afa1580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e49190615608565b813390916118075760405163cc5d3c8b60e01b8152600401610d0b929190615625565b505085600061181582612067565b905061182081612162565b61182b816000612194565b6001600160a01b038816600090815260d56020526040902054889081906118665760405163ee27189960e01b8152600401610d0b9190615380565b5061186f612274565b600080896002811115611884576118846159eb565b036118e2576000611897888a018a615a16565b8051602001519091508b6001600160a01b03828116908216146118cf57604051631a071d0760e01b8152600401610d0b929190615625565b50506118da81612e29565b915050611995565b60028960028111156118f6576118f66159eb565b0361197a5760008061190a898b018b615b3b565b90925090506001600160a01b038c16611924609d84612358565b518d9184916001600160a01b0316146119525760405163c0bbff1360e01b8152600401610d0b929190615625565b50506119718282600260189054906101000a900463ffffffff1661332e565b92505050611995565b8860405163047031cf60e41b8152600401610d0b9190615b89565b8860028111156119a7576119a76159eb565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff5836040516119e291815260200190565b60405180910390a39998505050505050505050565b6000610ecb82600260189054906101000a900463ffffffff16612d75565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381168214611a625760405163cdc0567f60e01b8152600401610d0b929190615625565b506000905080611a7483850185615b97565b91509150611a80612043565b6001600160a01b031663e76fede6868484611a996138ce565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c5883604051611b4591815260200190565b60405180910390a25050505050565b82611b5d612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611b8c939291906155e5565b602060405180830381865afa158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190615608565b81339091611bf05760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d5602052604090205484908190611c2d5760405163ee27189960e01b8152600401610d0b9190615380565b50611c36612274565b611c3f856138f2565b611c4885613908565b6040516001600160a01b038616907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a25050505050565b6000611c8f838361397b565b9392505050565b82611c9f612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611cce939291906155e5565b602060405180830381865afa158015611ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0f9190615608565b81339091611d325760405163cc5d3c8b60e01b8152600401610d0b929190615625565b5050836000611d4082612067565b9050611d4b81612162565b611d56816000612194565b6001600160a01b038616600090815260d5602052604090205486908190611d915760405163ee27189960e01b8152600401610d0b9190615380565b50611d9a612274565b6000808080611dab898b018b615bb9565b9350935093509350611dd38b83868685600260189054906101000a900463ffffffff166139ea565b508a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b604051611e0f929190615910565b60405180910390a25050505050505050505050565b611e2c612011565b610c6781611fbb565b611e3d612011565b6001600160a01b038116611e67576000604051631e4fbdf760e01b8152600401610d0b9190615380565b610c67816125e7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611e9c613b73565b610c6781613b98565b610f13613b73565b611eb5613b73565b611ebd613ba0565b610f13611ea5565b611ecd613b73565b611ebd613bd5565b611edd613b73565b611ee78282613bf2565b610eac8282613c04565b818180821115611f1d5760405163ccccdafb60e01b815260048101929092526024820152604401610d0b565b50506000829055600181905560408051838152602081018390527f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f56884991015b60405180910390a15050565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f906020016111af565b80600003611fdc5760405163bc71a04360e01b815260040160405180910390fd5b60d68190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23906020016111af565b3361201a6115ba565b6001600160a01b031614610f13573360405163118cdaa760e01b8152600401610d0b9190615380565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052906120b8612043565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b81526004016120e5929190615625565b61012060405180830381865afa158015612103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121279190615c36565b90508060a001516001600160401b031660001415839061215b57604051637b3c09bf60e01b8152600401610d0b9190615380565b5092915050565b610c67816000015160005460015460405180604001604052806006815260200165746f6b656e7360d01b815250613c0c565b60008061219f612643565b915091506000836121b45784608001516121ba565b8460e001515b9050612208816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b815250613c0c565b60008061221361252d565b9150915060008661222857876060015161222e565b8760c001515b9050610c4c8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b815250613c0c565b61227c611065565b15610f135760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b03828116600081815260a1602052604080822080546001600160a01b0319169486169485179055517f3349d2e561f8c23a3ff42257745c8fb53e4bf3cbd4046672a3c4a0c7ee8a7b319190a35050565b6122f9612274565b6001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b6123606150eb565b61236a8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e08201529392505050565b6000806123e784606001518560a00151613ce8565b6123f19042615955565b90506123fc846125c8565b801561240757508281115b949350505050565b612417611065565b610f1357604051638dfc202b60e01b815260040160405180910390fd5b61243c61240f565b60006124466125a4565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516111af9190615380565b6001600160a01b0382166000818152606a602090815260408083208151928301849052828201949094528051808303820181526060909201905281906124d4908490613cfe90613d6990613e629089613e87565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb83838060200190518101906125189190615cd8565b60408051928352602083019190915201611b45565b6000806125386138ce565b6001600160a01b031663846337136040518163ffffffff1660e01b8152600401602060405180830381865afa158015612575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125999190615cf1565b92620f424092509050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006125d78260600151151590565b8015610ecb575050608001511590565b60006125f1612d51565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60008061264e6138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561268b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126af9190615d0e565b926001600160401b0392509050565b60a08190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba906020016111af565b612700609e848484613f41565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6000612753609d83612358565b90506127de82612761613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161279291815260200190565b6020604051808303816000875af11580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d59190615cd8565b609d9190614008565b6127e9609d836140b0565b805160408201516127fc91609f9161415b565b806040015160a2600083602001518152602001908152602001600020546128239190615955565b60a2600083602001518152602001908152602001600020819055508060200151826001600160a01b031682600001516001600160a01b03167f663a6f978de61dc3e2441026c082be709377b083ab642a8ce71386f8b91c710b846040015160405161289091815260200190565b60405180910390a45050565b6128a46150eb565b60006128b1609d86612358565b90506128bc816125c8565b85906128dc57604051631eb5ff9560e01b8152600401610d0b9190615380565b508060400151841415858590916129085760405163f32518cd60e01b8152600401610d0b92919061545c565b505060408101518085111561293e57612939612922612043565b835161292e8489615955565b609f929190886141e0565b612957565b81516129579061294e8784615955565b609f919061415b565b6000612961613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161299291815260200190565b6020604051808303816000875af11580156129b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d59190615cd8565b905060006129e284612d94565b156129ee5760006129fd565b60c08401516129fd9083615955565b6001600160a01b0389166000908152609d60205260409020600281018990556006018390559050612a2c613fe4565b604051636452fc0f60e11b815260048101859052602481018390526001600160a01b03919091169063c8a5f81e90604401602060405180830381865afa158015612a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9e9190615cd8565b6001600160a01b0389166000908152609d602052604081206007018054909190612ac9908490615d2b565b909155505082871115612b1157612ae08388615955565b60a26000866020015181526020019081526020016000206000828254612b069190615d2b565b90915550612b479050565b612b1b8784615955565b60a26000866020015181526020019081526020016000206000828254612b419190615955565b90915550505b8360200151886001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f8a87604051612b9e929190918252602082015260400190565b60405180910390a4505050506001600160a01b039384166000908152609d6020908152604091829020825161010081018452815490971687526001810154918701919091526002810154918601919091526003810154606086015260048101546080860152600581015460a0860152600681015460c08601526007015460e0850152509192915050565b612c30612274565b6000612c3a6125a4565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124733390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b60606000612c9f612c6f565b9050806002018054612cb0906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054612cdc906157d1565b8015612d295780601f10612cfe57610100808354040283529160200191612d29565b820191906000526020600020905b815481529060010190602001808311612d0c57829003601f168201915b505050505091505090565b60606000612d40612c6f565b9050806003018054612cb0906157d1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000612d8c612d82612043565b609f9085856142e5565b159392505050565b6000612da38260600151151590565b8015610ecb575050604001511590565b6060600080846001600160a01b031684604051612dd09190615d3e565b600060405180830381855af49150503d8060008114612e0b576040519150601f19603f3d011682016040523d82523d6000602084013e612e10565b606091505b5091509150612e2085838361437f565b95945050505050565b80516020808201516080909201518051600093928492612e4e92810182019101615d5a565b90506000612e5d609d83612358565b805190915083906001600160a01b0381811690831614612e9257604051634508fbf760e11b8152600401610d0b929190615625565b50506020810151612ea4846000612480565b6000612eae6143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612ed99190615380565b602060405180830381865afa158015612ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1a9190615cd8565b90506000612f266143f6565b6001600160a01b0316634c4ea0ed846040518263ffffffff1660e01b8152600401612f5391815260200190565b602060405180830381865afa158015612f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f949190615608565b612f9f576000612fa3565b60d7545b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637f07d28360008b85604051602001612feb929190615d77565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401613017929190615e16565b6020604051808303816000875af1158015613036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305a9190615cd8565b90506000613068828461441a565b905060006130746143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161309f9190615380565b602060405180830381865afa1580156130bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e09190615cd8565b9050806130ed8387615d2b565b1485828490919261312257604051631b0d791f60e11b8152600481019390935260248301919091526044820152606401610d0b565b5050831590506132db57600060d6548461313c9190615e36565b905060006131486138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a99190615d0e565b6131bc906001600160401b031642615d2b565b90506131c98b8383614481565b83156132d8576131d7613fe4565b6001600160a01b0316631d1c2fec896040518263ffffffff1660e01b815260040161320491815260200190565b6020604051808303816000875af1158015613223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132479190615cd8565b5061326c6132536143f6565b8561325c6143d2565b6001600160a01b031691906145f3565b6132746143f6565b60405163102ae65160e31b8152600481018a9052602481018690526001600160a01b039190911690638157328890604401600060405180830381600087803b1580156132bf57600080fd5b505af11580156132d3573d6000803e3d6000fd5b505050505b50505b60408051848152602081018490526001600160a01b038b16917f60a56d4d503735b4848feb6f491f14d7415262346b820d3b5a3d2733201bda36910160405180910390a250909998505050505050505050565b60008061333c609d86612358565b9050613347816125c8565b859061336757604051631eb5ff9560e01b8152600401610d0b9190615380565b50600061337f60a054836123d290919063ffffffff16565b158015613392575061339082612d94565b155b801561339d57508415155b6133a857600061341e565b6133b0613fe4565b6001600160a01b031663db750926876040518263ffffffff1660e01b81526004016133db9190615380565b6020604051808303816000875af11580156133fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341e9190615cd8565b905061345d8661342c613fe4565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b815260040161279291815260200190565b613468609d876146a2565b613473609d8761474d565b60008082156137c2576000613486612043565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f916134b9913090600290600401615e4d565b602060405180830381865afa1580156134d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134fa9190615cd8565b90506000613506612043565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613536913090600401615625565b60a060405180830381865afa158015613553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135779190615e72565b9050600081602001511161358c576000613596565b613596858361441a565b9250821561368b576135a66143d2565b6001600160a01b031663095ea7b36135bc612043565b856040518363ffffffff1660e01b81526004016135da92919061545c565b6020604051808303816000875af11580156135f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361d9190615608565b50613626612043565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e9916136589130908890600401615ec7565b600060405180830381600087803b15801561367257600080fd5b505af1158015613686573d6000803e3d6000fd5b505050505b6136958386615955565b935083156137bf5785516001600160a01b03908116600090815260a1602052604090205416806137b0576136c76143d2565b6001600160a01b031663095ea7b36136dd612043565b876040518363ffffffff1660e01b81526004016136fb92919061545c565b6020604051808303816000875af115801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190615608565b50613747612043565b8751604051633a30904960e11b81526001600160a01b0392909216916374612092916137799130908a90600401615ec7565b600060405180830381600087803b15801561379357600080fd5b505af11580156137a7573d6000803e3d6000fd5b505050506137bd565b6137bd818661325c6143d2565b505b50505b602084015184516001600160a01b038a811691167f7df4dbb3b3c999ca3e143d3fe67abfa22078fd572d49d411278648c773912e318686868d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387d9190615cd8565b604080519586526020860194909452928401919091526060830152608082015260a00160405180910390a483516138b49087612d75565b156138c2576138c288612746565b50909695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006138fd82612067565b9050610eac81612162565b6139138160016147f9565b61391b612043565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016139469190615380565b600060405180830381600087803b15801561396057600080fd5b505af1158015613974573d6000803e3d6000fd5b5050505050565b6000611c8f7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016139cf939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614810565b6139f26150eb565b6001600160a01b038616613a1957604051634ffdf5ef60e11b815260040160405180910390fd5b613a2487878561483d565b613a2f609e8761488c565b6000613abc88888888613a40613fe4565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b8152600401613a6d91815260200190565b6020604051808303816000875af1158015613a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ab09190615cd8565b609d94939291906148e1565b9050613ad4613ac9612043565b609f908a88876141e0565b806040015160a260008360200151815260200190815260200160002054613afb9190615d2b565b60a26000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167f3bd4419f8defec88dd042e31b8e8743f00803aed288fe7c31c9cf0689d295cf28460400151604051613b6091815260200190565b60405180910390a4979650505050505050565b613b7b614a2e565b610f1357604051631afcd79f60e31b815260040160405180910390fd5b611e3d613b73565b613ba8613b73565b613bb56000600019611ef1565b613bc36000620f4240614a48565b610f1360006001600160401b03614b1a565b613bdd613b73565b6000613be76125a4565b805460ff1916905550565b613bfa613b73565b610eac8282614ba7565b610eac613b73565b613c17848484614be8565b8185858590919293610c4c57604051630871e13d60e01b8152600401610d0b9493929190615eeb565b6001600160a01b03808216600090815260208481526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401529091613cc09060600151151590565b8390613ce0576040516342daadaf60e01b8152600401610d0b9190615380565b509392505050565b6000818311613cf75781611c8f565b5090919050565b60008181526069602090815260408083208151608081018352815481526001820154938101849052600282015492810192909252600301546060820152908390613d5e5760405163107349a960e21b8152600401610d0b91815260200190565b506060015192915050565b600060606000613d7885614bff565b90504281604001511115613da057505060408051602081019091526000815260019150613e5b565b60008085806020019051810190613db79190615f1a565b84519193509150613dcc90606890839061415b565b82516040808501518151928352602083015288916001600160a01b038416917f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f44910160405180910390a38251613e229083615d2b565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152606960205260408120818155600181018290556002810182905560030155565b600060608760030154831115613eb057604051634a411b9d60e11b815260040160405180910390fd5b60008315613ebe5783613ec4565b88600301545b89549094505b8015801590613ed95750600085115b15613f3257600080613eef83898c63ffffffff16565b915091508115613f00575050613f32565b965086613f0e8c8c8b614c8d565b925086613f1a81615f40565b9750508380613f2890615f57565b9450505050613eca565b50989397509295505050505050565b6001600160a01b038281166000908152602086815260409182902082518084019093528054909316808352600190930154910152829015613f9657604051632d3e5fb960e01b8152600401610d0b9190615380565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006140148484613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614080906125c8565b600482015484916140a6576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050600601555050565b60006140bc8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614128906125c8565b6004820154839161414e576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426004909101555050565b8060000361416857505050565b6001600160a01b03821660009081526020849052604090205481808210156141ac57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038216600090815260208490526040812080548392906141d6908490615955565b9091555050505050565b8115613974576001600160a01b03831660009081526020869052604081205461420a908490615d2b565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161423e93929190615f70565b602060405180830381865afa15801561425b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061427f9190615cd8565b90508082818111156142ad57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038516600090815260208890526040812080548692906142d7908490615d2b565b909155505050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161431893929190615f70565b602060405180830381865afa158015614335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143599190615cd8565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b6060826143945761438f82614d14565b611c8f565b81511580156143ab57506001600160a01b0384163b155b156143cb5783604051639996b31560e01b8152600401610d0b9190615380565b5080611c8f565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b600061442983620f4240101590565b8061443c575061443c82620f4240101590565b838390916144665760405163768bf0eb60e11b815260048101929092526024820152604401610d0b565b50620f424090506144778385615e36565b611c8f9190615f99565b816000036144a257604051638f4c63d960e01b815260040160405180910390fd5b6144ce6144ad612043565b600254606891908690869063ffffffff600160c01b9091048116906141e016565b6001600160a01b0383166000908152606a6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52606990985295909720915182559351600182015592519083015591516003918201558101549091901561459c57600182015460009081526069602052604090206003018190555b6145a68282614d3d565b604080518581526020810185905282916001600160a01b038816917f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f910160405180910390a35050505050565b80156111415760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90614627908590859060040161545c565b6020604051808303816000875af1158015614646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061466a9190615608565b6111415760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610d0b565b60006146ae8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015290915061471a906125c8565b60048201548391614740576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426005909101555050565b60006147598383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201529091506147c5906125c8565b600482015483916147eb576040516361b66e0d60e01b8152600401610d0b92919061545c565b505060006007909101555050565b600061480483612067565b90506111418183612194565b6000610ecb61481d614dd0565b8360405161190160f01b8152600281019290925260228201526042902090565b600061485261484c858561397b565b83614dda565b905080836001600160a01b038083169082161461488457604051638c5b935d60e01b8152600401610d0b929190615625565b505050505050565b6001600160a01b03818116600090815260208481526040918290208251808401909352805490931680835260019093015491015281901561114157604051638173627160e01b8152600401610d0b9190615380565b6148e96150eb565b6001600160a01b0380861660009081526020898152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015261496a9060600151151590565b15859061498b57604051630bc4def560e01b8152600401610d0b9190615380565b505060408051610100810182526001600160a01b0396871681526020808201958652818301948552426060830190815260006080840181815260a0850182815260c0860197885260e086018381529a8c1683529b90935293909320825181546001600160a01b0319169916989098178855945160018801559251600287015551600386015591516004850155935160058401555160068301555160079091015590565b6000614a38611e70565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614a765760405163ccccdafb60e01b8152600401610d0b9291906152ca565b508290508163ffffffff8116620f42401015614aa75760405163ccccdafb60e01b8152600401610d0b9291906152ca565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b029190911667ffffffffffffffff60801b19909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a3690611f5b90849084906152ca565b81816001600160401b038082169083161115614b4b5760405163ccccdafb60e01b8152600401610d0b929190615366565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d190611f5b9084908490615366565b614baf613b73565b6000614bb9612c6f565b905060028101614bc98482615852565b5060038101614bd88382615852565b5060008082556001909101555050565b600082841015801561240757505090911115919050565b614c2d6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152606960209081526040918290208251608081018452815481526001820154928101839052600282015493810193909352600301546060830152839061215b5760405163107349a960e21b8152600401610d0b91815260200190565b600080846003015411614cb35760405163ddaf8f2160e01b815260040160405180910390fd5b6000614cc685600001548563ffffffff16565b9050614cd985600001548463ffffffff16565b6001856003016000828254614cee9190615955565b90915550508085556003850154600003614d0a57600060018601555b5050915492915050565b805115614d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b612710826003015410614d63576040516303a8c56b60e61b815260040160405180910390fd5b80614d8157604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d9d908490615d2b565b90915550506003820154600003614db2578082555b6001826003016000828254614dc79190615d2b565b90915550505050565b6000610c6a614e04565b600080600080614dea8686614e78565b925092509250614dfa8282614ec5565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614e2f614f7e565b614e37614fe5565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614eb25760208401516040850151606086015160001a614ea488828585615026565b955095509550505050614ebe565b50508151600091506002905b9250925092565b6000826003811115614ed957614ed96159eb565b03614ee2575050565b6001826003811115614ef657614ef66159eb565b03614f145760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614f2857614f286159eb565b03614f495760405163fce698f760e01b815260048101829052602401610d0b565b6003826003811115614f5d57614f5d6159eb565b03610eac576040516335e2f38360e21b815260048101829052602401610d0b565b600080614f89612c6f565b90506000614f95612c93565b805190915015614fad57805160209091012092915050565b81548015614fbc579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614ff0612c6f565b90506000614ffc612d34565b80519091501561501457805160209091012092915050565b60018201548015614fbc579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0384111561505757506000915060039050826150e1565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156150ab573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166150d7575060009250600191508290506150e1565b9250600091508190505b9450945094915050565b60405180610100016040528060006001600160a01b03168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0381168114610c6757600080fd5b60006020828403121561516357600080fd5b8135611c8f8161513c565b63ffffffff81168114610c6757600080fd5b60008060006060848603121561519557600080fd5b8335925060208401356151a78161516e565b929592945050506040919091013590565b6000602082840312156151ca57600080fd5b8135611c8f8161516e565b60008083601f8401126151e757600080fd5b5081356001600160401b038111156151fe57600080fd5b602083019150836020828501011115613e5b57600080fd5b60008060006040848603121561522b57600080fd5b83356152368161513c565b925060208401356001600160401b0381111561525157600080fd5b61525d868287016151d5565b9497909650939450505050565b8015158114610c6757600080fd5b6000806040838503121561528b57600080fd5b82356152968161513c565b915060208301356152a68161526a565b809150509250929050565b6000602082840312156152c357600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156152fc5781810151838201526020016152e4565b50506000910152565b6000815180845261531d8160208601602086016152e1565b601f01601f19169290920160200192915050565b83815260606020820152600061534a6060830185615305565b828103604084015261535c8185615305565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b6001600160a01b0391909116815260200190565b6000806000606084860312156153a957600080fd5b83356153b48161513c565b925060208401356151a78161513c565b60ff60f81b8816815260e0602082015260006153e360e0830189615305565b82810360408401526153f58189615305565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561544b57835183526020938401939092019160010161542d565b50909b9a5050505050505050505050565b6001600160a01b03929092168252602082015260400190565b6000806020838503121561548857600080fd5b82356001600160401b0381111561549e57600080fd5b8301601f810185136154af57600080fd5b80356001600160401b038111156154c557600080fd5b8560208260051b84010111156154da57600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561554357603f1987860301845261552e858351615305565b94506020938401939190910190600101615512565b50929695505050505050565b6000806000806060858703121561556557600080fd5b84356155708161513c565b935060208501356003811061558457600080fd5b925060408501356001600160401b0381111561559f57600080fd5b6155ab878288016151d5565b95989497509550505050565b600080604083850312156155ca57600080fd5b82356155d58161513c565b915060208301356152a68161513c565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561561a57600080fd5b8151611c8f8161526a565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156156775761567761563f565b60405290565b60405160a081016001600160401b03811182821017156156775761567761563f565b60405161012081016001600160401b03811182821017156156775761567761563f565b600082601f8301126156d357600080fd5b8135602083016000806001600160401b038411156156f3576156f361563f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156157215761572161563f565b60405283815290508082840187101561573957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561576b57600080fd5b83356001600160401b0381111561578157600080fd5b61578d868287016156c2565b93505060208401356001600160401b038111156157a957600080fd5b6157b5868287016156c2565b92505060408401356157c68161513c565b809150509250925092565b600181811c908216806157e557607f821691505b60208210810361580557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561114157806000526020600020601f840160051c810160208510156158325750805b601f840160051c820191505b81811015613974576000815560010161583e565b81516001600160401b0381111561586b5761586b61563f565b61587f8161587984546157d1565b8461580b565b6020601f8211600181146158b3576000831561589b5750848201515b600019600385901b1c1916600184901b178455613974565b600084815260208120601f198516915b828110156158e357878501518255602094850194600190920191016158c3565b50848210156159015786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ecb57610ecb61593f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261599557600080fd5b8301803591506001600160401b038211156159af57600080fd5b602001915036819003821315613e5b57600080fd5b8284823760008382016000815283516159e18183602088016152e1565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6001600160401b0381168114610c6757600080fd5b600060208284031215615a2857600080fd5b81356001600160401b03811115615a3e57600080fd5b820160408185031215615a5057600080fd5b615a58615655565b81356001600160401b03811115615a6e57600080fd5b820160a08187031215615a8057600080fd5b615a8861567d565b8135615a938161513c565b81526020820135615aa38161513c565b60208201526040820135615ab681615a01565b604082015260608201356001600160801b0381168114615ad557600080fd5b606082015260808201356001600160401b03811115615af357600080fd5b615aff888285016156c2565b60808301525082525060208201356001600160401b03811115615b2157600080fd5b615b2d868285016156c2565b602083015250949350505050565b60008060408385031215615b4e57600080fd5b8235615b598161513c565b946020939093013593505050565b60038110615b8557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610ecb8284615b67565b60008060408385031215615baa57600080fd5b50508035926020909101359150565b60008060008060808587031215615bcf57600080fd5b84359350602085013592506040850135615be88161513c565b915060608501356001600160401b03811115615c0357600080fd5b615c0f878288016156c2565b91505092959194509250565b8051615c268161516e565b919050565b8051615c2681615a01565b6000610120828403128015615c4a57600080fd5b506000615c5561569f565b835181526020808501519082015260408085015190820152615c7960608501615c1b565b6060820152615c8a60808501615c2b565b6080820152615c9b60a08501615c2b565b60a0820152615cac60c08501615c1b565b60c0820152615cbd60e08501615c2b565b60e08201526101009384015193810193909352509092915050565b600060208284031215615cea57600080fd5b5051919050565b600060208284031215615d0357600080fd5b8151611c8f8161516e565b600060208284031215615d2057600080fd5b8151611c8f81615a01565b80820180821115610ecb57610ecb61593f565b60008251615d508184602087016152e1565b9190910192915050565b600060208284031215615d6c57600080fd5b8151611c8f8161513c565b604081526000835160408084015260018060a01b03815116608084015260018060a01b0360208201511660a08401526001600160401b0360408201511660c084015260018060801b0360608201511660e08401526080810151905060a0610100840152615de8610120840182615305565b90506020850151603f19848303016060850152615e058282615305565b925050508260208301529392505050565b615e208184615b67565b6040602082015260006124076040830184615305565b8082028115828204841417610ecb57610ecb61593f565b6001600160a01b03848116825283166020820152606081016124076040830184615b67565b600060a0828403128015615e8557600080fd5b506000615e9061567d565b8351815260208085015190820152604080850151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b608081526000615efe6080830187615305565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615f2d57600080fd5b825160208401519092506152a68161513c565b600081615f4f57615f4f61593f565b506000190190565b600060018201615f6957615f6961593f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b600082615fb657634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209c05e49a7d3d7f3015873a2c41e2f68419180f16cef8fd91645f14bc8e8b733264736f6c634300081b0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102ce5760003560e01c80638180083b1161017e578063a827a90c116100df578063a827a90c146108f6578063ac9650d814610909578063b15d2a2c14610929578063ba38f67d1461093c578063bfdfa7af1461094f578063cb8347fe14610966578063cbe5f3f214610979578063ce0fc0cc14610999578063ce56c98b146109ac578063d07a7a84146109bf578063dedf6726146109c8578063e2e1e8e9146109db578063e6f50054146109fb578063eff0f59214610a0e578063f2fde38b14610a4357600080fd5b80638180083b14610795578063819ba366146107a857806381e777a7146107c5578063832bc923146107d85780638456cb59146107eb57806384b0196e146107f357806385e82baf1461080e57806388812583146108175780638d2f29481461082e5780638da5cb5b146108595780639249c5c1146108615780639384e0781461087857806393d4e7cb1461089b5780639aafa5d1146108dc57600080fd5b80634f793cdc116102335780634f793cdc146104b157806352a9039c146104d357806355c85269146105735780635c975abb146106365780636234e2161461063e5780636a3ca3831461065e5780636d9a395114610671578063715018a6146106ec57806371ce020a146106f45780637203ca781461070a5780637337182314610740578063772495c3146107495780637aa31bce1461075c5780637dfe6d281461076f5780637e89bac31461078257600080fd5b80630e022923146102d3578063138dea081461035457806313c474c91461036b5780631cafa218146103c05780631dd42f60146103d55780631ebb7c30146103e857806324b8fbf61461040e578063355779621461042157806336fdd28a146104345780633afd23fe1461043d5780633f0ed79d1461045d5780633f4ba83a1461048057806345f5448514610488578063482468b71461049b575b600080fd5b6102e66102e1366004615151565b610a56565b60405161034b919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0828101519082015260c0808301519082015260e091820151918101919091526101000190565b60405180910390f35b61035d60d75481565b60405190815260200161034b565b6103a0610379366004615151565b606a6020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b6103d36103ce366004615180565b610ad8565b005b6103d36103e33660046151b8565b610c56565b600254600160c01b900463ffffffff165b60405163ffffffff909116815260200161034b565b6103d361041c366004615216565b610c6f565b6103d361042f366004615278565b610e9a565b61035d60005481565b61035d61044b3660046152b1565b60a26020526000908152604090205481565b61047061046b366004615151565b610eb0565b604051901515815260200161034b565b6103d3610ed1565b6103d36104963660046152b1565b610f15565b6104a3610f1f565b60405161034b9291906152ca565b6104c46104bf366004615151565b610f32565b60405161034b93929190615331565b61052e6104e1366004615151565b609d60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b03909616969495939492939192909188565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e08201526101000161034b565b610604610581366004615151565b6001600160a01b039081166000908152609d60209081526040918290208251610100810184528154909416808552600182015492850183905260028201549385018490526003820154606086015260048201546080860152600582015460a0860152600682015460c0860181905260079092015460e09095018590529491939091565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a00161034b565b610470611065565b61035d61064c366004615151565b609f6020526000908152604090205481565b61047061066c366004615151565b61107a565b6106c861067f366004615151565b604080518082018252600080825260209182018190526001600160a01b039384168152609e82528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b03168152602092830151928101929092520161034b565b6103d36110f6565b6106fc611108565b60405161034b929190615366565b610733610718366004615151565b60a1602052600090815260409020546001600160a01b031681565b60405161034b9190615380565b61035d60015481565b6103d3610757366004615151565b611113565b6103d361076a3660046152b1565b61111d565b6103d361077d366004615394565b61112e565b6103d36107903660046152b1565b611146565b6103d36107a3366004615216565b6111ba565b6107b0611345565b6040805192835260208301919091520161034b565b6103d36107d3366004615394565b611355565b6103d36107e63660046152b1565b6114bb565b6103d36114cf565b6107fb611511565b60405161034b97969594939291906153c4565b61035d60a05481565b6002546103f990600160801b900463ffffffff1681565b600254610841906001600160401b031681565b6040516001600160401b03909116815260200161034b565b6107336115ba565b6002546103f990600160a01b900463ffffffff1681565b610470610886366004615151565b60676020526000908152604090205460ff1681565b6108ce6108a9366004615151565b609e60205260009081526040902080546001909101546001600160a01b039091169082565b60405161034b92919061545c565b60025461084190600160401b90046001600160401b031681565b6103d3610904366004615151565b6115d5565b61091c610917366004615475565b611682565b60405161034b91906154ea565b61035d61093736600461554f565b611769565b61047061094a366004615151565b6119f7565b6002546103f990600160c01b900463ffffffff1681565b6103d3610974366004615216565b611a15565b61035d610987366004615151565b60686020526000908152604090205481565b6103d36109a7366004615216565b611b54565b61035d6109ba3660046155b7565b611c83565b61035d60d65481565b6103d36109d6366004615216565b611c96565b61035d6109e93660046152b1565b600090815260a2602052604090205490565b6103d3610a093660046152b1565b611e24565b6103a0610a1c3660046152b1565b60696020526000908152604090208054600182015460028301546003909301549192909184565b6103d3610a51366004615151565b611e35565b610a5e6150eb565b506001600160a01b039081166000908152609d6020908152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015290565b6000610ae2611e70565b805490915060ff600160401b82041615906001600160401b0316600081158015610b095750825b90506000826001600160401b03166001148015610b255750303b155b905081158015610b33575080155b15610b515760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7b57845460ff60401b1916600160401b1785555b610b8433611e94565b610b8c611ea5565b610b94611ead565b610b9c611ec5565b610be86040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250611ed5565b610bf488600019611ef1565b610bfd87611f67565b610c0686611fbb565b8315610c4c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610c5e612011565b610c6781611f67565b50565b905090565b82610c78612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610ca7939291906155e5565b602060405180830381865afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190615608565b81339091610d145760405163cc5d3c8b60e01b8152600401610d0b929190615625565b60405180910390fd5b5050836000610d2282612067565b9050610d2d81612162565b610d38816000612194565b610d40612274565b60008080610d5087890189615756565b9250925092506000835111610d7857604051630783843960e51b815260040160405180910390fd5b6000825111610d9a57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b038916600090815260d5602052604090205415610dd157604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815260d59092529290208151815591519091906001820190610e1b9082615852565b5060408201516002820190610e309082615852565b5050506001600160a01b03811615610e4c57610e4c898261229a565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610e87929190615910565b60405180910390a2505050505050505050565b610ea2612011565b610eac82826122f1565b5050565b60a054600090610ecb90610ec5609d85612358565b906123d2565b92915050565b3360008181526067602052604090205460ff16610f02576040516372e3ef9760e01b8152600401610d0b9190615380565b50610f0b61240f565b610f13612434565b565b610c673382612480565b600080610f2a61252d565b915091509091565b60d56020526000908152604090208054600182018054919291610f54906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f80906157d1565b8015610fcd5780601f10610fa257610100808354040283529160200191610fcd565b820191906000526020600020905b815481529060010190602001808311610fb057829003601f168201915b505050505090806002018054610fe2906157d1565b80601f016020809104026020016040519081016040528092919081815260200182805461100e906157d1565b801561105b5780601f106110305761010080835404028352916020019161105b565b820191906000526020600020905b81548152906001019060200180831161103e57829003601f168201915b5050505050905083565b6000806110706125a4565b5460ff1692915050565b6001600160a01b038082166000908152609d60209081526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007015460e083015290610ecb906125c8565b6110fe612011565b610f1360006125e7565b600080610f2a612643565b610c67338261229a565b611125612011565b610c67816126be565b611136612011565b6111418383836126f3565b505050565b61114e612011565b61115b81620f4240101590565b819061117d57604051631c9c717b60e01b8152600401610d0b91815260200190565b5060d78190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b826111c3612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016111f2939291906155e5565b602060405180830381865afa15801561120f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112339190615608565b813390916112565760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d56020526040902054849081906112935760405163ee27189960e01b8152600401610d0b9190615380565b5061129c612274565b60006112aa84860186615151565b90506001600160a01b0386166112c1609d83612358565b51879183916001600160a01b0316146112ef5760405163c0bbff1360e01b8152600401610d0b929190615625565b50506112fa81612746565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051611335929190615910565b60405180910390a2505050505050565b600080610f2a6000546001549091565b8261135e612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b815260040161138d939291906155e5565b602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190615608565b813390916113f15760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50508360006113ff82612067565b905061140a81612162565b611415816000612194565b6001600160a01b038616600090815260d56020526040902054869081906114505760405163ee27189960e01b8152600401610d0b9190615380565b50611459612274565b6001600160a01b03871661146e609d88612358565b51889188916001600160a01b03161461149c5760405163c0bbff1360e01b8152600401610d0b929190615625565b5050610c4c8686600260189054906101000a900463ffffffff1661289c565b6114c3612011565b610c6781600019611ef1565b3360008181526067602052604090205460ff16611500576040516372e3ef9760e01b8152600401610d0b9190615380565b50611509612274565b610f13612c28565b6000606080600080600060606000611527612c6f565b805490915015801561153b57506001810154155b61157f5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610d0b565b611587612c93565b61158f612d34565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806115c5612d51565b546001600160a01b031692915050565b60006115e2609d83612358565b905060006115fb60a054836123d290919063ffffffff16565b825160025491925060009161161d9190600160c01b900463ffffffff16612d75565b905081806116285750805b849061164757604051623477b560e51b8152600401610d0b9190615380565b5061165183612d94565b158490611672576040516317c7b35d60e31b8152600401610d0b9190615380565b5061167c84612746565b50505050565b604080516000815260208101909152606090826001600160401b038111156116ac576116ac61563f565b6040519080825280602002602001820160405280156116df57816020015b60608152602001906001900390816116ca5790505b50915060005b838110156117615761173c3086868481811061170357611703615968565b9050602002810190611715919061597e565b85604051602001611728939291906159c4565b604051602081830303815290604052612db3565b83828151811061174e5761174e615968565b60209081029190910101526001016116e5565b505092915050565b600084611774612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117a3939291906155e5565b602060405180830381865afa1580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e49190615608565b813390916118075760405163cc5d3c8b60e01b8152600401610d0b929190615625565b505085600061181582612067565b905061182081612162565b61182b816000612194565b6001600160a01b038816600090815260d56020526040902054889081906118665760405163ee27189960e01b8152600401610d0b9190615380565b5061186f612274565b600080896002811115611884576118846159eb565b036118e2576000611897888a018a615a16565b8051602001519091508b6001600160a01b03828116908216146118cf57604051631a071d0760e01b8152600401610d0b929190615625565b50506118da81612e29565b915050611995565b60028960028111156118f6576118f66159eb565b0361197a5760008061190a898b018b615b3b565b90925090506001600160a01b038c16611924609d84612358565b518d9184916001600160a01b0316146119525760405163c0bbff1360e01b8152600401610d0b929190615625565b50506119718282600260189054906101000a900463ffffffff1661332e565b92505050611995565b8860405163047031cf60e41b8152600401610d0b9190615b89565b8860028111156119a7576119a76159eb565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff5836040516119e291815260200190565b60405180910390a39998505050505050505050565b6000610ecb82600260189054906101000a900463ffffffff16612d75565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381168214611a625760405163cdc0567f60e01b8152600401610d0b929190615625565b506000905080611a7483850185615b97565b91509150611a80612043565b6001600160a01b031663e76fede6868484611a996138ce565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c5883604051611b4591815260200190565b60405180910390a25050505050565b82611b5d612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611b8c939291906155e5565b602060405180830381865afa158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190615608565b81339091611bf05760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d5602052604090205484908190611c2d5760405163ee27189960e01b8152600401610d0b9190615380565b50611c36612274565b611c3f856138f2565b611c4885613908565b6040516001600160a01b038616907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a25050505050565b6000611c8f838361397b565b9392505050565b82611c9f612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611cce939291906155e5565b602060405180830381865afa158015611ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0f9190615608565b81339091611d325760405163cc5d3c8b60e01b8152600401610d0b929190615625565b5050836000611d4082612067565b9050611d4b81612162565b611d56816000612194565b6001600160a01b038616600090815260d5602052604090205486908190611d915760405163ee27189960e01b8152600401610d0b9190615380565b50611d9a612274565b6000808080611dab898b018b615bb9565b9350935093509350611dd38b83868685600260189054906101000a900463ffffffff166139ea565b508a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b604051611e0f929190615910565b60405180910390a25050505050505050505050565b611e2c612011565b610c6781611fbb565b611e3d612011565b6001600160a01b038116611e67576000604051631e4fbdf760e01b8152600401610d0b9190615380565b610c67816125e7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611e9c613b73565b610c6781613b98565b610f13613b73565b611eb5613b73565b611ebd613ba0565b610f13611ea5565b611ecd613b73565b611ebd613bd5565b611edd613b73565b611ee78282613bf2565b610eac8282613c04565b818180821115611f1d5760405163ccccdafb60e01b815260048101929092526024820152604401610d0b565b50506000829055600181905560408051838152602081018390527f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f56884991015b60405180910390a15050565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f906020016111af565b80600003611fdc5760405163bc71a04360e01b815260040160405180910390fd5b60d68190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23906020016111af565b3361201a6115ba565b6001600160a01b031614610f13573360405163118cdaa760e01b8152600401610d0b9190615380565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052906120b8612043565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b81526004016120e5929190615625565b61012060405180830381865afa158015612103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121279190615c36565b90508060a001516001600160401b031660001415839061215b57604051637b3c09bf60e01b8152600401610d0b9190615380565b5092915050565b610c67816000015160005460015460405180604001604052806006815260200165746f6b656e7360d01b815250613c0c565b60008061219f612643565b915091506000836121b45784608001516121ba565b8460e001515b9050612208816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b815250613c0c565b60008061221361252d565b9150915060008661222857876060015161222e565b8760c001515b9050610c4c8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b815250613c0c565b61227c611065565b15610f135760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b03828116600081815260a1602052604080822080546001600160a01b0319169486169485179055517f3349d2e561f8c23a3ff42257745c8fb53e4bf3cbd4046672a3c4a0c7ee8a7b319190a35050565b6122f9612274565b6001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b6123606150eb565b61236a8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e08201529392505050565b6000806123e784606001518560a00151613ce8565b6123f19042615955565b90506123fc846125c8565b801561240757508281115b949350505050565b612417611065565b610f1357604051638dfc202b60e01b815260040160405180910390fd5b61243c61240f565b60006124466125a4565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516111af9190615380565b6001600160a01b0382166000818152606a602090815260408083208151928301849052828201949094528051808303820181526060909201905281906124d4908490613cfe90613d6990613e629089613e87565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb83838060200190518101906125189190615cd8565b60408051928352602083019190915201611b45565b6000806125386138ce565b6001600160a01b031663846337136040518163ffffffff1660e01b8152600401602060405180830381865afa158015612575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125999190615cf1565b92620f424092509050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006125d78260600151151590565b8015610ecb575050608001511590565b60006125f1612d51565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60008061264e6138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561268b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126af9190615d0e565b926001600160401b0392509050565b60a08190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba906020016111af565b612700609e848484613f41565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6000612753609d83612358565b90506127de82612761613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161279291815260200190565b6020604051808303816000875af11580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d59190615cd8565b609d9190614008565b6127e9609d836140b0565b805160408201516127fc91609f9161415b565b806040015160a2600083602001518152602001908152602001600020546128239190615955565b60a2600083602001518152602001908152602001600020819055508060200151826001600160a01b031682600001516001600160a01b03167f663a6f978de61dc3e2441026c082be709377b083ab642a8ce71386f8b91c710b846040015160405161289091815260200190565b60405180910390a45050565b6128a46150eb565b60006128b1609d86612358565b90506128bc816125c8565b85906128dc57604051631eb5ff9560e01b8152600401610d0b9190615380565b508060400151841415858590916129085760405163f32518cd60e01b8152600401610d0b92919061545c565b505060408101518085111561293e57612939612922612043565b835161292e8489615955565b609f929190886141e0565b612957565b81516129579061294e8784615955565b609f919061415b565b6000612961613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161299291815260200190565b6020604051808303816000875af11580156129b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d59190615cd8565b905060006129e284612d94565b156129ee5760006129fd565b60c08401516129fd9083615955565b6001600160a01b0389166000908152609d60205260409020600281018990556006018390559050612a2c613fe4565b604051636452fc0f60e11b815260048101859052602481018390526001600160a01b03919091169063c8a5f81e90604401602060405180830381865afa158015612a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9e9190615cd8565b6001600160a01b0389166000908152609d602052604081206007018054909190612ac9908490615d2b565b909155505082871115612b1157612ae08388615955565b60a26000866020015181526020019081526020016000206000828254612b069190615d2b565b90915550612b479050565b612b1b8784615955565b60a26000866020015181526020019081526020016000206000828254612b419190615955565b90915550505b8360200151886001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f8a87604051612b9e929190918252602082015260400190565b60405180910390a4505050506001600160a01b039384166000908152609d6020908152604091829020825161010081018452815490971687526001810154918701919091526002810154918601919091526003810154606086015260048101546080860152600581015460a0860152600681015460c08601526007015460e0850152509192915050565b612c30612274565b6000612c3a6125a4565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124733390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b60606000612c9f612c6f565b9050806002018054612cb0906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054612cdc906157d1565b8015612d295780601f10612cfe57610100808354040283529160200191612d29565b820191906000526020600020905b815481529060010190602001808311612d0c57829003601f168201915b505050505091505090565b60606000612d40612c6f565b9050806003018054612cb0906157d1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000612d8c612d82612043565b609f9085856142e5565b159392505050565b6000612da38260600151151590565b8015610ecb575050604001511590565b6060600080846001600160a01b031684604051612dd09190615d3e565b600060405180830381855af49150503d8060008114612e0b576040519150601f19603f3d011682016040523d82523d6000602084013e612e10565b606091505b5091509150612e2085838361437f565b95945050505050565b80516020808201516080909201518051600093928492612e4e92810182019101615d5a565b90506000612e5d609d83612358565b805190915083906001600160a01b0381811690831614612e9257604051634508fbf760e11b8152600401610d0b929190615625565b50506020810151612ea4846000612480565b6000612eae6143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612ed99190615380565b602060405180830381865afa158015612ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1a9190615cd8565b90506000612f266143f6565b6001600160a01b0316634c4ea0ed846040518263ffffffff1660e01b8152600401612f5391815260200190565b602060405180830381865afa158015612f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f949190615608565b612f9f576000612fa3565b60d7545b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637f07d28360008b85604051602001612feb929190615d77565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401613017929190615e16565b6020604051808303816000875af1158015613036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305a9190615cd8565b90506000613068828461441a565b905060006130746143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161309f9190615380565b602060405180830381865afa1580156130bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e09190615cd8565b9050806130ed8387615d2b565b1485828490919261312257604051631b0d791f60e11b8152600481019390935260248301919091526044820152606401610d0b565b5050831590506132db57600060d6548461313c9190615e36565b905060006131486138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a99190615d0e565b6131bc906001600160401b031642615d2b565b90506131c98b8383614481565b83156132d8576131d7613fe4565b6001600160a01b0316631d1c2fec896040518263ffffffff1660e01b815260040161320491815260200190565b6020604051808303816000875af1158015613223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132479190615cd8565b5061326c6132536143f6565b8561325c6143d2565b6001600160a01b031691906145f3565b6132746143f6565b60405163102ae65160e31b8152600481018a9052602481018690526001600160a01b039190911690638157328890604401600060405180830381600087803b1580156132bf57600080fd5b505af11580156132d3573d6000803e3d6000fd5b505050505b50505b60408051848152602081018490526001600160a01b038b16917f60a56d4d503735b4848feb6f491f14d7415262346b820d3b5a3d2733201bda36910160405180910390a250909998505050505050505050565b60008061333c609d86612358565b9050613347816125c8565b859061336757604051631eb5ff9560e01b8152600401610d0b9190615380565b50600061337f60a054836123d290919063ffffffff16565b158015613392575061339082612d94565b155b801561339d57508415155b6133a857600061341e565b6133b0613fe4565b6001600160a01b031663db750926876040518263ffffffff1660e01b81526004016133db9190615380565b6020604051808303816000875af11580156133fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341e9190615cd8565b905061345d8661342c613fe4565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b815260040161279291815260200190565b613468609d876146a2565b613473609d8761474d565b60008082156137c2576000613486612043565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f916134b9913090600290600401615e4d565b602060405180830381865afa1580156134d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134fa9190615cd8565b90506000613506612043565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613536913090600401615625565b60a060405180830381865afa158015613553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135779190615e72565b9050600081602001511161358c576000613596565b613596858361441a565b9250821561368b576135a66143d2565b6001600160a01b031663095ea7b36135bc612043565b856040518363ffffffff1660e01b81526004016135da92919061545c565b6020604051808303816000875af11580156135f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361d9190615608565b50613626612043565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e9916136589130908890600401615ec7565b600060405180830381600087803b15801561367257600080fd5b505af1158015613686573d6000803e3d6000fd5b505050505b6136958386615955565b935083156137bf5785516001600160a01b03908116600090815260a1602052604090205416806137b0576136c76143d2565b6001600160a01b031663095ea7b36136dd612043565b876040518363ffffffff1660e01b81526004016136fb92919061545c565b6020604051808303816000875af115801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190615608565b50613747612043565b8751604051633a30904960e11b81526001600160a01b0392909216916374612092916137799130908a90600401615ec7565b600060405180830381600087803b15801561379357600080fd5b505af11580156137a7573d6000803e3d6000fd5b505050506137bd565b6137bd818661325c6143d2565b505b50505b602084015184516001600160a01b038a811691167f7df4dbb3b3c999ca3e143d3fe67abfa22078fd572d49d411278648c773912e318686868d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387d9190615cd8565b604080519586526020860194909452928401919091526060830152608082015260a00160405180910390a483516138b49087612d75565b156138c2576138c288612746565b50909695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006138fd82612067565b9050610eac81612162565b6139138160016147f9565b61391b612043565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016139469190615380565b600060405180830381600087803b15801561396057600080fd5b505af1158015613974573d6000803e3d6000fd5b5050505050565b6000611c8f7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016139cf939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614810565b6139f26150eb565b6001600160a01b038616613a1957604051634ffdf5ef60e11b815260040160405180910390fd5b613a2487878561483d565b613a2f609e8761488c565b6000613abc88888888613a40613fe4565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b8152600401613a6d91815260200190565b6020604051808303816000875af1158015613a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ab09190615cd8565b609d94939291906148e1565b9050613ad4613ac9612043565b609f908a88876141e0565b806040015160a260008360200151815260200190815260200160002054613afb9190615d2b565b60a26000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167f3bd4419f8defec88dd042e31b8e8743f00803aed288fe7c31c9cf0689d295cf28460400151604051613b6091815260200190565b60405180910390a4979650505050505050565b613b7b614a2e565b610f1357604051631afcd79f60e31b815260040160405180910390fd5b611e3d613b73565b613ba8613b73565b613bb56000600019611ef1565b613bc36000620f4240614a48565b610f1360006001600160401b03614b1a565b613bdd613b73565b6000613be76125a4565b805460ff1916905550565b613bfa613b73565b610eac8282614ba7565b610eac613b73565b613c17848484614be8565b8185858590919293610c4c57604051630871e13d60e01b8152600401610d0b9493929190615eeb565b6001600160a01b03808216600090815260208481526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401529091613cc09060600151151590565b8390613ce0576040516342daadaf60e01b8152600401610d0b9190615380565b509392505050565b6000818311613cf75781611c8f565b5090919050565b60008181526069602090815260408083208151608081018352815481526001820154938101849052600282015492810192909252600301546060820152908390613d5e5760405163107349a960e21b8152600401610d0b91815260200190565b506060015192915050565b600060606000613d7885614bff565b90504281604001511115613da057505060408051602081019091526000815260019150613e5b565b60008085806020019051810190613db79190615f1a565b84519193509150613dcc90606890839061415b565b82516040808501518151928352602083015288916001600160a01b038416917f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f44910160405180910390a38251613e229083615d2b565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152606960205260408120818155600181018290556002810182905560030155565b600060608760030154831115613eb057604051634a411b9d60e11b815260040160405180910390fd5b60008315613ebe5783613ec4565b88600301545b89549094505b8015801590613ed95750600085115b15613f3257600080613eef83898c63ffffffff16565b915091508115613f00575050613f32565b965086613f0e8c8c8b614c8d565b925086613f1a81615f40565b9750508380613f2890615f57565b9450505050613eca565b50989397509295505050505050565b6001600160a01b038281166000908152602086815260409182902082518084019093528054909316808352600190930154910152829015613f9657604051632d3e5fb960e01b8152600401610d0b9190615380565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006140148484613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614080906125c8565b600482015484916140a6576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050600601555050565b60006140bc8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614128906125c8565b6004820154839161414e576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426004909101555050565b8060000361416857505050565b6001600160a01b03821660009081526020849052604090205481808210156141ac57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038216600090815260208490526040812080548392906141d6908490615955565b9091555050505050565b8115613974576001600160a01b03831660009081526020869052604081205461420a908490615d2b565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161423e93929190615f70565b602060405180830381865afa15801561425b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061427f9190615cd8565b90508082818111156142ad57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038516600090815260208890526040812080548692906142d7908490615d2b565b909155505050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161431893929190615f70565b602060405180830381865afa158015614335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143599190615cd8565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b6060826143945761438f82614d14565b611c8f565b81511580156143ab57506001600160a01b0384163b155b156143cb5783604051639996b31560e01b8152600401610d0b9190615380565b5080611c8f565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b600061442983620f4240101590565b8061443c575061443c82620f4240101590565b838390916144665760405163768bf0eb60e11b815260048101929092526024820152604401610d0b565b50620f424090506144778385615e36565b611c8f9190615f99565b816000036144a257604051638f4c63d960e01b815260040160405180910390fd5b6144ce6144ad612043565b600254606891908690869063ffffffff600160c01b9091048116906141e016565b6001600160a01b0383166000908152606a6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52606990985295909720915182559351600182015592519083015591516003918201558101549091901561459c57600182015460009081526069602052604090206003018190555b6145a68282614d3d565b604080518581526020810185905282916001600160a01b038816917f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f910160405180910390a35050505050565b80156111415760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90614627908590859060040161545c565b6020604051808303816000875af1158015614646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061466a9190615608565b6111415760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610d0b565b60006146ae8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015290915061471a906125c8565b60048201548391614740576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426005909101555050565b60006147598383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201529091506147c5906125c8565b600482015483916147eb576040516361b66e0d60e01b8152600401610d0b92919061545c565b505060006007909101555050565b600061480483612067565b90506111418183612194565b6000610ecb61481d614dd0565b8360405161190160f01b8152600281019290925260228201526042902090565b600061485261484c858561397b565b83614dda565b905080836001600160a01b038083169082161461488457604051638c5b935d60e01b8152600401610d0b929190615625565b505050505050565b6001600160a01b03818116600090815260208481526040918290208251808401909352805490931680835260019093015491015281901561114157604051638173627160e01b8152600401610d0b9190615380565b6148e96150eb565b6001600160a01b0380861660009081526020898152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015261496a9060600151151590565b15859061498b57604051630bc4def560e01b8152600401610d0b9190615380565b505060408051610100810182526001600160a01b0396871681526020808201958652818301948552426060830190815260006080840181815260a0850182815260c0860197885260e086018381529a8c1683529b90935293909320825181546001600160a01b0319169916989098178855945160018801559251600287015551600386015591516004850155935160058401555160068301555160079091015590565b6000614a38611e70565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614a765760405163ccccdafb60e01b8152600401610d0b9291906152ca565b508290508163ffffffff8116620f42401015614aa75760405163ccccdafb60e01b8152600401610d0b9291906152ca565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b029190911667ffffffffffffffff60801b19909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a3690611f5b90849084906152ca565b81816001600160401b038082169083161115614b4b5760405163ccccdafb60e01b8152600401610d0b929190615366565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d190611f5b9084908490615366565b614baf613b73565b6000614bb9612c6f565b905060028101614bc98482615852565b5060038101614bd88382615852565b5060008082556001909101555050565b600082841015801561240757505090911115919050565b614c2d6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152606960209081526040918290208251608081018452815481526001820154928101839052600282015493810193909352600301546060830152839061215b5760405163107349a960e21b8152600401610d0b91815260200190565b600080846003015411614cb35760405163ddaf8f2160e01b815260040160405180910390fd5b6000614cc685600001548563ffffffff16565b9050614cd985600001548463ffffffff16565b6001856003016000828254614cee9190615955565b90915550508085556003850154600003614d0a57600060018601555b5050915492915050565b805115614d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b612710826003015410614d63576040516303a8c56b60e61b815260040160405180910390fd5b80614d8157604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d9d908490615d2b565b90915550506003820154600003614db2578082555b6001826003016000828254614dc79190615d2b565b90915550505050565b6000610c6a614e04565b600080600080614dea8686614e78565b925092509250614dfa8282614ec5565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614e2f614f7e565b614e37614fe5565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614eb25760208401516040850151606086015160001a614ea488828585615026565b955095509550505050614ebe565b50508151600091506002905b9250925092565b6000826003811115614ed957614ed96159eb565b03614ee2575050565b6001826003811115614ef657614ef66159eb565b03614f145760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614f2857614f286159eb565b03614f495760405163fce698f760e01b815260048101829052602401610d0b565b6003826003811115614f5d57614f5d6159eb565b03610eac576040516335e2f38360e21b815260048101829052602401610d0b565b600080614f89612c6f565b90506000614f95612c93565b805190915015614fad57805160209091012092915050565b81548015614fbc579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614ff0612c6f565b90506000614ffc612d34565b80519091501561501457805160209091012092915050565b60018201548015614fbc579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0384111561505757506000915060039050826150e1565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156150ab573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166150d7575060009250600191508290506150e1565b9250600091508190505b9450945094915050565b60405180610100016040528060006001600160a01b03168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0381168114610c6757600080fd5b60006020828403121561516357600080fd5b8135611c8f8161513c565b63ffffffff81168114610c6757600080fd5b60008060006060848603121561519557600080fd5b8335925060208401356151a78161516e565b929592945050506040919091013590565b6000602082840312156151ca57600080fd5b8135611c8f8161516e565b60008083601f8401126151e757600080fd5b5081356001600160401b038111156151fe57600080fd5b602083019150836020828501011115613e5b57600080fd5b60008060006040848603121561522b57600080fd5b83356152368161513c565b925060208401356001600160401b0381111561525157600080fd5b61525d868287016151d5565b9497909650939450505050565b8015158114610c6757600080fd5b6000806040838503121561528b57600080fd5b82356152968161513c565b915060208301356152a68161526a565b809150509250929050565b6000602082840312156152c357600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156152fc5781810151838201526020016152e4565b50506000910152565b6000815180845261531d8160208601602086016152e1565b601f01601f19169290920160200192915050565b83815260606020820152600061534a6060830185615305565b828103604084015261535c8185615305565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b6001600160a01b0391909116815260200190565b6000806000606084860312156153a957600080fd5b83356153b48161513c565b925060208401356151a78161513c565b60ff60f81b8816815260e0602082015260006153e360e0830189615305565b82810360408401526153f58189615305565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561544b57835183526020938401939092019160010161542d565b50909b9a5050505050505050505050565b6001600160a01b03929092168252602082015260400190565b6000806020838503121561548857600080fd5b82356001600160401b0381111561549e57600080fd5b8301601f810185136154af57600080fd5b80356001600160401b038111156154c557600080fd5b8560208260051b84010111156154da57600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561554357603f1987860301845261552e858351615305565b94506020938401939190910190600101615512565b50929695505050505050565b6000806000806060858703121561556557600080fd5b84356155708161513c565b935060208501356003811061558457600080fd5b925060408501356001600160401b0381111561559f57600080fd5b6155ab878288016151d5565b95989497509550505050565b600080604083850312156155ca57600080fd5b82356155d58161513c565b915060208301356152a68161513c565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561561a57600080fd5b8151611c8f8161526a565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156156775761567761563f565b60405290565b60405160a081016001600160401b03811182821017156156775761567761563f565b60405161012081016001600160401b03811182821017156156775761567761563f565b600082601f8301126156d357600080fd5b8135602083016000806001600160401b038411156156f3576156f361563f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156157215761572161563f565b60405283815290508082840187101561573957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561576b57600080fd5b83356001600160401b0381111561578157600080fd5b61578d868287016156c2565b93505060208401356001600160401b038111156157a957600080fd5b6157b5868287016156c2565b92505060408401356157c68161513c565b809150509250925092565b600181811c908216806157e557607f821691505b60208210810361580557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561114157806000526020600020601f840160051c810160208510156158325750805b601f840160051c820191505b81811015613974576000815560010161583e565b81516001600160401b0381111561586b5761586b61563f565b61587f8161587984546157d1565b8461580b565b6020601f8211600181146158b3576000831561589b5750848201515b600019600385901b1c1916600184901b178455613974565b600084815260208120601f198516915b828110156158e357878501518255602094850194600190920191016158c3565b50848210156159015786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ecb57610ecb61593f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261599557600080fd5b8301803591506001600160401b038211156159af57600080fd5b602001915036819003821315613e5b57600080fd5b8284823760008382016000815283516159e18183602088016152e1565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6001600160401b0381168114610c6757600080fd5b600060208284031215615a2857600080fd5b81356001600160401b03811115615a3e57600080fd5b820160408185031215615a5057600080fd5b615a58615655565b81356001600160401b03811115615a6e57600080fd5b820160a08187031215615a8057600080fd5b615a8861567d565b8135615a938161513c565b81526020820135615aa38161513c565b60208201526040820135615ab681615a01565b604082015260608201356001600160801b0381168114615ad557600080fd5b606082015260808201356001600160401b03811115615af357600080fd5b615aff888285016156c2565b60808301525082525060208201356001600160401b03811115615b2157600080fd5b615b2d868285016156c2565b602083015250949350505050565b60008060408385031215615b4e57600080fd5b8235615b598161513c565b946020939093013593505050565b60038110615b8557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610ecb8284615b67565b60008060408385031215615baa57600080fd5b50508035926020909101359150565b60008060008060808587031215615bcf57600080fd5b84359350602085013592506040850135615be88161513c565b915060608501356001600160401b03811115615c0357600080fd5b615c0f878288016156c2565b91505092959194509250565b8051615c268161516e565b919050565b8051615c2681615a01565b6000610120828403128015615c4a57600080fd5b506000615c5561569f565b835181526020808501519082015260408085015190820152615c7960608501615c1b565b6060820152615c8a60808501615c2b565b6080820152615c9b60a08501615c2b565b60a0820152615cac60c08501615c1b565b60c0820152615cbd60e08501615c2b565b60e08201526101009384015193810193909352509092915050565b600060208284031215615cea57600080fd5b5051919050565b600060208284031215615d0357600080fd5b8151611c8f8161516e565b600060208284031215615d2057600080fd5b8151611c8f81615a01565b80820180821115610ecb57610ecb61593f565b60008251615d508184602087016152e1565b9190910192915050565b600060208284031215615d6c57600080fd5b8151611c8f8161513c565b604081526000835160408084015260018060a01b03815116608084015260018060a01b0360208201511660a08401526001600160401b0360408201511660c084015260018060801b0360608201511660e08401526080810151905060a0610100840152615de8610120840182615305565b90506020850151603f19848303016060850152615e058282615305565b925050508260208301529392505050565b615e208184615b67565b6040602082015260006124076040830184615305565b8082028115828204841417610ecb57610ecb61593f565b6001600160a01b03848116825283166020820152606081016124076040830184615b67565b600060a0828403128015615e8557600080fd5b506000615e9061567d565b8351815260208085015190820152604080850151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b608081526000615efe6080830187615305565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615f2d57600080fd5b825160208401519092506152a68161513c565b600081615f4f57615f4f61593f565b506000190190565b600060018201615f6957615f6961593f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b600082615fb657634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209c05e49a7d3d7f3015873a2c41e2f68419180f16cef8fd91645f14bc8e8b733264736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_DisputeManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_DisputeManager.json deleted file mode 100644 index 0d073cb30..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_DisputeManager.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Dummy", - "sourceName": "contracts/mocks/Dummy.sol", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "deployedBytecode": "0x6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_SubgraphService.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_SubgraphService.json deleted file mode 100644 index 0d073cb30..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#OZProxyDummy_SubgraphService.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Dummy", - "sourceName": "contracts/mocks/Dummy.sol", - "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "deployedBytecode": "0x6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_DisputeManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_DisputeManager.json deleted file mode 100644 index 942e4b2e5..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_DisputeManager.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ProxyAdmin", - "sourceName": "contracts/proxy/transparent/ProxyAdmin.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract ITransparentUpgradeableProxy", - "name": "proxy", - "type": "address" - }, - { - "internalType": "address", - "name": "implementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_SubgraphService.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_SubgraphService.json deleted file mode 100644 index 942e4b2e5..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#ProxyAdmin_SubgraphService.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ProxyAdmin", - "sourceName": "contracts/proxy/transparent/ProxyAdmin.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract ITransparentUpgradeableProxy", - "name": "proxy", - "type": "address" - }, - { - "internalType": "address", - "name": "implementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "deployedBytecode": "0x60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager.json deleted file mode 100644 index c7f1f49b4..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TransparentUpgradeableProxy", - "sourceName": "contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_logic", - "type": "address" - }, - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "admin", - "type": "address" - } - ], - "name": "ERC1967InvalidAdmin", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "ERC1967InvalidImplementation", - "type": "error" - }, - { - "inputs": [], - "name": "ERC1967NonPayable", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "ProxyDeniedAdminAccess", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": "0x60a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", - "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService.json deleted file mode 100644 index c7f1f49b4..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TransparentUpgradeableProxy", - "sourceName": "contracts/proxy/transparent/TransparentUpgradeableProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_logic", - "type": "address" - }, - { - "internalType": "address", - "name": "initialOwner", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "admin", - "type": "address" - } - ], - "name": "ERC1967InvalidAdmin", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "ERC1967InvalidImplementation", - "type": "error" - }, - { - "inputs": [], - "name": "ERC1967NonPayable", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "ProxyDeniedAdminAccess", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": "0x60a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", - "deployedBytecode": "0x608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/TAPCollector#TAPCollector.json b/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/TAPCollector#TAPCollector.json deleted file mode 100644 index db45e3283..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/artifacts/TAPCollector#TAPCollector.json +++ /dev/null @@ -1,776 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TAPCollector", - "sourceName": "contracts/payments/collectors/TAPCollector.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "eip712Name", - "type": "string" - }, - { - "internalType": "string", - "name": "eip712Version", - "type": "string" - }, - { - "internalType": "address", - "name": "controller", - "type": "address" - }, - { - "internalType": "uint256", - "name": "revokeSignerThawingPeriod", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidShortString", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "str", - "type": "string" - } - ], - "name": "StringTooLong", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "dataService", - "type": "address" - } - ], - "name": "TAPCollectorCallerNotDataService", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensCollected", - "type": "uint256" - } - ], - "name": "TAPCollectorInconsistentRAVTokens", - "type": "error" - }, - { - "inputs": [], - "name": "TAPCollectorInvalidRAVSigner", - "type": "error" - }, - { - "inputs": [], - "name": "TAPCollectorInvalidSignerProof", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "proofDeadline", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "currentTimestamp", - "type": "uint256" - } - ], - "name": "TAPCollectorInvalidSignerProofDeadline", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "authorizingPayer", - "type": "address" - }, - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "TAPCollectorSignerAlreadyAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "TAPCollectorSignerNotAuthorizedByPayer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "TAPCollectorSignerNotThawing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "currentTimestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "TAPCollectorSignerStillThawing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [], - "name": "EIP712DomainChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReceiver", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "PaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "timestampNs", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint128", - "name": "valueAggregate", - "type": "uint128" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "metadata", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "RAVCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "authorizedSigner", - "type": "address" - } - ], - "name": "SignerAuthorized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "authorizedSigner", - "type": "address" - } - ], - "name": "SignerRevoked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "authorizedSigner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "SignerThawCanceled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "authorizedSigner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "SignerThawing", - "type": "event" - }, - { - "inputs": [], - "name": "REVOKE_SIGNER_THAWING_PERIOD", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "proofDeadline", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ], - "name": "authorizeSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "authorizedSigners", - "outputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "cancelThawSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "eip712Domain", - "outputs": [ - { - "internalType": "bytes1", - "name": "fields", - "type": "bytes1" - }, - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifyingContract", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "uint256[]", - "name": "extensions", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint64", - "name": "timestampNs", - "type": "uint64" - }, - { - "internalType": "uint128", - "name": "valueAggregate", - "type": "uint128" - }, - { - "internalType": "bytes", - "name": "metadata", - "type": "bytes" - } - ], - "internalType": "struct ITAPCollector.ReceiptAggregateVoucher", - "name": "rav", - "type": "tuple" - } - ], - "name": "encodeRAV", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint64", - "name": "timestampNs", - "type": "uint64" - }, - { - "internalType": "uint128", - "name": "valueAggregate", - "type": "uint128" - }, - { - "internalType": "bytes", - "name": "metadata", - "type": "bytes" - } - ], - "internalType": "struct ITAPCollector.ReceiptAggregateVoucher", - "name": "rav", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct ITAPCollector.SignedRAV", - "name": "signedRAV", - "type": "tuple" - } - ], - "name": "recoverRAVSigner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "revokeAuthorizedSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "thawSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "address", - "name": "payer", - "type": "address" - } - ], - "name": "tokensCollected", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x6102c060405234801561001157600080fd5b50604051612162380380612162833981016040819052610030916105de565b81848461003e8260006103e0565b6101205261004d8160016103e0565b61014052815160208084019190912060e052815190820120610100524660a0526100da60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526001600160a01b03811661012c5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101e05260408051808201909152600a81526923b930b8342a37b5b2b760b11b602082015261016490610413565b6001600160a01b0316610160526040805180820190915260078152665374616b696e6760c81b602082015261019890610413565b6001600160a01b03166101805260408051808201909152600d81526c47726170685061796d656e747360981b60208201526101d290610413565b6001600160a01b03166101a05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261020d90610413565b6001600160a01b03166101c05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261024690610413565b6001600160a01b03166102005260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b602082015261028190610413565b6001600160a01b0316610220526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102bf90610413565b6001600160a01b03166102405260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102fb90610413565b6001600160a01b03166102605260408051808201909152600881526721bab930ba34b7b760c11b602082015261033090610413565b6001600160a01b039081166102808190526101e05161018051610160516101a0516101c0516102005161022051610240516102605160408051968c168752948b166020870152928a1685850152908916606085015288166080840152871660a083015260c0820195909552935192851694918216939116917fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a439181900360e00190a4506102a0525061082b915050565b60006020835110156103fc576103f5836104c1565b905061040d565b8161040784826106e8565b5060ff90505b92915050565b6000806101e0516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161044e91815260200190565b602060405180830381865afa15801561046b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048f91906107a6565b9050826001600160a01b0382166104ba5760405163218f5add60e11b815260040161012391906107f4565b5092915050565b600080829050601f815111156104ec578260405163305a27a960e01b815260040161012391906107f4565b80516104f782610807565b179392505050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015610530578181015183820152602001610518565b50506000910152565b600082601f83011261054a57600080fd5b81516001600160401b03811115610563576105636104ff565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610591576105916104ff565b6040528181528382016020018510156105a957600080fd5b6105ba826020830160208701610515565b949350505050565b80516001600160a01b03811681146105d957600080fd5b919050565b600080600080608085870312156105f457600080fd5b84516001600160401b0381111561060a57600080fd5b61061687828801610539565b602087015190955090506001600160401b0381111561063457600080fd5b61064087828801610539565b93505061064f604086016105c2565b6060959095015193969295505050565b600181811c9082168061067357607f821691505b60208210810361069357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156106e357806000526020600020601f840160051c810160208510156106c05750805b601f840160051c820191505b818110156106e057600081556001016106cc565b50505b505050565b81516001600160401b03811115610701576107016104ff565b6107158161070f845461065f565b84610699565b6020601f82116001811461074957600083156107315750848201515b600019600385901b1c1916600184901b1784556106e0565b600084815260208120601f198516915b828110156107795787850151825560209485019460019092019101610759565b50848210156107975786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6000602082840312156107b857600080fd5b6107c1826105c2565b9392505050565b600081518084526107e0816020860160208601610515565b601f01601f19169290920160200192915050565b6020815260006107c160208301846107c8565b805160208083015191908110156106935760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516118786108ea600039600081816101bf015261035e015260005050600050506000505060005050600050506000505060006107db015260005050600050506000505060006109900152600061095e01526000610f2101526000610ef901526000610e5401526000610e7e01526000610ea801526118786000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637f07d283116100715780637f07d2831461016b57806384b0196e1461018c5780638821603c146101a7578063960ba169146101ba578063cfdb35bd146101e1578063fee9f01f1461021257600080fd5b8063015cdd80146100ae5780631354f019146100c35780631ef518f2146100d657806339aa7416146101065780635d2b6a4e14610119575b600080fd5b6100c16100bc366004611081565b610225565b005b6100c16100d1366004611081565b610302565b6100e96100e436600461109e565b6103c7565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c1610114366004611081565b6103e0565b61014c610127366004611081565b600260205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b0390931683526020830191909152016100fd565b61017e6101793660046111e5565b6104f4565b6040519081526020016100fd565b6101946105cd565b6040516100fd9796959493929190611288565b61017e6101b5366004611320565b610613565b61017e7f000000000000000000000000000000000000000000000000000000000000000081565b61017e6101ef36600461135a565b600360209081526000938452604080852082529284528284209052825290205481565b6100c16102203660046113a5565b610626565b6001600160a01b038082166000908152600260205260409020805490913391849116821461027e57604051630ad827d360e41b81526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b5050600081600101541182906102b357604051631885ecbd60e01b81526001600160a01b039091166004820152602401610275565b506000600182018190556040519081526001600160a01b0383169033907f3b4432b11b66b46d9a7b190aa989c0ae85a5395b543540220596dd94dd405ceb906020015b60405180910390a35050565b6001600160a01b038082166000908152600260205260409020805490913391849116821461035657604051630ad827d360e41b81526001600160a01b03928316600482015291166024820152604401610275565b5061038390507f000000000000000000000000000000000000000000000000000000000000000042611445565b600182018190556040519081526001600160a01b0383169033907fd939049941f6a15381248e4ac0010f15efdf0f3221923711244c200b5ff2cddf906020016102f6565b60006103da6103d583611515565b6106e2565b92915050565b6001600160a01b038082166000908152600260205260409020805490913391849116821461043457604051630ad827d360e41b81526001600160a01b03928316600482015291166024820152604401610275565b50506000816001015411829061046957604051631885ecbd60e01b81526001600160a01b039091166004820152602401610275565b50600181015442908181111561049b57604051631a42d0ab60e31b815260048101929092526024820152604401610275565b50506001600160a01b03821660008181526002602052604080822080546001600160a01b03191681556001018290555133917f2fc91dbd92d741cae16e0315578d7f6cf77043b771692c4bd993658ecfe8942291a35050565b60008060008380602001905181019061050d91906115d2565b815151919350915033906001600160a01b0381168214610553576040516347666ba360e11b81526001600160a01b03928316600482015291166024820152604401610275565b50506000610560836106e2565b6001600160a01b038082166000908152600260205260409020549192501661059b57604051630ef060dd60e01b815260040160405180910390fd5b6001600160a01b038082166000908152600260205260409020546105c3918891168585610709565b9695505050505050565b6000606080600080600060606105e1610957565b6105e9610989565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60006103da610621836116f8565b6109b6565b6001600160a01b03848116600090815260026020526040902054168481156106745760405163cb2320b760e01b81526001600160a01b03928316600482015291166024820152604401610275565b505061068282828587610a6d565b6001600160a01b03841660008181526002602052604080822080546001600160a01b0319163390811782556001909101839055905190917f6edcdd4150e63c6c36d965976c1c37375609c8b040c50d39e7156437b80e282891a350505050565b6000806106f283600001516109b6565b9050610702818460200151610b95565b9392505050565b815180516020808301516060909301516001600160a01b03808416600090815260038452604080822083881683528552808220928a168252919093528220549193916001600160801b03909116908181808211610782576040516308e467d960e31b815260048101929092526024820152604401610275565b50600090506107918284611704565b9050600061079f8289610bbf565b90508115610862576001600160a01b03868116600090815260036020908152604080832089851684528252808320938e168352929052208490557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166387dbfe828c8c88868b876040518763ffffffff1660e01b815260040161082f9695949392919061172d565b600060405180830381600087803b15801561084957600080fd5b505af115801561085d573d6000803e3d6000fd5b505050505b856001600160a01b03168a6001600160a01b03168c600281111561088857610888611717565b604080516001600160a01b038a168152602081018790529081018590527ffadd34108e3c00b000a046b272ee080bb1755b91078c0ef5200c0b7da6132bd19060600160405180910390a4846001600160a01b0316866001600160a01b03168b6001600160a01b03167f2d55f33a4a377f40129b217a6cf7a5022a112941b80cd589332abc245aa0a5c78c60000151604001518d60000151606001518e60000151608001518f602001516040516109419493929190611781565b60405180910390a4509998505050505050505050565b60606109847f00000000000000000000000000000000000000000000000000000000000000006000610c26565b905090565b60606109847f00000000000000000000000000000000000000000000000000000000000000006001610c26565b60006103da7fe502a96d6aaed328ceacc76a5f627b9823162f5a205dab5a702b40073a6778428360000151846020015185604001518660600151876080015180519060200120604051602001610a52969594939291909586526001600160a01b0394851660208701529290931660408501526001600160401b031660608401526001600160801b0391909116608083015260a082015260c00190565b60405160208183030381529060405280519060200120610cd1565b8142808211610a98576040516343c042b360e01b815260048101929092526024820152604401610275565b50506040805146602082015290810183905233606090811b6bffffffffffffffffffffffff1916908201526000906074016040516020818303038152906040528051906020012090506000610b1a827f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050826001600160a01b0316610b668288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b9592505050565b6001600160a01b031614610b8d5760405163164f10af60e11b815260040160405180910390fd5b505050505050565b600080600080610ba58686610cfe565b925092509250610bb58282610d4b565b5090949350505050565b6000610bce83620f4240101590565b80610be15750610be182620f4240101590565b83839091610c0b5760405163768bf0eb60e11b815260048101929092526024820152604401610275565b50620f42409050610c1c83856117cf565b61070291906117e6565b606060ff8314610c4057610c3983610e08565b90506103da565b818054610c4c90611808565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7890611808565b8015610cc55780601f10610c9a57610100808354040283529160200191610cc5565b820191906000526020600020905b815481529060010190602001808311610ca857829003601f168201915b505050505090506103da565b60006103da610cde610e47565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008351604103610d385760208401516040850151606086015160001a610d2a88828585610f72565b955095509550505050610d44565b50508151600091506002905b9250925092565b6000826003811115610d5f57610d5f611717565b03610d68575050565b6001826003811115610d7c57610d7c611717565b03610d9a5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610dae57610dae611717565b03610dcf5760405163fce698f760e01b815260048101829052602401610275565b6003826003811115610de357610de3611717565b03610e04576040516335e2f38360e21b815260048101829052602401610275565b5050565b60606000610e1583611041565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610ea057507f000000000000000000000000000000000000000000000000000000000000000046145b15610eca57507f000000000000000000000000000000000000000000000000000000000000000090565b610984604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610fad5750600091506003905082611037565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611001573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661102d57506000925060019150829050611037565b9250600091508190505b9450945094915050565b600060ff8216601f8111156103da57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b038116811461107e57600080fd5b50565b60006020828403121561109357600080fd5b813561070281611069565b6000602082840312156110b057600080fd5b81356001600160401b038111156110c657600080fd5b82016040818503121561070257600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715611110576111106110d8565b60405290565b604080519081016001600160401b0381118282101715611110576111106110d8565b604051601f8201601f191681016001600160401b0381118282101715611160576111606110d8565b604052919050565b60006001600160401b03821115611181576111816110d8565b50601f01601f191660200190565b600082601f8301126111a057600080fd5b81356111b36111ae82611168565b611138565b8181528460208386010111156111c857600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156111f857600080fd5b82356003811061120757600080fd5b915060208301356001600160401b0381111561122257600080fd5b61122e8582860161118f565b9150509250929050565b60005b8381101561125357818101518382015260200161123b565b50506000910152565b60008151808452611274816020860160208601611238565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e0602082015260006112a760e083018961125c565b82810360408401526112b9818961125c565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561130f5783518352602093840193909201916001016112f1565b50909b9a5050505050505050505050565b60006020828403121561133257600080fd5b81356001600160401b0381111561134857600080fd5b820160a0818503121561070257600080fd5b60008060006060848603121561136f57600080fd5b833561137a81611069565b9250602084013561138a81611069565b9150604084013561139a81611069565b809150509250925092565b600080600080606085870312156113bb57600080fd5b84356113c681611069565b93506020850135925060408501356001600160401b038111156113e857600080fd5b8501601f810187136113f957600080fd5b80356001600160401b0381111561140f57600080fd5b87602082840101111561142157600080fd5b949793965060200194505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103da576103da61142f565b6001600160401b038116811461107e57600080fd5b6001600160801b038116811461107e57600080fd5b600060a0828403121561149457600080fd5b61149c6110ee565b905081356114a981611069565b815260208201356114b981611069565b602082015260408201356114cc81611458565b604082015260608201356114df8161146d565b606082015260808201356001600160401b038111156114fd57600080fd5b6115098482850161118f565b60808301525092915050565b60006040823603121561152757600080fd5b61152f611116565b82356001600160401b0381111561154557600080fd5b61155136828601611482565b82525060208301356001600160401b0381111561156d57600080fd5b6115793682860161118f565b60208301525092915050565b600082601f83011261159657600080fd5b81516115a46111ae82611168565b8181528460208386010111156115b957600080fd5b6115ca826020830160208701611238565b949350505050565b600080604083850312156115e557600080fd5b82516001600160401b038111156115fb57600080fd5b83016040818603121561160d57600080fd5b611615611116565b81516001600160401b0381111561162b57600080fd5b820160a0818803121561163d57600080fd5b6116456110ee565b815161165081611069565b8152602082015161166081611069565b6020820152604082015161167381611458565b604082015260608201516116868161146d565b606082015260808201516001600160401b038111156116a457600080fd5b6116b089828501611585565b60808301525082525060208201516001600160401b038111156116d257600080fd5b6116de87828501611585565b602083810191909152959095015190969095509350505050565b60006103da3683611482565b818103818111156103da576103da61142f565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061174f57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b6001600160401b03851681526001600160801b03841660208201526080604082015260006117b2608083018561125c565b82810360608401526117c4818561125c565b979650505050505050565b80820281158282048414176103da576103da61142f565b60008261180357634e487b7160e01b600052601260045260246000fd5b500490565b600181811c9082168061181c57607f821691505b60208210810361183c57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220acb6bfec6d9c2f80f4ced26fd1055163ff8dce81039d2e933346d801e1bdbb3064736f6c634300081b0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80637f07d283116100715780637f07d2831461016b57806384b0196e1461018c5780638821603c146101a7578063960ba169146101ba578063cfdb35bd146101e1578063fee9f01f1461021257600080fd5b8063015cdd80146100ae5780631354f019146100c35780631ef518f2146100d657806339aa7416146101065780635d2b6a4e14610119575b600080fd5b6100c16100bc366004611081565b610225565b005b6100c16100d1366004611081565b610302565b6100e96100e436600461109e565b6103c7565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c1610114366004611081565b6103e0565b61014c610127366004611081565b600260205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b0390931683526020830191909152016100fd565b61017e6101793660046111e5565b6104f4565b6040519081526020016100fd565b6101946105cd565b6040516100fd9796959493929190611288565b61017e6101b5366004611320565b610613565b61017e7f000000000000000000000000000000000000000000000000000000000000000081565b61017e6101ef36600461135a565b600360209081526000938452604080852082529284528284209052825290205481565b6100c16102203660046113a5565b610626565b6001600160a01b038082166000908152600260205260409020805490913391849116821461027e57604051630ad827d360e41b81526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b5050600081600101541182906102b357604051631885ecbd60e01b81526001600160a01b039091166004820152602401610275565b506000600182018190556040519081526001600160a01b0383169033907f3b4432b11b66b46d9a7b190aa989c0ae85a5395b543540220596dd94dd405ceb906020015b60405180910390a35050565b6001600160a01b038082166000908152600260205260409020805490913391849116821461035657604051630ad827d360e41b81526001600160a01b03928316600482015291166024820152604401610275565b5061038390507f000000000000000000000000000000000000000000000000000000000000000042611445565b600182018190556040519081526001600160a01b0383169033907fd939049941f6a15381248e4ac0010f15efdf0f3221923711244c200b5ff2cddf906020016102f6565b60006103da6103d583611515565b6106e2565b92915050565b6001600160a01b038082166000908152600260205260409020805490913391849116821461043457604051630ad827d360e41b81526001600160a01b03928316600482015291166024820152604401610275565b50506000816001015411829061046957604051631885ecbd60e01b81526001600160a01b039091166004820152602401610275565b50600181015442908181111561049b57604051631a42d0ab60e31b815260048101929092526024820152604401610275565b50506001600160a01b03821660008181526002602052604080822080546001600160a01b03191681556001018290555133917f2fc91dbd92d741cae16e0315578d7f6cf77043b771692c4bd993658ecfe8942291a35050565b60008060008380602001905181019061050d91906115d2565b815151919350915033906001600160a01b0381168214610553576040516347666ba360e11b81526001600160a01b03928316600482015291166024820152604401610275565b50506000610560836106e2565b6001600160a01b038082166000908152600260205260409020549192501661059b57604051630ef060dd60e01b815260040160405180910390fd5b6001600160a01b038082166000908152600260205260409020546105c3918891168585610709565b9695505050505050565b6000606080600080600060606105e1610957565b6105e9610989565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60006103da610621836116f8565b6109b6565b6001600160a01b03848116600090815260026020526040902054168481156106745760405163cb2320b760e01b81526001600160a01b03928316600482015291166024820152604401610275565b505061068282828587610a6d565b6001600160a01b03841660008181526002602052604080822080546001600160a01b0319163390811782556001909101839055905190917f6edcdd4150e63c6c36d965976c1c37375609c8b040c50d39e7156437b80e282891a350505050565b6000806106f283600001516109b6565b9050610702818460200151610b95565b9392505050565b815180516020808301516060909301516001600160a01b03808416600090815260038452604080822083881683528552808220928a168252919093528220549193916001600160801b03909116908181808211610782576040516308e467d960e31b815260048101929092526024820152604401610275565b50600090506107918284611704565b9050600061079f8289610bbf565b90508115610862576001600160a01b03868116600090815260036020908152604080832089851684528252808320938e168352929052208490557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166387dbfe828c8c88868b876040518763ffffffff1660e01b815260040161082f9695949392919061172d565b600060405180830381600087803b15801561084957600080fd5b505af115801561085d573d6000803e3d6000fd5b505050505b856001600160a01b03168a6001600160a01b03168c600281111561088857610888611717565b604080516001600160a01b038a168152602081018790529081018590527ffadd34108e3c00b000a046b272ee080bb1755b91078c0ef5200c0b7da6132bd19060600160405180910390a4846001600160a01b0316866001600160a01b03168b6001600160a01b03167f2d55f33a4a377f40129b217a6cf7a5022a112941b80cd589332abc245aa0a5c78c60000151604001518d60000151606001518e60000151608001518f602001516040516109419493929190611781565b60405180910390a4509998505050505050505050565b60606109847f00000000000000000000000000000000000000000000000000000000000000006000610c26565b905090565b60606109847f00000000000000000000000000000000000000000000000000000000000000006001610c26565b60006103da7fe502a96d6aaed328ceacc76a5f627b9823162f5a205dab5a702b40073a6778428360000151846020015185604001518660600151876080015180519060200120604051602001610a52969594939291909586526001600160a01b0394851660208701529290931660408501526001600160401b031660608401526001600160801b0391909116608083015260a082015260c00190565b60405160208183030381529060405280519060200120610cd1565b8142808211610a98576040516343c042b360e01b815260048101929092526024820152604401610275565b50506040805146602082015290810183905233606090811b6bffffffffffffffffffffffff1916908201526000906074016040516020818303038152906040528051906020012090506000610b1a827f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050826001600160a01b0316610b668288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b9592505050565b6001600160a01b031614610b8d5760405163164f10af60e11b815260040160405180910390fd5b505050505050565b600080600080610ba58686610cfe565b925092509250610bb58282610d4b565b5090949350505050565b6000610bce83620f4240101590565b80610be15750610be182620f4240101590565b83839091610c0b5760405163768bf0eb60e11b815260048101929092526024820152604401610275565b50620f42409050610c1c83856117cf565b61070291906117e6565b606060ff8314610c4057610c3983610e08565b90506103da565b818054610c4c90611808565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7890611808565b8015610cc55780601f10610c9a57610100808354040283529160200191610cc5565b820191906000526020600020905b815481529060010190602001808311610ca857829003601f168201915b505050505090506103da565b60006103da610cde610e47565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008351604103610d385760208401516040850151606086015160001a610d2a88828585610f72565b955095509550505050610d44565b50508151600091506002905b9250925092565b6000826003811115610d5f57610d5f611717565b03610d68575050565b6001826003811115610d7c57610d7c611717565b03610d9a5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610dae57610dae611717565b03610dcf5760405163fce698f760e01b815260048101829052602401610275565b6003826003811115610de357610de3611717565b03610e04576040516335e2f38360e21b815260048101829052602401610275565b5050565b60606000610e1583611041565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610ea057507f000000000000000000000000000000000000000000000000000000000000000046145b15610eca57507f000000000000000000000000000000000000000000000000000000000000000090565b610984604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610fad5750600091506003905082611037565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611001573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661102d57506000925060019150829050611037565b9250600091508190505b9450945094915050565b600060ff8216601f8111156103da57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b038116811461107e57600080fd5b50565b60006020828403121561109357600080fd5b813561070281611069565b6000602082840312156110b057600080fd5b81356001600160401b038111156110c657600080fd5b82016040818503121561070257600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715611110576111106110d8565b60405290565b604080519081016001600160401b0381118282101715611110576111106110d8565b604051601f8201601f191681016001600160401b0381118282101715611160576111606110d8565b604052919050565b60006001600160401b03821115611181576111816110d8565b50601f01601f191660200190565b600082601f8301126111a057600080fd5b81356111b36111ae82611168565b611138565b8181528460208386010111156111c857600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156111f857600080fd5b82356003811061120757600080fd5b915060208301356001600160401b0381111561122257600080fd5b61122e8582860161118f565b9150509250929050565b60005b8381101561125357818101518382015260200161123b565b50506000910152565b60008151808452611274816020860160208601611238565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e0602082015260006112a760e083018961125c565b82810360408401526112b9818961125c565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561130f5783518352602093840193909201916001016112f1565b50909b9a5050505050505050505050565b60006020828403121561133257600080fd5b81356001600160401b0381111561134857600080fd5b820160a0818503121561070257600080fd5b60008060006060848603121561136f57600080fd5b833561137a81611069565b9250602084013561138a81611069565b9150604084013561139a81611069565b809150509250925092565b600080600080606085870312156113bb57600080fd5b84356113c681611069565b93506020850135925060408501356001600160401b038111156113e857600080fd5b8501601f810187136113f957600080fd5b80356001600160401b0381111561140f57600080fd5b87602082840101111561142157600080fd5b949793965060200194505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103da576103da61142f565b6001600160401b038116811461107e57600080fd5b6001600160801b038116811461107e57600080fd5b600060a0828403121561149457600080fd5b61149c6110ee565b905081356114a981611069565b815260208201356114b981611069565b602082015260408201356114cc81611458565b604082015260608201356114df8161146d565b606082015260808201356001600160401b038111156114fd57600080fd5b6115098482850161118f565b60808301525092915050565b60006040823603121561152757600080fd5b61152f611116565b82356001600160401b0381111561154557600080fd5b61155136828601611482565b82525060208301356001600160401b0381111561156d57600080fd5b6115793682860161118f565b60208301525092915050565b600082601f83011261159657600080fd5b81516115a46111ae82611168565b8181528460208386010111156115b957600080fd5b6115ca826020830160208701611238565b949350505050565b600080604083850312156115e557600080fd5b82516001600160401b038111156115fb57600080fd5b83016040818603121561160d57600080fd5b611615611116565b81516001600160401b0381111561162b57600080fd5b820160a0818803121561163d57600080fd5b6116456110ee565b815161165081611069565b8152602082015161166081611069565b6020820152604082015161167381611458565b604082015260608201516116868161146d565b606082015260808201516001600160401b038111156116a457600080fd5b6116b089828501611585565b60808301525082525060208201516001600160401b038111156116d257600080fd5b6116de87828501611585565b602083810191909152959095015190969095509350505050565b60006103da3683611482565b818103818111156103da576103da61142f565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061174f57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b6001600160401b03851681526001600160801b03841660208201526080604082015260006117b2608083018561125c565b82810360608401526117c4818561125c565b979650505050505050565b80820281158282048414176103da576103da61142f565b60008261180357634e487b7160e01b600052601260045260246000fd5b500490565b600181811c9082168061181c57607f821691505b60208210810361183c57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220acb6bfec6d9c2f80f4ced26fd1055163ff8dce81039d2e933346d801e1bdbb3064736f6c634300081b0033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/build-info/e51c04f0f0fdce5715962999616918b7.json b/packages/subgraph-service/ignition/deployments/chain-421614/build-info/e51c04f0f0fdce5715962999616918b7.json deleted file mode 100644 index 327e64d9a..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/build-info/e51c04f0f0fdce5715962999616918b7.json +++ /dev/null @@ -1,254531 +0,0 @@ -{ - "id": "e51c04f0f0fdce5715962999616918b7", - "_format": "hh-sol-build-info-1", - "solcVersion": "0.8.27", - "solcLongVersion": "0.8.27+commit.40a35a09", - "input": { - "language": "Solidity", - "sources": { - "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol": { - "content": "// SPDX-License-Identifier: Apache-2.0\n\n/*\n * Copyright 2020, Offchain Labs, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * Originally copied from:\n * https://github.com/OffchainLabs/arbitrum/tree/e3a6307ad8a2dc2cad35728a2a9908cfd8dd8ef9/packages/arb-bridge-peripherals\n *\n * MODIFIED from Offchain Labs' implementation:\n * - Changed solidity version to 0.7.6 (pablo@edgeandnode.com)\n *\n */\n\npragma solidity ^0.7.6 || 0.8.27;\n\ninterface ITokenGateway {\n /// @notice event deprecated in favor of DepositInitiated and WithdrawalInitiated\n // event OutboundTransferInitiated(\n // address token,\n // address indexed _from,\n // address indexed _to,\n // uint256 indexed _transferId,\n // uint256 _amount,\n // bytes _data\n // );\n\n /// @notice event deprecated in favor of DepositFinalized and WithdrawalFinalized\n // event InboundTransferFinalized(\n // address token,\n // address indexed _from,\n // address indexed _to,\n // uint256 indexed _transferId,\n // uint256 _amount,\n // bytes _data\n // );\n\n function outboundTransfer(\n address token,\n address to,\n uint256 amunt,\n uint256 maxas,\n uint256 gasPiceBid,\n bytes calldata data\n ) external payable returns (bytes memory);\n\n function finalizeInboundTransfer(\n address token,\n address from,\n address to,\n uint256 amount,\n bytes calldata data\n ) external payable;\n\n /**\n * @notice Calculate the address used when bridging an ERC20 token\n * @dev the L1 and L2 address oracles may not always be in sync.\n * For example, a custom token may have been registered but not deployed or the contract self destructed.\n * @param l1ERC20 address of L1 token\n * @return L2 address of a bridged ERC20 token\n */\n function calculateL2TokenAddress(address l1ERC20) external view returns (address);\n}\n" - }, - "@graphprotocol/contracts/contracts/curation/ICuration.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.7.6 || 0.8.27;\n\n/**\n * @title Curation Interface\n * @dev Interface for the Curation contract (and L2Curation too)\n */\ninterface ICuration {\n // -- Configuration --\n\n /**\n * @notice Update the default reserve ratio to `_defaultReserveRatio`\n * @param _defaultReserveRatio Reserve ratio (in PPM)\n */\n function setDefaultReserveRatio(uint32 _defaultReserveRatio) external;\n\n /**\n * @notice Update the minimum deposit amount needed to intialize a new subgraph\n * @param _minimumCurationDeposit Minimum amount of tokens required deposit\n */\n function setMinimumCurationDeposit(uint256 _minimumCurationDeposit) external;\n\n /**\n * @notice Set the curation tax percentage to charge when a curator deposits GRT tokens.\n * @param _percentage Curation tax percentage charged when depositing GRT tokens\n */\n function setCurationTaxPercentage(uint32 _percentage) external;\n\n /**\n * @notice Set the master copy to use as clones for the curation token.\n * @param _curationTokenMaster Address of implementation contract to use for curation tokens\n */\n function setCurationTokenMaster(address _curationTokenMaster) external;\n\n // -- Curation --\n\n /**\n * @notice Deposit Graph Tokens in exchange for signal of a SubgraphDeployment curation pool.\n * @param _subgraphDeploymentID Subgraph deployment pool from where to mint signal\n * @param _tokensIn Amount of Graph Tokens to deposit\n * @param _signalOutMin Expected minimum amount of signal to receive\n * @return Amount of signal minted\n * @return Amount of curation tax burned\n */\n function mint(\n bytes32 _subgraphDeploymentID,\n uint256 _tokensIn,\n uint256 _signalOutMin\n ) external returns (uint256, uint256);\n\n /**\n * @notice Burn _signal from the SubgraphDeployment curation pool\n * @param _subgraphDeploymentID SubgraphDeployment the curator is returning signal\n * @param _signalIn Amount of signal to return\n * @param _tokensOutMin Expected minimum amount of tokens to receive\n * @return Tokens returned\n */\n function burn(bytes32 _subgraphDeploymentID, uint256 _signalIn, uint256 _tokensOutMin) external returns (uint256);\n\n /**\n * @notice Assign Graph Tokens collected as curation fees to the curation pool reserve.\n * @param _subgraphDeploymentID SubgraphDeployment where funds should be allocated as reserves\n * @param _tokens Amount of Graph Tokens to add to reserves\n */\n function collect(bytes32 _subgraphDeploymentID, uint256 _tokens) external;\n\n // -- Getters --\n\n /**\n * @notice Check if any GRT tokens are deposited for a SubgraphDeployment.\n * @param _subgraphDeploymentID SubgraphDeployment to check if curated\n * @return True if curated, false otherwise\n */\n function isCurated(bytes32 _subgraphDeploymentID) external view returns (bool);\n\n /**\n * @notice Get the amount of signal a curator has in a curation pool.\n * @param _curator Curator owning the signal tokens\n * @param _subgraphDeploymentID Subgraph deployment curation pool\n * @return Amount of signal owned by a curator for the subgraph deployment\n */\n function getCuratorSignal(address _curator, bytes32 _subgraphDeploymentID) external view returns (uint256);\n\n /**\n * @notice Get the amount of signal in a curation pool.\n * @param _subgraphDeploymentID Subgraph deployment curation pool\n * @return Amount of signal minted for the subgraph deployment\n */\n function getCurationPoolSignal(bytes32 _subgraphDeploymentID) external view returns (uint256);\n\n /**\n * @notice Get the amount of token reserves in a curation pool.\n * @param _subgraphDeploymentID Subgraph deployment curation pool\n * @return Amount of token reserves in the curation pool\n */\n function getCurationPoolTokens(bytes32 _subgraphDeploymentID) external view returns (uint256);\n\n /**\n * @notice Calculate amount of signal that can be bought with tokens in a curation pool.\n * This function considers and excludes the deposit tax.\n * @param _subgraphDeploymentID Subgraph deployment to mint signal\n * @param _tokensIn Amount of tokens used to mint signal\n * @return Amount of signal that can be bought\n * @return Amount of tokens that will be burned as curation tax\n */\n function tokensToSignal(bytes32 _subgraphDeploymentID, uint256 _tokensIn) external view returns (uint256, uint256);\n\n /**\n * @notice Calculate number of tokens to get when burning signal from a curation pool.\n * @param _subgraphDeploymentID Subgraph deployment to burn signal\n * @param _signalIn Amount of signal to burn\n * @return Amount of tokens to get for the specified amount of signal\n */\n function signalToTokens(bytes32 _subgraphDeploymentID, uint256 _signalIn) external view returns (uint256);\n\n /**\n * @notice Tax charged when curators deposit funds.\n * Parts per million. (Allows for 4 decimal points, 999,999 = 99.9999%)\n * @return Curation tax percentage expressed in PPM\n */\n function curationTaxPercentage() external view returns (uint32);\n}\n" - }, - "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.7.6 || 0.8.27;\n\ninterface IEpochManager {\n // -- Configuration --\n\n function setEpochLength(uint256 _epochLength) external;\n\n // -- Epochs\n\n function runEpoch() external;\n\n // -- Getters --\n\n function isCurrentEpochRun() external view returns (bool);\n\n function blockNum() external view returns (uint256);\n\n function blockHash(uint256 _block) external view returns (bytes32);\n\n function currentEpoch() external view returns (uint256);\n\n function currentEpochBlock() external view returns (uint256);\n\n function currentEpochBlockSinceStart() external view returns (uint256);\n\n function epochsSince(uint256 _epoch) external view returns (uint256);\n\n function epochsSinceUpdate() external view returns (uint256);\n}\n" - }, - "@graphprotocol/contracts/contracts/governance/IController.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.7.6 || 0.8.27;\n\ninterface IController {\n function getGovernor() external view returns (address);\n\n // -- Registry --\n\n function setContractProxy(bytes32 _id, address _contractAddress) external;\n\n function unsetContractProxy(bytes32 _id) external;\n\n function updateController(bytes32 _id, address _controller) external;\n\n function getContractProxy(bytes32 _id) external view returns (address);\n\n // -- Pausing --\n\n function setPartialPaused(bool _partialPaused) external;\n\n function setPaused(bool _paused) external;\n\n function setPauseGuardian(address _newPauseGuardian) external;\n\n function paused() external view returns (bool);\n\n function partialPaused() external view returns (bool);\n}\n" - }, - "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.7.6 || 0.8.27;\n\ninterface IRewardsIssuer {\n /**\n * @dev Get allocation data to calculate rewards issuance\n * @param allocationId The allocation Id\n * @return indexer The indexer address\n * @return subgraphDeploymentId Subgraph deployment id for the allocation\n * @return tokens Amount of allocated tokens\n * @return accRewardsPerAllocatedToken Rewards snapshot\n * @return accRewardsPending Snapshot of accumulated rewards from previous allocation resizing, pending to be claimed\n */\n function getAllocationData(\n address allocationId\n )\n external\n view\n returns (\n address indexer,\n bytes32 subgraphDeploymentId,\n uint256 tokens,\n uint256 accRewardsPerAllocatedToken,\n uint256 accRewardsPending\n );\n\n /**\n * @notice Return the total amount of tokens allocated to subgraph.\n * @param _subgraphDeploymentId Deployment Id for the subgraph\n * @return Total tokens allocated to subgraph\n */\n function getSubgraphAllocatedTokens(bytes32 _subgraphDeploymentId) external view returns (uint256);\n\n /**\n * @notice Whether or not an allocation is active (i.e open)\n * @param _allocationId Allocation Id\n * @return Whether or not the allocation is active\n */\n function isActiveAllocation(address _allocationId) external view returns (bool);\n}\n" - }, - "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.7.6 || 0.8.27;\n\ninterface IRewardsManager {\n /**\n * @dev Stores accumulated rewards and snapshots related to a particular SubgraphDeployment.\n */\n struct Subgraph {\n uint256 accRewardsForSubgraph;\n uint256 accRewardsForSubgraphSnapshot;\n uint256 accRewardsPerSignalSnapshot;\n uint256 accRewardsPerAllocatedToken;\n }\n\n // -- Config --\n\n function setIssuancePerBlock(uint256 _issuancePerBlock) external;\n\n function setMinimumSubgraphSignal(uint256 _minimumSubgraphSignal) external;\n\n function setSubgraphService(address _subgraphService) external;\n\n // -- Denylist --\n\n function setSubgraphAvailabilityOracle(address _subgraphAvailabilityOracle) external;\n\n function setDenied(bytes32 _subgraphDeploymentID, bool _deny) external;\n\n function setDeniedMany(bytes32[] calldata _subgraphDeploymentID, bool[] calldata _deny) external;\n\n function isDenied(bytes32 _subgraphDeploymentID) external view returns (bool);\n\n // -- Getters --\n\n function getNewRewardsPerSignal() external view returns (uint256);\n\n function getAccRewardsPerSignal() external view returns (uint256);\n\n function getAccRewardsForSubgraph(bytes32 _subgraphDeploymentID) external view returns (uint256);\n\n function getAccRewardsPerAllocatedToken(bytes32 _subgraphDeploymentID) external view returns (uint256, uint256);\n\n function getRewards(address _allocationID) external view returns (uint256);\n\n function calcRewards(uint256 _tokens, uint256 _accRewardsPerAllocatedToken) external pure returns (uint256);\n\n // -- Updates --\n\n function updateAccRewardsPerSignal() external returns (uint256);\n\n function takeRewards(address _allocationID) external returns (uint256);\n\n // -- Hooks --\n\n function onSubgraphSignalUpdate(bytes32 _subgraphDeploymentID) external returns (uint256);\n\n function onSubgraphAllocationUpdate(bytes32 _subgraphDeploymentID) external returns (uint256);\n}\n" - }, - "@graphprotocol/contracts/contracts/token/IGraphToken.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.7.6 || 0.8.27;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ninterface IGraphToken is IERC20 {\n // -- Mint and Burn --\n\n function burn(uint256 amount) external;\n\n function burnFrom(address _from, uint256 amount) external;\n\n function mint(address _to, uint256 _amount) external;\n\n // -- Mint Admin --\n\n function addMinter(address _account) external;\n\n function removeMinter(address _account) external;\n\n function renounceMinter() external;\n\n function isMinter(address _account) external view returns (bool);\n\n // -- Permit --\n\n function permit(\n address _owner,\n address _spender,\n uint256 _value,\n uint256 _deadline,\n uint8 _v,\n bytes32 _r,\n bytes32 _s\n ) external;\n\n // -- Allowance --\n\n function increaseAllowance(address spender, uint256 addedValue) external returns (bool);\n\n function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool);\n}\n" - }, - "@graphprotocol/contracts/contracts/utils/TokenUtils.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity ^0.7.6 || 0.8.27;\n\nimport \"../token/IGraphToken.sol\";\n\n/**\n * @title TokenUtils library\n * @notice This library contains utility functions for handling tokens (transfers and burns).\n * It is specifically adapted for the GraphToken, so does not need to handle edge cases\n * for other tokens.\n */\nlibrary TokenUtils {\n /**\n * @dev Pull tokens from an address to this contract.\n * @param _graphToken Token to transfer\n * @param _from Address sending the tokens\n * @param _amount Amount of tokens to transfer\n */\n function pullTokens(IGraphToken _graphToken, address _from, uint256 _amount) internal {\n if (_amount > 0) {\n require(_graphToken.transferFrom(_from, address(this), _amount), \"!transfer\");\n }\n }\n\n /**\n * @dev Push tokens from this contract to a receiving address.\n * @param _graphToken Token to transfer\n * @param _to Address receiving the tokens\n * @param _amount Amount of tokens to transfer\n */\n function pushTokens(IGraphToken _graphToken, address _to, uint256 _amount) internal {\n if (_amount > 0) {\n require(_graphToken.transfer(_to, _amount), \"!transfer\");\n }\n }\n\n /**\n * @dev Burn tokens held by this contract.\n * @param _graphToken Token to burn\n * @param _amount Amount of tokens to burn\n */\n function burnTokens(IGraphToken _graphToken, uint256 _amount) internal {\n if (_amount > 0) {\n _graphToken.burn(_amount);\n }\n }\n}\n" - }, - "@graphprotocol/horizon/contracts/data-service/DataService.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IDataService } from \"./interfaces/IDataService.sol\";\n\nimport { DataServiceV1Storage } from \"./DataServiceStorage.sol\";\nimport { GraphDirectory } from \"../utilities/GraphDirectory.sol\";\nimport { ProvisionManager } from \"./utilities/ProvisionManager.sol\";\n\n/**\n * @title DataService contract\n * @dev Implementation of the {IDataService} interface.\n * @notice This implementation provides base functionality for a data service:\n * - GraphDirectory, allows the data service to interact with Graph Horizon contracts\n * - ProvisionManager, provides functionality to manage provisions\n *\n * The derived contract MUST implement all the interfaces described in {IDataService} and in\n * accordance with the Data Service framework.\n * @dev A note on upgradeability: this base contract can be inherited by upgradeable or non upgradeable\n * contracts.\n * - If the data service implementation is upgradeable, it must initialize the contract via an external\n * initializer function with the `initializer` modifier that calls {__DataService_init} or\n * {__DataService_init_unchained}. It's recommended the implementation constructor to also call\n * {_disableInitializers} to prevent the implementation from being initialized.\n * - If the data service implementation is NOT upgradeable, it must initialize the contract by calling\n * {__DataService_init} or {__DataService_init_unchained} in the constructor. Note that the `initializer`\n * will be required in the constructor.\n */\nabstract contract DataService is GraphDirectory, ProvisionManager, DataServiceV1Storage, IDataService {\n /**\n * @dev Addresses in GraphDirectory are immutables, they can only be set in this constructor.\n * @param controller The address of the Graph Horizon controller contract.\n */\n constructor(address controller) GraphDirectory(controller) {}\n\n /**\n * @notice Initializes the contract and any parent contracts.\n */\n // solhint-disable-next-line func-name-mixedcase\n function __DataService_init() internal onlyInitializing {\n __ProvisionManager_init_unchained();\n __DataService_init_unchained();\n }\n\n /**\n * @notice Initializes the contract.\n */\n // solhint-disable-next-line func-name-mixedcase\n function __DataService_init_unchained() internal onlyInitializing {}\n\n /**\n * @notice See {IDataService-getThawingPeriodRange}.\n */\n function getThawingPeriodRange() external view returns (uint64, uint64) {\n return _getThawingPeriodRange();\n }\n\n /**\n * @notice See {IDataService-getVerifierCutRange}.\n */\n function getVerifierCutRange() external view returns (uint32, uint32) {\n return _getVerifierCutRange();\n }\n\n /**\n * @notice See {IDataService-getProvisionTokensRange}.\n */\n function getProvisionTokensRange() external view returns (uint256, uint256) {\n return _getProvisionTokensRange();\n }\n\n /**\n * @notice See {IDataService-getDelegationRatio}.\n */\n function getDelegationRatio() external view returns (uint32) {\n return _getDelegationRatio();\n }\n}\n" - }, - "@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nabstract contract DataServiceV1Storage {\n /// @dev Gap to allow adding variables in future upgrades\n uint256[50] private __gap;\n}\n" - }, - "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IDataServiceFees } from \"../interfaces/IDataServiceFees.sol\";\n\nimport { ProvisionTracker } from \"../libraries/ProvisionTracker.sol\";\nimport { LinkedList } from \"../../libraries/LinkedList.sol\";\n\nimport { DataService } from \"../DataService.sol\";\nimport { DataServiceFeesV1Storage } from \"./DataServiceFeesStorage.sol\";\n\n/**\n * @title DataServiceFees contract\n * @dev Implementation of the {IDataServiceFees} interface.\n * @notice Extension for the {IDataService} contract to handle payment collateralization\n * using a Horizon provision. See {IDataServiceFees} for more details.\n */\nabstract contract DataServiceFees is DataService, DataServiceFeesV1Storage, IDataServiceFees {\n using ProvisionTracker for mapping(address => uint256);\n using LinkedList for LinkedList.List;\n\n /**\n * @notice See {IDataServiceFees-releaseStake}\n */\n function releaseStake(uint256 numClaimsToRelease) external virtual override {\n _releaseStake(msg.sender, numClaimsToRelease);\n }\n\n /**\n * @notice Locks stake for a service provider to back a payment.\n * Creates a stake claim, which is stored in a linked list by service provider.\n * @dev Requirements:\n * - The associated provision must have enough available tokens to lock the stake.\n *\n * Emits a {StakeClaimLocked} event.\n *\n * @param _serviceProvider The address of the service provider\n * @param _tokens The amount of tokens to lock in the claim\n * @param _unlockTimestamp The timestamp when the tokens can be released\n */\n function _lockStake(address _serviceProvider, uint256 _tokens, uint256 _unlockTimestamp) internal {\n require(_tokens != 0, DataServiceFeesZeroTokens());\n feesProvisionTracker.lock(_graphStaking(), _serviceProvider, _tokens, delegationRatio);\n\n LinkedList.List storage claimsList = claimsLists[_serviceProvider];\n\n // Save item and add to list\n bytes32 claimId = _buildStakeClaimId(_serviceProvider, claimsList.nonce);\n claims[claimId] = StakeClaim({\n tokens: _tokens,\n createdAt: block.timestamp,\n releasableAt: _unlockTimestamp,\n nextClaim: bytes32(0)\n });\n if (claimsList.count != 0) claims[claimsList.tail].nextClaim = claimId;\n claimsList.addTail(claimId);\n\n emit StakeClaimLocked(_serviceProvider, claimId, _tokens, _unlockTimestamp);\n }\n\n /**\n * @notice See {IDataServiceFees-releaseStake}\n */\n function _releaseStake(address _serviceProvider, uint256 _numClaimsToRelease) internal {\n LinkedList.List storage claimsList = claimsLists[_serviceProvider];\n (uint256 claimsReleased, bytes memory data) = claimsList.traverse(\n _getNextStakeClaim,\n _processStakeClaim,\n _deleteStakeClaim,\n abi.encode(0, _serviceProvider),\n _numClaimsToRelease\n );\n\n emit StakeClaimsReleased(_serviceProvider, claimsReleased, abi.decode(data, (uint256)));\n }\n\n /**\n * @notice Processes a stake claim, releasing the tokens if the claim has expired.\n * @dev This function is used as a callback in the stake claims linked list traversal.\n * @param _claimId The id of the stake claim\n * @param _acc The accumulator for the stake claims being processed\n * @return Wether the stake claim is still locked, indicating that the traversal should continue or stop.\n * @return The updated accumulator data\n */\n function _processStakeClaim(bytes32 _claimId, bytes memory _acc) private returns (bool, bytes memory) {\n StakeClaim memory claim = _getStakeClaim(_claimId);\n\n // early exit\n if (claim.releasableAt > block.timestamp) {\n return (true, LinkedList.NULL_BYTES);\n }\n\n // decode\n (uint256 tokensClaimed, address serviceProvider) = abi.decode(_acc, (uint256, address));\n\n // process\n feesProvisionTracker.release(serviceProvider, claim.tokens);\n emit StakeClaimReleased(serviceProvider, _claimId, claim.tokens, claim.releasableAt);\n\n // encode\n _acc = abi.encode(tokensClaimed + claim.tokens, serviceProvider);\n return (false, _acc);\n }\n\n /**\n * @notice Deletes a stake claim.\n * @dev This function is used as a callback in the stake claims linked list traversal.\n * @param _claimId The ID of the stake claim to delete\n */\n function _deleteStakeClaim(bytes32 _claimId) private {\n delete claims[_claimId];\n }\n\n /**\n * @notice Gets the details of a stake claim\n * @param _claimId The ID of the stake claim\n */\n function _getStakeClaim(bytes32 _claimId) private view returns (StakeClaim memory) {\n StakeClaim memory claim = claims[_claimId];\n require(claim.createdAt != 0, DataServiceFeesClaimNotFound(_claimId));\n return claim;\n }\n\n /**\n * @notice Gets the next stake claim in the linked list\n * @dev This function is used as a callback in the stake claims linked list traversal.\n * @param _claimId The ID of the stake claim\n */\n function _getNextStakeClaim(bytes32 _claimId) private view returns (bytes32) {\n StakeClaim memory claim = claims[_claimId];\n require(claim.createdAt != 0, DataServiceFeesClaimNotFound(_claimId));\n return claim.nextClaim;\n }\n\n /**\n * @notice Builds a stake claim ID\n * @param _serviceProvider The address of the service provider\n * @param _nonce A nonce of the stake claim\n */\n function _buildStakeClaimId(address _serviceProvider, uint256 _nonce) private view returns (bytes32) {\n return keccak256(abi.encodePacked(address(this), _serviceProvider, _nonce));\n }\n}\n" - }, - "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IDataServiceFees } from \"../interfaces/IDataServiceFees.sol\";\n\nimport { LinkedList } from \"../../libraries/LinkedList.sol\";\n\n/**\n * @title Storage layout for the {DataServiceFees} extension contract.\n */\nabstract contract DataServiceFeesV1Storage {\n mapping(address serviceProvider => uint256 tokens) public feesProvisionTracker;\n\n /// @notice List of all locked stake claims to be released to service providers\n mapping(bytes32 claimId => IDataServiceFees.StakeClaim claim) public claims;\n\n /// @notice Service providers registered in the data service\n mapping(address serviceProvider => LinkedList.List list) public claimsLists;\n\n /// @dev Gap to allow adding variables in future upgrades\n uint256[50] private __gap;\n}\n" - }, - "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IDataServicePausable } from \"../interfaces/IDataServicePausable.sol\";\n\nimport { PausableUpgradeable } from \"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol\";\nimport { DataService } from \"../DataService.sol\";\n\n/**\n * @title DataServicePausableUpgradeable contract\n * @dev Implementation of the {IDataServicePausable} interface.\n * @dev Upgradeable version of the {DataServicePausable} contract.\n */\nabstract contract DataServicePausableUpgradeable is PausableUpgradeable, DataService, IDataServicePausable {\n /// @notice List of pause guardians and their allowed status\n mapping(address pauseGuardian => bool allowed) public pauseGuardians;\n\n /**\n * @notice Checks if the caller is a pause guardian.\n */\n modifier onlyPauseGuardian() {\n require(pauseGuardians[msg.sender], DataServicePausableNotPauseGuardian(msg.sender));\n _;\n }\n\n /**\n * @notice See {IDataServicePausable-pause}\n */\n function pause() external override onlyPauseGuardian whenNotPaused {\n _pause();\n }\n\n /**\n * @notice See {IDataServicePausable-pause}\n */\n function unpause() external override onlyPauseGuardian whenPaused {\n _unpause();\n }\n\n /**\n * @notice Initializes the contract and parent contracts\n */\n // solhint-disable-next-line func-name-mixedcase\n function __DataServicePausable_init() internal onlyInitializing {\n __Pausable_init_unchained();\n __DataServicePausable_init_unchained();\n }\n\n /**\n * @notice Initializes the contract\n */\n // solhint-disable-next-line func-name-mixedcase\n function __DataServicePausable_init_unchained() internal onlyInitializing {}\n\n /**\n * @notice Sets a pause guardian.\n * @dev Internal function to be used by the derived contract to set pause guardians.\n *\n * Emits a {PauseGuardianSet} event.\n *\n * @param _pauseGuardian The address of the pause guardian\n * @param _allowed The allowed status of the pause guardian\n */\n function _setPauseGuardian(address _pauseGuardian, bool _allowed) internal whenNotPaused {\n pauseGuardians[_pauseGuardian] = _allowed;\n emit PauseGuardianSet(_pauseGuardian, _allowed);\n }\n}\n" - }, - "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IGraphPayments } from \"../../interfaces/IGraphPayments.sol\";\n\n/**\n * @title Interface of the base {DataService} contract as defined by the Graph Horizon specification.\n * @notice This interface provides a guardrail for contracts that use the Data Service framework\n * to implement a data service on Graph Horizon. Much of the specification is intentionally loose\n * to allow for greater flexibility when designing a data service. It's not possible to guarantee that\n * an implementation will honor the Data Service framework guidelines so it's advised to always review\n * the implementation code and the documentation.\n * @dev This interface is expected to be inherited and extended by a data service interface. It can be\n * used to interact with it however it's advised to use the more specific parent interface.\n */\ninterface IDataService {\n /**\n * @notice Emitted when a service provider is registered with the data service.\n * @param serviceProvider The address of the service provider.\n * @param data Custom data, usage defined by the data service.\n */\n event ServiceProviderRegistered(address indexed serviceProvider, bytes data);\n\n /**\n * @notice Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\n * @param serviceProvider The address of the service provider.\n */\n event ProvisionPendingParametersAccepted(address indexed serviceProvider);\n\n /**\n * @notice Emitted when a service provider starts providing the service.\n * @param serviceProvider The address of the service provider.\n * @param data Custom data, usage defined by the data service.\n */\n event ServiceStarted(address indexed serviceProvider, bytes data);\n\n /**\n * @notice Emitted when a service provider stops providing the service.\n * @param serviceProvider The address of the service provider.\n * @param data Custom data, usage defined by the data service.\n */\n event ServiceStopped(address indexed serviceProvider, bytes data);\n\n /**\n * @notice Emitted when a service provider collects payment.\n * @param serviceProvider The address of the service provider.\n * @param feeType The type of fee to collect as defined in {GraphPayments}.\n * @param tokens The amount of tokens collected.\n */\n event ServicePaymentCollected(\n address indexed serviceProvider,\n IGraphPayments.PaymentTypes indexed feeType,\n uint256 tokens\n );\n\n /**\n * @notice Emitted when a service provider is slashed.\n * @param serviceProvider The address of the service provider.\n * @param tokens The amount of tokens slashed.\n */\n event ServiceProviderSlashed(address indexed serviceProvider, uint256 tokens);\n\n /**\n * @notice Registers a service provider with the data service. The service provider can now\n * start providing the service.\n * @dev Before registering, the service provider must have created a provision in the\n * Graph Horizon staking contract with parameters that are compatible with the data service.\n *\n * Verifies provision parameters and rejects registration in the event they are not valid.\n *\n * Emits a {ServiceProviderRegistered} event.\n *\n * NOTE: Failing to accept the provision will result in the service provider operating\n * on an unverified provision. Depending on of the data service this can be a security\n * risk as the protocol won't be able to guarantee economic security for the consumer.\n * @param serviceProvider The address of the service provider.\n * @param data Custom data, usage defined by the data service.\n */\n function register(address serviceProvider, bytes calldata data) external;\n\n /**\n * @notice Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking\n * contract}.\n * @dev Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}.\n *\n * Emits a {ProvisionPendingParametersAccepted} event.\n *\n * @param serviceProvider The address of the service provider.\n * @param data Custom data, usage defined by the data service.\n */\n function acceptProvisionPendingParameters(address serviceProvider, bytes calldata data) external;\n\n /**\n * @notice Service provider starts providing the service.\n * @dev Emits a {ServiceStarted} event.\n * @param serviceProvider The address of the service provider.\n * @param data Custom data, usage defined by the data service.\n */\n function startService(address serviceProvider, bytes calldata data) external;\n\n /**\n * @notice Service provider stops providing the service.\n * @dev Emits a {ServiceStopped} event.\n * @param serviceProvider The address of the service provider.\n * @param data Custom data, usage defined by the data service.\n */\n function stopService(address serviceProvider, bytes calldata data) external;\n\n /**\n * @notice Collects payment earnt by the service provider.\n * @dev The implementation of this function is expected to interact with {GraphPayments}\n * to collect payment from the service payer, which is done via {IGraphPayments-collect}.\n * @param serviceProvider The address of the service provider.\n *\n * Emits a {ServicePaymentCollected} event.\n *\n * NOTE: Data services that are vetted by the Graph Council might qualify for a portion of\n * protocol issuance to cover for these payments. In this case, the funds are taken by\n * interacting with the rewards manager contract instead of the {GraphPayments} contract.\n * @param serviceProvider The address of the service provider.\n * @param feeType The type of fee to collect as defined in {GraphPayments}.\n * @param data Custom data, usage defined by the data service.\n * @return The amount of tokens collected.\n */\n function collect(\n address serviceProvider,\n IGraphPayments.PaymentTypes feeType,\n bytes calldata data\n ) external returns (uint256);\n\n /**\n * @notice Slash a service provider for misbehaviour.\n * @dev To slash the service provider's provision the function should call\n * {Staking-slash}.\n *\n * Emits a {ServiceProviderSlashed} event.\n *\n * @param serviceProvider The address of the service provider.\n * @param data Custom data, usage defined by the data service.\n */\n function slash(address serviceProvider, bytes calldata data) external;\n\n /**\n * @notice External getter for the thawing period range\n * @return Minimum thawing period allowed\n * @return Maximum thawing period allowed\n */\n function getThawingPeriodRange() external view returns (uint64, uint64);\n\n /**\n * @notice External getter for the verifier cut range\n * @return Minimum verifier cut allowed\n * @return Maximum verifier cut allowed\n */\n function getVerifierCutRange() external view returns (uint32, uint32);\n\n /**\n * @notice External getter for the provision tokens range\n * @return Minimum provision tokens allowed\n * @return Maximum provision tokens allowed\n */\n function getProvisionTokensRange() external view returns (uint256, uint256);\n\n /**\n * @notice External getter for the delegation ratio\n * @return The delegation ratio\n */\n function getDelegationRatio() external view returns (uint32);\n}\n" - }, - "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IDataService } from \"./IDataService.sol\";\n\n/**\n * @title Interface for the {DataServiceFees} contract.\n * @notice Extension for the {IDataService} contract to handle payment collateralization\n * using a Horizon provision.\n *\n * It's designed to be used with the Data Service framework:\n * - When a service provider collects payment with {IDataService.collect} the data service should lock\n * stake to back the payment using {_lockStake}.\n * - Every time there is a payment collection with {IDataService.collect}, the data service should\n * attempt to release any expired stake claims by calling {_releaseStake}.\n * - Stake claims can also be manually released by calling {releaseStake} directly.\n *\n * @dev Note that this implementation uses the entire provisioned stake as collateral for the payment.\n * It can be used to provide economic security for the payments collected as long as the provisioned\n * stake is not being used for other purposes.\n */\ninterface IDataServiceFees is IDataService {\n /**\n * @notice A stake claim, representing provisioned stake that gets locked\n * to be released to a service provider.\n * @dev StakeClaims are stored in linked lists by service provider, ordered by\n * creation timestamp.\n */\n struct StakeClaim {\n // The amount of tokens to be locked in the claim\n uint256 tokens;\n // Timestamp when the claim was created\n uint256 createdAt;\n // Timestamp when the claim will expire and tokens can be released\n uint256 releasableAt;\n // Next claim in the linked list\n bytes32 nextClaim;\n }\n\n /**\n * @notice Emitted when a stake claim is created and stake is locked.\n * @param serviceProvider The address of the service provider\n * @param claimId The id of the stake claim\n * @param tokens The amount of tokens to lock in the claim\n * @param unlockTimestamp The timestamp when the tokens can be released\n */\n event StakeClaimLocked(\n address indexed serviceProvider,\n bytes32 indexed claimId,\n uint256 tokens,\n uint256 unlockTimestamp\n );\n\n /**\n * @notice Emitted when a stake claim is released and stake is unlocked.\n * @param serviceProvider The address of the service provider\n * @param claimId The id of the stake claim\n * @param tokens The amount of tokens released\n * @param releasableAt The timestamp when the tokens were released\n */\n event StakeClaimReleased(\n address indexed serviceProvider,\n bytes32 indexed claimId,\n uint256 tokens,\n uint256 releasableAt\n );\n\n /**\n * @notice Emitted when a series of stake claims are released.\n * @param serviceProvider The address of the service provider\n * @param claimsCount The number of stake claims being released\n * @param tokensReleased The total amount of tokens being released\n */\n event StakeClaimsReleased(address indexed serviceProvider, uint256 claimsCount, uint256 tokensReleased);\n\n /**\n * @notice Thrown when attempting to get a stake claim that does not exist.\n */\n error DataServiceFeesClaimNotFound(bytes32 claimId);\n\n /**\n * @notice Emitted when trying to lock zero tokens in a stake claim\n */\n error DataServiceFeesZeroTokens();\n\n /**\n * @notice Releases expired stake claims for the caller.\n * @dev This function is only meant to be called if the service provider has enough\n * stake claims that releasing them all at once would exceed the block gas limit.\n * @dev This function can be overriden and/or disabled.\n * @dev Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.\n * @param numClaimsToRelease Amount of stake claims to process. If 0, all stake claims are processed.\n */\n function releaseStake(uint256 numClaimsToRelease) external;\n}\n" - }, - "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IDataService } from \"./IDataService.sol\";\n\n/**\n * @title Interface for the {DataServicePausable} contract.\n * @notice Extension for the {IDataService} contract, adds pausing functionality\n * to the data service. Pausing is controlled by privileged accounts called\n * pause guardians.\n */\ninterface IDataServicePausable is IDataService {\n /**\n * @notice Emitted when a pause guardian is set.\n * @param account The address of the pause guardian\n * @param allowed The allowed status of the pause guardian\n */\n event PauseGuardianSet(address indexed account, bool allowed);\n\n /**\n * @notice Emitted when a the caller is not a pause guardian\n * @param account The address of the pause guardian\n */\n error DataServicePausableNotPauseGuardian(address account);\n\n /**\n * @notice Pauses the data service.\n * @dev Note that only functions using the modifiers `whenNotPaused`\n * and `whenPaused` will be affected by the pause.\n *\n * Requirements:\n * - The contract must not be already paused\n */\n function pause() external;\n\n /**\n * @notice Unpauses the data service.\n * @dev Note that only functions using the modifiers `whenNotPaused`\n * and `whenPaused` will be affected by the pause.\n *\n * Requirements:\n * - The contract must be paused\n */\n function unpause() external;\n}\n" - }, - "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IHorizonStaking } from \"../../interfaces/IHorizonStaking.sol\";\n\n/**\n * @title ProvisionTracker library\n * @notice A library to facilitate tracking of \"used tokens\" on Graph Horizon provisions. This can be used to\n * ensure data services have enough economic security (provisioned stake) to back the payments they collect for\n * their services.\n * The library provides two primitives, lock and release to signal token usage and free up tokens respectively. It\n * does not make any assumptions about the conditions under which tokens are locked or released.\n */\nlibrary ProvisionTracker {\n /**\n * @notice Thrown when trying to lock more tokens than available\n */\n error ProvisionTrackerInsufficientTokens(uint256 tokensAvailable, uint256 tokensRequired);\n\n /**\n * @notice Locks tokens for a service provider\n * @dev Requirements:\n * - `tokens` must be less than or equal to the amount of tokens available, as reported by the HorizonStaking contract\n * @param self The provision tracker mapping\n * @param graphStaking The HorizonStaking contract\n * @param serviceProvider The service provider address\n * @param tokens The amount of tokens to lock\n * @param delegationRatio A delegation ratio to limit the amount of delegation that's usable\n */\n function lock(\n mapping(address => uint256) storage self,\n IHorizonStaking graphStaking,\n address serviceProvider,\n uint256 tokens,\n uint32 delegationRatio\n ) internal {\n if (tokens == 0) return;\n\n uint256 tokensRequired = self[serviceProvider] + tokens;\n uint256 tokensAvailable = graphStaking.getTokensAvailable(serviceProvider, address(this), delegationRatio);\n require(tokensRequired <= tokensAvailable, ProvisionTrackerInsufficientTokens(tokensAvailable, tokensRequired));\n self[serviceProvider] += tokens;\n }\n\n /**\n * @notice Releases tokens for a service provider\n * @dev Requirements:\n * - `tokens` must be less than or equal to the amount of tokens locked for the service provider\n * @param self The provision tracker mapping\n * @param serviceProvider The service provider address\n * @param tokens The amount of tokens to release\n */\n function release(mapping(address => uint256) storage self, address serviceProvider, uint256 tokens) internal {\n if (tokens == 0) return;\n require(self[serviceProvider] >= tokens, ProvisionTrackerInsufficientTokens(self[serviceProvider], tokens));\n self[serviceProvider] -= tokens;\n }\n\n /**\n * @notice Checks if a service provider has enough tokens available to lock\n * @param self The provision tracker mapping\n * @param graphStaking The HorizonStaking contract\n * @param serviceProvider The service provider address\n * @param delegationRatio A delegation ratio to limit the amount of delegation that's usable\n */\n function check(\n mapping(address => uint256) storage self,\n IHorizonStaking graphStaking,\n address serviceProvider,\n uint32 delegationRatio\n ) internal view returns (bool) {\n uint256 tokensAvailable = graphStaking.getTokensAvailable(serviceProvider, address(this), delegationRatio);\n return self[serviceProvider] <= tokensAvailable;\n }\n}\n" - }, - "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IHorizonStaking } from \"../../interfaces/IHorizonStaking.sol\";\n\nimport { UintRange } from \"../../libraries/UintRange.sol\";\nimport { PPMMath } from \"../../libraries/PPMMath.sol\";\n\nimport { Initializable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport { GraphDirectory } from \"../../utilities/GraphDirectory.sol\";\nimport { ProvisionManagerV1Storage } from \"./ProvisionManagerStorage.sol\";\n\n/**\n * @title ProvisionManager contract\n * @notice A helper contract that implements several provision management functions.\n * @dev Provides utilities to verify provision parameters are within an acceptable range. Each\n * parameter has an overridable setter and getter for the validity range, and a checker that reverts\n * if the parameter is out of range.\n * The parameters are:\n * - Provision parameters (thawing period and verifier cut)\n * - Provision tokens\n */\nabstract contract ProvisionManager is Initializable, GraphDirectory, ProvisionManagerV1Storage {\n using UintRange for uint256;\n\n // Constants\n uint32 internal constant DEFAULT_MIN_VERIFIER_CUT = type(uint32).min;\n uint32 internal constant DEFAULT_MAX_VERIFIER_CUT = uint32(PPMMath.MAX_PPM);\n uint64 internal constant DEFAULT_MIN_THAWING_PERIOD = type(uint64).min;\n uint64 internal constant DEFAULT_MAX_THAWING_PERIOD = type(uint64).max;\n uint256 internal constant DEFAULT_MIN_PROVISION_TOKENS = type(uint256).min;\n uint256 internal constant DEFAULT_MAX_PROVISION_TOKENS = type(uint256).max;\n\n /**\n * @notice Emitted when the provision tokens range is set.\n * @param min The minimum allowed value for the provision tokens.\n * @param max The maximum allowed value for the provision tokens.\n */\n event ProvisionTokensRangeSet(uint256 min, uint256 max);\n\n /**\n * @notice Emitted when the delegation ratio is set.\n * @param ratio The delegation ratio\n */\n event DelegationRatioSet(uint32 ratio);\n\n /**\n * @notice Emitted when the verifier cut range is set.\n * @param min The minimum allowed value for the max verifier cut.\n * @param max The maximum allowed value for the max verifier cut.\n */\n event VerifierCutRangeSet(uint32 min, uint32 max);\n\n /**\n * @notice Emitted when the thawing period range is set.\n * @param min The minimum allowed value for the thawing period.\n * @param max The maximum allowed value for the thawing period.\n */\n event ThawingPeriodRangeSet(uint64 min, uint64 max);\n\n /**\n * @notice Thrown when a provision parameter is out of range.\n * @param message The error message.\n * @param value The value that is out of range.\n * @param min The minimum allowed value.\n * @param max The maximum allowed value.\n */\n error ProvisionManagerInvalidValue(bytes message, uint256 value, uint256 min, uint256 max);\n\n /**\n * @notice Thrown when attempting to set a range where min is greater than max.\n * @param min The minimum value.\n * @param max The maximum value.\n */\n error ProvisionManagerInvalidRange(uint256 min, uint256 max);\n\n /**\n * @notice Thrown when the caller is not authorized to manage the provision of a service provider.\n * @param serviceProvider The address of the serviceProvider.\n * @param caller The address of the caller.\n */\n error ProvisionManagerNotAuthorized(address serviceProvider, address caller);\n\n /**\n * @notice Thrown when a provision is not found.\n * @param serviceProvider The address of the service provider.\n */\n error ProvisionManagerProvisionNotFound(address serviceProvider);\n\n /**\n * @notice Checks if the caller is authorized to manage the provision of a service provider.\n */\n modifier onlyAuthorizedForProvision(address serviceProvider) {\n require(\n _graphStaking().isAuthorized(serviceProvider, address(this), msg.sender),\n ProvisionManagerNotAuthorized(serviceProvider, msg.sender)\n );\n _;\n }\n\n /**\n * @notice Checks if a provision of a service provider is valid according\n * to the parameter ranges established.\n */\n modifier onlyValidProvision(address serviceProvider) virtual {\n IHorizonStaking.Provision memory provision = _getProvision(serviceProvider);\n _checkProvisionTokens(provision);\n _checkProvisionParameters(provision, false);\n _;\n }\n\n /**\n * @notice Initializes the contract and any parent contracts.\n */\n // solhint-disable-next-line func-name-mixedcase\n function __ProvisionManager_init() internal onlyInitializing {\n __ProvisionManager_init_unchained();\n }\n\n /**\n * @notice Initializes the contract.\n * @dev All parameters set to their entire range as valid.\n */\n // solhint-disable-next-line func-name-mixedcase\n function __ProvisionManager_init_unchained() internal onlyInitializing {\n _setProvisionTokensRange(DEFAULT_MIN_PROVISION_TOKENS, DEFAULT_MAX_PROVISION_TOKENS);\n _setVerifierCutRange(DEFAULT_MIN_VERIFIER_CUT, DEFAULT_MAX_VERIFIER_CUT);\n _setThawingPeriodRange(DEFAULT_MIN_THAWING_PERIOD, DEFAULT_MAX_THAWING_PERIOD);\n }\n\n /**\n * @notice Verifies and accepts the provision parameters of a service provider in\n * the {HorizonStaking} contract.\n * @dev Checks the pending provision parameters, not the current ones.\n *\n * Emits a {ProvisionPendingParametersAccepted} event.\n *\n * @param _serviceProvider The address of the service provider.\n */\n function _acceptProvisionParameters(address _serviceProvider) internal {\n _checkProvisionParameters(_serviceProvider, true);\n _graphStaking().acceptProvisionParameters(_serviceProvider);\n }\n\n // -- setters --\n /**\n * @notice Sets the delegation ratio.\n * @param _ratio The delegation ratio to be set\n */\n function _setDelegationRatio(uint32 _ratio) internal {\n delegationRatio = _ratio;\n emit DelegationRatioSet(_ratio);\n }\n\n /**\n * @notice Sets the range for the provision tokens.\n * @param _min The minimum allowed value for the provision tokens.\n * @param _max The maximum allowed value for the provision tokens.\n */\n function _setProvisionTokensRange(uint256 _min, uint256 _max) internal {\n require(_min <= _max, ProvisionManagerInvalidRange(_min, _max));\n minimumProvisionTokens = _min;\n maximumProvisionTokens = _max;\n emit ProvisionTokensRangeSet(_min, _max);\n }\n\n /**\n * @notice Sets the range for the verifier cut.\n * @param _min The minimum allowed value for the max verifier cut.\n * @param _max The maximum allowed value for the max verifier cut.\n */\n function _setVerifierCutRange(uint32 _min, uint32 _max) internal {\n require(_min <= _max, ProvisionManagerInvalidRange(_min, _max));\n require(PPMMath.isValidPPM(_max), ProvisionManagerInvalidRange(_min, _max));\n minimumVerifierCut = _min;\n maximumVerifierCut = _max;\n emit VerifierCutRangeSet(_min, _max);\n }\n\n /**\n * @notice Sets the range for the thawing period.\n * @param _min The minimum allowed value for the thawing period.\n * @param _max The maximum allowed value for the thawing period.\n */\n function _setThawingPeriodRange(uint64 _min, uint64 _max) internal {\n require(_min <= _max, ProvisionManagerInvalidRange(_min, _max));\n minimumThawingPeriod = _min;\n maximumThawingPeriod = _max;\n emit ThawingPeriodRangeSet(_min, _max);\n }\n\n // -- checks --\n\n /**\n * @notice Checks if the provision tokens of a service provider are within the valid range.\n * @param _serviceProvider The address of the service provider.\n */\n function _checkProvisionTokens(address _serviceProvider) internal view virtual {\n IHorizonStaking.Provision memory provision = _getProvision(_serviceProvider);\n _checkProvisionTokens(provision);\n }\n\n /**\n * @notice Checks if the provision tokens of a service provider are within the valid range.\n * @param _provision The provision to check.\n */\n function _checkProvisionTokens(IHorizonStaking.Provision memory _provision) internal view virtual {\n _checkValueInRange(_provision.tokens, minimumProvisionTokens, maximumProvisionTokens, \"tokens\");\n }\n\n /**\n * @notice Checks if the provision parameters of a service provider are within the valid range.\n * @param _serviceProvider The address of the service provider.\n * @param _checkPending If true, checks the pending provision parameters.\n */\n function _checkProvisionParameters(address _serviceProvider, bool _checkPending) internal view virtual {\n IHorizonStaking.Provision memory provision = _getProvision(_serviceProvider);\n _checkProvisionParameters(provision, _checkPending);\n }\n\n /**\n * @notice Checks if the provision parameters of a service provider are within the valid range.\n * @param _provision The provision to check.\n * @param _checkPending If true, checks the pending provision parameters instead of the current ones.\n */\n function _checkProvisionParameters(\n IHorizonStaking.Provision memory _provision,\n bool _checkPending\n ) internal view virtual {\n (uint64 thawingPeriodMin, uint64 thawingPeriodMax) = _getThawingPeriodRange();\n uint64 thawingPeriodToCheck = _checkPending ? _provision.thawingPeriodPending : _provision.thawingPeriod;\n _checkValueInRange(thawingPeriodToCheck, thawingPeriodMin, thawingPeriodMax, \"thawingPeriod\");\n\n (uint32 verifierCutMin, uint32 verifierCutMax) = _getVerifierCutRange();\n uint32 maxVerifierCutToCheck = _checkPending ? _provision.maxVerifierCutPending : _provision.maxVerifierCut;\n _checkValueInRange(maxVerifierCutToCheck, verifierCutMin, verifierCutMax, \"maxVerifierCut\");\n }\n\n // -- getters --\n\n /**\n * @notice Gets the delegation ratio.\n * @return The delegation ratio\n */\n function _getDelegationRatio() internal view returns (uint32) {\n return delegationRatio;\n }\n\n /**\n * @notice Gets the range for the provision tokens.\n * @return min The minimum allowed value for the provision tokens.\n * @return max The maximum allowed value for the provision tokens.\n */\n function _getProvisionTokensRange() internal view virtual returns (uint256 min, uint256 max) {\n return (minimumProvisionTokens, maximumProvisionTokens);\n }\n\n /**\n * @notice Gets the range for the thawing period.\n * @return min The minimum allowed value for the thawing period.\n * @return max The maximum allowed value for the thawing period.\n */\n function _getThawingPeriodRange() internal view virtual returns (uint64 min, uint64 max) {\n return (minimumThawingPeriod, maximumThawingPeriod);\n }\n\n /**\n * @notice Gets the range for the verifier cut.\n * @return min The minimum allowed value for the max verifier cut.\n * @return max The maximum allowed value for the max verifier cut.\n */\n function _getVerifierCutRange() internal view virtual returns (uint32 min, uint32 max) {\n return (minimumVerifierCut, maximumVerifierCut);\n }\n\n /**\n * @notice Gets a provision from the {HorizonStaking} contract.\n * @dev Requirements:\n * - The provision must exist.\n * @param _serviceProvider The address of the service provider.\n */\n function _getProvision(address _serviceProvider) internal view returns (IHorizonStaking.Provision memory) {\n IHorizonStaking.Provision memory provision = _graphStaking().getProvision(_serviceProvider, address(this));\n require(provision.createdAt != 0, ProvisionManagerProvisionNotFound(_serviceProvider));\n return provision;\n }\n\n /**\n * @notice Checks if a value is within a valid range.\n * @param _value The value to check.\n * @param _min The minimum allowed value.\n * @param _max The maximum allowed value.\n * @param _revertMessage The revert message to display if the value is out of range.\n */\n function _checkValueInRange(uint256 _value, uint256 _min, uint256 _max, bytes memory _revertMessage) private pure {\n require(_value.isInRange(_min, _max), ProvisionManagerInvalidValue(_revertMessage, _value, _min, _max));\n }\n}\n" - }, - "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\n/**\n * @title Storage layout for the {ProvisionManager} helper contract.\n */\nabstract contract ProvisionManagerV1Storage {\n /// @notice The minimum amount of tokens required to register a provision in the data service\n uint256 public minimumProvisionTokens;\n\n /// @notice The maximum amount of tokens allowed to register a provision in the data service\n uint256 public maximumProvisionTokens;\n\n /// @notice The minimum thawing period required to register a provision in the data service\n uint64 public minimumThawingPeriod;\n\n /// @notice The maximum thawing period allowed to register a provision in the data service\n uint64 public maximumThawingPeriod;\n\n /// @notice The minimum verifier cut required to register a provision in the data service (in PPM)\n uint32 public minimumVerifierCut;\n\n /// @notice The maximum verifier cut allowed to register a provision in the data service (in PPM)\n uint32 public maximumVerifierCut;\n\n /// @notice How much delegation the service provider can effectively use\n /// @dev Max calculated as service provider's stake * delegationRatio\n uint32 public delegationRatio;\n\n /// @dev Gap to allow adding variables in future upgrades\n uint256[50] private __gap;\n}\n" - }, - "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\n/**\n * @title Interface for the {GraphPayments} contract\n * @notice This contract is part of the Graph Horizon payments protocol. It's designed\n * to pull funds (GRT) from the {PaymentsEscrow} and distribute them according to a\n * set of pre established rules.\n */\ninterface IGraphPayments {\n /**\n * @notice Types of payments that are supported by the payments protocol\n * @dev\n */\n enum PaymentTypes {\n QueryFee,\n IndexingFee,\n IndexingRewards\n }\n\n /**\n * @notice Emitted when a payment is collected\n * @param payer The address of the payer\n * @param receiver The address of the receiver\n * @param dataService The address of the data service\n * @param tokensReceiver Amount of tokens for the receiver\n * @param tokensDelegationPool Amount of tokens for delegators\n * @param tokensDataService Amount of tokens for the data service\n * @param tokensProtocol Amount of tokens charged as protocol tax\n */\n event PaymentCollected(\n address indexed payer,\n address indexed receiver,\n address indexed dataService,\n uint256 tokensReceiver,\n uint256 tokensDelegationPool,\n uint256 tokensDataService,\n uint256 tokensProtocol\n );\n\n /**\n * @notice Thrown when there are insufficient tokens to pay the required amount\n * @param tokens The amount of tokens available\n * @param minTokens The amount of tokens being collected\n */\n error GraphPaymentsInsufficientTokens(uint256 tokens, uint256 minTokens);\n\n /**\n * @notice Thrown when the protocol payment cut is invalid\n * @param protocolPaymentCut The protocol payment cut\n */\n error GraphPaymentsInvalidProtocolPaymentCut(uint256 protocolPaymentCut);\n\n /**\n * @notice Collects funds from a payer.\n * It will pay cuts to all relevant parties and forward the rest to the receiver.\n * @param paymentType The type of payment as defined in {IGraphPayments}\n * @param receiver The address of the receiver\n * @param tokens The amount of tokens being collected\n * @param dataService The address of the data service\n * @param tokensDataService The amount of tokens that should be sent to the data service\n */\n function collect(\n PaymentTypes paymentType,\n address receiver,\n uint256 tokens,\n address dataService,\n uint256 tokensDataService\n ) external;\n}\n" - }, - "@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\n/**\n * @title IGraphProxyAdmin\n * @dev Empty interface to allow the GraphProxyAdmin contract to be used\n * in the GraphDirectory contract.\n */\ninterface IGraphProxyAdmin {}\n" - }, - "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\nimport { IHorizonStakingTypes } from \"./internal/IHorizonStakingTypes.sol\";\nimport { IHorizonStakingMain } from \"./internal/IHorizonStakingMain.sol\";\nimport { IHorizonStakingBase } from \"./internal/IHorizonStakingBase.sol\";\nimport { IHorizonStakingExtension } from \"./internal/IHorizonStakingExtension.sol\";\n\n/**\n * @title Complete interface for the Horizon Staking contract\n * @notice This interface exposes all functions implemented by the {HorizonStaking} contract and its extension\n * {HorizonStakingExtension} as well as the custom data types used by the contract.\n * @dev Use this interface to interact with the Horizon Staking contract.\n */\ninterface IHorizonStaking is IHorizonStakingTypes, IHorizonStakingBase, IHorizonStakingMain, IHorizonStakingExtension {}\n" - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\nimport { IHorizonStakingTypes } from \"./IHorizonStakingTypes.sol\";\nimport { IGraphPayments } from \"../IGraphPayments.sol\";\n\nimport { LinkedList } from \"../../libraries/LinkedList.sol\";\n\n/**\n * @title Interface for the {HorizonStakingBase} contract.\n * @notice Provides getters for {HorizonStaking} and {HorizonStakingExtension} storage variables.\n * @dev Most functions operate over {HorizonStaking} provisions. To uniquely identify a provision\n * functions take `serviceProvider` and `verifier` addresses.\n */\ninterface IHorizonStakingBase {\n /**\n * @notice Emitted when a service provider stakes tokens.\n * @dev TODO: After transition period move to IHorizonStakingMain. Temporarily it\n * needs to be here since it's emitted by {_stake} which is used by both {HorizonStaking}\n * and {HorizonStakingExtension}.\n * @param serviceProvider The address of the service provider.\n * @param tokens The amount of tokens staked.\n */\n event StakeDeposited(address indexed serviceProvider, uint256 tokens);\n\n /**\n * @notice Gets the details of a service provider.\n * @param serviceProvider The address of the service provider.\n */\n function getServiceProvider(\n address serviceProvider\n ) external view returns (IHorizonStakingTypes.ServiceProvider memory);\n\n /**\n * @notice Gets the stake of a service provider.\n * @param serviceProvider The address of the service provider.\n * @return The amount of tokens staked.\n */\n function getStake(address serviceProvider) external view returns (uint256);\n\n /**\n * @notice Gets the service provider's idle stake which is the stake that is not being\n * used for any provision. Note that this only includes service provider's self stake.\n * @param serviceProvider The address of the service provider.\n * @return The amount of tokens that are idle.\n */\n function getIdleStake(address serviceProvider) external view returns (uint256);\n\n /**\n * @notice Gets the details of delegation pool.\n * @param serviceProvider The address of the service provider.\n * @param verifier The address of the verifier.\n * @return The delegation pool details.\n */\n function getDelegationPool(\n address serviceProvider,\n address verifier\n ) external view returns (IHorizonStakingTypes.DelegationPool memory);\n\n /**\n * @notice Gets the details of a delegation.\n * @param serviceProvider The address of the service provider.\n * @param verifier The address of the verifier.\n * @param delegator The address of the delegator.\n * @return The delegation details.\n */\n function getDelegation(\n address serviceProvider,\n address verifier,\n address delegator\n ) external view returns (IHorizonStakingTypes.Delegation memory);\n\n /**\n * @notice Gets the delegation fee cut for a payment type.\n * @param serviceProvider The address of the service provider.\n * @param verifier The address of the verifier.\n * @param paymentType The payment type as defined by {IGraphPayments.PaymentTypes}.\n * @return The delegation fee cut in PPM.\n */\n function getDelegationFeeCut(\n address serviceProvider,\n address verifier,\n IGraphPayments.PaymentTypes paymentType\n ) external view returns (uint256);\n\n /**\n * @notice Gets the details of a provision.\n * @param serviceProvider The address of the service provider.\n * @param verifier The address of the verifier.\n * @return The provision details.\n */\n function getProvision(\n address serviceProvider,\n address verifier\n ) external view returns (IHorizonStakingTypes.Provision memory);\n\n /**\n * @notice Gets the tokens available in a provision.\n * Tokens available are the tokens in a provision that are not thawing. Includes service\n * provider's and delegator's stake.\n *\n * Allows specifying a `delegationRatio` which caps the amount of delegated tokens that are\n * considered available.\n *\n * @param serviceProvider The address of the service provider.\n * @param verifier The address of the verifier.\n * @param delegationRatio The delegation ratio.\n * @return The amount of tokens available.\n */\n function getTokensAvailable(\n address serviceProvider,\n address verifier,\n uint32 delegationRatio\n ) external view returns (uint256);\n\n /**\n * @notice Gets the service provider's tokens available in a provision.\n * @dev Calculated as the tokens available minus the tokens thawing.\n * @param serviceProvider The address of the service provider.\n * @param verifier The address of the verifier.\n * @return The amount of tokens available.\n */\n function getProviderTokensAvailable(address serviceProvider, address verifier) external view returns (uint256);\n\n /**\n * @notice Gets the delegator's tokens available in a provision.\n * @dev Calculated as the tokens available minus the tokens thawing.\n * @param serviceProvider The address of the service provider.\n * @param verifier The address of the verifier.\n * @return The amount of tokens available.\n */\n function getDelegatedTokensAvailable(address serviceProvider, address verifier) external view returns (uint256);\n\n /**\n * @notice Gets a thaw request.\n * @param thawRequestId The id of the thaw request.\n * @return The thaw request details.\n */\n function getThawRequest(bytes32 thawRequestId) external view returns (IHorizonStakingTypes.ThawRequest memory);\n\n /**\n * @notice Gets the metadata of a thaw request list.\n * Service provider and delegators each have their own thaw request list per provision.\n * Metadata includes the head and tail of the list, plus the total number of thaw requests.\n * @param serviceProvider The address of the service provider.\n * @param verifier The address of the verifier.\n * @param owner The owner of the thaw requests. Use either the service provider or delegator address.\n * @return The thaw requests list metadata.\n */\n function getThawRequestList(\n address serviceProvider,\n address verifier,\n address owner\n ) external view returns (LinkedList.List memory);\n\n /**\n * @notice Gets the amount of thawed tokens for a given provision.\n * @param serviceProvider The address of the service provider.\n * @param verifier The address of the verifier.\n * @param owner The owner of the thaw requests. Use either the service provider or delegator address.\n * @return The amount of thawed tokens.\n */\n function getThawedTokens(address serviceProvider, address verifier, address owner) external view returns (uint256);\n\n /**\n * @notice Gets the maximum allowed thawing period for a provision.\n */\n function getMaxThawingPeriod() external view returns (uint64);\n\n /**\n * @notice Return true if the verifier is an allowed locked verifier.\n * @param verifier Address of the verifier\n * @return True if verifier is allowed locked verifier, false otherwise\n */\n function isAllowedLockedVerifier(address verifier) external view returns (bool);\n\n /**\n * @notice Return true if delegation slashing is enabled, false otherwise.\n */\n function isDelegationSlashingEnabled() external view returns (bool);\n}\n" - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\nimport { IRewardsIssuer } from \"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\";\n\n/**\n * @title Interface for {HorizonStakingExtension} contract.\n * @notice Provides functions for managing legacy allocations.\n */\ninterface IHorizonStakingExtension is IRewardsIssuer {\n /**\n * @dev Allocate GRT tokens for the purpose of serving queries of a subgraph deployment\n * An allocation is created in the allocate() function and closed in closeAllocation()\n */\n struct Allocation {\n address indexer;\n bytes32 subgraphDeploymentID;\n uint256 tokens; // Tokens allocated to a SubgraphDeployment\n uint256 createdAtEpoch; // Epoch when it was created\n uint256 closedAtEpoch; // Epoch when it was closed\n uint256 collectedFees; // Collected fees for the allocation\n uint256 __DEPRECATED_effectiveAllocation; // solhint-disable-line var-name-mixedcase\n uint256 accRewardsPerAllocatedToken; // Snapshot used for reward calc\n uint256 distributedRebates; // Collected rebates that have been rebated\n }\n\n /**\n * @dev Possible states an allocation can be.\n * States:\n * - Null = indexer == address(0)\n * - Active = not Null && tokens > 0\n * - Closed = Active && closedAtEpoch != 0\n */\n enum AllocationState {\n Null,\n Active,\n Closed\n }\n\n /**\n * @dev Emitted when `indexer` close an allocation in `epoch` for `allocationID`.\n * An amount of `tokens` get unallocated from `subgraphDeploymentID`.\n * This event also emits the POI (proof of indexing) submitted by the indexer.\n * `isPublic` is true if the sender was someone other than the indexer.\n */\n event AllocationClosed(\n address indexed indexer,\n bytes32 indexed subgraphDeploymentID,\n uint256 epoch,\n uint256 tokens,\n address indexed allocationID,\n address sender,\n bytes32 poi,\n bool isPublic\n );\n\n /**\n * @dev Emitted when `indexer` collects a rebate on `subgraphDeploymentID` for `allocationID`.\n * `epoch` is the protocol epoch the rebate was collected on\n * The rebate is for `tokens` amount which are being provided by `assetHolder`; `queryFees`\n * is the amount up for rebate after `curationFees` are distributed and `protocolTax` is burnt.\n * `queryRebates` is the amount distributed to the `indexer` with `delegationFees` collected\n * and sent to the delegation pool.\n */\n event RebateCollected(\n address assetHolder,\n address indexed indexer,\n bytes32 indexed subgraphDeploymentID,\n address indexed allocationID,\n uint256 epoch,\n uint256 tokens,\n uint256 protocolTax,\n uint256 curationFees,\n uint256 queryFees,\n uint256 queryRebates,\n uint256 delegationRewards\n );\n\n /**\n * @notice Close an allocation and free the staked tokens.\n * To be eligible for rewards a proof of indexing must be presented.\n * Presenting a bad proof is subject to slashable condition.\n * To opt out of rewards set _poi to 0x0\n * @param allocationID The allocation identifier\n * @param poi Proof of indexing submitted for the allocated period\n */\n function closeAllocation(address allocationID, bytes32 poi) external;\n\n /**\n * @notice Collect query fees from state channels and assign them to an allocation.\n * Funds received are only accepted from a valid sender.\n * @dev To avoid reverting on the withdrawal from channel flow this function will:\n * 1) Accept calls with zero tokens.\n * 2) Accept calls after an allocation passed the dispute period, in that case, all\n * the received tokens are burned.\n * @param tokens Amount of tokens to collect\n * @param allocationID Allocation where the tokens will be assigned\n */\n function collect(uint256 tokens, address allocationID) external;\n\n /**\n * @notice Return true if operator is allowed for indexer.\n * @param operator Address of the operator\n * @param indexer Address of the indexer\n * @return True if operator is allowed for indexer, false otherwise\n */\n function isOperator(address operator, address indexer) external view returns (bool);\n\n /**\n * @notice Getter that returns if an indexer has any stake.\n * @param indexer Address of the indexer\n * @return True if indexer has staked tokens\n */\n function hasStake(address indexer) external view returns (bool);\n\n /**\n * @notice Get the total amount of tokens staked by the indexer.\n * @param indexer Address of the indexer\n * @return Amount of tokens staked by the indexer\n */\n function getIndexerStakedTokens(address indexer) external view returns (uint256);\n\n /**\n * @notice Return the allocation by ID.\n * @param allocationID Address used as allocation identifier\n * @return Allocation data\n */\n function getAllocation(address allocationID) external view returns (Allocation memory);\n\n /**\n * @notice Return the current state of an allocation\n * @param allocationID Allocation identifier\n * @return AllocationState enum with the state of the allocation\n */\n function getAllocationState(address allocationID) external view returns (AllocationState);\n\n /**\n * @notice Return if allocationID is used.\n * @param allocationID Address used as signer by the indexer for an allocation\n * @return True if allocationID already used\n */\n function isAllocation(address allocationID) external view returns (bool);\n\n /**\n * @notice Return the time in blocks to unstake\n * @return Thawing period in blocks\n */\n // solhint-disable-next-line func-name-mixedcase\n function __DEPRECATED_getThawingPeriod() external view returns (uint64);\n}\n" - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\nimport { IGraphPayments } from \"../../interfaces/IGraphPayments.sol\";\n\n/**\n * @title Inferface for the {HorizonStaking} contract.\n * @notice Provides functions for managing stake, provisions, delegations, and slashing.\n * @dev Note that this interface only includes the functions implemented by {HorizonStaking} contract,\n * and not those implemented by {HorizonStakingExtension}.\n * Do not use this interface to interface with the {HorizonStaking} contract, use {IHorizonStaking} for\n * the complete interface.\n * @dev Most functions operate over {HorizonStaking} provisions. To uniquely identify a provision\n * functions take `serviceProvider` and `verifier` addresses.\n */\ninterface IHorizonStakingMain {\n // -- Events: stake --\n\n /**\n * @notice Emitted when a service provider unstakes tokens during the transition period.\n * @param serviceProvider The address of the service provider\n * @param tokens The amount of tokens unstaked\n * @param until The block number until the stake is locked\n */\n event StakeLocked(address indexed serviceProvider, uint256 tokens, uint256 until);\n\n /**\n * @notice Emitted when a service provider withdraws tokens during the transition period.\n * @param serviceProvider The address of the service provider\n * @param tokens The amount of tokens withdrawn\n */\n event StakeWithdrawn(address indexed serviceProvider, uint256 tokens);\n\n // -- Events: provision --\n\n /**\n * @notice Emitted when a service provider provisions staked tokens to a verifier.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param tokens The amount of tokens provisioned\n * @param maxVerifierCut The maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves when slashing\n * @param thawingPeriod The period in seconds that the tokens will be thawing before they can be removed from the provision\n */\n event ProvisionCreated(\n address indexed serviceProvider,\n address indexed verifier,\n uint256 tokens,\n uint32 maxVerifierCut,\n uint64 thawingPeriod\n );\n\n /**\n * @notice Emitted whenever staked tokens are added to an existing provision\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param tokens The amount of tokens added to the provision\n */\n event ProvisionIncreased(address indexed serviceProvider, address indexed verifier, uint256 tokens);\n\n /**\n * @notice Emitted when a service provider thaws tokens from a provision.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param tokens The amount of tokens thawed\n */\n event ProvisionThawed(address indexed serviceProvider, address indexed verifier, uint256 tokens);\n\n /**\n * @notice Emitted when a service provider removes tokens from a provision.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param tokens The amount of tokens removed\n */\n event TokensDeprovisioned(address indexed serviceProvider, address indexed verifier, uint256 tokens);\n\n /**\n * @notice Emitted when a service provider stages a provision parameter update.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param maxVerifierCut The proposed maximum cut, expressed in PPM of the slashed amount, that a verifier can take for\n * themselves when slashing\n * @param thawingPeriod The proposed period in seconds that the tokens will be thawing before they can be removed from\n * the provision\n */\n event ProvisionParametersStaged(\n address indexed serviceProvider,\n address indexed verifier,\n uint32 maxVerifierCut,\n uint64 thawingPeriod\n );\n\n /**\n * @notice Emitted when a service provider accepts a staged provision parameter update.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param maxVerifierCut The new maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves\n * when slashing\n * @param thawingPeriod The new period in seconds that the tokens will be thawing before they can be removed from the provision\n */\n event ProvisionParametersSet(\n address indexed serviceProvider,\n address indexed verifier,\n uint32 maxVerifierCut,\n uint64 thawingPeriod\n );\n\n /**\n * @dev Emitted when an operator is allowed or denied by a service provider for a particular verifier\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param operator The address of the operator\n * @param allowed Whether the operator is allowed or denied\n */\n event OperatorSet(\n address indexed serviceProvider,\n address indexed verifier,\n address indexed operator,\n bool allowed\n );\n\n // -- Events: slashing --\n\n /**\n * @notice Emitted when a provision is slashed by a verifier.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param tokens The amount of tokens slashed (note this only represents service provider's slashed stake)\n */\n event ProvisionSlashed(address indexed serviceProvider, address indexed verifier, uint256 tokens);\n\n /**\n * @notice Emitted when a delegation pool is slashed by a verifier.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param tokens The amount of tokens slashed (note this only represents delegation pool's slashed stake)\n */\n event DelegationSlashed(address indexed serviceProvider, address indexed verifier, uint256 tokens);\n\n /**\n * @notice Emitted when a delegation pool would have been slashed by a verifier, but the slashing was skipped\n * because delegation slashing global parameter is not enabled.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param tokens The amount of tokens that would have been slashed (note this only represents delegation pool's slashed stake)\n */\n event DelegationSlashingSkipped(address indexed serviceProvider, address indexed verifier, uint256 tokens);\n\n /**\n * @notice Emitted when the verifier cut is sent to the verifier after slashing a provision.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param destination The address where the verifier cut is sent\n * @param tokens The amount of tokens sent to the verifier\n */\n event VerifierTokensSent(\n address indexed serviceProvider,\n address indexed verifier,\n address indexed destination,\n uint256 tokens\n );\n\n // -- Events: delegation --\n\n /**\n * @notice Emitted when tokens are delegated to a provision.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param delegator The address of the delegator\n * @param tokens The amount of tokens delegated\n */\n event TokensDelegated(\n address indexed serviceProvider,\n address indexed verifier,\n address indexed delegator,\n uint256 tokens\n );\n\n /**\n * @notice Emitted when a delegator undelegates tokens from a provision and starts\n * thawing them.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param delegator The address of the delegator\n * @param tokens The amount of tokens undelegated\n */\n event TokensUndelegated(\n address indexed serviceProvider,\n address indexed verifier,\n address indexed delegator,\n uint256 tokens\n );\n\n /**\n * @notice Emitted when a delegator withdraws tokens from a provision after thawing.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param delegator The address of the delegator\n * @param tokens The amount of tokens withdrawn\n */\n event DelegatedTokensWithdrawn(\n address indexed serviceProvider,\n address indexed verifier,\n address indexed delegator,\n uint256 tokens\n );\n\n /**\n * @notice Emitted when tokens are added to a delegation pool's reserve.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param tokens The amount of tokens withdrawn\n */\n event TokensToDelegationPoolAdded(address indexed serviceProvider, address indexed verifier, uint256 tokens);\n\n /**\n * @notice Emitted when a service provider sets delegation fee cuts for a verifier.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param paymentType The payment type for which the fee cut is set, as defined in {IGraphPayments}\n * @param feeCut The fee cut set, in PPM\n */\n event DelegationFeeCutSet(\n address indexed serviceProvider,\n address indexed verifier,\n IGraphPayments.PaymentTypes indexed paymentType,\n uint256 feeCut\n );\n\n // -- Events: thawing --\n\n /**\n * @notice Emitted when a thaw request is created.\n * @dev Can be emitted by the service provider when thawing stake or by the delegator when undelegating.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param owner The address of the owner of the thaw request.\n * @param shares The amount of shares being thawed\n * @param thawingUntil The timestamp until the stake is thawed\n * @param thawRequestId The ID of the thaw request\n */\n event ThawRequestCreated(\n address indexed serviceProvider,\n address indexed verifier,\n address indexed owner,\n uint256 shares,\n uint64 thawingUntil,\n bytes32 thawRequestId\n );\n\n /**\n * @notice Emitted when a thaw request is fulfilled, meaning the stake is released.\n * @param thawRequestId The ID of the thaw request\n * @param tokens The amount of tokens being released\n * @param shares The amount of shares being released\n * @param thawingUntil The timestamp until the stake has thawed\n * @param valid Whether the thaw request was valid at the time of fulfillment\n */\n event ThawRequestFulfilled(\n bytes32 indexed thawRequestId,\n uint256 tokens,\n uint256 shares,\n uint64 thawingUntil,\n bool valid\n );\n\n /**\n * @notice Emitted when a series of thaw requests are fulfilled.\n * @param serviceProvider The address of the service provider\n * @param verifier The address of the verifier\n * @param owner The address of the owner of the thaw requests\n * @param thawRequestsFulfilled The number of thaw requests fulfilled\n * @param tokens The total amount of tokens being released\n */\n event ThawRequestsFulfilled(\n address indexed serviceProvider,\n address indexed verifier,\n address indexed owner,\n uint256 thawRequestsFulfilled,\n uint256 tokens\n );\n\n // -- Events: governance --\n\n /**\n * @notice Emitted when the global maximum thawing period allowed for provisions is set.\n * @param maxThawingPeriod The new maximum thawing period\n */\n event MaxThawingPeriodSet(uint64 maxThawingPeriod);\n\n /**\n * @notice Emitted when a verifier is allowed or disallowed to be used for locked provisions.\n * @param verifier The address of the verifier\n * @param allowed Whether the verifier is allowed or disallowed\n */\n event AllowedLockedVerifierSet(address indexed verifier, bool allowed);\n\n /**\n * @notice Emitted when the legacy global thawing period is set to zero.\n * @dev This marks the end of the transition period.\n */\n event ThawingPeriodCleared();\n\n /**\n * @notice Emitted when the delegation slashing global flag is set.\n * @param enabled Whether delegation slashing is enabled or disabled.\n */\n event DelegationSlashingEnabled(bool enabled);\n\n // -- Errors: tokens\n\n /**\n * @notice Thrown when operating a zero token amount is not allowed.\n */\n error HorizonStakingInvalidZeroTokens();\n\n /**\n * @notice Thrown when a minimum token amount is required to operate but it's not met.\n * @param tokens The actual token amount\n * @param minRequired The minimum required token amount\n */\n error HorizonStakingInsufficientTokens(uint256 tokens, uint256 minRequired);\n\n /**\n * @notice Thrown when the amount of tokens exceeds the maximum allowed to operate.\n * @param tokens The actual token amount\n * @param maxTokens The maximum allowed token amount\n */\n error HorizonStakingTooManyTokens(uint256 tokens, uint256 maxTokens);\n\n // -- Errors: provision --\n\n /**\n * @notice Thrown when attempting to operate with a provision that does not exist.\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n */\n error HorizonStakingInvalidProvision(address serviceProvider, address verifier);\n\n /**\n * @notice Thrown when the caller is not authorized to operate on a provision.\n * @param caller The caller address\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n */\n error HorizonStakingNotAuthorized(address serviceProvider, address verifier, address caller);\n\n /**\n * @notice Thrown when attempting to create a provision with an invalid maximum verifier cut.\n * @param maxVerifierCut The maximum verifier cut\n */\n error HorizonStakingInvalidMaxVerifierCut(uint32 maxVerifierCut);\n\n /**\n * @notice Thrown when attempting to create a provision with an invalid thawing period.\n * @param thawingPeriod The thawing period\n * @param maxThawingPeriod The maximum `thawingPeriod` allowed\n */\n error HorizonStakingInvalidThawingPeriod(uint64 thawingPeriod, uint64 maxThawingPeriod);\n\n /**\n * @notice Thrown when attempting to create a provision for a data service that already has a provision.\n */\n error HorizonStakingProvisionAlreadyExists();\n\n // -- Errors: stake --\n\n /**\n * @notice Thrown when the service provider has insufficient idle stake to operate.\n * @param tokens The actual token amount\n * @param minTokens The minimum required token amount\n */\n error HorizonStakingInsufficientIdleStake(uint256 tokens, uint256 minTokens);\n\n /**\n * @notice Thrown during the transition period when the service provider has insufficient stake to\n * cover their existing legacy allocations.\n * @param tokens The actual token amount\n * @param minTokens The minimum required token amount\n */\n error HorizonStakingInsufficientStakeForLegacyAllocations(uint256 tokens, uint256 minTokens);\n\n // -- Errors: delegation --\n\n /**\n * @notice Thrown when delegation shares obtained are below the expected amount.\n * @param shares The actual share amount\n * @param minShares The minimum required share amount\n */\n error HorizonStakingSlippageProtection(uint256 shares, uint256 minShares);\n\n /**\n * @notice Thrown when operating a zero share amount is not allowed.\n */\n error HorizonStakingInvalidZeroShares();\n\n /**\n * @notice Thrown when a minimum share amount is required to operate but it's not met.\n * @param shares The actual share amount\n * @param minShares The minimum required share amount\n */\n error HorizonStakingInsufficientShares(uint256 shares, uint256 minShares);\n\n /**\n * @notice Thrown when as a result of slashing delegation pool has no tokens but has shares.\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n */\n error HorizonStakingInvalidDelegationPoolState(address serviceProvider, address verifier);\n\n /**\n * @notice Thrown when attempting to operate with a delegation pool that does not exist.\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n */\n error HorizonStakingInvalidDelegationPool(address serviceProvider, address verifier);\n\n /**\n * @notice Thrown when attempting to undelegate with a beneficiary that is the zero address.\n */\n error HorizonStakingInvalidBeneficiaryZeroAddress();\n\n /**\n * @notice Thrown when attempting to redelegate with a serivce provider that is the zero address.\n */\n error HorizonStakingInvalidServiceProviderZeroAddress();\n\n /**\n * @notice Thrown when attempting to redelegate with a verifier that is the zero address.\n */\n error HorizonStakingInvalidVerifierZeroAddress();\n\n // -- Errors: thaw requests --\n\n error HorizonStakingNothingThawing();\n error HorizonStakingTooManyThawRequests();\n\n // -- Errors: misc --\n /**\n * @notice Thrown during the transition period when attempting to withdraw tokens that are still thawing.\n * @dev Note this thawing refers to the global thawing period applied to legacy allocated tokens,\n * it does not refer to thaw requests.\n * @param until The block number until the stake is locked\n */\n error HorizonStakingStillThawing(uint256 until);\n\n /**\n * @notice Thrown when a service provider attempts to operate on verifiers that are not allowed.\n * @dev Only applies to stake from locked wallets.\n */\n error HorizonStakingVerifierNotAllowed(address verifier);\n\n /**\n * @notice Thrown when a service provider attempts to change their own operator access.\n */\n error HorizonStakingCallerIsServiceProvider();\n\n /**\n * @notice Thrown when trying to set a delegation fee cut that is not valid.\n * @param feeCut The fee cut\n */\n error HorizonStakingInvalidDelegationFeeCut(uint256 feeCut);\n\n // -- Functions --\n\n /**\n * @notice Deposit tokens on the staking contract.\n * @dev Pulls tokens from the caller.\n *\n * Requirements:\n * - `_tokens` cannot be zero.\n * - Caller must have previously approved this contract to pull tokens from their balance.\n *\n * Emits a {StakeDeposited} event.\n *\n * @param tokens Amount of tokens to stake\n */\n function stake(uint256 tokens) external;\n\n /**\n * @notice Deposit tokens on the service provider stake, on behalf of the service provider.\n * @dev Pulls tokens from the caller.\n *\n * Requirements:\n * - `_tokens` cannot be zero.\n * - Caller must have previously approved this contract to pull tokens from their balance.\n *\n * Emits a {StakeDeposited} event.\n *\n * @param serviceProvider Address of the service provider\n * @param tokens Amount of tokens to stake\n */\n function stakeTo(address serviceProvider, uint256 tokens) external;\n\n // can be called by anyone if the service provider has provisioned stake to this verifier\n /**\n * @notice Deposit tokens on the service provider stake, on behalf of the service provider,\n * provisioned to a specific verifier.\n * @dev Requirements:\n * - The `serviceProvider` must have previously provisioned stake to `verifier`.\n * - `_tokens` cannot be zero.\n * - Caller must have previously approved this contract to pull tokens from their balance.\n *\n * Emits {StakeDeposited} and {ProvisionIncreased} events.\n *\n * @param serviceProvider Address of the service provider\n * @param verifier Address of the verifier\n * @param tokens Amount of tokens to stake\n */\n function stakeToProvision(address serviceProvider, address verifier, uint256 tokens) external;\n\n /**\n * @notice Move idle stake back to the owner's account.\n * Stake is removed from the protocol:\n * - During the transition period it's locked for a period of time before it can be withdrawn\n * by calling {withdraw}.\n * - After the transition period it's immediately withdrawn.\n * @dev Requirements:\n * - `_tokens` cannot be zero.\n * - `_serviceProvider` must have enough idle stake to cover the staking amount and any\n * legacy allocation.\n *\n * Emits a {StakeLocked} event during the transition period.\n * Emits a {StakeWithdrawn} event after the transition period.\n *\n * @param tokens Amount of tokens to unstake\n */\n function unstake(uint256 tokens) external;\n\n /**\n * @notice Withdraw service provider tokens once the thawing period (initiated by {unstake}) has passed.\n * All thawed tokens are withdrawn.\n * @dev This is only needed during the transition period while we still have\n * a global lock. After that, unstake() will automatically withdraw.\n */\n function withdraw() external;\n\n /**\n * @notice Provision stake to a verifier. The tokens will be locked with a thawing period\n * and will be slashable by the verifier. This is the main mechanism to provision stake to a data\n * service, where the data service is the verifier.\n * This function can be called by the service provider or by an operator authorized by the provider\n * for this specific verifier.\n * @dev Requirements:\n * - `tokens` cannot be zero.\n * - The `serviceProvider` must have enough idle stake to cover the tokens to provision.\n * - `maxVerifierCut` must be a valid PPM.\n * - `thawingPeriod` must be less than or equal to `_maxThawingPeriod`.\n *\n * Emits a {ProvisionCreated} event.\n *\n * @param serviceProvider The service provider address\n * @param verifier The verifier address for which the tokens are provisioned (who will be able to slash the tokens)\n * @param tokens The amount of tokens that will be locked and slashable\n * @param maxVerifierCut The maximum cut, expressed in PPM, that a verifier can transfer instead of burning when slashing\n * @param thawingPeriod The period in seconds that the tokens will be thawing before they can be removed from the provision\n */\n function provision(\n address serviceProvider,\n address verifier,\n uint256 tokens,\n uint32 maxVerifierCut,\n uint64 thawingPeriod\n ) external;\n\n /**\n * @notice Adds tokens from the service provider's idle stake to a provision\n * @dev\n *\n * Requirements:\n * - The `serviceProvider` must have previously provisioned stake to `verifier`.\n * - `tokens` cannot be zero.\n * - The `serviceProvider` must have enough idle stake to cover the tokens to add.\n *\n * Emits a {ProvisionIncreased} event.\n *\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n * @param tokens The amount of tokens to add to the provision\n */\n function addToProvision(address serviceProvider, address verifier, uint256 tokens) external;\n\n /**\n * @notice Start thawing tokens to remove them from a provision.\n * This function can be called by the service provider or by an operator authorized by the provider\n * for this specific verifier.\n *\n * Note that removing tokens from a provision is a two step process:\n * - First the tokens are thawed using this function.\n * - Then after the thawing period, the tokens are removed from the provision using {deprovision}\n * or {reprovision}.\n *\n * @dev Requirements:\n * - The provision must have enough tokens available to thaw.\n * - `tokens` cannot be zero.\n *\n * Emits {ProvisionThawed} and {ThawRequestCreated} events.\n *\n * @param serviceProvider The service provider address\n * @param verifier The verifier address for which the tokens are provisioned\n * @param tokens The amount of tokens to thaw\n * @return The ID of the thaw request\n */\n function thaw(address serviceProvider, address verifier, uint256 tokens) external returns (bytes32);\n\n /**\n * @notice Remove tokens from a provision and move them back to the service provider's idle stake.\n * @dev The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw\n * requests in the event that fulfilling all of them results in a gas limit error.\n *\n * Requirements:\n * - Must have previously initiated a thaw request using {thaw}.\n *\n * Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {TokensDeprovisioned} events.\n *\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n * @param nThawRequests The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\n */\n function deprovision(address serviceProvider, address verifier, uint256 nThawRequests) external;\n\n /**\n * @notice Move already thawed stake from one provision into another provision\n * This function can be called by the service provider or by an operator authorized by the provider\n * for the two corresponding verifiers.\n * @dev Requirements:\n * - Must have previously initiated a thaw request using {thaw}.\n * - `tokens` cannot be zero.\n * - The `serviceProvider` must have previously provisioned stake to `newVerifier`.\n * - The `serviceProvider` must have enough idle stake to cover the tokens to add.\n *\n * Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled}, {TokensDeprovisioned} and {ProvisionIncreased}\n * events.\n *\n * @param serviceProvider The service provider address\n * @param oldVerifier The verifier address for which the tokens are currently provisioned\n * @param newVerifier The verifier address for which the tokens will be provisioned\n * @param nThawRequests The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\n */\n function reprovision(\n address serviceProvider,\n address oldVerifier,\n address newVerifier,\n uint256 nThawRequests\n ) external;\n\n /**\n * @notice Stages a provision parameter update. Note that the change is not effective until the verifier calls\n * {acceptProvisionParameters}.\n * @dev This two step update process prevents the service provider from changing the parameters\n * without the verifier's consent.\n *\n * Emits a {ProvisionParametersStaged} event if at least one of the parameters changed.\n *\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n * @param maxVerifierCut The proposed maximum cut, expressed in PPM of the slashed amount, that a verifier can take for\n * themselves when slashing\n * @param thawingPeriod The proposed period in seconds that the tokens will be thawing before they can be removed from\n * the provision\n */\n function setProvisionParameters(\n address serviceProvider,\n address verifier,\n uint32 maxVerifierCut,\n uint64 thawingPeriod\n ) external;\n\n /**\n * @notice Accepts a staged provision parameter update.\n * @dev Only the provision's verifier can call this function.\n *\n * Emits a {ProvisionParametersSet} event.\n *\n * @param serviceProvider The service provider address\n */\n function acceptProvisionParameters(address serviceProvider) external;\n\n /**\n * @notice Delegate tokens to a provision.\n * @dev Requirements:\n * - `tokens` cannot be zero.\n * - Caller must have previously approved this contract to pull tokens from their balance.\n * - The provision must exist.\n *\n * Emits a {TokensDelegated} event.\n *\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n * @param tokens The amount of tokens to delegate\n * @param minSharesOut The minimum amount of shares to accept, slippage protection.\n */\n function delegate(address serviceProvider, address verifier, uint256 tokens, uint256 minSharesOut) external;\n\n /**\n * @notice Add tokens to a delegation pool without issuing shares.\n * Used by data services to pay delegation fees/rewards.\n * Delegators SHOULD NOT call this function.\n *\n * @dev Requirements:\n * - `tokens` cannot be zero.\n * - Caller must have previously approved this contract to pull tokens from their balance.\n *\n * Emits a {TokensToDelegationPoolAdded} event.\n *\n * @param serviceProvider The service provider address\n * @param verifier The verifier address for which the tokens are provisioned\n * @param tokens The amount of tokens to add to the delegation pool\n */\n function addToDelegationPool(address serviceProvider, address verifier, uint256 tokens) external;\n\n /**\n * @notice Undelegate tokens from a provision and start thawing them.\n * Note that undelegating tokens from a provision is a two step process:\n * - First the tokens are thawed using this function.\n * - Then after the thawing period, the tokens are removed from the provision using {withdrawDelegated}.\n *\n * Requirements:\n * - `shares` cannot be zero.\n *\n * Emits a {TokensUndelegated} and {ThawRequestCreated} event.\n *\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n * @param shares The amount of shares to undelegate\n * @return The ID of the thaw request\n */\n function undelegate(address serviceProvider, address verifier, uint256 shares) external returns (bytes32);\n\n /**\n * @notice Undelegate tokens from a provision and start thawing them.\n * The tokens will be withdrawable by the `beneficiary` after the thawing period.\n *\n * Note that undelegating tokens from a provision is a two step process:\n * - First the tokens are thawed using this function.\n * - Then after the thawing period, the tokens are removed from the provision using {withdrawDelegated}.\n *\n * Requirements:\n * - `shares` cannot be zero.\n * - `beneficiary` cannot be the zero address.\n *\n * Emits a {TokensUndelegated} and {ThawRequestCreated} event.\n *\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n * @param shares The amount of shares to undelegate\n * @param beneficiary The address where the tokens will be withdrawn after thawing\n * @return The ID of the thaw request\n */\n function undelegate(\n address serviceProvider,\n address verifier,\n uint256 shares,\n address beneficiary\n ) external returns (bytes32);\n\n /**\n * @notice Withdraw undelegated tokens from a provision after thawing.\n * @dev The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw\n * requests in the event that fulfilling all of them results in a gas limit error.\n * @dev If the delegation pool was completely slashed before withdrawing, calling this function will fulfill\n * the thaw requests with an amount equal to zero.\n *\n * Requirements:\n * - Must have previously initiated a thaw request using {undelegate}.\n *\n * Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {DelegatedTokensWithdrawn} events.\n *\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n * @param nThawRequests The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\n */\n function withdrawDelegated(address serviceProvider, address verifier, uint256 nThawRequests) external;\n\n /**\n * @notice Re-delegate undelegated tokens from a provision after thawing to a `newServiceProvider` and `newVerifier`.\n * @dev The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw\n * requests in the event that fulfilling all of them results in a gas limit error.\n *\n * Requirements:\n * - Must have previously initiated a thaw request using {undelegate}.\n * - `newServiceProvider` and `newVerifier` must not be the zero address.\n * - `newServiceProvider` must have previously provisioned stake to `newVerifier`.\n *\n * Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {DelegatedTokensWithdrawn} events.\n *\n * @param oldServiceProvider The old service provider address\n * @param oldVerifier The old verifier address\n * @param newServiceProvider The address of a new service provider\n * @param newVerifier The address of a new verifier\n * @param minSharesForNewProvider The minimum amount of shares to accept for the new service provider\n * @param nThawRequests The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\n */\n function redelegate(\n address oldServiceProvider,\n address oldVerifier,\n address newServiceProvider,\n address newVerifier,\n uint256 minSharesForNewProvider,\n uint256 nThawRequests\n ) external;\n\n /**\n * @notice Set the fee cut for a verifier on a specific payment type.\n * @dev Emits a {DelegationFeeCutSet} event.\n * @param serviceProvider The service provider address\n * @param verifier The verifier address\n * @param paymentType The payment type for which the fee cut is set, as defined in {IGraphPayments}\n * @param feeCut The fee cut to set, in PPM\n */\n function setDelegationFeeCut(\n address serviceProvider,\n address verifier,\n IGraphPayments.PaymentTypes paymentType,\n uint256 feeCut\n ) external;\n\n /**\n * @notice Delegate tokens to the subgraph data service provision.\n * This function is for backwards compatibility with the legacy staking contract.\n * It only allows delegating to the subgraph data service and DOES NOT have slippage protection.\n * @dev See {delegate}.\n * @param serviceProvider The service provider address\n * @param tokens The amount of tokens to delegate\n */\n function delegate(address serviceProvider, uint256 tokens) external;\n\n /**\n * @notice Undelegate tokens from the subgraph data service provision and start thawing them.\n * This function is for backwards compatibility with the legacy staking contract.\n * It only allows undelegating from the subgraph data service.\n * @dev See {undelegate}.\n * @param serviceProvider The service provider address\n * @param shares The amount of shares to undelegate\n */\n function undelegate(address serviceProvider, uint256 shares) external;\n\n /**\n * @notice Withdraw undelegated tokens from the subgraph data service provision after thawing.\n * This function is for backwards compatibility with the legacy staking contract.\n * It only allows withdrawing from the subgraph data service and DOES NOT have slippage protection in\n * case the caller opts for re-delegating.\n * @dev See {delegate}.\n * @param serviceProvider The service provider address\n * @param newServiceProvider The address of a new service provider, if the delegator wants to re-delegate\n */\n function withdrawDelegated(address serviceProvider, address newServiceProvider) external;\n\n /**\n * @notice Slash a service provider. This can only be called by a verifier to which\n * the provider has provisioned stake, and up to the amount of tokens they have provisioned.\n * If the service provider's stake is not enough, the associated delegation pool might be slashed\n * depending on the value of the global delegation slashing flag.\n *\n * Part of the slashed tokens are sent to the `verifierDestination` as a reward.\n *\n * @dev Requirements:\n * - `tokens` must be less than or equal to the amount of tokens provisioned by the service provider.\n * - `tokensVerifier` must be less than the provision's tokens times the provision's maximum verifier cut.\n *\n * Emits a {ProvisionSlashed} and {VerifierTokensSent} events.\n * Emits a {DelegationSlashed} or {DelegationSlashingSkipped} event depending on the global delegation slashing\n * flag.\n *\n * @param serviceProvider The service provider to slash\n * @param tokens The amount of tokens to slash\n * @param tokensVerifier The amount of tokens to transfer instead of burning\n * @param verifierDestination The address to transfer the verifier cut to\n */\n function slash(\n address serviceProvider,\n uint256 tokens,\n uint256 tokensVerifier,\n address verifierDestination\n ) external;\n\n /**\n * @notice Provision stake to a verifier using locked tokens (i.e. from GraphTokenLockWallets).\n * @dev See {provision}.\n *\n * Additional requirements:\n * - The `verifier` must be allowed to be used for locked provisions.\n *\n * @param serviceProvider The service provider address\n * @param verifier The verifier address for which the tokens are provisioned (who will be able to slash the tokens)\n * @param tokens The amount of tokens that will be locked and slashable\n * @param maxVerifierCut The maximum cut, expressed in PPM, that a verifier can transfer instead of burning when slashing\n * @param thawingPeriod The period in seconds that the tokens will be thawing before they can be removed from the provision\n */\n function provisionLocked(\n address serviceProvider,\n address verifier,\n uint256 tokens,\n uint32 maxVerifierCut,\n uint64 thawingPeriod\n ) external;\n\n /**\n * @notice Authorize or unauthorize an address to be an operator for the caller on a verifier.\n *\n * @dev See {setOperator}.\n * Additional requirements:\n * - The `verifier` must be allowed to be used for locked provisions.\n *\n * @param verifier The verifier / data service on which they'll be allowed to operate\n * @param operator Address to authorize or unauthorize\n * @param allowed Whether the operator is authorized or not\n */\n function setOperatorLocked(address verifier, address operator, bool allowed) external;\n\n /**\n * @notice Sets a verifier as a globally allowed verifier for locked provisions.\n * @dev This function can only be called by the contract governor, it's used to maintain\n * a whitelist of verifiers that do not allow the stake from a locked wallet to escape the lock.\n * @dev Emits a {AllowedLockedVerifierSet} event.\n * @param verifier The verifier address\n * @param allowed Whether the verifier is allowed or not\n */\n function setAllowedLockedVerifier(address verifier, bool allowed) external;\n\n /**\n * @notice Set the global delegation slashing flag to true.\n * @dev This function can only be called by the contract governor.\n */\n function setDelegationSlashingEnabled() external;\n\n /**\n * @notice Clear the legacy global thawing period.\n * This signifies the end of the transition period, after which no legacy allocations should be left.\n * @dev This function can only be called by the contract governor.\n * @dev Emits a {ThawingPeriodCleared} event.\n */\n function clearThawingPeriod() external;\n\n /**\n * @notice Sets the global maximum thawing period allowed for provisions.\n * @param maxThawingPeriod The new maximum thawing period, in seconds\n */\n function setMaxThawingPeriod(uint64 maxThawingPeriod) external;\n\n /**\n * @notice Authorize or unauthorize an address to be an operator for the caller on a data service.\n * @dev Emits a {OperatorSet} event.\n * @param verifier The verifier / data service on which they'll be allowed to operate\n * @param operator Address to authorize or unauthorize\n * @param allowed Whether the operator is authorized or not\n */\n function setOperator(address verifier, address operator, bool allowed) external;\n\n /**\n * @notice Check if an operator is authorized for the caller on a specific verifier / data service.\n * @param serviceProvider The service provider on behalf of whom they're claiming to act\n * @param verifier The verifier / data service on which they're claiming to act\n * @param operator The address to check for auth\n * @return Whether the operator is authorized or not\n */\n function isAuthorized(address serviceProvider, address verifier, address operator) external view returns (bool);\n}\n" - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\n/* solhint-disable var-name-mixedcase */ // TODO: create custom var-name-mixedcase\n\n/**\n * @title Defines the data types used in the Horizon staking contract\n * @dev In order to preserve storage compatibility some data structures keep deprecated fields.\n * These structures have then two representations, an internal one used by the contract storage and a public one.\n * Getter functions should retrieve internal representations, remove deprecated fields and return the public representation.\n */\ninterface IHorizonStakingTypes {\n /**\n * @notice Represents stake assigned to a specific verifier/data service.\n * Provisioned stake is locked and can be used as economic security by a data service.\n */\n struct Provision {\n // Service provider tokens in the provision (does not include delegated tokens)\n uint256 tokens;\n // Service provider tokens that are being thawed (and will stop being slashable soon)\n uint256 tokensThawing;\n // Shares representing the thawing tokens\n uint256 sharesThawing;\n // Max amount that can be taken by the verifier when slashing, expressed in parts-per-million of the amount slashed\n uint32 maxVerifierCut;\n // Time, in seconds, tokens must thaw before being withdrawn\n uint64 thawingPeriod;\n // Timestamp when the provision was created\n uint64 createdAt;\n // Pending value for `maxVerifierCut`. Verifier needs to accept it before it becomes active.\n uint32 maxVerifierCutPending;\n // Pending value for `thawingPeriod`. Verifier needs to accept it before it becomes active.\n uint64 thawingPeriodPending;\n // Value of the current thawing nonce. Thaw requests with older nonces are invalid.\n uint256 thawingNonce;\n }\n\n /**\n * @notice Public representation of a service provider.\n * @dev See {ServiceProviderInternal} for the actual storage representation\n */\n struct ServiceProvider {\n // Total amount of tokens on the provider stake (only staked by the provider, includes all provisions)\n uint256 tokensStaked;\n // Total amount of tokens locked in provisions (only staked by the provider)\n uint256 tokensProvisioned;\n }\n\n /**\n * @notice Internal representation of a service provider.\n * @dev It contains deprecated fields from the `Indexer` struct to maintain storage compatibility.\n */\n struct ServiceProviderInternal {\n // Total amount of tokens on the provider stake (only staked by the provider, includes all provisions)\n uint256 tokensStaked;\n // (Deprecated) Tokens used in allocations\n uint256 __DEPRECATED_tokensAllocated; // solhint-disable-line graph/leading-underscore\n // (Deprecated) Tokens locked for withdrawal subject to thawing period\n uint256 __DEPRECATED_tokensLocked;\n // (Deprecated) Block when locked tokens can be withdrawn\n uint256 __DEPRECATED_tokensLockedUntil;\n // Total amount of tokens locked in provisions (only staked by the provider)\n uint256 tokensProvisioned;\n }\n\n /**\n * @notice Public representation of a delegation pool.\n * @dev See {DelegationPoolInternal} for the actual storage representation\n */\n struct DelegationPool {\n // Total tokens as pool reserves\n uint256 tokens;\n // Total shares minted in the pool\n uint256 shares;\n // Tokens thawing in the pool\n uint256 tokensThawing;\n // Shares representing the thawing tokens\n uint256 sharesThawing;\n // Value of the current thawing nonce. Thaw requests with older nonces are invalid.\n uint256 thawingNonce;\n }\n\n /**\n * @notice Internal representation of a delegation pool.\n * @dev It contains deprecated fields from the previous version of the `DelegationPool` struct\n * to maintain storage compatibility.\n */\n struct DelegationPoolInternal {\n // (Deprecated) Time, in blocks, an indexer must wait before updating delegation parameters\n uint32 __DEPRECATED_cooldownBlocks;\n // (Deprecated) Percentage of indexing rewards for the service provider, in PPM\n uint32 __DEPRECATED_indexingRewardCut;\n // (Deprecated) Percentage of query fees for the service provider, in PPM\n uint32 __DEPRECATED_queryFeeCut;\n // (Deprecated) Block when the delegation parameters were last updated\n uint256 __DEPRECATED_updatedAtBlock;\n // Total tokens as pool reserves\n uint256 tokens;\n // Total shares minted in the pool\n uint256 shares;\n // Delegation details by delegator\n mapping(address delegator => DelegationInternal delegation) delegators;\n // Tokens thawing in the pool\n uint256 tokensThawing;\n // Shares representing the thawing tokens\n uint256 sharesThawing;\n // Value of the current thawing nonce. Thaw requests with older nonces are invalid.\n uint256 thawingNonce;\n }\n\n /**\n * @notice Public representation of delegation details.\n * @dev See {DelegationInternal} for the actual storage representation\n */\n struct Delegation {\n uint256 shares; // Shares owned by a delegator in the pool\n }\n\n /**\n * @notice Internal representation of delegation details.\n * @dev It contains deprecated fields from the previous version of the `Delegation` struct\n * to maintain storage compatibility.\n */\n struct DelegationInternal {\n // Shares owned by the delegator in the pool\n uint256 shares;\n // (Deprecated) Tokens locked for undelegation\n uint256 __DEPRECATED_tokensLocked;\n // (Deprecated) Epoch when locked tokens can be withdrawn\n uint256 __DEPRECATED_tokensLockedUntil;\n }\n\n /**\n * @notice Details of a stake thawing operation.\n * @dev ThawRequests are stored in linked lists by service provider/delegator,\n * ordered by creation timestamp.\n */\n struct ThawRequest {\n // Shares that represent the tokens being thawed\n uint256 shares;\n // The timestamp when the thawed funds can be removed from the provision\n uint64 thawingUntil;\n // Id of the next thaw request in the linked list\n bytes32 next;\n // Used to invalidate unfulfilled thaw requests\n uint256 thawingNonce;\n }\n}\n" - }, - "@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\nimport { IGraphPayments } from \"./IGraphPayments.sol\";\n\n/**\n * @title Interface for a payments collector contract as defined by Graph Horizon payments protocol\n * @notice Contracts implementing this interface can be used with the payments protocol. First, a payer must\n * approve the collector to collect payments on their behalf. Only then can payment collection be initiated\n * using the collector contract.\n *\n * @dev It's important to note that it's the collector contract's responsibility to validate the payment\n * request is legitimate.\n */\ninterface IPaymentsCollector {\n /**\n * @notice Emitted when a payment is collected\n * @param paymentType The payment type collected as defined by {IGraphPayments}\n * @param payer The address of the payer\n * @param receiver The address of the receiver\n * @param tokensReceiver The amount of tokens received by the receiver\n * @param dataService The address of the data service\n * @param tokensDataService The amount of tokens received by the data service\n */\n event PaymentCollected(\n IGraphPayments.PaymentTypes indexed paymentType,\n address indexed payer,\n address receiver,\n uint256 tokensReceiver,\n address indexed dataService,\n uint256 tokensDataService\n );\n\n /**\n * @notice Initiate a payment collection through the payments protocol\n * @dev This function should require the caller to present some form of evidence of the payer's debt to\n * the receiver. The collector should validate this evidence and, if valid, collect the payment.\n * Requirements:\n * - The caller must be the data service the RAV was issued to\n * - The signer of the RAV must be authorized to sign for the payer\n *\n * Emits a {PaymentCollected} event\n *\n * @param paymentType The payment type to collect, as defined by {IGraphPayments}\n * @param data Additional data required for the payment collection. Will vary depending on the collector\n * implementation.\n */\n function collect(IGraphPayments.PaymentTypes paymentType, bytes memory data) external returns (uint256);\n}\n" - }, - "@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IGraphPayments } from \"./IGraphPayments.sol\";\n\n/**\n * @title Interface for the {PaymentsEscrow} contract\n * @notice This contract is part of the Graph Horizon payments protocol. It holds the funds (GRT)\n * for payments made through the payments protocol for services provided\n * via a Graph Horizon data service.\n *\n * Payers deposit funds on the escrow, signalling their ability to pay for a service, and only\n * being able to retrieve them after a thawing period. Receivers collect funds from the escrow,\n * provided the payer has authorized them. The payer authorization is delegated to a payment\n * collector contract which implements the {IPaymentsCollector} interface.\n */\ninterface IPaymentsEscrow {\n /// @notice Escrow account for a payer-collector-receiver tuple\n struct EscrowAccount {\n // Total token balance for the payer-collector-receiver tuple\n uint256 balance;\n // Amount of tokens currently being thawed\n uint256 tokensThawing;\n // Timestamp at which thawing period ends (zero if not thawing)\n uint256 thawEndTimestamp;\n }\n\n /// @notice Details for a payer-collector pair\n /// @dev Collectors can be removed only after a thawing period\n struct Collector {\n // Amount of tokens the collector is allowed to collect\n uint256 allowance;\n // Timestamp at which the collector thawing period ends (zero if not thawing)\n uint256 thawEndTimestamp;\n }\n\n /**\n * @notice Emitted when a payer authorizes a collector to collect funds\n * @param payer The address of the payer\n * @param collector The address of the collector\n * @param addedAllowance The amount of tokens added to the collector's allowance\n * @param newTotalAllowance The new total allowance after addition\n */\n event AuthorizedCollector(\n address indexed payer,\n address indexed collector,\n uint256 addedAllowance,\n uint256 newTotalAllowance\n );\n\n /**\n * @notice Emitted when a payer thaws a collector\n * @param payer The address of the payer\n * @param collector The address of the collector\n */\n event ThawCollector(address indexed payer, address indexed collector);\n\n /**\n * @notice Emitted when a payer cancels the thawing of a collector\n * @param payer The address of the payer\n * @param collector The address of the collector\n */\n event CancelThawCollector(address indexed payer, address indexed collector);\n\n /**\n * @notice Emitted when a payer revokes a collector authorization.\n * @param payer The address of the payer\n * @param collector The address of the collector\n */\n event RevokeCollector(address indexed payer, address indexed collector);\n\n /**\n * @notice Emitted when a payer deposits funds into the escrow for a payer-collector-receiver tuple\n * @param payer The address of the payer\n * @param collector The address of the collector\n * @param receiver The address of the receiver\n * @param tokens The amount of tokens deposited\n */\n event Deposit(address indexed payer, address indexed collector, address indexed receiver, uint256 tokens);\n\n /**\n * @notice Emitted when a payer cancels an escrow thawing\n * @param payer The address of the payer\n * @param receiver The address of the receiver\n */\n event CancelThaw(address indexed payer, address indexed receiver);\n\n /**\n * @notice Emitted when a payer thaws funds from the escrow for a payer-collector-receiver tuple\n * @param payer The address of the payer\n * @param collector The address of the collector\n * @param receiver The address of the receiver\n * @param tokens The amount of tokens being thawed\n * @param thawEndTimestamp The timestamp at which the thawing period ends\n */\n event Thaw(\n address indexed payer,\n address indexed collector,\n address indexed receiver,\n uint256 tokens,\n uint256 thawEndTimestamp\n );\n\n /**\n * @notice Emitted when a payer withdraws funds from the escrow for a payer-collector-receiver tuple\n * @param payer The address of the payer\n * @param collector The address of the collector\n * @param receiver The address of the receiver\n * @param tokens The amount of tokens withdrawn\n */\n event Withdraw(address indexed payer, address indexed collector, address indexed receiver, uint256 tokens);\n\n /**\n * @notice Emitted when a collector collects funds from the escrow for a payer-collector-receiver tuple\n * @param payer The address of the payer\n * @param collector The address of the collector\n * @param receiver The address of the receiver\n * @param tokens The amount of tokens collected\n */\n event EscrowCollected(address indexed payer, address indexed collector, address indexed receiver, uint256 tokens);\n\n // -- Errors --\n\n /**\n * @notice Thrown when a protected function is called and the contract is paused.\n */\n error PaymentsEscrowIsPaused();\n\n /**\n * @notice Thrown when the available balance is insufficient to perform an operation\n * @param balance The current balance\n * @param minBalance The minimum required balance\n */\n error PaymentsEscrowInsufficientBalance(uint256 balance, uint256 minBalance);\n\n /**\n * @notice Thrown when a thawing is expected to be in progress but it is not\n */\n error PaymentsEscrowNotThawing();\n\n /**\n * @notice Thrown when a thawing is still in progress\n * @param currentTimestamp The current timestamp\n * @param thawEndTimestamp The timestamp at which the thawing period ends\n */\n error PaymentsEscrowStillThawing(uint256 currentTimestamp, uint256 thawEndTimestamp);\n\n /**\n * @notice Thrown when setting the thawing period to a value greater than the maximum\n * @param thawingPeriod The thawing period\n * @param maxWaitPeriod The maximum wait period\n */\n error PaymentsEscrowThawingPeriodTooLong(uint256 thawingPeriod, uint256 maxWaitPeriod);\n\n /**\n * @notice Thrown when a collector has insufficient allowance to collect funds\n * @param allowance The current allowance\n * @param minAllowance The minimum required allowance\n */\n error PaymentsEscrowInsufficientAllowance(uint256 allowance, uint256 minAllowance);\n\n /**\n * @notice Thrown when the contract balance is not consistent with the collection amount\n * @param balanceBefore The balance before the collection\n * @param balanceAfter The balance after the collection\n * @param tokens The amount of tokens collected\n */\n error PaymentsEscrowInconsistentCollection(uint256 balanceBefore, uint256 balanceAfter, uint256 tokens);\n\n /**\n * @notice Thrown when operating a zero token amount is not allowed.\n */\n error PaymentsEscrowInvalidZeroTokens();\n\n /**\n * @notice Authorize a collector to collect funds from the payer's escrow\n * @dev This function can only be used to increase the allowance of a collector.\n * To reduce it the authorization must be revoked and a new one must be created.\n *\n * Requirements:\n * - `allowance` must be greater than zero\n *\n * Emits an {AuthorizedCollector} event\n *\n * @param collector The address of the collector\n * @param allowance The amount of tokens to add to the collector's allowance\n */\n function approveCollector(address collector, uint256 allowance) external;\n\n /**\n * @notice Thaw a collector's collector authorization\n * @dev The thawing period is defined by the `REVOKE_COLLECTOR_THAWING_PERIOD` constant\n *\n * Emits a {ThawCollector} event\n *\n * @param collector The address of the collector\n */\n function thawCollector(address collector) external;\n\n /**\n * @notice Cancel a collector's authorization thawing\n * @dev Requirements:\n * - `collector` must be thawing\n *\n * Emits a {CancelThawCollector} event\n *\n * @param collector The address of the collector\n */\n function cancelThawCollector(address collector) external;\n\n /**\n * @notice Revoke a collector's authorization.\n * Removes the collector from the list of authorized collectors.\n * @dev Requirements:\n * - `collector` must have thawed\n *\n * Emits a {RevokeCollector} event\n *\n * @param collector The address of the collector\n */\n function revokeCollector(address collector) external;\n\n /**\n * @notice Deposits funds into the escrow for a payer-collector-receiver tuple, where\n * the payer is the transaction caller.\n * @dev Emits a {Deposit} event\n * @param collector The address of the collector\n * @param receiver The address of the receiver\n * @param tokens The amount of tokens to deposit\n */\n function deposit(address collector, address receiver, uint256 tokens) external;\n\n /**\n * @notice Deposits funds into the escrow for a payer-collector-receiver tuple, where\n * the payer can be specified.\n * @dev Emits a {Deposit} event\n * @param payer The address of the payer\n * @param collector The address of the collector\n * @param receiver The address of the receiver\n * @param tokens The amount of tokens to deposit\n */\n function depositTo(address payer, address collector, address receiver, uint256 tokens) external;\n\n /**\n * @notice Thaw a specific amount of escrow from a payer-collector-receiver's escrow account.\n * The payer is the transaction caller.\n * If `tokens` is zero and funds were already thawing it will cancel the thawing.\n * Note that repeated calls to this function will overwrite the previous thawing amount\n * and reset the thawing period.\n * @dev Requirements:\n * - `tokens` must be less than or equal to the available balance\n *\n * Emits a {Thaw} event. If `tokens` is zero it will emit a {CancelThaw} event.\n *\n * @param collector The address of the collector\n * @param receiver The address of the receiver\n * @param tokens The amount of tokens to thaw\n */\n function thaw(address collector, address receiver, uint256 tokens) external;\n\n /**\n * @notice Withdraws all thawed escrow from a payer-collector-receiver's escrow account.\n * The payer is the transaction caller.\n * Note that the withdrawn funds might be less than the thawed amount if there were\n * payment collections in the meantime.\n * @dev Requirements:\n * - Funds must be thawed\n *\n * Emits a {Withdraw} event\n *\n * @param collector The address of the collector\n * @param receiver The address of the receiver\n */\n function withdraw(address collector, address receiver) external;\n\n /**\n * @notice Collects funds from the payer-collector-receiver's escrow and sends them to {GraphPayments} for\n * distribution using the Graph Horizon Payments protocol.\n * The function will revert if there are not enough funds in the escrow.\n * @dev Requirements:\n * - `collector` needs to be authorized by the payer and have enough allowance\n *\n * Emits an {EscrowCollected} event\n *\n * @param paymentType The type of payment being collected as defined in the {IGraphPayments} interface\n * @param payer The address of the payer\n * @param receiver The address of the receiver\n * @param tokens The amount of tokens to collect\n * @param dataService The address of the data service\n * @param tokensDataService The amount of tokens that {GraphPayments} should send to the data service\n */\n function collect(\n IGraphPayments.PaymentTypes paymentType,\n address payer,\n address receiver,\n uint256 tokens,\n address dataService,\n uint256 tokensDataService\n ) external;\n\n /**\n * @notice Get the balance of a payer-collector-receiver tuple\n * @param payer The address of the payer\n * @param collector The address of the collector\n * @param receiver The address of the receiver\n */\n function getBalance(address payer, address collector, address receiver) external view returns (uint256);\n}\n" - }, - "@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IPaymentsCollector } from \"./IPaymentsCollector.sol\";\n\n/**\n * @title Interface for the {TAPCollector} contract\n * @dev Implements the {IPaymentCollector} interface as defined by the Graph\n * Horizon payments protocol.\n * @notice Implements a payments collector contract that can be used to collect\n * payments using a TAP RAV (Receipt Aggregate Voucher).\n */\ninterface ITAPCollector is IPaymentsCollector {\n /// @notice Details for a payer-signer pair\n /// @dev Signers can be removed only after a thawing period\n struct PayerAuthorization {\n // Payer the signer is authorized to sign for\n address payer;\n // Timestamp at which thawing period ends (zero if not thawing)\n uint256 thawEndTimestamp;\n }\n\n /// @notice The Receipt Aggregate Voucher (RAV) struct\n struct ReceiptAggregateVoucher {\n // The address of the data service the RAV was issued to\n address dataService;\n // The address of the service provider the RAV was issued to\n address serviceProvider;\n // The RAV timestamp, indicating the latest TAP Receipt in the RAV\n uint64 timestampNs;\n // Total amount owed to the service provider since the beginning of the\n // payer-service provider relationship, including all debt that is already paid for.\n uint128 valueAggregate;\n // Arbitrary metadata to extend functionality if a data service requires it\n bytes metadata;\n }\n\n /// @notice A struct representing a signed RAV\n struct SignedRAV {\n // The RAV\n ReceiptAggregateVoucher rav;\n // Signature - 65 bytes: r (32 Bytes) || s (32 Bytes) || v (1 Byte)\n bytes signature;\n }\n\n /**\n * @notice Emitted when a signer is authorized to sign RAVs for a payer\n * @param payer The address of the payer authorizing the signer\n * @param authorizedSigner The address of the authorized signer\n */\n event SignerAuthorized(address indexed payer, address indexed authorizedSigner);\n\n /**\n * @notice Emitted when a signer is thawed to be removed from the authorized signers list\n * @param payer The address of the payer thawing the signer\n * @param authorizedSigner The address of the signer to thaw\n * @param thawEndTimestamp The timestamp at which the thawing period ends\n */\n event SignerThawing(address indexed payer, address indexed authorizedSigner, uint256 thawEndTimestamp);\n\n /**\n * @dev Emitted when the thawing of a signer is cancelled\n * @param payer The address of the payer cancelling the thawing\n * @param authorizedSigner The address of the authorized signer\n * @param thawEndTimestamp The timestamp at which the thawing period ends\n */\n event SignerThawCanceled(address indexed payer, address indexed authorizedSigner, uint256 thawEndTimestamp);\n\n /**\n * @dev Emitted when a authorized signer has been revoked\n * @param payer The address of the payer revoking the signer\n * @param authorizedSigner The address of the authorized signer\n */\n event SignerRevoked(address indexed payer, address indexed authorizedSigner);\n\n /**\n * @notice Emitted when a RAV is collected\n * @param payer The address of the payer\n * @param dataService The address of the data service\n * @param serviceProvider The address of the service provider\n * @param timestampNs The timestamp of the RAV\n * @param valueAggregate The total amount owed to the service provider\n * @param metadata Arbitrary metadata\n * @param signature The signature of the RAV\n */\n event RAVCollected(\n address indexed payer,\n address indexed dataService,\n address indexed serviceProvider,\n uint64 timestampNs,\n uint128 valueAggregate,\n bytes metadata,\n bytes signature\n );\n\n /**\n * Thrown when the signer is already authorized\n * @param authorizingPayer The address of the payer authorizing the signer\n * @param signer The address of the signer\n */\n error TAPCollectorSignerAlreadyAuthorized(address authorizingPayer, address signer);\n\n /**\n * Thrown when the signer proof deadline is invalid\n * @param proofDeadline The deadline for the proof provided by the signer\n * @param currentTimestamp The current timestamp\n */\n error TAPCollectorInvalidSignerProofDeadline(uint256 proofDeadline, uint256 currentTimestamp);\n\n /**\n * Thrown when the signer proof is invalid\n */\n error TAPCollectorInvalidSignerProof();\n\n /**\n * Thrown when the signer is not authorized by the payer\n * @param payer The address of the payer\n * @param signer The address of the signer\n */\n error TAPCollectorSignerNotAuthorizedByPayer(address payer, address signer);\n\n /**\n * Thrown when the signer is not thawing\n * @param signer The address of the signer\n */\n error TAPCollectorSignerNotThawing(address signer);\n\n /**\n * Thrown when the signer is still thawing\n * @param currentTimestamp The current timestamp\n * @param thawEndTimestamp The timestamp at which the thawing period ends\n */\n error TAPCollectorSignerStillThawing(uint256 currentTimestamp, uint256 thawEndTimestamp);\n\n /**\n * Thrown when the RAV signer is invalid\n */\n error TAPCollectorInvalidRAVSigner();\n\n /**\n * Thrown when the caller is not the data service the RAV was issued to\n * @param caller The address of the caller\n * @param dataService The address of the data service\n */\n error TAPCollectorCallerNotDataService(address caller, address dataService);\n\n /**\n * @notice Thrown when the tokens collected are inconsistent with the collection history\n * Each RAV should have a value greater than the previous one\n * @param tokens The amount of tokens in the RAV\n * @param tokensCollected The amount of tokens already collected\n */\n error TAPCollectorInconsistentRAVTokens(uint256 tokens, uint256 tokensCollected);\n\n /**\n * @notice Authorize a signer to sign on behalf of the payer\n * @dev Requirements:\n * - `signer` must not be already authorized\n * - `proofDeadline` must be greater than the current timestamp\n * - `proof` must be a valid signature from the signer being authorized\n *\n * Emits an {SignerAuthorized} event\n * @param signer The addres of the authorized signer\n * @param proofDeadline The deadline for the proof provided by the signer\n * @param proof The proof provided by the signer to be authorized by the payer, consists of (chainID, proof deadline, sender address)\n */\n function authorizeSigner(address signer, uint256 proofDeadline, bytes calldata proof) external;\n\n /**\n * @notice Starts thawing a signer to be removed from the authorized signers list\n * @dev Thawing a signer alerts receivers that signatures from that signer will soon be deemed invalid.\n * Receivers without existing signed receipts or RAVs from this signer should treat them as unauthorized.\n * Those with existing signed documents from this signer should work towards settling their engagements.\n * Once a signer is thawed, they should be viewed as revoked regardless of their revocation status.\n * Requirements:\n * - `signer` must be authorized by the payer calling this function\n *\n * Emits a {SignerThawing} event\n * @param signer The address of the signer to thaw\n */\n function thawSigner(address signer) external;\n\n /**\n * @notice Stops thawing a signer.\n * @dev Requirements:\n * - `signer` must be thawing and authorized by the payer calling this function\n *\n * Emits a {SignerThawCanceled} event\n * @param signer The address of the signer to cancel thawing\n */\n function cancelThawSigner(address signer) external;\n\n /**\n * @notice Revokes a signer from the authorized signers list if thawed.\n * @dev Requirements:\n * - `signer` must be thawed and authorized by the payer calling this function\n *\n * Emits a {SignerRevoked} event\n * @param signer The address of the signer\n */\n function revokeAuthorizedSigner(address signer) external;\n\n /**\n * @dev Recovers the signer address of a signed ReceiptAggregateVoucher (RAV).\n * @param signedRAV The SignedRAV containing the RAV and its signature.\n * @return The address of the signer.\n */\n function recoverRAVSigner(SignedRAV calldata signedRAV) external view returns (address);\n\n /**\n * @dev Computes the hash of a ReceiptAggregateVoucher (RAV).\n * @param rav The RAV for which to compute the hash.\n * @return The hash of the RAV.\n */\n function encodeRAV(ReceiptAggregateVoucher calldata rav) external view returns (bytes32);\n}\n" - }, - "@graphprotocol/horizon/contracts/libraries/LinkedList.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\n/**\n * @title LinkedList library\n * @notice A library to manage singly linked lists.\n *\n * The library makes no assumptions about the contents of the items, the only\n * requirements on the items are:\n * - they must be represented by a unique bytes32 id\n * - the id of the item must not be bytes32(0)\n * - each item must have a reference to the next item in the list\n * - the list cannot have more than `MAX_ITEMS` items\n *\n * A contract using this library must store:\n * - a LinkedList.List to keep track of the list metadata\n * - a mapping from bytes32 to the item data\n */\nlibrary LinkedList {\n using LinkedList for List;\n\n /// @notice Represents a linked list\n struct List {\n // The head of the list\n bytes32 head;\n // The tail of the list\n bytes32 tail;\n // A nonce, which can optionally be used to generate unique ids\n uint256 nonce;\n // The number of items in the list\n uint256 count;\n }\n\n /// @notice Empty bytes constant\n bytes internal constant NULL_BYTES = bytes(\"\");\n\n /// @notice Maximum amount of items allowed in the list\n uint256 internal constant MAX_ITEMS = 10_000;\n\n /**\n * @notice Thrown when trying to remove an item from an empty list\n */\n error LinkedListEmptyList();\n\n /**\n * @notice Thrown when trying to add an item to a list that has reached the maximum number of elements\n */\n error LinkedListMaxElementsExceeded();\n\n /**\n * @notice Thrown when trying to traverse a list with more iterations than elements\n */\n error LinkedListInvalidIterations();\n\n /**\n * @notice Thrown when trying to add an item with id equal to bytes32(0)\n */\n error LinkedListInvalidZeroId();\n\n /**\n * @notice Adds an item to the list.\n * The item is added to the end of the list.\n * @dev Note that this function will not take care of linking the\n * old tail to the new item. The caller should take care of this.\n * It will also not ensure id uniqueness.\n * @dev There is a maximum number of elements that can be added to the list.\n * @param self The list metadata\n * @param id The id of the item to add\n */\n function addTail(List storage self, bytes32 id) internal {\n require(self.count < MAX_ITEMS, LinkedListMaxElementsExceeded());\n require(id != bytes32(0), LinkedListInvalidZeroId());\n self.tail = id;\n self.nonce += 1;\n if (self.count == 0) self.head = id;\n self.count += 1;\n }\n\n /**\n * @notice Removes an item from the list.\n * The item is removed from the beginning of the list.\n * @param self The list metadata\n * @param getNextItem A function to get the next item in the list. It should take\n * the id of the current item and return the id of the next item.\n * @param deleteItem A function to delete an item. This should delete the item from\n * the contract storage. It takes the id of the item to delete.\n */\n function removeHead(\n List storage self,\n function(bytes32) view returns (bytes32) getNextItem,\n function(bytes32) deleteItem\n ) internal returns (bytes32) {\n require(self.count > 0, LinkedListEmptyList());\n bytes32 nextItem = getNextItem(self.head);\n deleteItem(self.head);\n self.count -= 1;\n self.head = nextItem;\n if (self.count == 0) self.tail = bytes32(0);\n return self.head;\n }\n\n /**\n * @notice Traverses the list and processes each item.\n * It deletes the processed items from both the list and the storage mapping.\n * @param self The list metadata\n * @param getNextItem A function to get the next item in the list. It should take\n * the id of the current item and return the id of the next item.\n * @param processItem A function to process an item. The function should take the id of the item\n * and an accumulator, and return:\n * - a boolean indicating whether the traversal should stop\n * - an accumulator to pass data between iterations\n * @param deleteItem A function to delete an item. This should delete the item from\n * the contract storage. It takes the id of the item to delete.\n * @param processInitAcc The initial accumulator data\n * @param iterations The maximum number of iterations to perform. If 0, the traversal will continue\n * until the end of the list.\n */\n function traverse(\n List storage self,\n function(bytes32) view returns (bytes32) getNextItem,\n function(bytes32, bytes memory) returns (bool, bytes memory) processItem,\n function(bytes32) deleteItem,\n bytes memory processInitAcc,\n uint256 iterations\n ) internal returns (uint256, bytes memory) {\n require(iterations <= self.count, LinkedListInvalidIterations());\n\n uint256 itemCount = 0;\n iterations = (iterations == 0) ? self.count : iterations;\n\n bytes32 cursor = self.head;\n\n while (cursor != bytes32(0) && iterations > 0) {\n (bool shouldBreak, bytes memory acc_) = processItem(cursor, processInitAcc);\n\n if (shouldBreak) break;\n\n processInitAcc = acc_;\n cursor = self.removeHead(getNextItem, deleteItem);\n\n iterations--;\n itemCount++;\n }\n\n return (itemCount, processInitAcc);\n }\n}\n" - }, - "@graphprotocol/horizon/contracts/libraries/MathUtils.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\n/**\n * @title MathUtils Library\n * @notice A collection of functions to perform math operations\n */\nlibrary MathUtils {\n /**\n * @dev Calculates the weighted average of two values pondering each of these\n * values based on configured weights. The contribution of each value N is\n * weightN/(weightA + weightB). The calculation rounds up to ensure the result\n * is always greater than the smallest of the two values.\n * @param valueA The amount for value A\n * @param weightA The weight to use for value A\n * @param valueB The amount for value B\n * @param weightB The weight to use for value B\n */\n function weightedAverageRoundingUp(\n uint256 valueA,\n uint256 weightA,\n uint256 valueB,\n uint256 weightB\n ) internal pure returns (uint256) {\n return ((valueA * weightA) + (valueB * weightB) + (weightA + weightB - 1)) / (weightA + weightB);\n }\n\n /**\n * @dev Returns the minimum of two numbers.\n */\n function min(uint256 x, uint256 y) internal pure returns (uint256) {\n return x <= y ? x : y;\n }\n\n /**\n * @dev Returns the difference between two numbers or zero if negative.\n */\n function diffOrZero(uint256 x, uint256 y) internal pure returns (uint256) {\n return (x > y) ? x - y : 0;\n }\n}\n" - }, - "@graphprotocol/horizon/contracts/libraries/PPMMath.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\n/**\n * @title PPMMath library\n * @notice A library for handling calculations with parts per million (PPM) amounts.\n */\nlibrary PPMMath {\n /// @notice Maximum value (100%) in parts per million (PPM).\n uint256 internal constant MAX_PPM = 1_000_000;\n\n /**\n * @notice Thrown when a value is expected to be in PPM but is not.\n * @param value The value that is not in PPM.\n */\n error PPMMathInvalidPPM(uint256 value);\n\n /**\n * @notice Thrown when no value in a multiplication is in PPM.\n * @param a The first value in the multiplication.\n * @param b The second value in the multiplication.\n */\n error PPMMathInvalidMulPPM(uint256 a, uint256 b);\n\n /**\n * @notice Multiplies two values, one of which must be in PPM.\n * @param a The first value.\n * @param b The second value.\n * @return The result of the multiplication.\n */\n function mulPPM(uint256 a, uint256 b) internal pure returns (uint256) {\n require(isValidPPM(a) || isValidPPM(b), PPMMathInvalidMulPPM(a, b));\n return (a * b) / MAX_PPM;\n }\n\n /**\n * @notice Multiplies two values, the second one must be in PPM, and rounds up the result.\n * @dev requirements:\n * - The second value must be in PPM.\n * @param a The first value.\n * @param b The second value.\n */\n function mulPPMRoundUp(uint256 a, uint256 b) internal pure returns (uint256) {\n require(isValidPPM(b), PPMMathInvalidPPM(b));\n return a - mulPPM(a, MAX_PPM - b);\n }\n\n /**\n * @notice Checks if a value is in PPM.\n * @dev A valid PPM value is between 0 and MAX_PPM.\n * @param value The value to check.\n */\n function isValidPPM(uint256 value) internal pure returns (bool) {\n return value <= MAX_PPM;\n }\n}\n" - }, - "@graphprotocol/horizon/contracts/libraries/UintRange.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\n/**\n * @title UintRange library\n * @notice A library for handling range checks on uint256 values.\n */\nlibrary UintRange {\n using UintRange for uint256;\n\n /**\n * @notice Checks if a value is in the range [`min`, `max`].\n * @param value The value to check.\n * @param min The minimum value of the range.\n * @param max The maximum value of the range.\n */\n function isInRange(uint256 value, uint256 min, uint256 max) internal pure returns (bool) {\n return value >= min && value <= max;\n }\n}\n" - }, - "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\nimport { IGraphToken } from \"@graphprotocol/contracts/contracts/token/IGraphToken.sol\";\nimport { IHorizonStaking } from \"../interfaces/IHorizonStaking.sol\";\nimport { IGraphPayments } from \"../interfaces/IGraphPayments.sol\";\nimport { IPaymentsEscrow } from \"../interfaces/IPaymentsEscrow.sol\";\n\nimport { IController } from \"@graphprotocol/contracts/contracts/governance/IController.sol\";\nimport { IEpochManager } from \"@graphprotocol/contracts/contracts/epochs/IEpochManager.sol\";\nimport { IRewardsManager } from \"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\";\nimport { ITokenGateway } from \"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\";\nimport { IGraphProxyAdmin } from \"../interfaces/IGraphProxyAdmin.sol\";\n\nimport { ICuration } from \"@graphprotocol/contracts/contracts/curation/ICuration.sol\";\n\n/**\n * @title GraphDirectory contract\n * @notice This contract is meant to be inherited by other contracts that\n * need to keep track of the addresses in Graph Horizon contracts.\n * It fetches the addresses from the Controller supplied during construction,\n * and uses immutable variables to minimize gas costs.\n */\nabstract contract GraphDirectory {\n // -- Graph Horizon contracts --\n\n /// @notice The Graph Token contract address\n IGraphToken private immutable GRAPH_TOKEN;\n\n /// @notice The Horizon Staking contract address\n IHorizonStaking private immutable GRAPH_STAKING;\n\n /// @notice The Graph Payments contract address\n IGraphPayments private immutable GRAPH_PAYMENTS;\n\n /// @notice The Payments Escrow contract address\n IPaymentsEscrow private immutable GRAPH_PAYMENTS_ESCROW;\n\n // -- Graph periphery contracts --\n\n /// @notice The Graph Controller contract address\n IController private immutable GRAPH_CONTROLLER;\n\n /// @notice The Epoch Manager contract address\n IEpochManager private immutable GRAPH_EPOCH_MANAGER;\n\n /// @notice The Rewards Manager contract address\n IRewardsManager private immutable GRAPH_REWARDS_MANAGER;\n\n /// @notice The Token Gateway contract address\n ITokenGateway private immutable GRAPH_TOKEN_GATEWAY;\n\n /// @notice The Graph Proxy Admin contract address\n IGraphProxyAdmin private immutable GRAPH_PROXY_ADMIN;\n\n // -- Legacy Graph contracts --\n // These are required for backwards compatibility on HorizonStakingExtension\n // TODO: remove these once HorizonStakingExtension is removed\n ICuration private immutable GRAPH_CURATION;\n\n /**\n * @notice Emitted when the GraphDirectory is initialized\n * @param graphToken The Graph Token contract address\n * @param graphStaking The Horizon Staking contract address\n * @param graphPayments The Graph Payments contract address\n * @param graphEscrow The Payments Escrow contract address\n * @param graphController The Graph Controller contract address\n * @param graphEpochManager The Epoch Manager contract address\n * @param graphRewardsManager The Rewards Manager contract address\n * @param graphTokenGateway The Token Gateway contract address\n * @param graphProxyAdmin The Graph Proxy Admin contract address\n * @param graphCuration The Curation contract address\n */\n event GraphDirectoryInitialized(\n address indexed graphToken,\n address indexed graphStaking,\n address graphPayments,\n address graphEscrow,\n address indexed graphController,\n address graphEpochManager,\n address graphRewardsManager,\n address graphTokenGateway,\n address graphProxyAdmin,\n address graphCuration\n );\n\n /**\n * @notice Thrown when either the controller is the zero address or a contract address is not found\n * on the controller\n * @param contractName The name of the contract that was not found, or the controller\n */\n error GraphDirectoryInvalidZeroAddress(bytes contractName);\n\n /**\n * @notice Constructor for the GraphDirectory contract\n * @dev Requirements:\n * - `controller` cannot be zero address\n *\n * Emits a {GraphDirectoryInitialized} event\n *\n * @param controller The address of the Graph Controller contract.\n */\n constructor(address controller) {\n require(controller != address(0), GraphDirectoryInvalidZeroAddress(\"Controller\"));\n\n GRAPH_CONTROLLER = IController(controller);\n GRAPH_TOKEN = IGraphToken(_getContractFromController(\"GraphToken\"));\n GRAPH_STAKING = IHorizonStaking(_getContractFromController(\"Staking\"));\n GRAPH_PAYMENTS = IGraphPayments(_getContractFromController(\"GraphPayments\"));\n GRAPH_PAYMENTS_ESCROW = IPaymentsEscrow(_getContractFromController(\"PaymentsEscrow\"));\n GRAPH_EPOCH_MANAGER = IEpochManager(_getContractFromController(\"EpochManager\"));\n GRAPH_REWARDS_MANAGER = IRewardsManager(_getContractFromController(\"RewardsManager\"));\n GRAPH_TOKEN_GATEWAY = ITokenGateway(_getContractFromController(\"GraphTokenGateway\"));\n GRAPH_PROXY_ADMIN = IGraphProxyAdmin(_getContractFromController(\"GraphProxyAdmin\"));\n GRAPH_CURATION = ICuration(_getContractFromController(\"Curation\"));\n\n emit GraphDirectoryInitialized(\n address(GRAPH_TOKEN),\n address(GRAPH_STAKING),\n address(GRAPH_PAYMENTS),\n address(GRAPH_PAYMENTS_ESCROW),\n address(GRAPH_CONTROLLER),\n address(GRAPH_EPOCH_MANAGER),\n address(GRAPH_REWARDS_MANAGER),\n address(GRAPH_TOKEN_GATEWAY),\n address(GRAPH_PROXY_ADMIN),\n address(GRAPH_CURATION)\n );\n }\n\n /**\n * @notice Get the Graph Token contract\n */\n function _graphToken() internal view returns (IGraphToken) {\n return GRAPH_TOKEN;\n }\n\n /**\n * @notice Get the Horizon Staking contract\n */\n function _graphStaking() internal view returns (IHorizonStaking) {\n return GRAPH_STAKING;\n }\n\n /**\n * @notice Get the Graph Payments contract\n */\n function _graphPayments() internal view returns (IGraphPayments) {\n return GRAPH_PAYMENTS;\n }\n\n /**\n * @notice Get the Payments Escrow contract\n */\n function _graphPaymentsEscrow() internal view returns (IPaymentsEscrow) {\n return GRAPH_PAYMENTS_ESCROW;\n }\n\n /**\n * @notice Get the Graph Controller contract\n */\n function _graphController() internal view returns (IController) {\n return GRAPH_CONTROLLER;\n }\n\n /**\n * @notice Get the Epoch Manager contract\n */\n function _graphEpochManager() internal view returns (IEpochManager) {\n return GRAPH_EPOCH_MANAGER;\n }\n\n /**\n * @notice Get the Rewards Manager contract\n */\n function _graphRewardsManager() internal view returns (IRewardsManager) {\n return GRAPH_REWARDS_MANAGER;\n }\n\n /**\n * @notice Get the Graph Token Gateway contract\n */\n function _graphTokenGateway() internal view returns (ITokenGateway) {\n return GRAPH_TOKEN_GATEWAY;\n }\n\n /**\n * @notice Get the Graph Proxy Admin contract\n */\n function _graphProxyAdmin() internal view returns (IGraphProxyAdmin) {\n return GRAPH_PROXY_ADMIN;\n }\n\n /**\n * @notice Get the Curation contract\n */\n function _graphCuration() internal view returns (ICuration) {\n return GRAPH_CURATION;\n }\n\n /**\n * @notice Get a contract address from the controller\n * @dev Requirements:\n * - The `_contractName` must be registered in the controller\n * @param _contractName The name of the contract to fetch from the controller\n */\n function _getContractFromController(bytes memory _contractName) private view returns (address) {\n address contractAddress = GRAPH_CONTROLLER.getContractProxy(keccak256(_contractName));\n require(contractAddress != address(0), GraphDirectoryInvalidZeroAddress(_contractName));\n return contractAddress;\n }\n}\n" - }, - "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ContextUpgradeable} from \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\n /// @custom:storage-location erc7201:openzeppelin.storage.Ownable\n struct OwnableStorage {\n address _owner;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Ownable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant OwnableStorageLocation = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300;\n\n function _getOwnableStorage() private pure returns (OwnableStorage storage $) {\n assembly {\n $.slot := OwnableStorageLocation\n }\n }\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n function __Ownable_init(address initialOwner) internal onlyInitializing {\n __Ownable_init_unchained(initialOwner);\n }\n\n function __Ownable_init_unchained(address initialOwner) internal onlyInitializing {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n OwnableStorage storage $ = _getOwnableStorage();\n return $._owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n OwnableStorage storage $ = _getOwnableStorage();\n address oldOwner = $._owner;\n $._owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" - }, - "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n * function initialize() initializer public {\n * __ERC20_init(\"MyToken\", \"MTK\");\n * }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n * function initializeV2() reinitializer(2) public {\n * __ERC20Permit_init(\"MyToken\");\n * }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n * _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Storage of the initializable contract.\n *\n * It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n * when using with upgradeable contracts.\n *\n * @custom:storage-location erc7201:openzeppelin.storage.Initializable\n */\n struct InitializableStorage {\n /**\n * @dev Indicates that the contract has been initialized.\n */\n uint64 _initialized;\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool _initializing;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Initializable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant INITIALIZABLE_STORAGE = 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00;\n\n /**\n * @dev The contract is already initialized.\n */\n error InvalidInitialization();\n\n /**\n * @dev The contract is not initializing.\n */\n error NotInitializing();\n\n /**\n * @dev Triggered when the contract has been initialized or reinitialized.\n */\n event Initialized(uint64 version);\n\n /**\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n * `onlyInitializing` functions can be used to initialize parent contracts.\n *\n * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n * number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n * production.\n *\n * Emits an {Initialized} event.\n */\n modifier initializer() {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n // Cache values to avoid duplicated sloads\n bool isTopLevelCall = !$._initializing;\n uint64 initialized = $._initialized;\n\n // Allowed calls:\n // - initialSetup: the contract is not in the initializing state and no previous version was\n // initialized\n // - construction: the contract is initialized at version 1 (no reininitialization) and the\n // current contract is just being deployed\n bool initialSetup = initialized == 0 && isTopLevelCall;\n bool construction = initialized == 1 && address(this).code.length == 0;\n\n if (!initialSetup && !construction) {\n revert InvalidInitialization();\n }\n $._initialized = 1;\n if (isTopLevelCall) {\n $._initializing = true;\n }\n _;\n if (isTopLevelCall) {\n $._initializing = false;\n emit Initialized(1);\n }\n }\n\n /**\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n * used to initialize parent contracts.\n *\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n * are added through upgrades and that require initialization.\n *\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n * cannot be nested. If one is invoked in the context of another, execution will revert.\n *\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n * a contract, executing them in the right order is up to the developer or operator.\n *\n * WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n *\n * Emits an {Initialized} event.\n */\n modifier reinitializer(uint64 version) {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing || $._initialized >= version) {\n revert InvalidInitialization();\n }\n $._initialized = version;\n $._initializing = true;\n _;\n $._initializing = false;\n emit Initialized(version);\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\n */\n modifier onlyInitializing() {\n _checkInitializing();\n _;\n }\n\n /**\n * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.\n */\n function _checkInitializing() internal view virtual {\n if (!_isInitializing()) {\n revert NotInitializing();\n }\n }\n\n /**\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n * through proxies.\n *\n * Emits an {Initialized} event the first time it is successfully executed.\n */\n function _disableInitializers() internal virtual {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing) {\n revert InvalidInitialization();\n }\n if ($._initialized != type(uint64).max) {\n $._initialized = type(uint64).max;\n emit Initialized(type(uint64).max);\n }\n }\n\n /**\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\n */\n function _getInitializedVersion() internal view returns (uint64) {\n return _getInitializableStorage()._initialized;\n }\n\n /**\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n */\n function _isInitializing() internal view returns (bool) {\n return _getInitializableStorage()._initializing;\n }\n\n /**\n * @dev Returns a pointer to the storage namespace.\n */\n // solhint-disable-next-line var-name-mixedcase\n function _getInitializableStorage() private pure returns (InitializableStorage storage $) {\n assembly {\n $.slot := INITIALIZABLE_STORAGE\n }\n }\n}\n" - }, - "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract ContextUpgradeable is Initializable {\n function __Context_init() internal onlyInitializing {\n }\n\n function __Context_init_unchained() internal onlyInitializing {\n }\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" - }, - "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/EIP712.sol)\n\npragma solidity ^0.8.20;\n\nimport {MessageHashUtils} from \"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\";\nimport {IERC5267} from \"@openzeppelin/contracts/interfaces/IERC5267.sol\";\nimport {Initializable} from \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n *\n * The encoding scheme specified in the EIP requires a domain separator and a hash of the typed structured data, whose\n * encoding is very generic and therefore its implementation in Solidity is not feasible, thus this contract\n * does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in order to\n * produce the hash of their typed data using a combination of `abi.encode` and `keccak256`.\n *\n * This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n * ({_hashTypedDataV4}).\n *\n * The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n * the chain id to protect against replay attacks on an eventual fork of the chain.\n *\n * NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n *\n * NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain\n * separator of the implementation contract. This will cause the {_domainSeparatorV4} function to always rebuild the\n * separator from the immutable values, which is cheaper than accessing a cached version in cold storage.\n */\nabstract contract EIP712Upgradeable is Initializable, IERC5267 {\n bytes32 private constant TYPE_HASH =\n keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\");\n\n /// @custom:storage-location erc7201:openzeppelin.storage.EIP712\n struct EIP712Storage {\n /// @custom:oz-renamed-from _HASHED_NAME\n bytes32 _hashedName;\n /// @custom:oz-renamed-from _HASHED_VERSION\n bytes32 _hashedVersion;\n\n string _name;\n string _version;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.EIP712\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant EIP712StorageLocation = 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100;\n\n function _getEIP712Storage() private pure returns (EIP712Storage storage $) {\n assembly {\n $.slot := EIP712StorageLocation\n }\n }\n\n /**\n * @dev Initializes the domain separator and parameter caches.\n *\n * The meaning of `name` and `version` is specified in\n * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n *\n * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n * - `version`: the current major version of the signing domain.\n *\n * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n * contract upgrade].\n */\n function __EIP712_init(string memory name, string memory version) internal onlyInitializing {\n __EIP712_init_unchained(name, version);\n }\n\n function __EIP712_init_unchained(string memory name, string memory version) internal onlyInitializing {\n EIP712Storage storage $ = _getEIP712Storage();\n $._name = name;\n $._version = version;\n\n // Reset prior values in storage if upgrading\n $._hashedName = 0;\n $._hashedVersion = 0;\n }\n\n /**\n * @dev Returns the domain separator for the current chain.\n */\n function _domainSeparatorV4() internal view returns (bytes32) {\n return _buildDomainSeparator();\n }\n\n function _buildDomainSeparator() private view returns (bytes32) {\n return keccak256(abi.encode(TYPE_HASH, _EIP712NameHash(), _EIP712VersionHash(), block.chainid, address(this)));\n }\n\n /**\n * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n * function returns the hash of the fully encoded EIP712 message for this domain.\n *\n * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n *\n * ```solidity\n * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n * keccak256(\"Mail(address to,string contents)\"),\n * mailTo,\n * keccak256(bytes(mailContents))\n * )));\n * address signer = ECDSA.recover(digest, signature);\n * ```\n */\n function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) {\n return MessageHashUtils.toTypedDataHash(_domainSeparatorV4(), structHash);\n }\n\n /**\n * @dev See {IERC-5267}.\n */\n function eip712Domain()\n public\n view\n virtual\n returns (\n bytes1 fields,\n string memory name,\n string memory version,\n uint256 chainId,\n address verifyingContract,\n bytes32 salt,\n uint256[] memory extensions\n )\n {\n EIP712Storage storage $ = _getEIP712Storage();\n // If the hashed name and version in storage are non-zero, the contract hasn't been properly initialized\n // and the EIP712 domain is not reliable, as it will be missing name and version.\n require($._hashedName == 0 && $._hashedVersion == 0, \"EIP712: Uninitialized\");\n\n return (\n hex\"0f\", // 01111\n _EIP712Name(),\n _EIP712Version(),\n block.chainid,\n address(this),\n bytes32(0),\n new uint256[](0)\n );\n }\n\n /**\n * @dev The name parameter for the EIP712 domain.\n *\n * NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n * are a concern.\n */\n function _EIP712Name() internal view virtual returns (string memory) {\n EIP712Storage storage $ = _getEIP712Storage();\n return $._name;\n }\n\n /**\n * @dev The version parameter for the EIP712 domain.\n *\n * NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n * are a concern.\n */\n function _EIP712Version() internal view virtual returns (string memory) {\n EIP712Storage storage $ = _getEIP712Storage();\n return $._version;\n }\n\n /**\n * @dev The hash of the name parameter for the EIP712 domain.\n *\n * NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Name` instead.\n */\n function _EIP712NameHash() internal view returns (bytes32) {\n EIP712Storage storage $ = _getEIP712Storage();\n string memory name = _EIP712Name();\n if (bytes(name).length > 0) {\n return keccak256(bytes(name));\n } else {\n // If the name is empty, the contract may have been upgraded without initializing the new storage.\n // We return the name hash in storage if non-zero, otherwise we assume the name is empty by design.\n bytes32 hashedName = $._hashedName;\n if (hashedName != 0) {\n return hashedName;\n } else {\n return keccak256(\"\");\n }\n }\n }\n\n /**\n * @dev The hash of the version parameter for the EIP712 domain.\n *\n * NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Version` instead.\n */\n function _EIP712VersionHash() internal view returns (bytes32) {\n EIP712Storage storage $ = _getEIP712Storage();\n string memory version = _EIP712Version();\n if (bytes(version).length > 0) {\n return keccak256(bytes(version));\n } else {\n // If the version is empty, the contract may have been upgraded without initializing the new storage.\n // We return the version hash in storage if non-zero, otherwise we assume the version is empty by design.\n bytes32 hashedVersion = $._hashedVersion;\n if (hashedVersion != 0) {\n return hashedVersion;\n } else {\n return keccak256(\"\");\n }\n }\n }\n}\n" - }, - "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Multicall.sol)\n\npragma solidity ^0.8.20;\n\nimport {Address} from \"@openzeppelin/contracts/utils/Address.sol\";\nimport {ContextUpgradeable} from \"./ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Provides a function to batch together multiple calls in a single external call.\n *\n * Consider any assumption about calldata validation performed by the sender may be violated if it's not especially\n * careful about sending transactions invoking {multicall}. For example, a relay address that filters function\n * selectors won't filter calls nested within a {multicall} operation.\n *\n * NOTE: Since 5.0.1 and 4.9.4, this contract identifies non-canonical contexts (i.e. `msg.sender` is not {_msgSender}).\n * If a non-canonical context is identified, the following self `delegatecall` appends the last bytes of `msg.data`\n * to the subcall. This makes it safe to use with {ERC2771Context}. Contexts that don't affect the resolution of\n * {_msgSender} are not propagated to subcalls.\n */\nabstract contract MulticallUpgradeable is Initializable, ContextUpgradeable {\n function __Multicall_init() internal onlyInitializing {\n }\n\n function __Multicall_init_unchained() internal onlyInitializing {\n }\n /**\n * @dev Receives and executes a batch of function calls on this contract.\n * @custom:oz-upgrades-unsafe-allow-reachable delegatecall\n */\n function multicall(bytes[] calldata data) external virtual returns (bytes[] memory results) {\n bytes memory context = msg.sender == _msgSender()\n ? new bytes(0)\n : msg.data[msg.data.length - _contextSuffixLength():];\n\n results = new bytes[](data.length);\n for (uint256 i = 0; i < data.length; i++) {\n results[i] = Address.functionDelegateCall(address(this), bytes.concat(data[i], context));\n }\n return results;\n }\n}\n" - }, - "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Pausable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ContextUpgradeable} from \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract PausableUpgradeable is Initializable, ContextUpgradeable {\n /// @custom:storage-location erc7201:openzeppelin.storage.Pausable\n struct PausableStorage {\n bool _paused;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Pausable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant PausableStorageLocation = 0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300;\n\n function _getPausableStorage() private pure returns (PausableStorage storage $) {\n assembly {\n $.slot := PausableStorageLocation\n }\n }\n\n /**\n * @dev Emitted when the pause is triggered by `account`.\n */\n event Paused(address account);\n\n /**\n * @dev Emitted when the pause is lifted by `account`.\n */\n event Unpaused(address account);\n\n /**\n * @dev The operation failed because the contract is paused.\n */\n error EnforcedPause();\n\n /**\n * @dev The operation failed because the contract is not paused.\n */\n error ExpectedPause();\n\n /**\n * @dev Initializes the contract in unpaused state.\n */\n function __Pausable_init() internal onlyInitializing {\n __Pausable_init_unchained();\n }\n\n function __Pausable_init_unchained() internal onlyInitializing {\n PausableStorage storage $ = _getPausableStorage();\n $._paused = false;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is not paused.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n modifier whenNotPaused() {\n _requireNotPaused();\n _;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is paused.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n modifier whenPaused() {\n _requirePaused();\n _;\n }\n\n /**\n * @dev Returns true if the contract is paused, and false otherwise.\n */\n function paused() public view virtual returns (bool) {\n PausableStorage storage $ = _getPausableStorage();\n return $._paused;\n }\n\n /**\n * @dev Throws if the contract is paused.\n */\n function _requireNotPaused() internal view virtual {\n if (paused()) {\n revert EnforcedPause();\n }\n }\n\n /**\n * @dev Throws if the contract is not paused.\n */\n function _requirePaused() internal view virtual {\n if (!paused()) {\n revert ExpectedPause();\n }\n }\n\n /**\n * @dev Triggers stopped state.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n function _pause() internal virtual whenNotPaused {\n PausableStorage storage $ = _getPausableStorage();\n $._paused = true;\n emit Paused(_msgSender());\n }\n\n /**\n * @dev Returns to normal state.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n function _unpause() internal virtual whenPaused {\n PausableStorage storage $ = _getPausableStorage();\n $._paused = false;\n emit Unpaused(_msgSender());\n }\n}\n" - }, - "@openzeppelin/contracts/interfaces/IERC5267.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC5267.sol)\n\npragma solidity ^0.8.20;\n\ninterface IERC5267 {\n /**\n * @dev MAY be emitted to signal that the domain could have changed.\n */\n event EIP712DomainChanged();\n\n /**\n * @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n * signature.\n */\n function eip712Domain()\n external\n view\n returns (\n bytes1 fields,\n string memory name,\n string memory version,\n uint256 chainId,\n address verifyingContract,\n bytes32 salt,\n uint256[] memory extensions\n );\n}\n" - }, - "@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n" - }, - "@openzeppelin/contracts/utils/Address.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Address.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev The ETH balance of the account is not enough to perform the operation.\n */\n error AddressInsufficientBalance(address account);\n\n /**\n * @dev There's no code at `target` (it is not a contract).\n */\n error AddressEmptyCode(address target);\n\n /**\n * @dev A call to an address target failed. The target may have reverted.\n */\n error FailedInnerCall();\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n if (address(this).balance < amount) {\n revert AddressInsufficientBalance(address(this));\n }\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n if (!success) {\n revert FailedInnerCall();\n }\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason or custom error, it is bubbled\n * up by this function (like regular Solidity function calls). However, if\n * the call reverted with no returned reason, this function reverts with a\n * {FailedInnerCall} error.\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n if (address(this).balance < value) {\n revert AddressInsufficientBalance(address(this));\n }\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResultFromTarget(target, success, returndata);\n }\n\n /**\n * @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n * was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n * unsuccessful call.\n */\n function verifyCallResultFromTarget(\n address target,\n bool success,\n bytes memory returndata\n ) internal view returns (bytes memory) {\n if (!success) {\n _revert(returndata);\n } else {\n // only check if target is a contract if the call was successful and the return data is empty\n // otherwise we already know that it was a contract\n if (returndata.length == 0 && target.code.length == 0) {\n revert AddressEmptyCode(target);\n }\n return returndata;\n }\n }\n\n /**\n * @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n * revert reason or with a default {FailedInnerCall} error.\n */\n function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {\n if (!success) {\n _revert(returndata);\n } else {\n return returndata;\n }\n }\n\n /**\n * @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.\n */\n function _revert(bytes memory returndata) private pure {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert FailedInnerCall();\n }\n }\n}\n" - }, - "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n enum RecoverError {\n NoError,\n InvalidSignature,\n InvalidSignatureLength,\n InvalidSignatureS\n }\n\n /**\n * @dev The signature derives the `address(0)`.\n */\n error ECDSAInvalidSignature();\n\n /**\n * @dev The signature has an invalid length.\n */\n error ECDSAInvalidSignatureLength(uint256 length);\n\n /**\n * @dev The signature has an S value that is in the upper half order.\n */\n error ECDSAInvalidSignatureS(bytes32 s);\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n * return address(0) without also returning an error description. Errors are documented using an enum (error type)\n * and a bytes32 providing additional information about the error.\n *\n * If no error is returned, then the address can be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n *\n * Documentation for signature generation:\n * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n */\n function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError, bytes32) {\n if (signature.length == 65) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n // ecrecover takes the signature parameters, and the only way to get them\n // currently is to use assembly.\n /// @solidity memory-safe-assembly\n assembly {\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n }\n return tryRecover(hash, v, r, s);\n } else {\n return (address(0), RecoverError.InvalidSignatureLength, bytes32(signature.length));\n }\n }\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with\n * `signature`. This address can then be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n */\n function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, signature);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n *\n * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n */\n function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError, bytes32) {\n unchecked {\n bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n // We do not check for an overflow here since the shift operation results in 0 or 1.\n uint8 v = uint8((uint256(vs) >> 255) + 27);\n return tryRecover(hash, v, r, s);\n }\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n */\n function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, r, vs);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function tryRecover(\n bytes32 hash,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal pure returns (address, RecoverError, bytes32) {\n // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n //\n // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n // these malleable signatures as well.\n if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n return (address(0), RecoverError.InvalidSignatureS, s);\n }\n\n // If the signature is valid (and not malleable), return the signer address\n address signer = ecrecover(hash, v, r, s);\n if (signer == address(0)) {\n return (address(0), RecoverError.InvalidSignature, bytes32(0));\n }\n\n return (signer, RecoverError.NoError, bytes32(0));\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, v, r, s);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Optionally reverts with the corresponding custom error according to the `error` argument provided.\n */\n function _throwError(RecoverError error, bytes32 errorArg) private pure {\n if (error == RecoverError.NoError) {\n return; // no error: do nothing\n } else if (error == RecoverError.InvalidSignature) {\n revert ECDSAInvalidSignature();\n } else if (error == RecoverError.InvalidSignatureLength) {\n revert ECDSAInvalidSignatureLength(uint256(errorArg));\n } else if (error == RecoverError.InvalidSignatureS) {\n revert ECDSAInvalidSignatureS(errorArg);\n }\n }\n}\n" - }, - "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/MessageHashUtils.sol)\n\npragma solidity ^0.8.20;\n\nimport {Strings} from \"../Strings.sol\";\n\n/**\n * @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n *\n * The library provides methods for generating a hash of a message that conforms to the\n * https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n * specifications.\n */\nlibrary MessageHashUtils {\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing a bytes32 `messageHash` with\n * `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n * hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n * keccak256, although any bytes32 value can be safely used because the final digest will\n * be re-hashed.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes32 messageHash) internal pure returns (bytes32 digest) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, \"\\x19Ethereum Signed Message:\\n32\") // 32 is the bytes-length of messageHash\n mstore(0x1c, messageHash) // 0x1c (28) is the length of the prefix\n digest := keccak256(0x00, 0x3c) // 0x3c is the length of the prefix (0x1c) + messageHash (0x20)\n }\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing an arbitrary `message` with\n * `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n * hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes memory message) internal pure returns (bytes32) {\n return\n keccak256(bytes.concat(\"\\x19Ethereum Signed Message:\\n\", bytes(Strings.toString(message.length)), message));\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x00` (data with intended validator).\n *\n * The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n * `validator` address. Then hashing the result.\n *\n * See {ECDSA-recover}.\n */\n function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) {\n return keccak256(abi.encodePacked(hex\"19_00\", validator, data));\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-712 typed data (EIP-191 version `0x01`).\n *\n * The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n * `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n *\n * See {ECDSA-recover}.\n */\n function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 digest) {\n /// @solidity memory-safe-assembly\n assembly {\n let ptr := mload(0x40)\n mstore(ptr, hex\"19_01\")\n mstore(add(ptr, 0x02), domainSeparator)\n mstore(add(ptr, 0x22), structHash)\n digest := keccak256(ptr, 0x42)\n }\n }\n}\n" - }, - "@openzeppelin/contracts/utils/math/Math.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n" - }, - "@openzeppelin/contracts/utils/math/SignedMath.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n" - }, - "@openzeppelin/contracts/utils/Strings.sol": { - "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n" - }, - "contracts/DisputeManager.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity 0.8.27;\n\nimport { IGraphToken } from \"@graphprotocol/contracts/contracts/token/IGraphToken.sol\";\nimport { IHorizonStaking } from \"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\";\nimport { IDisputeManager } from \"./interfaces/IDisputeManager.sol\";\nimport { ISubgraphService } from \"./interfaces/ISubgraphService.sol\";\n\nimport { Math } from \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport { TokenUtils } from \"@graphprotocol/contracts/contracts/utils/TokenUtils.sol\";\nimport { PPMMath } from \"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\";\nimport { MathUtils } from \"@graphprotocol/horizon/contracts/libraries/MathUtils.sol\";\nimport { Allocation } from \"./libraries/Allocation.sol\";\nimport { Attestation } from \"./libraries/Attestation.sol\";\n\nimport { OwnableUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\nimport { Initializable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport { GraphDirectory } from \"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\";\nimport { DisputeManagerV1Storage } from \"./DisputeManagerStorage.sol\";\nimport { AttestationManager } from \"./utilities/AttestationManager.sol\";\n\n/**\n * @title DisputeManager\n * @notice Provides a way to permissionlessly create disputes for incorrect behavior in the Subgraph Service.\n *\n * There are two types of disputes that can be created: Query disputes and Indexing disputes.\n *\n * Query Disputes:\n * Graph nodes receive queries and return responses with signed receipts called attestations.\n * An attestation can be disputed if the consumer thinks the query response was invalid.\n * Indexers use the derived private key for an allocation to sign attestations.\n *\n * Indexing Disputes:\n * Indexers present a Proof of Indexing (POI) when they close allocations to prove\n * they were indexing a subgraph. The Staking contract emits that proof with the format\n * keccak256(indexer.address, POI).\n * Any fisherman can dispute the validity of a POI by submitting a dispute to this contract\n * along with a deposit.\n *\n * Arbitration:\n * Disputes can only be accepted, rejected or drawn by the arbitrator role that can be delegated\n * to a EOA or DAO.\n * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\ncontract DisputeManager is\n Initializable,\n OwnableUpgradeable,\n GraphDirectory,\n AttestationManager,\n DisputeManagerV1Storage,\n IDisputeManager\n{\n using TokenUtils for IGraphToken;\n using PPMMath for uint256;\n\n // -- Constants --\n\n // Maximum value for fisherman reward cut in PPM\n uint32 public constant MAX_FISHERMAN_REWARD_CUT = 500000;\n\n // -- Modifiers --\n\n /**\n * @notice Check if the caller is the arbitrator.\n */\n modifier onlyArbitrator() {\n require(msg.sender == arbitrator, DisputeManagerNotArbitrator());\n _;\n }\n\n /**\n * @notice Check if the dispute exists and is pending.\n * @param disputeId The dispute Id\n */\n modifier onlyPendingDispute(bytes32 disputeId) {\n require(isDisputeCreated(disputeId), DisputeManagerInvalidDispute(disputeId));\n require(\n disputes[disputeId].status == IDisputeManager.DisputeStatus.Pending,\n DisputeManagerDisputeNotPending(disputes[disputeId].status)\n );\n _;\n }\n\n /**\n * @notice Check if the caller is the fisherman of the dispute.\n * @param disputeId The dispute Id\n */\n modifier onlyFisherman(bytes32 disputeId) {\n require(isDisputeCreated(disputeId), DisputeManagerInvalidDispute(disputeId));\n require(msg.sender == disputes[disputeId].fisherman, DisputeManagerNotFisherman());\n _;\n }\n\n /**\n * @notice Contract constructor\n * @param controller Address of the controller\n */\n constructor(address controller) GraphDirectory(controller) {\n _disableInitializers();\n }\n\n /**\n * @notice Initialize this contract.\n * @param arbitrator Arbitrator role\n * @param disputePeriod Dispute period in seconds\n * @param disputeDeposit Deposit required to create a Dispute\n * @param fishermanRewardCut_ Percent of slashed funds for fisherman (ppm)\n * @param maxSlashingCut_ Maximum percentage of indexer stake that can be slashed (ppm)\n */\n function initialize(\n address arbitrator,\n uint64 disputePeriod,\n uint256 disputeDeposit,\n uint32 fishermanRewardCut_,\n uint32 maxSlashingCut_\n ) external initializer {\n __Ownable_init(msg.sender);\n __AttestationManager_init();\n\n _setArbitrator(arbitrator);\n _setDisputePeriod(disputePeriod);\n _setDisputeDeposit(disputeDeposit);\n _setFishermanRewardCut(fishermanRewardCut_);\n _setMaxSlashingCut(maxSlashingCut_);\n }\n\n /**\n * @notice Create an indexing dispute for the arbitrator to resolve.\n * The disputes are created in reference to an allocationId and specifically\n * a POI for that allocation.\n * This function is called by a fisherman and it will pull `disputeDeposit` GRT tokens.\n *\n * Requirements:\n * - fisherman must have previously approved this contract to pull `disputeDeposit` amount\n * of tokens from their balance.\n *\n * @param allocationId The allocation to dispute\n * @param poi The Proof of Indexing (POI) being disputed\n */\n function createIndexingDispute(address allocationId, bytes32 poi) external override returns (bytes32) {\n // Get funds from fisherman\n _pullFishermanDeposit();\n\n // Create a dispute\n return _createIndexingDisputeWithAllocation(msg.sender, disputeDeposit, allocationId, poi);\n }\n\n /**\n * @notice Create a query dispute for the arbitrator to resolve.\n * This function is called by a fisherman and it will pull `disputeDeposit` GRT tokens.\n *\n * * Requirements:\n * - fisherman must have previously approved this contract to pull `disputeDeposit` amount\n * of tokens from their balance.\n *\n * @param attestationData Attestation bytes submitted by the fisherman\n */\n function createQueryDispute(bytes calldata attestationData) external override returns (bytes32) {\n // Get funds from fisherman\n _pullFishermanDeposit();\n\n // Create a dispute\n return\n _createQueryDisputeWithAttestation(\n msg.sender,\n disputeDeposit,\n Attestation.parse(attestationData),\n attestationData\n );\n }\n\n /**\n * @notice Create query disputes for two conflicting attestations.\n * A conflicting attestation is a proof presented by two different indexers\n * where for the same request on a subgraph the response is different.\n * For this type of dispute the fisherman is not required to present a deposit\n * as one of the attestation is considered to be right.\n * Two linked disputes will be created and if the arbitrator resolve one, the other\n * one will be automatically resolved.\n * @param attestationData1 First attestation data submitted\n * @param attestationData2 Second attestation data submitted\n * @return DisputeId1, DisputeId2\n */\n function createQueryDisputeConflict(\n bytes calldata attestationData1,\n bytes calldata attestationData2\n ) external override returns (bytes32, bytes32) {\n address fisherman = msg.sender;\n\n // Parse each attestation\n Attestation.State memory attestation1 = Attestation.parse(attestationData1);\n Attestation.State memory attestation2 = Attestation.parse(attestationData2);\n\n // Test that attestations are conflicting\n require(\n Attestation.areConflicting(attestation1, attestation2),\n DisputeManagerNonConflictingAttestations(\n attestation1.requestCID,\n attestation1.responseCID,\n attestation1.subgraphDeploymentId,\n attestation2.requestCID,\n attestation2.responseCID,\n attestation2.subgraphDeploymentId\n )\n );\n\n // Create the disputes\n // The deposit is zero for conflicting attestations\n bytes32 dId1 = _createQueryDisputeWithAttestation(fisherman, 0, attestation1, attestationData1);\n bytes32 dId2 = _createQueryDisputeWithAttestation(fisherman, 0, attestation2, attestationData2);\n\n // Store the linked disputes to be resolved\n disputes[dId1].relatedDisputeId = dId2;\n disputes[dId2].relatedDisputeId = dId1;\n\n // Emit event that links the two created disputes\n emit DisputeLinked(dId1, dId2);\n\n return (dId1, dId2);\n }\n\n /**\n * @notice The arbitrator accepts a dispute as being valid.\n * This function will revert if the indexer is not slashable, whether because it does not have\n * any stake available or the slashing percentage is configured to be zero. In those cases\n * a dispute must be resolved using drawDispute or rejectDispute.\n * @dev Accept a dispute with Id `disputeId`\n * @param disputeId Id of the dispute to be accepted\n * @param tokensSlash Amount of tokens to slash from the indexer\n */\n function acceptDispute(\n bytes32 disputeId,\n uint256 tokensSlash\n ) external override onlyArbitrator onlyPendingDispute(disputeId) {\n Dispute storage dispute = disputes[disputeId];\n\n // store the dispute status\n dispute.status = IDisputeManager.DisputeStatus.Accepted;\n\n // Slash\n uint256 tokensToReward = _slashIndexer(dispute.indexer, tokensSlash, dispute.stakeSnapshot);\n\n // Give the fisherman their reward and their deposit back\n _graphToken().pushTokens(dispute.fisherman, tokensToReward + dispute.deposit);\n\n if (_isDisputeInConflict(dispute)) {\n rejectDispute(dispute.relatedDisputeId);\n }\n\n emit DisputeAccepted(disputeId, dispute.indexer, dispute.fisherman, dispute.deposit + tokensToReward);\n }\n\n /**\n * @notice The arbitrator draws dispute.\n * @dev Ignore a dispute with Id `disputeId`\n * @param disputeId Id of the dispute to be disregarded\n */\n function drawDispute(bytes32 disputeId) external override onlyArbitrator onlyPendingDispute(disputeId) {\n Dispute storage dispute = disputes[disputeId];\n\n // Return deposit to the fisherman if any\n if (dispute.deposit > 0) {\n _graphToken().pushTokens(dispute.fisherman, dispute.deposit);\n }\n\n // resolve related dispute if any\n _drawDisputeInConflict(dispute);\n\n // store dispute status\n dispute.status = IDisputeManager.DisputeStatus.Drawn;\n\n emit DisputeDrawn(disputeId, dispute.indexer, dispute.fisherman, dispute.deposit);\n }\n\n /**\n * @notice Once the dispute period ends, if the dispute status remains Pending,\n * the fisherman can cancel the dispute and get back their initial deposit.\n * @dev Cancel a dispute with Id `disputeId`\n * @param disputeId Id of the dispute to be cancelled\n */\n function cancelDispute(bytes32 disputeId) external override onlyFisherman(disputeId) onlyPendingDispute(disputeId) {\n Dispute storage dispute = disputes[disputeId];\n\n // Check if dispute period has finished\n require(dispute.createdAt + disputePeriod < block.timestamp, DisputeManagerDisputePeriodNotFinished());\n\n // Return deposit to the fisherman if any\n if (dispute.deposit > 0) {\n _graphToken().pushTokens(dispute.fisherman, dispute.deposit);\n }\n\n // resolve related dispute if any\n _cancelDisputeInConflict(dispute);\n\n // store dispute status\n dispute.status = IDisputeManager.DisputeStatus.Cancelled;\n\n emit DisputeCancelled(disputeId, dispute.indexer, dispute.fisherman, dispute.deposit);\n }\n\n /**\n * @notice Set the arbitrator address.\n * @dev Update the arbitrator to `_arbitrator`\n * @param arbitrator The address of the arbitration contract or party\n */\n function setArbitrator(address arbitrator) external override onlyOwner {\n _setArbitrator(arbitrator);\n }\n\n /**\n * @notice Set the dispute period.\n * @dev Update the dispute period to `_disputePeriod` in seconds\n * @param disputePeriod Dispute period in seconds\n */\n function setDisputePeriod(uint64 disputePeriod) external override onlyOwner {\n _setDisputePeriod(disputePeriod);\n }\n\n /**\n * @notice Set the dispute deposit required to create a dispute.\n * @dev Update the dispute deposit to `_disputeDeposit` Graph Tokens\n * @param disputeDeposit The dispute deposit in Graph Tokens\n */\n function setDisputeDeposit(uint256 disputeDeposit) external override onlyOwner {\n _setDisputeDeposit(disputeDeposit);\n }\n\n /**\n * @notice Set the percent reward that the fisherman gets when slashing occurs.\n * @dev Update the reward percentage to `_percentage`\n * @param fishermanRewardCut_ Reward as a percentage of indexer stake\n */\n function setFishermanRewardCut(uint32 fishermanRewardCut_) external override onlyOwner {\n _setFishermanRewardCut(fishermanRewardCut_);\n }\n\n /**\n * @notice Set the maximum percentage that can be used for slashing indexers.\n * @param maxSlashingCut_ Max percentage slashing for disputes\n */\n function setMaxSlashingCut(uint32 maxSlashingCut_) external override onlyOwner {\n _setMaxSlashingCut(maxSlashingCut_);\n }\n\n /**\n * @notice Set the subgraph service address.\n * @dev Update the subgraph service to `_subgraphService`\n * @param subgraphService The address of the subgraph service contract\n */\n function setSubgraphService(address subgraphService) external override onlyOwner {\n _setSubgraphService(subgraphService);\n }\n\n /**\n * @notice Get the message hash that a indexer used to sign the receipt.\n * Encodes a receipt using a domain separator, as described on\n * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-712.md#specification.\n * @dev Return the message hash used to sign the receipt\n * @param receipt Receipt returned by indexer and submitted by fisherman\n * @return Message hash used to sign the receipt\n */\n function encodeReceipt(Attestation.Receipt memory receipt) external view override returns (bytes32) {\n return _encodeReceipt(receipt);\n }\n\n /**\n * @notice Get the verifier cut.\n * @return Verifier cut in percentage (ppm)\n */\n function getVerifierCut() external view override returns (uint32) {\n return fishermanRewardCut;\n }\n\n /**\n * @notice Get the dispute period.\n * @return Dispute period in seconds\n */\n function getDisputePeriod() external view override returns (uint64) {\n return disputePeriod;\n }\n\n /**\n * @notice Get the stake snapshot for an indexer.\n * @param indexer The indexer address\n */\n function getStakeSnapshot(address indexer) external view override returns (uint256) {\n IHorizonStaking.Provision memory provision = _graphStaking().getProvision(indexer, address(subgraphService));\n return _getStakeSnapshot(indexer, provision.tokens);\n }\n\n /**\n * @notice Checks if two attestations are conflicting.\n * @param attestation1 The first attestation\n * @param attestation2 The second attestation\n */\n function areConflictingAttestations(\n Attestation.State memory attestation1,\n Attestation.State memory attestation2\n ) external pure override returns (bool) {\n return Attestation.areConflicting(attestation1, attestation2);\n }\n\n /**\n * @notice The arbitrator rejects a dispute as being invalid.\n * @dev Reject a dispute with Id `disputeId`\n * @param disputeId Id of the dispute to be rejected\n */\n function rejectDispute(bytes32 disputeId) public override onlyArbitrator onlyPendingDispute(disputeId) {\n Dispute storage dispute = disputes[disputeId];\n\n // store dispute status\n dispute.status = IDisputeManager.DisputeStatus.Rejected;\n\n // For conflicting disputes, the related dispute must be accepted\n require(\n !_isDisputeInConflict(dispute),\n DisputeManagerMustAcceptRelatedDispute(disputeId, dispute.relatedDisputeId)\n );\n\n // Burn the fisherman's deposit\n _graphToken().burnTokens(dispute.deposit);\n\n emit DisputeRejected(disputeId, dispute.indexer, dispute.fisherman, dispute.deposit);\n }\n\n /**\n * @notice Returns the indexer that signed an attestation.\n * @param attestation Attestation\n * @return indexer address\n */\n function getAttestationIndexer(Attestation.State memory attestation) public view returns (address) {\n // Get attestation signer. Indexers signs with the allocationId\n address allocationId = _recoverSigner(attestation);\n\n Allocation.State memory alloc = subgraphService.getAllocation(allocationId);\n require(alloc.indexer != address(0), DisputeManagerIndexerNotFound(allocationId));\n require(\n alloc.subgraphDeploymentId == attestation.subgraphDeploymentId,\n DisputeManagerNonMatchingSubgraphDeployment(alloc.subgraphDeploymentId, attestation.subgraphDeploymentId)\n );\n return alloc.indexer;\n }\n\n /**\n * @notice Return whether a dispute exists or not.\n * @dev Return if dispute with Id `disputeId` exists\n * @param disputeId True if dispute already exists\n */\n function isDisputeCreated(bytes32 disputeId) public view override returns (bool) {\n return disputes[disputeId].status != DisputeStatus.Null;\n }\n\n /**\n * @notice Create a query dispute passing the parsed attestation.\n * To be used in createQueryDispute() and createQueryDisputeConflict()\n * to avoid calling parseAttestation() multiple times\n * `attestationData` is only passed to be emitted\n * @param _fisherman Creator of dispute\n * @param _deposit Amount of tokens staked as deposit\n * @param _attestation Attestation struct parsed from bytes\n * @param _attestationData Attestation bytes submitted by the fisherman\n * @return DisputeId\n */\n function _createQueryDisputeWithAttestation(\n address _fisherman,\n uint256 _deposit,\n Attestation.State memory _attestation,\n bytes memory _attestationData\n ) private returns (bytes32) {\n // Get the indexer that signed the attestation\n address indexer = getAttestationIndexer(_attestation);\n\n // The indexer is disputable\n IHorizonStaking.Provision memory provision = _graphStaking().getProvision(indexer, address(subgraphService));\n require(provision.tokens != 0, DisputeManagerZeroTokens());\n\n // Create a disputeId\n bytes32 disputeId = keccak256(\n abi.encodePacked(\n _attestation.requestCID,\n _attestation.responseCID,\n _attestation.subgraphDeploymentId,\n indexer,\n _fisherman\n )\n );\n\n // Only one dispute for a (indexer, subgraphDeploymentId) at a time\n require(!isDisputeCreated(disputeId), DisputeManagerDisputeAlreadyCreated(disputeId));\n\n // Store dispute\n uint256 stakeSnapshot = _getStakeSnapshot(indexer, provision.tokens);\n disputes[disputeId] = Dispute(\n indexer,\n _fisherman,\n _deposit,\n 0, // no related dispute,\n DisputeType.QueryDispute,\n IDisputeManager.DisputeStatus.Pending,\n block.timestamp,\n stakeSnapshot\n );\n\n emit QueryDisputeCreated(\n disputeId,\n indexer,\n _fisherman,\n _deposit,\n _attestation.subgraphDeploymentId,\n _attestationData,\n stakeSnapshot\n );\n\n return disputeId;\n }\n\n /**\n * @notice Create indexing dispute internal function.\n * @param _fisherman The fisherman creating the dispute\n * @param _deposit Amount of tokens staked as deposit\n * @param _allocationId Allocation disputed\n * @param _poi The POI being disputed\n */\n function _createIndexingDisputeWithAllocation(\n address _fisherman,\n uint256 _deposit,\n address _allocationId,\n bytes32 _poi\n ) private returns (bytes32) {\n // Create a disputeId\n bytes32 disputeId = keccak256(abi.encodePacked(_allocationId, _poi));\n\n // Only one dispute for an allocationId at a time\n require(!isDisputeCreated(disputeId), DisputeManagerDisputeAlreadyCreated(disputeId));\n\n // Allocation must exist\n Allocation.State memory alloc = subgraphService.getAllocation(_allocationId);\n address indexer = alloc.indexer;\n require(indexer != address(0), DisputeManagerIndexerNotFound(_allocationId));\n\n // The indexer must be disputable\n IHorizonStaking.Provision memory provision = _graphStaking().getProvision(indexer, address(subgraphService));\n require(provision.tokens != 0, DisputeManagerZeroTokens());\n\n // Store dispute\n uint256 stakeSnapshot = _getStakeSnapshot(indexer, provision.tokens);\n disputes[disputeId] = Dispute(\n alloc.indexer,\n _fisherman,\n _deposit,\n 0,\n DisputeType.IndexingDispute,\n IDisputeManager.DisputeStatus.Pending,\n block.timestamp,\n stakeSnapshot\n );\n\n emit IndexingDisputeCreated(disputeId, alloc.indexer, _fisherman, _deposit, _allocationId, _poi, stakeSnapshot);\n\n return disputeId;\n }\n\n /**\n * @notice Draw the conflicting dispute if there is any for the one passed to this function.\n * @param _dispute Dispute\n * @return True if resolved\n */\n function _drawDisputeInConflict(Dispute memory _dispute) private returns (bool) {\n if (_isDisputeInConflict(_dispute)) {\n bytes32 relatedDisputeId = _dispute.relatedDisputeId;\n Dispute storage relatedDispute = disputes[relatedDisputeId];\n relatedDispute.status = IDisputeManager.DisputeStatus.Drawn;\n return true;\n }\n return false;\n }\n\n /**\n * @notice Cancel the conflicting dispute if there is any for the one passed to this function.\n * @param _dispute Dispute\n * @return True if cancelled\n */\n function _cancelDisputeInConflict(Dispute memory _dispute) private returns (bool) {\n if (_isDisputeInConflict(_dispute)) {\n bytes32 relatedDisputeId = _dispute.relatedDisputeId;\n Dispute storage relatedDispute = disputes[relatedDisputeId];\n relatedDispute.status = IDisputeManager.DisputeStatus.Cancelled;\n return true;\n }\n return false;\n }\n\n /**\n * @notice Pull `disputeDeposit` from fisherman account.\n */\n function _pullFishermanDeposit() private {\n // Transfer tokens to deposit from fisherman to this contract\n _graphToken().pullTokens(msg.sender, disputeDeposit);\n }\n\n /**\n * @notice Make the subgraph service contract slash the indexer and reward the fisherman.\n * Give the fisherman a reward equal to the fishermanRewardPercentage of slashed amount\n * @param _indexer Address of the indexer\n * @param _tokensSlash Amount of tokens to slash from the indexer\n * @param _tokensStakeSnapshot Snapshot of the indexer's stake at the time of the dispute creation\n */\n function _slashIndexer(\n address _indexer,\n uint256 _tokensSlash,\n uint256 _tokensStakeSnapshot\n ) private returns (uint256) {\n // Get slashable amount for indexer\n IHorizonStaking.Provision memory provision = _graphStaking().getProvision(_indexer, address(subgraphService));\n\n // Ensure slash amount is within the cap\n uint256 maxTokensSlash = _tokensStakeSnapshot.mulPPM(maxSlashingCut);\n require(\n _tokensSlash != 0 && _tokensSlash <= maxTokensSlash,\n DisputeManagerInvalidTokensSlash(_tokensSlash, maxTokensSlash)\n );\n\n // Rewards amount can only be extracted from service provider tokens so\n // we grab the minimum between the slash amount and indexer's tokens\n uint256 maxRewardableTokens = Math.min(_tokensSlash, provision.tokens);\n uint256 tokensRewards = uint256(fishermanRewardCut).mulPPM(maxRewardableTokens);\n\n subgraphService.slash(_indexer, abi.encode(_tokensSlash, tokensRewards));\n return tokensRewards;\n }\n\n /**\n * @notice Internal: Set the arbitrator address.\n * @dev Update the arbitrator to `_arbitrator`\n * @param _arbitrator The address of the arbitration contract or party\n */\n function _setArbitrator(address _arbitrator) private {\n require(_arbitrator != address(0), DisputeManagerInvalidZeroAddress());\n arbitrator = _arbitrator;\n emit ArbitratorSet(_arbitrator);\n }\n\n /**\n * @notice Internal: Set the dispute period.\n * @dev Update the dispute period to `_disputePeriod` in seconds\n * @param _disputePeriod Dispute period in seconds\n */\n function _setDisputePeriod(uint64 _disputePeriod) private {\n require(_disputePeriod != 0, DisputeManagerDisputePeriodZero());\n disputePeriod = _disputePeriod;\n emit DisputePeriodSet(_disputePeriod);\n }\n\n /**\n * @notice Internal: Set the dispute deposit required to create a dispute.\n * @dev Update the dispute deposit to `_disputeDeposit` Graph Tokens\n * @param _disputeDeposit The dispute deposit in Graph Tokens\n */\n function _setDisputeDeposit(uint256 _disputeDeposit) private {\n require(_disputeDeposit != 0, DisputeManagerInvalidDisputeDeposit(_disputeDeposit));\n disputeDeposit = _disputeDeposit;\n emit DisputeDepositSet(_disputeDeposit);\n }\n\n /**\n * @notice Internal: Set the percent reward that the fisherman gets when slashing occurs.\n * @dev Update the reward percentage to `_percentage`\n * @param _fishermanRewardCut Reward as a percentage of indexer stake\n */\n function _setFishermanRewardCut(uint32 _fishermanRewardCut) private {\n require(\n _fishermanRewardCut <= MAX_FISHERMAN_REWARD_CUT,\n DisputeManagerInvalidFishermanReward(_fishermanRewardCut)\n );\n fishermanRewardCut = _fishermanRewardCut;\n emit FishermanRewardCutSet(_fishermanRewardCut);\n }\n\n /**\n * @notice Internal: Set the maximum percentage that can be used for slashing indexers.\n * @param _maxSlashingCut Max percentage slashing for disputes\n */\n function _setMaxSlashingCut(uint32 _maxSlashingCut) private {\n // Must be within 0% to 100% (inclusive)\n require(PPMMath.isValidPPM(_maxSlashingCut), DisputeManagerInvalidMaxSlashingCut(_maxSlashingCut));\n maxSlashingCut = _maxSlashingCut;\n emit MaxSlashingCutSet(maxSlashingCut);\n }\n\n /**\n * @notice Internal: Set the subgraph service address.\n * @dev Update the subgraph service to `_subgraphService`\n * @param _subgraphService The address of the subgraph service contract\n */\n function _setSubgraphService(address _subgraphService) private {\n require(_subgraphService != address(0), DisputeManagerInvalidZeroAddress());\n subgraphService = ISubgraphService(_subgraphService);\n emit SubgraphServiceSet(_subgraphService);\n }\n\n /**\n * @notice Returns whether the dispute is for a conflicting attestation or not.\n * @param _dispute Dispute\n * @return True conflicting attestation dispute\n */\n function _isDisputeInConflict(Dispute memory _dispute) private view returns (bool) {\n bytes32 relatedId = _dispute.relatedDisputeId;\n // this is so the check returns false when rejecting the related dispute.\n return relatedId != 0 && disputes[relatedId].status == IDisputeManager.DisputeStatus.Pending;\n }\n\n /**\n * @notice Get the total stake snapshot for and indexer.\n * @dev A few considerations:\n * - We include both indexer and delegators stake.\n * - Thawing stake is not excluded from the snapshot.\n * - Delegators stake is capped at the delegation ratio to prevent delegators from inflating the snapshot\n * to increase the indexer slash amount.\n * @param _indexer Indexer address\n * @param _indexerStake Indexer's stake\n * @return Total stake snapshot\n */\n function _getStakeSnapshot(address _indexer, uint256 _indexerStake) private view returns (uint256) {\n uint256 delegatorsStake = _graphStaking().getDelegationPool(_indexer, address(subgraphService)).tokens;\n uint256 delegatorsStakeMax = _indexerStake * uint256(subgraphService.getDelegationRatio());\n uint256 stakeSnapshot = _indexerStake + MathUtils.min(delegatorsStake, delegatorsStakeMax);\n return stakeSnapshot;\n }\n}\n" - }, - "contracts/DisputeManagerStorage.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\nimport { IDisputeManager } from \"./interfaces/IDisputeManager.sol\";\nimport { ISubgraphService } from \"./interfaces/ISubgraphService.sol\";\n\nabstract contract DisputeManagerV1Storage {\n /// @notice The Subgraph Service contract address\n ISubgraphService public subgraphService;\n\n /// @notice The arbitrator is solely in control of arbitrating disputes\n address public arbitrator;\n\n /// @notice dispute period in seconds\n uint64 public disputePeriod;\n\n /// @notice Deposit required to create a Dispute\n uint256 public disputeDeposit;\n\n /// @notice Percentage of indexer slashed funds to assign as a reward to fisherman in successful dispute. In PPM.\n uint32 public fishermanRewardCut;\n\n /// @notice Maximum percentage of indexer stake that can be slashed on a dispute. In PPM.\n uint32 public maxSlashingCut;\n\n /// @notice List of disputes created\n mapping(bytes32 disputeId => IDisputeManager.Dispute dispute) public disputes;\n}\n" - }, - "contracts/interfaces/IDisputeManager.sol": { - "content": "// SPDX-License-Identifier: GPL-2.0-or-later\n\npragma solidity 0.8.27;\n\nimport { Attestation } from \"../libraries/Attestation.sol\";\n\ninterface IDisputeManager {\n /// @notice Types of disputes that can be created\n enum DisputeType {\n Null,\n IndexingDispute,\n QueryDispute\n }\n\n /// @notice Status of a dispute\n enum DisputeStatus {\n Null,\n Accepted,\n Rejected,\n Drawn,\n Pending,\n Cancelled\n }\n\n /// @notice Disputes contain info necessary for the Arbitrator to verify and resolve\n struct Dispute {\n // Indexer that is being disputed\n address indexer;\n // Fisherman that created the dispute\n address fisherman;\n // Amount of tokens deposited by the fisherman\n uint256 deposit;\n // Link to a related dispute, used when creating dispute via conflicting attestations\n bytes32 relatedDisputeId;\n // Type of dispute\n DisputeType disputeType;\n // Status of the dispute\n DisputeStatus status;\n // Timestamp when the dispute was created\n uint256 createdAt;\n // Stake snapshot of the indexer at the time of the dispute (includes delegation up to the delegation ratio)\n uint256 stakeSnapshot;\n }\n\n /**\n * @notice Emitted when arbitrator is set.\n * @param arbitrator The address of the arbitrator.\n */\n event ArbitratorSet(address indexed arbitrator);\n\n /**\n * @notice Emitted when dispute period is set.\n * @param disputePeriod The dispute period in seconds.\n */\n event DisputePeriodSet(uint64 disputePeriod);\n\n /**\n * @notice Emitted when dispute deposit is set.\n * @param disputeDeposit The dispute deposit required to create a dispute.\n */\n event DisputeDepositSet(uint256 disputeDeposit);\n\n /**\n * @notice Emitted when max slashing cut is set.\n * @param maxSlashingCut The maximum slashing cut that can be set.\n */\n event MaxSlashingCutSet(uint32 maxSlashingCut);\n\n /**\n * @notice Emitted when fisherman reward cut is set.\n * @param fishermanRewardCut The fisherman reward cut.\n */\n event FishermanRewardCutSet(uint32 fishermanRewardCut);\n\n /**\n * @notice Emitted when subgraph service is set.\n * @param subgraphService The address of the subgraph service.\n */\n event SubgraphServiceSet(address indexed subgraphService);\n\n /**\n * @dev Emitted when a query dispute is created for `subgraphDeploymentId` and `indexer`\n * by `fisherman`.\n * The event emits the amount of `tokens` deposited by the fisherman and `attestation` submitted.\n */\n event QueryDisputeCreated(\n bytes32 indexed disputeId,\n address indexed indexer,\n address indexed fisherman,\n uint256 tokens,\n bytes32 subgraphDeploymentId,\n bytes attestation,\n uint256 stakeSnapshot\n );\n\n /**\n * @dev Emitted when an indexing dispute is created for `allocationId` and `indexer`\n * by `fisherman`.\n * The event emits the amount of `tokens` deposited by the fisherman.\n */\n event IndexingDisputeCreated(\n bytes32 indexed disputeId,\n address indexed indexer,\n address indexed fisherman,\n uint256 tokens,\n address allocationId,\n bytes32 poi,\n uint256 stakeSnapshot\n );\n\n /**\n * @dev Emitted when arbitrator accepts a `disputeId` to `indexer` created by `fisherman`.\n * The event emits the amount `tokens` transferred to the fisherman, the deposit plus reward.\n */\n event DisputeAccepted(\n bytes32 indexed disputeId,\n address indexed indexer,\n address indexed fisherman,\n uint256 tokens\n );\n\n /**\n * @dev Emitted when arbitrator rejects a `disputeId` for `indexer` created by `fisherman`.\n * The event emits the amount `tokens` burned from the fisherman deposit.\n */\n event DisputeRejected(\n bytes32 indexed disputeId,\n address indexed indexer,\n address indexed fisherman,\n uint256 tokens\n );\n\n /**\n * @dev Emitted when arbitrator draw a `disputeId` for `indexer` created by `fisherman`.\n * The event emits the amount `tokens` used as deposit and returned to the fisherman.\n */\n event DisputeDrawn(bytes32 indexed disputeId, address indexed indexer, address indexed fisherman, uint256 tokens);\n\n /**\n * @dev Emitted when two disputes are in conflict to link them.\n * This event will be emitted after each DisputeCreated event is emitted\n * for each of the individual disputes.\n */\n event DisputeLinked(bytes32 indexed disputeId1, bytes32 indexed disputeId2);\n\n /**\n * @dev Emitted when a dispute is cancelled by the fisherman.\n * The event emits the amount `tokens` returned to the fisherman.\n */\n event DisputeCancelled(\n bytes32 indexed disputeId,\n address indexed indexer,\n address indexed fisherman,\n uint256 tokens\n );\n\n // -- Errors --\n\n error DisputeManagerNotArbitrator();\n error DisputeManagerNotFisherman();\n error DisputeManagerInvalidZeroAddress();\n error DisputeManagerDisputePeriodZero();\n error DisputeManagerZeroTokens();\n error DisputeManagerInvalidDispute(bytes32 disputeId);\n error DisputeManagerInvalidDisputeDeposit(uint256 disputeDeposit);\n error DisputeManagerInvalidFishermanReward(uint32 cut);\n error DisputeManagerInvalidMaxSlashingCut(uint32 maxSlashingCut);\n error DisputeManagerInvalidTokensSlash(uint256 tokensSlash, uint256 maxTokensSlash);\n error DisputeManagerDisputeNotPending(IDisputeManager.DisputeStatus status);\n error DisputeManagerDisputeAlreadyCreated(bytes32 disputeId);\n error DisputeManagerDisputePeriodNotFinished();\n error DisputeManagerMustAcceptRelatedDispute(bytes32 disputeId, bytes32 relatedDisputeId);\n error DisputeManagerIndexerNotFound(address allocationId);\n error DisputeManagerNonMatchingSubgraphDeployment(bytes32 subgraphDeploymentId1, bytes32 subgraphDeploymentId2);\n error DisputeManagerNonConflictingAttestations(\n bytes32 requestCID1,\n bytes32 responseCID1,\n bytes32 subgraphDeploymentId1,\n bytes32 requestCID2,\n bytes32 responseCID2,\n bytes32 subgraphDeploymentId2\n );\n\n function setDisputePeriod(uint64 disputePeriod) external;\n\n function setArbitrator(address arbitrator) external;\n\n function setDisputeDeposit(uint256 disputeDeposit) external;\n\n function setFishermanRewardCut(uint32 cut) external;\n\n function setMaxSlashingCut(uint32 maxCut) external;\n\n // -- Dispute --\n\n function createQueryDispute(bytes calldata attestationData) external returns (bytes32);\n\n function createQueryDisputeConflict(\n bytes calldata attestationData1,\n bytes calldata attestationData2\n ) external returns (bytes32, bytes32);\n\n function createIndexingDispute(address allocationId, bytes32 poi) external returns (bytes32);\n\n function acceptDispute(bytes32 disputeId, uint256 tokensSlash) external;\n\n function rejectDispute(bytes32 disputeId) external;\n\n function drawDispute(bytes32 disputeId) external;\n\n function cancelDispute(bytes32 disputeId) external;\n\n function setSubgraphService(address subgraphService) external;\n\n // -- Getters --\n\n function getVerifierCut() external view returns (uint32);\n\n function getDisputePeriod() external view returns (uint64);\n\n function isDisputeCreated(bytes32 disputeId) external view returns (bool);\n\n function encodeReceipt(Attestation.Receipt memory receipt) external view returns (bytes32);\n\n function getAttestationIndexer(Attestation.State memory attestation) external view returns (address);\n\n function getStakeSnapshot(address indexer) external view returns (uint256);\n\n function areConflictingAttestations(\n Attestation.State memory attestation1,\n Attestation.State memory attestation2\n ) external pure returns (bool);\n}\n" - }, - "contracts/interfaces/ISubgraphService.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IDataServiceFees } from \"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\";\nimport { IGraphPayments } from \"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\";\n\nimport { Allocation } from \"../libraries/Allocation.sol\";\nimport { LegacyAllocation } from \"../libraries/LegacyAllocation.sol\";\n\n/**\n * @title Interface for the {SubgraphService} contract\n * @dev This interface extends {IDataServiceFees} and {IDataService}.\n * @notice The Subgraph Service is a data service built on top of Graph Horizon that supports the use case of\n * subgraph indexing and querying. The {SubgraphService} contract implements the flows described in the Data\n * Service framework to allow indexers to register as subgraph service providers, create allocations to signal\n * their commitment to index a subgraph, and collect fees for indexing and querying services.\n */\ninterface ISubgraphService is IDataServiceFees {\n /// @notice Contains details for each indexer\n struct Indexer {\n // Timestamp when the indexer registered\n uint256 registeredAt;\n // The URL where the indexer can be reached at for queries\n string url;\n // The indexer's geo location, expressed as a geo hash\n string geoHash;\n }\n\n /**\n * @notice Emitted when a subgraph service collects query fees from Graph Payments\n * @param serviceProvider The address of the service provider\n * @param tokensCollected The amount of tokens collected\n * @param tokensCurators The amount of tokens curators receive\n */\n event QueryFeesCollected(address indexed serviceProvider, uint256 tokensCollected, uint256 tokensCurators);\n\n /**\n * @notice Emitted when the stake to fees ratio is set.\n * @param ratio The stake to fees ratio\n */\n event StakeToFeesRatioSet(uint256 ratio);\n\n /**\n * @notice Emitted when curator cuts are set\n * @param curationCut The curation cut\n */\n event CurationCutSet(uint256 curationCut);\n\n /**\n * Thrown when trying to set a curation cut that is not a valid PPM value\n * @param curationCut The curation cut value\n */\n error SubgraphServiceInvalidCurationCut(uint256 curationCut);\n\n /**\n * @notice Thrown when an indexer tries to register with an empty URL\n */\n error SubgraphServiceEmptyUrl();\n\n /**\n * @notice Thrown when an indexer tries to register with an empty geohash\n */\n error SubgraphServiceEmptyGeohash();\n\n /**\n * @notice Thrown when an indexer tries to register but they are already registered\n */\n error SubgraphServiceIndexerAlreadyRegistered();\n\n /**\n * @notice Thrown when an indexer tries to perform an operation but they are not registered\n * @param indexer The address of the indexer that is not registered\n */\n error SubgraphServiceIndexerNotRegistered(address indexer);\n\n /**\n * @notice Thrown when an indexer tries to collect fees for an unsupported payment type\n * @param paymentType The payment type that is not supported\n */\n error SubgraphServiceInvalidPaymentType(IGraphPayments.PaymentTypes paymentType);\n\n /**\n * @notice Thrown when the contract GRT balance is inconsistent with the payment amount collected\n * from Graph Payments\n * @param balanceBefore The contract GRT balance before the collection\n * @param balanceAfter The contract GRT balance after the collection\n * @param tokensDataService The amount of tokens sent to the subgraph service\n */\n error SubgraphServiceInconsistentCollection(uint256 balanceBefore, uint256 balanceAfter, uint256 tokensDataService);\n\n /**\n * @notice @notice Thrown when the service provider in the RAV does not match the expected indexer.\n * @param providedIndexer The address of the provided indexer.\n * @param expectedIndexer The address of the expected indexer.\n */\n error SubgraphServiceIndexerMismatch(address providedIndexer, address expectedIndexer);\n\n /**\n * @notice Thrown when the indexer in the allocation state does not match the expected indexer.\n * @param indexer The address of the expected indexer.\n * @param allocationId The id of the allocation.\n */\n error SubgraphServiceAllocationNotAuthorized(address indexer, address allocationId);\n\n /**\n * @notice Thrown when collecting a RAV where the RAV indexer is not the same as the allocation indexer\n * @param ravIndexer The address of the RAV indexer\n * @param allocationIndexer The address of the allocation indexer\n */\n error SubgraphServiceInvalidRAV(address ravIndexer, address allocationIndexer);\n\n /**\n * @notice Thrown when trying to force close an allocation that is not stale and the indexer is not over-allocated\n * @param allocationId The id of the allocation\n */\n error SubgraphServiceCannotForceCloseAllocation(address allocationId);\n\n /**\n * @notice Thrown when trying to force close an altruistic allocation\n * @param allocationId The id of the allocation\n */\n error SubgraphServiceAllocationIsAltruistic(address allocationId);\n\n /**\n * @notice Thrown when trying to set stake to fees ratio to zero\n */\n error SubgraphServiceInvalidZeroStakeToFeesRatio();\n\n /**\n * @notice Force close an allocation\n * @dev This function can be permissionlessly called when the allocation is stale or\n * if the indexer is over-allocated. This ensures that rewards for other allocations are\n * not diluted by an inactive allocation, and that over-allocated indexers stop accumulating\n * rewards with tokens they no longer have allocated.\n *\n * Requirements:\n * - Allocation must exist and be open\n * - Allocation must be stale or indexer must be over-allocated\n * - Allocation cannot be altruistic\n *\n * Emits a {AllocationClosed} event.\n *\n * @param allocationId The id of the allocation\n */\n function forceCloseAllocation(address allocationId) external;\n\n /**\n * @notice Change the amount of tokens in an allocation\n * @dev Requirements:\n * - The indexer must be registered\n * - The provision must be valid according to the subgraph service rules\n * - `tokens` must be different from the current allocation size\n * - The indexer must have enough available tokens to allocate if they are upsizing the allocation\n *\n * Emits a {AllocationResized} event.\n *\n * See {AllocationManager-_resizeAllocation} for more details.\n *\n * @param indexer The address of the indexer\n * @param allocationId The id of the allocation\n * @param tokens The new amount of tokens in the allocation\n */\n function resizeAllocation(address indexer, address allocationId, uint256 tokens) external;\n\n /**\n * @notice Imports a legacy allocation id into the subgraph service\n * This is a governor only action that is required to prevent indexers from re-using allocation ids from the\n * legacy staking contract.\n * @param indexer The address of the indexer\n * @param allocationId The id of the allocation\n * @param subgraphDeploymentId The id of the subgraph deployment\n */\n function migrateLegacyAllocation(address indexer, address allocationId, bytes32 subgraphDeploymentId) external;\n\n /**\n * @notice Sets a pause guardian\n * @param pauseGuardian The address of the pause guardian\n * @param allowed True if the pause guardian is allowed to pause the contract, false otherwise\n */\n function setPauseGuardian(address pauseGuardian, bool allowed) external;\n\n /**\n * @notice Sets the minimum amount of provisioned tokens required to create an allocation\n * @param minimumProvisionTokens The minimum amount of provisioned tokens required to create an allocation\n */\n function setMinimumProvisionTokens(uint256 minimumProvisionTokens) external;\n\n /**\n * @notice Sets the delegation ratio\n * @param delegationRatio The delegation ratio\n */\n function setDelegationRatio(uint32 delegationRatio) external;\n\n /**\n * @notice Sets the stake to fees ratio\n * @param stakeToFeesRatio The stake to fees ratio\n */\n function setStakeToFeesRatio(uint256 stakeToFeesRatio) external;\n\n /**\n * @notice Sets the max POI staleness\n * See {AllocationManagerV1Storage-maxPOIStaleness} for more details.\n * @param maxPOIStaleness The max POI staleness in seconds\n */\n function setMaxPOIStaleness(uint256 maxPOIStaleness) external;\n\n /**\n * @notice Sets the curators payment cut for query fees\n * @dev Emits a {CuratorCutSet} event\n * @param curationCut The curation cut for the payment type\n */\n function setCurationCut(uint256 curationCut) external;\n\n /**\n * @notice Sets the rewards destination for an indexer to receive indexing rewards\n * @dev Emits a {RewardsDestinationSet} event\n * @param rewardsDestination The address where indexing rewards should be sent\n */\n function setRewardsDestination(address rewardsDestination) external;\n\n /**\n * @notice Gets the details of an allocation\n * For legacy allocations use {getLegacyAllocation}\n * @param allocationId The id of the allocation\n */\n function getAllocation(address allocationId) external view returns (Allocation.State memory);\n\n /**\n * @notice Gets the details of a legacy allocation\n * For non-legacy allocations use {getAllocation}\n * @param allocationId The id of the allocation\n */\n function getLegacyAllocation(address allocationId) external view returns (LegacyAllocation.State memory);\n\n /**\n * @notice Encodes the allocation proof for EIP712 signing\n * @param indexer The address of the indexer\n * @param allocationId The id of the allocation\n */\n function encodeAllocationProof(address indexer, address allocationId) external view returns (bytes32);\n\n /**\n * @notice Checks if an allocation is stale\n * @param allocationId The id of the allocation\n * @return True if the allocation is stale, false otherwise\n */\n function isStaleAllocation(address allocationId) external view returns (bool);\n\n /**\n * @notice Checks if an indexer is over-allocated\n * @param allocationId The id of the allocation\n * @return True if the indexer is over-allocated, false otherwise\n */\n function isOverAllocated(address allocationId) external view returns (bool);\n}\n" - }, - "contracts/libraries/Allocation.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { Math } from \"@openzeppelin/contracts/utils/math/Math.sol\";\n\n/**\n * @title Allocation library\n * @notice A library to handle Allocations.\n */\nlibrary Allocation {\n using Allocation for State;\n\n /**\n * @notice Allocation details\n */\n struct State {\n // Indexer that owns the allocation\n address indexer;\n // Subgraph deployment id the allocation is for\n bytes32 subgraphDeploymentId;\n // Number of tokens allocated\n uint256 tokens;\n // Timestamp when the allocation was created\n uint256 createdAt;\n // Timestamp when the allocation was closed\n uint256 closedAt;\n // Timestamp when the last POI was presented\n uint256 lastPOIPresentedAt;\n // Accumulated rewards per allocated token\n uint256 accRewardsPerAllocatedToken;\n // Accumulated rewards that are pending to be claimed due allocation resize\n uint256 accRewardsPending;\n }\n\n /**\n * @notice Thrown when attempting to create an allocation with an existing id\n * @param allocationId The allocation id\n */\n error AllocationAlreadyExists(address allocationId);\n\n /**\n * @notice Thrown when trying to perform an operation on a non-existent allocation\n * @param allocationId The allocation id\n */\n error AllocationDoesNotExist(address allocationId);\n\n /**\n * @notice Thrown when trying to perform an operation on a closed allocation\n * @param allocationId The allocation id\n * @param closedAt The timestamp when the allocation was closed\n */\n error AllocationClosed(address allocationId, uint256 closedAt);\n\n /**\n * @notice Create a new allocation\n * @dev Requirements:\n * - The allocation must not exist\n * @param self The allocation list mapping\n * @param indexer The indexer that owns the allocation\n * @param allocationId The allocation id\n * @param subgraphDeploymentId The subgraph deployment id the allocation is for\n * @param tokens The number of tokens allocated\n * @param accRewardsPerAllocatedToken The initial accumulated rewards per allocated token\n */\n function create(\n mapping(address => State) storage self,\n address indexer,\n address allocationId,\n bytes32 subgraphDeploymentId,\n uint256 tokens,\n uint256 accRewardsPerAllocatedToken\n ) internal returns (State memory) {\n require(!self[allocationId].exists(), AllocationAlreadyExists(allocationId));\n\n State memory allocation = State({\n indexer: indexer,\n subgraphDeploymentId: subgraphDeploymentId,\n tokens: tokens,\n createdAt: block.timestamp,\n closedAt: 0,\n lastPOIPresentedAt: 0,\n accRewardsPerAllocatedToken: accRewardsPerAllocatedToken,\n accRewardsPending: 0\n });\n\n self[allocationId] = allocation;\n\n return allocation;\n }\n\n /**\n * @notice Present a POI for an allocation\n * @dev It only updates the last POI presented timestamp.\n * Requirements:\n * - The allocation must be open\n * @param self The allocation list mapping\n * @param allocationId The allocation id\n */\n function presentPOI(mapping(address => State) storage self, address allocationId) internal {\n State storage allocation = _get(self, allocationId);\n require(allocation.isOpen(), AllocationClosed(allocationId, allocation.closedAt));\n allocation.lastPOIPresentedAt = block.timestamp;\n }\n\n /**\n * @notice Update the accumulated rewards per allocated token for an allocation\n * @dev Requirements:\n * - The allocation must be open\n * @param self The allocation list mapping\n * @param allocationId The allocation id\n * @param accRewardsPerAllocatedToken The new accumulated rewards per allocated token\n */\n function snapshotRewards(\n mapping(address => State) storage self,\n address allocationId,\n uint256 accRewardsPerAllocatedToken\n ) internal {\n State storage allocation = _get(self, allocationId);\n require(allocation.isOpen(), AllocationClosed(allocationId, allocation.closedAt));\n allocation.accRewardsPerAllocatedToken = accRewardsPerAllocatedToken;\n }\n\n /**\n * @notice Update the accumulated rewards pending to be claimed for an allocation\n * @dev Requirements:\n * - The allocation must be open\n * @param self The allocation list mapping\n * @param allocationId The allocation id\n */\n function clearPendingRewards(mapping(address => State) storage self, address allocationId) internal {\n State storage allocation = _get(self, allocationId);\n require(allocation.isOpen(), AllocationClosed(allocationId, allocation.closedAt));\n allocation.accRewardsPending = 0;\n }\n\n /**\n * @notice Close an allocation\n * @dev Requirements:\n * - The allocation must be open\n * @param self The allocation list mapping\n * @param allocationId The allocation id\n */\n function close(mapping(address => State) storage self, address allocationId) internal {\n State storage allocation = _get(self, allocationId);\n require(allocation.isOpen(), AllocationClosed(allocationId, allocation.closedAt));\n allocation.closedAt = block.timestamp;\n }\n\n /**\n * @notice Get an allocation\n * @param self The allocation list mapping\n * @param allocationId The allocation id\n */\n function get(mapping(address => State) storage self, address allocationId) internal view returns (State memory) {\n return _get(self, allocationId);\n }\n\n /**\n * @notice Checks if an allocation is stale\n * @param self The allocation\n * @param staleThreshold The time in blocks to consider an allocation stale\n */\n function isStale(State memory self, uint256 staleThreshold) internal view returns (bool) {\n uint256 timeSinceLastPOI = block.timestamp - Math.max(self.createdAt, self.lastPOIPresentedAt);\n return self.isOpen() && timeSinceLastPOI > staleThreshold;\n }\n\n /**\n * @notice Checks if an allocation exists\n * @param self The allocation\n */\n function exists(State memory self) internal pure returns (bool) {\n return self.createdAt != 0;\n }\n\n /**\n * @notice Checks if an allocation is open\n * @param self The allocation\n */\n function isOpen(State memory self) internal pure returns (bool) {\n return self.exists() && self.closedAt == 0;\n }\n\n /**\n * @notice Checks if an allocation is alturistic\n * @param self The allocation\n */\n function isAltruistic(State memory self) internal pure returns (bool) {\n return self.exists() && self.tokens == 0;\n }\n\n /**\n * @notice Get the allocation for an allocation id\n * @dev Reverts if the allocation does not exist\n * @param self The allocation list mapping\n * @param allocationId The allocation id\n */\n function _get(mapping(address => State) storage self, address allocationId) private view returns (State storage) {\n State storage allocation = self[allocationId];\n require(allocation.exists(), AllocationDoesNotExist(allocationId));\n return allocation;\n }\n}\n" - }, - "contracts/libraries/Attestation.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\n/**\n * @title Attestation library\n * @notice A library to handle Attestation.\n */\nlibrary Attestation {\n /// @notice Receipt content sent from the service provider in response to request\n struct Receipt {\n bytes32 requestCID;\n bytes32 responseCID;\n bytes32 subgraphDeploymentId;\n }\n\n /// @notice Attestation sent from the service provider in response to a request\n struct State {\n bytes32 requestCID;\n bytes32 responseCID;\n bytes32 subgraphDeploymentId;\n bytes32 r;\n bytes32 s;\n uint8 v;\n }\n\n /// @notice Attestation size is the sum of the receipt (96) + signature (65)\n uint256 private constant RECEIPT_SIZE_BYTES = 96;\n\n uint256 private constant SIG_R_LENGTH = 32;\n uint256 private constant SIG_S_LENGTH = 32;\n uint256 private constant SIG_V_LENGTH = 1;\n uint256 private constant SIG_R_OFFSET = RECEIPT_SIZE_BYTES;\n uint256 private constant SIG_S_OFFSET = RECEIPT_SIZE_BYTES + SIG_R_LENGTH;\n uint256 private constant SIG_V_OFFSET = RECEIPT_SIZE_BYTES + SIG_R_LENGTH + SIG_S_LENGTH;\n uint256 private constant SIG_SIZE_BYTES = SIG_R_LENGTH + SIG_S_LENGTH + SIG_V_LENGTH;\n\n uint256 private constant ATTESTATION_SIZE_BYTES = RECEIPT_SIZE_BYTES + SIG_SIZE_BYTES;\n\n uint256 private constant UINT8_BYTE_LENGTH = 1;\n uint256 private constant BYTES32_BYTE_LENGTH = 32;\n\n error AttestationInvalidBytesLength(uint256 length, uint256 expectedLength);\n\n /**\n * @dev Returns if two attestations are conflicting.\n * Everything must match except for the responseId.\n * @param _attestation1 Attestation\n * @param _attestation2 Attestation\n * @return True if the two attestations are conflicting\n */\n function areConflicting(\n Attestation.State memory _attestation1,\n Attestation.State memory _attestation2\n ) internal pure returns (bool) {\n return (_attestation1.requestCID == _attestation2.requestCID &&\n _attestation1.subgraphDeploymentId == _attestation2.subgraphDeploymentId &&\n _attestation1.responseCID != _attestation2.responseCID);\n }\n\n /**\n * @dev Parse the bytes attestation into a struct from `_data`.\n * @return Attestation struct\n */\n function parse(bytes memory _data) internal pure returns (State memory) {\n // Check attestation data length\n require(\n _data.length == ATTESTATION_SIZE_BYTES,\n AttestationInvalidBytesLength(_data.length, ATTESTATION_SIZE_BYTES)\n );\n\n // Decode receipt\n (bytes32 requestCID, bytes32 responseCID, bytes32 subgraphDeploymentId) = abi.decode(\n _data,\n (bytes32, bytes32, bytes32)\n );\n\n // Decode signature\n // Signature is expected to be in the order defined in the Attestation struct\n bytes32 r = _toBytes32(_data, SIG_R_OFFSET);\n bytes32 s = _toBytes32(_data, SIG_S_OFFSET);\n uint8 v = _toUint8(_data, SIG_V_OFFSET);\n\n return State(requestCID, responseCID, subgraphDeploymentId, r, s, v);\n }\n\n /**\n * @dev Parse a uint8 from `_bytes` starting at offset `_start`.\n * @return uint8 value\n */\n function _toUint8(bytes memory _bytes, uint256 _start) private pure returns (uint8) {\n require(\n _bytes.length >= _start + UINT8_BYTE_LENGTH,\n AttestationInvalidBytesLength(_bytes.length, _start + UINT8_BYTE_LENGTH)\n );\n uint8 tempUint;\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n // Load the 32-byte word from memory starting at `_bytes + _start + 1`\n // The `0x1` accounts for the fact that we want only the first byte (uint8)\n // of the loaded 32 bytes.\n tempUint := mload(add(add(_bytes, 0x1), _start))\n }\n\n return tempUint;\n }\n\n /**\n * @dev Parse a bytes32 from `_bytes` starting at offset `_start`.\n * @return bytes32 value\n */\n function _toBytes32(bytes memory _bytes, uint256 _start) private pure returns (bytes32) {\n require(\n _bytes.length >= _start + BYTES32_BYTE_LENGTH,\n AttestationInvalidBytesLength(_bytes.length, _start + BYTES32_BYTE_LENGTH)\n );\n bytes32 tempBytes32;\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempBytes32;\n }\n}\n" - }, - "contracts/libraries/LegacyAllocation.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\n/**\n * @title LegacyAllocation library\n * @notice A library to handle legacy Allocations.\n */\nlibrary LegacyAllocation {\n using LegacyAllocation for State;\n\n /**\n * @notice Legacy allocation details\n * @dev Note that we are only storing the indexer and subgraphDeploymentId. The main point of tracking legacy allocations\n * is to prevent them from being re used on the Subgraph Service. We don't need to store the rest of the allocation details.\n */\n struct State {\n address indexer;\n bytes32 subgraphDeploymentId;\n }\n\n /**\n * @notice Thrown when attempting to migrate an allocation with an existing id\n * @param allocationId The allocation id\n */\n error LegacyAllocationExists(address allocationId);\n\n /**\n * @notice Thrown when trying to get a non-existent allocation\n * @param allocationId The allocation id\n */\n error LegacyAllocationDoesNotExist(address allocationId);\n\n /**\n * @notice Thrown when trying to migrate an allocation that has already been migrated\n * @param allocationId The allocation id\n */\n error LegacyAllocationAlreadyMigrated(address allocationId);\n\n /**\n * @notice Migrate a legacy allocation\n * @dev Requirements:\n * - The allocation must not have been previously migrated\n * @param self The legacy allocation list mapping\n * @param indexer The indexer that owns the allocation\n * @param allocationId The allocation id\n * @param subgraphDeploymentId The subgraph deployment id the allocation is for\n * @custom:error LegacyAllocationAlreadyMigrated if the allocation has already been migrated\n */\n function migrate(\n mapping(address => State) storage self,\n address indexer,\n address allocationId,\n bytes32 subgraphDeploymentId\n ) internal {\n require(!self[allocationId].exists(), LegacyAllocationAlreadyMigrated(allocationId));\n\n State memory allocation = State({ indexer: indexer, subgraphDeploymentId: subgraphDeploymentId });\n self[allocationId] = allocation;\n }\n\n /**\n * @notice Get a legacy allocation\n * @param self The legacy allocation list mapping\n * @param allocationId The allocation id\n */\n function get(mapping(address => State) storage self, address allocationId) internal view returns (State memory) {\n return _get(self, allocationId);\n }\n\n /**\n * @notice Revert if a legacy allocation exists\n * @param self The legacy allocation list mapping\n * @param allocationId The allocation id\n */\n function revertIfExists(mapping(address => State) storage self, address allocationId) internal view {\n require(!self[allocationId].exists(), LegacyAllocationExists(allocationId));\n }\n\n /**\n * @notice Check if a legacy allocation exists\n * @param self The legacy allocation\n */\n function exists(State memory self) internal pure returns (bool) {\n return self.indexer != address(0);\n }\n\n /**\n * @notice Get a legacy allocation\n * @param self The legacy allocation list mapping\n * @param allocationId The allocation id\n */\n function _get(mapping(address => State) storage self, address allocationId) private view returns (State storage) {\n State storage allocation = self[allocationId];\n require(allocation.exists(), LegacyAllocationDoesNotExist(allocationId));\n return allocation;\n }\n}\n" - }, - "contracts/SubgraphService.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IGraphPayments } from \"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\";\nimport { IGraphToken } from \"@graphprotocol/contracts/contracts/token/IGraphToken.sol\";\nimport { ITAPCollector } from \"@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol\";\nimport { IRewardsIssuer } from \"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\";\nimport { ISubgraphService } from \"./interfaces/ISubgraphService.sol\";\n\nimport { OwnableUpgradeable } from \"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\";\nimport { MulticallUpgradeable } from \"@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol\";\nimport { Initializable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport { DataServicePausableUpgradeable } from \"@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol\";\nimport { DataService } from \"@graphprotocol/horizon/contracts/data-service/DataService.sol\";\nimport { DataServiceFees } from \"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol\";\nimport { Directory } from \"./utilities/Directory.sol\";\nimport { AllocationManager } from \"./utilities/AllocationManager.sol\";\nimport { SubgraphServiceV1Storage } from \"./SubgraphServiceStorage.sol\";\n\nimport { TokenUtils } from \"@graphprotocol/contracts/contracts/utils/TokenUtils.sol\";\nimport { PPMMath } from \"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\";\nimport { Allocation } from \"./libraries/Allocation.sol\";\nimport { LegacyAllocation } from \"./libraries/LegacyAllocation.sol\";\n\n/**\n * @title SubgraphService contract\n * @custom:security-contact Please email security+contracts@thegraph.com if you find any\n * bugs. We may have an active bug bounty program.\n */\ncontract SubgraphService is\n Initializable,\n OwnableUpgradeable,\n MulticallUpgradeable,\n DataService,\n DataServicePausableUpgradeable,\n DataServiceFees,\n Directory,\n AllocationManager,\n SubgraphServiceV1Storage,\n IRewardsIssuer,\n ISubgraphService\n{\n using PPMMath for uint256;\n using Allocation for mapping(address => Allocation.State);\n using Allocation for Allocation.State;\n using TokenUtils for IGraphToken;\n\n /**\n * @notice Checks that an indexer is registered\n * @param indexer The address of the indexer\n */\n modifier onlyRegisteredIndexer(address indexer) {\n require(indexers[indexer].registeredAt != 0, SubgraphServiceIndexerNotRegistered(indexer));\n _;\n }\n\n /**\n * @notice Constructor for the SubgraphService contract\n * @dev DataService and Directory constructors set a bunch of immutable variables\n * @param graphController The address of the Graph Controller contract\n * @param disputeManager The address of the DisputeManager contract\n * @param tapCollector The address of the TAPCollector contract\n * @param curation The address of the Curation contract\n */\n constructor(\n address graphController,\n address disputeManager,\n address tapCollector,\n address curation\n ) DataService(graphController) Directory(address(this), disputeManager, tapCollector, curation) {\n _disableInitializers();\n }\n\n /**\n * @notice Initialize the contract\n * @dev The thawingPeriod and verifierCut ranges are not set here because they are variables\n * on the DisputeManager. We use the {ProvisionManager} overrideable getters to get the ranges.\n * @param minimumProvisionTokens The minimum amount of provisioned tokens required to create an allocation\n * @param maximumDelegationRatio The maximum delegation ratio allowed for an allocation\n * @param stakeToFeesRatio The ratio of stake to fees to lock when collecting query fees\n */\n function initialize(\n uint256 minimumProvisionTokens,\n uint32 maximumDelegationRatio,\n uint256 stakeToFeesRatio\n ) external initializer {\n __Ownable_init(msg.sender);\n __Multicall_init();\n __DataService_init();\n __DataServicePausable_init();\n __AllocationManager_init(\"SubgraphService\", \"1.0\");\n\n _setProvisionTokensRange(minimumProvisionTokens, type(uint256).max);\n _setDelegationRatio(maximumDelegationRatio);\n _setStakeToFeesRatio(stakeToFeesRatio);\n }\n\n /**\n * @notice\n * @dev Implements {IDataService.register}\n *\n * Requirements:\n * - The indexer must not be already registered\n * - The URL must not be empty\n * - The provision must be valid according to the subgraph service rules\n *\n * Emits a {ServiceProviderRegistered} event\n *\n * @param indexer The address of the indexer to register\n * @param data Encoded registration data:\n * - address `url`: The URL of the indexer\n * - string `geohash`: The geohash of the indexer\n * - address `rewardsDestination`: The address where the indexer wants to receive indexing rewards.\n * Use zero address for automatic reprovisioning to the subgraph service.\n */\n function register(\n address indexer,\n bytes calldata data\n ) external override onlyAuthorizedForProvision(indexer) onlyValidProvision(indexer) whenNotPaused {\n (string memory url, string memory geohash, address rewardsDestination) = abi.decode(\n data,\n (string, string, address)\n );\n\n require(bytes(url).length > 0, SubgraphServiceEmptyUrl());\n require(bytes(geohash).length > 0, SubgraphServiceEmptyGeohash());\n require(indexers[indexer].registeredAt == 0, SubgraphServiceIndexerAlreadyRegistered());\n\n // Register the indexer\n indexers[indexer] = Indexer({ registeredAt: block.timestamp, url: url, geoHash: geohash });\n if (rewardsDestination != address(0)) {\n _setRewardsDestination(indexer, rewardsDestination);\n }\n\n emit ServiceProviderRegistered(indexer, data);\n }\n\n /**\n * @notice Accept staged parameters in the provision of a service provider\n * @dev Implements {IDataService-acceptProvisionPendingParameters}\n *\n * Requirements:\n * - The indexer must be registered\n * - Must have previously staged provision parameters, using {IHorizonStaking-setProvisionParameters}\n * - The new provision parameters must be valid according to the subgraph service rules\n *\n * Emits a {ProvisionPendingParametersAccepted} event\n *\n * @param indexer The address of the indexer to accept the provision for\n */\n function acceptProvisionPendingParameters(\n address indexer,\n bytes calldata\n ) external override onlyAuthorizedForProvision(indexer) onlyRegisteredIndexer(indexer) whenNotPaused {\n _checkProvisionTokens(indexer);\n _acceptProvisionParameters(indexer);\n emit ProvisionPendingParametersAccepted(indexer);\n }\n\n /**\n * @notice Allocates tokens to subgraph deployment, manifesting the indexer's commitment to index it\n * @dev This is the equivalent of the `allocate` function in the legacy Staking contract.\n *\n * Requirements:\n * - The indexer must be registered\n * - The provision must be valid according to the subgraph service rules\n * - Allocation id cannot be zero\n * - Allocation id cannot be reused from the legacy staking contract\n * - The indexer must have enough available tokens to allocate\n *\n * The `allocationProof` is a 65-bytes Ethereum signed message of `keccak256(indexerAddress,allocationId)`.\n *\n * See {AllocationManager-allocate} for more details.\n *\n * Emits {ServiceStarted} and {AllocationCreated} events\n *\n * @param indexer The address of the indexer\n * @param data Encoded data:\n * - bytes32 `subgraphDeploymentId`: The id of the subgraph deployment\n * - uint256 `tokens`: The amount of tokens to allocate\n * - address `allocationId`: The id of the allocation\n * - bytes `allocationProof`: Signed proof of the allocation id address ownership\n */\n function startService(\n address indexer,\n bytes calldata data\n )\n external\n override\n onlyAuthorizedForProvision(indexer)\n onlyValidProvision(indexer)\n onlyRegisteredIndexer(indexer)\n whenNotPaused\n {\n (bytes32 subgraphDeploymentId, uint256 tokens, address allocationId, bytes memory allocationProof) = abi.decode(\n data,\n (bytes32, uint256, address, bytes)\n );\n _allocate(indexer, allocationId, subgraphDeploymentId, tokens, allocationProof, delegationRatio);\n emit ServiceStarted(indexer, data);\n }\n\n /**\n * @notice Close an allocation, indicating that the indexer has stopped indexing the subgraph deployment\n * @dev This is the equivalent of the `closeAllocation` function in the legacy Staking contract.\n * There are a few notable differences with the legacy function:\n * - allocations are nowlong lived. All service payments, including indexing rewards, should be collected periodically\n * without the need of closing the allocation. Allocations should only be closed when indexers want to reclaim the allocated\n * tokens for other purposes.\n * - No POI is required to close an allocation. Indexers should present POIs to collect indexing rewards using {collect}.\n *\n * Requirements:\n * - The indexer must be registered\n * - Allocation must exist and be open\n *\n * Emits {ServiceStopped} and {AllocationClosed} events\n *\n * @param indexer The address of the indexer\n * @param data Encoded data:\n * - address `allocationId`: The id of the allocation\n */\n function stopService(\n address indexer,\n bytes calldata data\n ) external override onlyAuthorizedForProvision(indexer) onlyRegisteredIndexer(indexer) whenNotPaused {\n address allocationId = abi.decode(data, (address));\n require(\n allocations.get(allocationId).indexer == indexer,\n SubgraphServiceAllocationNotAuthorized(indexer, allocationId)\n );\n _closeAllocation(allocationId);\n emit ServiceStopped(indexer, data);\n }\n\n /**\n * @notice Collects payment for the service provided by the indexer\n * Allows collecting different types of payments such as query fees and indexing rewards.\n * It uses Graph Horizon payments protocol to process payments.\n * Reverts if the payment type is not supported.\n * @dev This function is the equivalent of the `collect` function for query fees and the `closeAllocation` function\n * for indexing rewards in the legacy Staking contract.\n *\n * Requirements:\n * - The indexer must be registered\n * - The provision must be valid according to the subgraph service rules\n *\n * Emits a {ServicePaymentCollected} event. Emits payment type specific events.\n *\n * For query fees, see {SubgraphService-_collectQueryFees} for more details.\n * For indexing rewards, see {AllocationManager-_collectIndexingRewards} for more details.\n *\n * @param indexer The address of the indexer\n * @param paymentType The type of payment to collect as defined in {IGraphPayments}\n * @param data Encoded data to fulfill the payment. The structure of the data depends on the payment type. See above.\n */\n function collect(\n address indexer,\n IGraphPayments.PaymentTypes paymentType,\n bytes calldata data\n )\n external\n override\n onlyAuthorizedForProvision(indexer)\n onlyValidProvision(indexer)\n onlyRegisteredIndexer(indexer)\n whenNotPaused\n returns (uint256)\n {\n uint256 paymentCollected = 0;\n\n if (paymentType == IGraphPayments.PaymentTypes.QueryFee) {\n ITAPCollector.SignedRAV memory signedRav = abi.decode(data, (ITAPCollector.SignedRAV));\n require(\n signedRav.rav.serviceProvider == indexer,\n SubgraphServiceIndexerMismatch(signedRav.rav.serviceProvider, indexer)\n );\n paymentCollected = _collectQueryFees(signedRav);\n } else if (paymentType == IGraphPayments.PaymentTypes.IndexingRewards) {\n (address allocationId, bytes32 poi) = abi.decode(data, (address, bytes32));\n require(\n allocations.get(allocationId).indexer == indexer,\n SubgraphServiceAllocationNotAuthorized(indexer, allocationId)\n );\n paymentCollected = _collectIndexingRewards(allocationId, poi, delegationRatio);\n } else {\n revert SubgraphServiceInvalidPaymentType(paymentType);\n }\n\n emit ServicePaymentCollected(indexer, paymentType, paymentCollected);\n return paymentCollected;\n }\n\n /**\n * @notice Slash an indexer\n * @dev Slashing is delegated to the {DisputeManager} contract which is the only one that can call this\n * function.\n *\n * See {IHorizonStaking-slash} for more details.\n *\n * Emits a {ServiceProviderSlashed} event.\n *\n * @param indexer The address of the indexer to be slashed\n * @param data Encoded data:\n * - uint256 `tokens`: The amount of tokens to slash\n * - uint256 `reward`: The amount of tokens to reward the slasher\n */\n function slash(address indexer, bytes calldata data) external override onlyDisputeManager {\n (uint256 tokens, uint256 reward) = abi.decode(data, (uint256, uint256));\n _graphStaking().slash(indexer, tokens, reward, address(_disputeManager()));\n emit ServiceProviderSlashed(indexer, tokens);\n }\n\n /**\n * @notice See {ISubgraphService.closeStaleAllocation}\n */\n function forceCloseAllocation(address allocationId) external override {\n Allocation.State memory allocation = allocations.get(allocationId);\n bool isStale = allocation.isStale(maxPOIStaleness);\n bool isOverAllocated_ = _isOverAllocated(allocation.indexer, delegationRatio);\n require(isStale || isOverAllocated_, SubgraphServiceCannotForceCloseAllocation(allocationId));\n require(!allocation.isAltruistic(), SubgraphServiceAllocationIsAltruistic(allocationId));\n _closeAllocation(allocationId);\n }\n\n /**\n * @notice See {ISubgraphService.resizeAllocation}\n */\n function resizeAllocation(\n address indexer,\n address allocationId,\n uint256 tokens\n )\n external\n onlyAuthorizedForProvision(indexer)\n onlyValidProvision(indexer)\n onlyRegisteredIndexer(indexer)\n whenNotPaused\n {\n require(\n allocations.get(allocationId).indexer == indexer,\n SubgraphServiceAllocationNotAuthorized(indexer, allocationId)\n );\n _resizeAllocation(allocationId, tokens, delegationRatio);\n }\n\n /**\n * @notice See {ISubgraphService.migrateLegacyAllocation}\n */\n function migrateLegacyAllocation(\n address indexer,\n address allocationId,\n bytes32 subgraphDeploymentID\n ) external override onlyOwner {\n _migrateLegacyAllocation(indexer, allocationId, subgraphDeploymentID);\n }\n\n /**\n * @notice See {ISubgraphService.setPauseGuardian}\n */\n function setPauseGuardian(address pauseGuardian, bool allowed) external override onlyOwner {\n _setPauseGuardian(pauseGuardian, allowed);\n }\n\n /**\n * @notice See {ISubgraphService.setRewardsDestination}\n */\n function setRewardsDestination(address rewardsDestination) external override {\n _setRewardsDestination(msg.sender, rewardsDestination);\n }\n\n /**\n * @notice See {ISubgraphService.setMinimumProvisionTokens}\n */\n function setMinimumProvisionTokens(uint256 minimumProvisionTokens) external override onlyOwner {\n _setProvisionTokensRange(minimumProvisionTokens, DEFAULT_MAX_PROVISION_TOKENS);\n }\n\n /**\n * @notice See {ISubgraphService.setDelegationRatio}\n */\n function setDelegationRatio(uint32 delegationRatio) external override onlyOwner {\n _setDelegationRatio(delegationRatio);\n }\n\n /**\n * @notice See {ISubgraphService.setStakeToFeesRatio}\n */\n function setStakeToFeesRatio(uint256 stakeToFeesRatio_) external override onlyOwner {\n _setStakeToFeesRatio(stakeToFeesRatio_);\n }\n\n /**\n * @notice See {ISubgraphService.setMaxPOIStaleness}\n */\n function setMaxPOIStaleness(uint256 maxPOIStaleness) external override onlyOwner {\n _setMaxPOIStaleness(maxPOIStaleness);\n }\n\n /**\n * @notice See {ISubgraphService.setCurationCut}\n */\n function setCurationCut(uint256 curationCut) external override onlyOwner {\n require(PPMMath.isValidPPM(curationCut), SubgraphServiceInvalidCurationCut(curationCut));\n curationFeesCut = curationCut;\n emit CurationCutSet(curationCut);\n }\n\n /**\n * @notice See {ISubgraphService.getAllocation}\n */\n function getAllocation(address allocationId) external view override returns (Allocation.State memory) {\n return allocations[allocationId];\n }\n\n /**\n * @notice Get allocation data to calculate rewards issuance\n * @dev Implements {IRewardsIssuer.getAllocationData}\n * @dev Note that this is slightly different than {getAllocation}. It returns an\n * unstructured subset of the allocation data, which is the minimum required to mint rewards.\n *\n * Should only be used by the {RewardsManager}.\n *\n * @param allocationId The allocation Id\n * @return indexer The indexer address\n * @return subgraphDeploymentId Subgraph deployment id for the allocation\n * @return tokens Amount of allocated tokens\n * @return accRewardsPerAllocatedToken Rewards snapshot\n */\n function getAllocationData(\n address allocationId\n ) external view override returns (address, bytes32, uint256, uint256, uint256) {\n Allocation.State memory allo = allocations[allocationId];\n return (\n allo.indexer,\n allo.subgraphDeploymentId,\n allo.tokens,\n allo.accRewardsPerAllocatedToken,\n allo.accRewardsPending\n );\n }\n\n /**\n * @notice Return the total amount of tokens allocated to subgraph.\n * @dev Implements {IRewardsIssuer.getSubgraphAllocatedTokens}\n * @dev To be used by the {RewardsManager}.\n * @param subgraphDeploymentId Deployment Id for the subgraph\n * @return Total tokens allocated to subgraph\n */\n function getSubgraphAllocatedTokens(bytes32 subgraphDeploymentId) external view override returns (uint256) {\n return subgraphAllocatedTokens[subgraphDeploymentId];\n }\n\n /**\n * @notice Check if an allocation is open\n * @dev Implements {IRewardsIssuer.isAllocationActive}\n * @dev To be used by the {RewardsManager}.\n *\n * @param allocationId The allocation Id\n * @return Wether or not the allocation is active\n */\n function isActiveAllocation(address allocationId) external view override returns (bool) {\n return allocations[allocationId].isOpen();\n }\n\n /**\n * @notice See {ISubgraphService.getLegacyAllocation}\n */\n function getLegacyAllocation(address allocationId) external view override returns (LegacyAllocation.State memory) {\n return legacyAllocations[allocationId];\n }\n\n /**\n * @notice See {ISubgraphService.encodeAllocationProof}\n */\n function encodeAllocationProof(address indexer, address allocationId) external view override returns (bytes32) {\n return _encodeAllocationProof(indexer, allocationId);\n }\n\n /**\n * @notice See {ISubgraphService.isStaleAllocation}\n */\n function isStaleAllocation(address allocationId) external view override returns (bool) {\n return allocations.get(allocationId).isStale(maxPOIStaleness);\n }\n\n /**\n * @notice See {ISubgraphService.isOverAllocated}\n */\n function isOverAllocated(address indexer) external view override returns (bool) {\n return _isOverAllocated(indexer, delegationRatio);\n }\n\n // -- Data service parameter getters --\n /**\n * @notice Getter for the accepted thawing period range for provisions\n * @dev This override ensures {ProvisionManager} uses the thawing period from the {DisputeManager}\n * @return min The minimum thawing period which is defined by {DisputeManager-getDisputePeriod}\n * @return max The maximum is unbounded\n */\n function _getThawingPeriodRange() internal view override returns (uint64 min, uint64 max) {\n return (_disputeManager().getDisputePeriod(), DEFAULT_MAX_THAWING_PERIOD);\n }\n\n /**\n * @notice Getter for the accepted verifier cut range for provisions\n * @return min The minimum verifier cut which is defined by {DisputeManager-getVerifierCut}\n * @return max The maximum is 100% in PPM\n */\n function _getVerifierCutRange() internal view override returns (uint32 min, uint32 max) {\n return (_disputeManager().getVerifierCut(), DEFAULT_MAX_VERIFIER_CUT);\n }\n\n /**\n * @notice Collect query fees\n * Stake equal to the amount being collected times the `stakeToFeesRatio` is locked into a stake claim.\n * This claim can be released at a later stage once expired.\n *\n * It's important to note that before collecting this function will attempt to release any expired stake claims.\n * This could lead to an out of gas error if there are too many expired claims. In that case, the indexer will need to\n * manually release the claims, see {IDataServiceFees-releaseStake}, before attempting to collect again.\n *\n * @dev This function is the equivalent of the legacy `collect` function for query fees.\n * @dev Uses the {TAPCollector} to collect payment from Graph Horizon payments protocol.\n * Fees are distributed to service provider and delegators by {GraphPayments}, though curators\n * share is distributed by this function.\n *\n * Query fees can be collected on closed allocations.\n *\n * Requirements:\n * - Indexer must have enough available tokens to lock as economic security for fees\n *\n * Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.\n * Emits a {StakeClaimLocked} event.\n * Emits a {QueryFeesCollected} event.\n *\n * @param _signedRav Signed RAV\n */\n function _collectQueryFees(ITAPCollector.SignedRAV memory _signedRav) private returns (uint256 feesCollected) {\n address indexer = _signedRav.rav.serviceProvider;\n address allocationId = abi.decode(_signedRav.rav.metadata, (address));\n Allocation.State memory allocation = allocations.get(allocationId);\n\n // Check RAV is consistent - RAV indexer must match the allocation's indexer\n require(allocation.indexer == indexer, SubgraphServiceInvalidRAV(indexer, allocation.indexer));\n bytes32 subgraphDeploymentId = allocation.subgraphDeploymentId;\n\n // release expired stake claims\n _releaseStake(indexer, 0);\n\n // Collect from GraphPayments - only curators cut is sent back to the subgraph service\n uint256 balanceBefore = _graphToken().balanceOf(address(this));\n\n uint256 curationCut = _curation().isCurated(subgraphDeploymentId) ? curationFeesCut : 0;\n uint256 tokensCollected = _tapCollector().collect(\n IGraphPayments.PaymentTypes.QueryFee,\n abi.encode(_signedRav, curationCut)\n );\n uint256 tokensCurators = tokensCollected.mulPPM(curationCut);\n\n uint256 balanceAfter = _graphToken().balanceOf(address(this));\n require(\n balanceBefore + tokensCurators == balanceAfter,\n SubgraphServiceInconsistentCollection(balanceBefore, balanceAfter, tokensCurators)\n );\n\n if (tokensCollected > 0) {\n // lock stake as economic security for fees\n uint256 tokensToLock = tokensCollected * stakeToFeesRatio;\n uint256 unlockTimestamp = block.timestamp + _disputeManager().getDisputePeriod();\n _lockStake(indexer, tokensToLock, unlockTimestamp);\n\n if (tokensCurators > 0) {\n // curation collection changes subgraph signal so we take rewards snapshot\n _graphRewardsManager().onSubgraphSignalUpdate(subgraphDeploymentId);\n\n // Send GRT and bookkeep by calling collect()\n _graphToken().pushTokens(address(_curation()), tokensCurators);\n _curation().collect(subgraphDeploymentId, tokensCurators);\n }\n }\n\n emit QueryFeesCollected(indexer, tokensCollected, tokensCurators);\n return tokensCollected;\n }\n\n function _setStakeToFeesRatio(uint256 _stakeToFeesRatio) private {\n require(_stakeToFeesRatio != 0, SubgraphServiceInvalidZeroStakeToFeesRatio());\n stakeToFeesRatio = _stakeToFeesRatio;\n emit StakeToFeesRatioSet(_stakeToFeesRatio);\n }\n}\n" - }, - "contracts/SubgraphServiceStorage.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { ISubgraphService } from \"./interfaces/ISubgraphService.sol\";\n\nabstract contract SubgraphServiceV1Storage {\n /// @notice Service providers registered in the data service\n mapping(address indexer => ISubgraphService.Indexer details) public indexers;\n\n ///@notice Multiplier for how many tokens back collected query fees\n uint256 public stakeToFeesRatio;\n\n /// @notice The cut curators take from query fee payments\n uint256 public curationFeesCut;\n}\n" - }, - "contracts/utilities/AllocationManager.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IGraphPayments } from \"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\";\nimport { IGraphToken } from \"@graphprotocol/contracts/contracts/token/IGraphToken.sol\";\nimport { IHorizonStakingTypes } from \"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\";\n\nimport { GraphDirectory } from \"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\";\nimport { AllocationManagerV1Storage } from \"./AllocationManagerStorage.sol\";\n\nimport { TokenUtils } from \"@graphprotocol/contracts/contracts/utils/TokenUtils.sol\";\nimport { ECDSA } from \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport { EIP712Upgradeable } from \"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\";\nimport { Allocation } from \"../libraries/Allocation.sol\";\nimport { LegacyAllocation } from \"../libraries/LegacyAllocation.sol\";\nimport { PPMMath } from \"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\";\nimport { ProvisionTracker } from \"@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol\";\n\n/**\n * @title AllocationManager contract\n * @notice A helper contract implementing allocation lifecycle management.\n * Allows opening, resizing, and closing allocations, as well as collecting indexing rewards by presenting a Proof\n * of Indexing (POI).\n */\nabstract contract AllocationManager is EIP712Upgradeable, GraphDirectory, AllocationManagerV1Storage {\n using ProvisionTracker for mapping(address => uint256);\n using Allocation for mapping(address => Allocation.State);\n using Allocation for Allocation.State;\n using LegacyAllocation for mapping(address => LegacyAllocation.State);\n using PPMMath for uint256;\n using TokenUtils for IGraphToken;\n\n ///@dev EIP712 typehash for allocation proof\n bytes32 private constant EIP712_ALLOCATION_PROOF_TYPEHASH =\n keccak256(\"AllocationIdProof(address indexer,address allocationId)\");\n\n /**\n * @notice Emitted when an indexer creates an allocation\n * @param indexer The address of the indexer\n * @param allocationId The id of the allocation\n * @param subgraphDeploymentId The id of the subgraph deployment\n * @param tokens The amount of tokens allocated\n */\n event AllocationCreated(\n address indexed indexer,\n address indexed allocationId,\n bytes32 indexed subgraphDeploymentId,\n uint256 tokens\n );\n\n /**\n * @notice Emitted when an indexer collects indexing rewards for an allocation\n * @param indexer The address of the indexer\n * @param allocationId The id of the allocation\n * @param subgraphDeploymentId The id of the subgraph deployment\n * @param tokensRewards The amount of tokens collected\n * @param tokensIndexerRewards The amount of tokens collected for the indexer\n * @param tokensDelegationRewards The amount of tokens collected for delegators\n * @param poi The POI presented\n * @param currentEpoch The current epoch\n */\n event IndexingRewardsCollected(\n address indexed indexer,\n address indexed allocationId,\n bytes32 indexed subgraphDeploymentId,\n uint256 tokensRewards,\n uint256 tokensIndexerRewards,\n uint256 tokensDelegationRewards,\n bytes32 poi,\n uint256 currentEpoch\n );\n\n /**\n * @notice Emitted when an indexer resizes an allocation\n * @param indexer The address of the indexer\n * @param allocationId The id of the allocation\n * @param subgraphDeploymentId The id of the subgraph deployment\n * @param newTokens The new amount of tokens allocated\n * @param oldTokens The old amount of tokens allocated\n */\n event AllocationResized(\n address indexed indexer,\n address indexed allocationId,\n bytes32 indexed subgraphDeploymentId,\n uint256 newTokens,\n uint256 oldTokens\n );\n\n /**\n * @dev Emitted when an indexer closes an allocation\n * @param indexer The address of the indexer\n * @param allocationId The id of the allocation\n * @param subgraphDeploymentId The id of the subgraph deployment\n * @param tokens The amount of tokens allocated\n */\n event AllocationClosed(\n address indexed indexer,\n address indexed allocationId,\n bytes32 indexed subgraphDeploymentId,\n uint256 tokens\n );\n\n /**\n * @notice Emitted when a legacy allocation is migrated into the subgraph service\n * @param indexer The address of the indexer\n * @param allocationId The id of the allocation\n * @param subgraphDeploymentId The id of the subgraph deployment\n */\n event LegacyAllocationMigrated(\n address indexed indexer,\n address indexed allocationId,\n bytes32 indexed subgraphDeploymentId\n );\n\n /**\n * @notice Emitted when an indexer sets a new indexing rewards destination\n * @param indexer The address of the indexer\n * @param rewardsDestination The address where indexing rewards should be sent\n */\n event RewardsDestinationSet(address indexed indexer, address indexed rewardsDestination);\n\n /**\n * @notice Emitted when the maximum POI staleness is updated\n * @param maxPOIStaleness The max POI staleness in seconds\n */\n event MaxPOIStalenessSet(uint256 maxPOIStaleness);\n\n /**\n * @notice Thrown when an allocation proof is invalid\n * Both `signer` and `allocationId` should match for a valid proof.\n * @param signer The address that signed the proof\n * @param allocationId The id of the allocation\n */\n error AllocationManagerInvalidAllocationProof(address signer, address allocationId);\n\n /**\n * @notice Thrown when attempting to create an allocation with a zero allocation id\n */\n error AllocationManagerInvalidZeroAllocationId();\n\n /**\n * @notice Thrown when attempting to collect indexing rewards on a closed allocationl\n * @param allocationId The id of the allocation\n */\n error AllocationManagerAllocationClosed(address allocationId);\n\n /**\n * @notice Thrown when attempting to resize an allocation with the same size\n * @param allocationId The id of the allocation\n * @param tokens The amount of tokens\n */\n error AllocationManagerAllocationSameSize(address allocationId, uint256 tokens);\n\n /**\n * @notice Initializes the contract and parent contracts\n */\n // solhint-disable-next-line func-name-mixedcase\n function __AllocationManager_init(string memory _name, string memory _version) internal onlyInitializing {\n __EIP712_init(_name, _version);\n __AllocationManager_init_unchained(_name, _version);\n }\n\n /**\n * @notice Initializes the contract\n */\n // solhint-disable-next-line func-name-mixedcase\n function __AllocationManager_init_unchained(\n string memory _name,\n string memory _version\n ) internal onlyInitializing {}\n\n /**\n * @notice Imports a legacy allocation id into the subgraph service\n * This is a governor only action that is required to prevent indexers from re-using allocation ids from the\n * legacy staking contract. It will revert with LegacyAllocationAlreadyMigrated if the allocation has already been migrated.\n * @param _indexer The address of the indexer\n * @param _allocationId The id of the allocation\n * @param _subgraphDeploymentId The id of the subgraph deployment\n */\n function _migrateLegacyAllocation(address _indexer, address _allocationId, bytes32 _subgraphDeploymentId) internal {\n legacyAllocations.migrate(_indexer, _allocationId, _subgraphDeploymentId);\n emit LegacyAllocationMigrated(_indexer, _allocationId, _subgraphDeploymentId);\n }\n\n /**\n * @notice Create an allocation\n * @dev The `_allocationProof` is a 65-bytes Ethereum signed message of `keccak256(indexerAddress,allocationId)`\n *\n * Requirements:\n * - `_allocationId` must not be the zero address\n *\n * Emits a {AllocationCreated} event\n *\n * @param _indexer The address of the indexer\n * @param _allocationId The id of the allocation to be created\n * @param _subgraphDeploymentId The subgraph deployment Id\n * @param _tokens The amount of tokens to allocate\n * @param _allocationProof Signed proof of allocation id address ownership\n * @param _delegationRatio The delegation ratio to consider when locking tokens\n */\n function _allocate(\n address _indexer,\n address _allocationId,\n bytes32 _subgraphDeploymentId,\n uint256 _tokens,\n bytes memory _allocationProof,\n uint32 _delegationRatio\n ) internal returns (Allocation.State memory) {\n require(_allocationId != address(0), AllocationManagerInvalidZeroAllocationId());\n\n _verifyAllocationProof(_indexer, _allocationId, _allocationProof);\n\n // Ensure allocation id is not reused\n // need to check both subgraph service (on allocations.create()) and legacy allocations\n legacyAllocations.revertIfExists(_allocationId);\n Allocation.State memory allocation = allocations.create(\n _indexer,\n _allocationId,\n _subgraphDeploymentId,\n _tokens,\n _graphRewardsManager().onSubgraphAllocationUpdate(_subgraphDeploymentId)\n );\n\n // Check that the indexer has enough tokens available\n // Note that the delegation ratio ensures overdelegation cannot be used\n allocationProvisionTracker.lock(_graphStaking(), _indexer, _tokens, _delegationRatio);\n\n // Update total allocated tokens for the subgraph deployment\n subgraphAllocatedTokens[allocation.subgraphDeploymentId] =\n subgraphAllocatedTokens[allocation.subgraphDeploymentId] +\n allocation.tokens;\n\n emit AllocationCreated(_indexer, _allocationId, _subgraphDeploymentId, allocation.tokens);\n return allocation;\n }\n\n /**\n * @notice Present a POI to collect indexing rewards for an allocation\n * This function will mint indexing rewards using the {RewardsManager} and distribute them to the indexer and delegators.\n *\n * To qualify for indexing rewards:\n * - POI must be non-zero\n * - POI must not be stale, i.e: older than `maxPOIStaleness`\n * - allocation must not be altruistic (allocated tokens = 0)\n *\n * Note that indexers are required to periodically (at most every `maxPOIStaleness`) present POIs to collect rewards.\n * Rewards will not be issued to stale POIs, which means that indexers are advised to present a zero POI if they are\n * unable to present a valid one to prevent being locked out of future rewards.\n *\n * Emits a {IndexingRewardsCollected} event.\n *\n * @param _allocationId The id of the allocation to collect rewards for\n * @param _poi The POI being presented\n */\n function _collectIndexingRewards(\n address _allocationId,\n bytes32 _poi,\n uint32 _delegationRatio\n ) internal returns (uint256) {\n Allocation.State memory allocation = allocations.get(_allocationId);\n require(allocation.isOpen(), AllocationManagerAllocationClosed(_allocationId));\n\n // Mint indexing rewards if all conditions are met\n uint256 tokensRewards = (!allocation.isStale(maxPOIStaleness) &&\n !allocation.isAltruistic() &&\n _poi != bytes32(0))\n ? _graphRewardsManager().takeRewards(_allocationId)\n : 0;\n\n // ... but we still take a snapshot to ensure the rewards are not accumulated for the next valid POI\n allocations.snapshotRewards(\n _allocationId,\n _graphRewardsManager().onSubgraphAllocationUpdate(allocation.subgraphDeploymentId)\n );\n allocations.presentPOI(_allocationId);\n\n // Any pending rewards should have been collected now\n allocations.clearPendingRewards(_allocationId);\n\n uint256 tokensIndexerRewards = 0;\n uint256 tokensDelegationRewards = 0;\n if (tokensRewards != 0) {\n // Distribute rewards to delegators\n uint256 delegatorCut = _graphStaking().getDelegationFeeCut(\n allocation.indexer,\n address(this),\n IGraphPayments.PaymentTypes.IndexingRewards\n );\n IHorizonStakingTypes.DelegationPool memory delegationPool = _graphStaking().getDelegationPool(\n allocation.indexer,\n address(this)\n );\n // If delegation pool has no shares then we don't need to distribute rewards to delegators\n tokensDelegationRewards = delegationPool.shares > 0 ? tokensRewards.mulPPM(delegatorCut) : 0;\n if (tokensDelegationRewards > 0) {\n _graphToken().approve(address(_graphStaking()), tokensDelegationRewards);\n _graphStaking().addToDelegationPool(allocation.indexer, address(this), tokensDelegationRewards);\n }\n\n // Distribute rewards to indexer\n tokensIndexerRewards = tokensRewards - tokensDelegationRewards;\n if (tokensIndexerRewards > 0) {\n address rewardsDestination = rewardsDestination[allocation.indexer];\n if (rewardsDestination == address(0)) {\n _graphToken().approve(address(_graphStaking()), tokensIndexerRewards);\n _graphStaking().stakeToProvision(allocation.indexer, address(this), tokensIndexerRewards);\n } else {\n _graphToken().pushTokens(rewardsDestination, tokensIndexerRewards);\n }\n }\n }\n\n emit IndexingRewardsCollected(\n allocation.indexer,\n _allocationId,\n allocation.subgraphDeploymentId,\n tokensRewards,\n tokensIndexerRewards,\n tokensDelegationRewards,\n _poi,\n _graphEpochManager().currentEpoch()\n );\n\n // Check if the indexer is over-allocated and close the allocation if necessary\n if (_isOverAllocated(allocation.indexer, _delegationRatio)) {\n _closeAllocation(_allocationId);\n }\n\n return tokensRewards;\n }\n\n /**\n * @notice Resize an allocation\n * @dev Will lock or release tokens in the provision tracker depending on the new allocation size.\n * Rewards accrued but not issued before the resize will be accounted for as pending rewards.\n * These will be paid out when the indexer presents a POI.\n *\n * Requirements:\n * - `_indexer` must be the owner of the allocation\n * - Allocation must be open\n * - `_tokens` must be different from the current allocation size\n *\n * Emits a {AllocationResized} event.\n *\n * @param _allocationId The id of the allocation to be resized\n * @param _tokens The new amount of tokens to allocate\n * @param _delegationRatio The delegation ratio to consider when locking tokens\n */\n function _resizeAllocation(\n address _allocationId,\n uint256 _tokens,\n uint32 _delegationRatio\n ) internal returns (Allocation.State memory) {\n Allocation.State memory allocation = allocations.get(_allocationId);\n require(allocation.isOpen(), AllocationManagerAllocationClosed(_allocationId));\n require(_tokens != allocation.tokens, AllocationManagerAllocationSameSize(_allocationId, _tokens));\n\n // Update provision tracker\n uint256 oldTokens = allocation.tokens;\n if (_tokens > oldTokens) {\n allocationProvisionTracker.lock(_graphStaking(), allocation.indexer, _tokens - oldTokens, _delegationRatio);\n } else {\n allocationProvisionTracker.release(allocation.indexer, oldTokens - _tokens);\n }\n\n // Calculate rewards that have been accrued since the last snapshot but not yet issued\n uint256 accRewardsPerAllocatedToken = _graphRewardsManager().onSubgraphAllocationUpdate(\n allocation.subgraphDeploymentId\n );\n uint256 accRewardsPerAllocatedTokenPending = !allocation.isAltruistic()\n ? accRewardsPerAllocatedToken - allocation.accRewardsPerAllocatedToken\n : 0;\n\n // Update the allocation\n allocations[_allocationId].tokens = _tokens;\n allocations[_allocationId].accRewardsPerAllocatedToken = accRewardsPerAllocatedToken;\n allocations[_allocationId].accRewardsPending += _graphRewardsManager().calcRewards(\n oldTokens,\n accRewardsPerAllocatedTokenPending\n );\n\n // Update total allocated tokens for the subgraph deployment\n if (_tokens > oldTokens) {\n subgraphAllocatedTokens[allocation.subgraphDeploymentId] += (_tokens - oldTokens);\n } else {\n subgraphAllocatedTokens[allocation.subgraphDeploymentId] -= (oldTokens - _tokens);\n }\n\n emit AllocationResized(allocation.indexer, _allocationId, allocation.subgraphDeploymentId, _tokens, oldTokens);\n return allocations[_allocationId];\n }\n\n /**\n * @notice Close an allocation\n * Does not require presenting a POI, use {_collectIndexingRewards} to present a POI and collect rewards\n * @dev Note that allocations are nowlong lived. All service payments, including indexing rewards, should be collected periodically\n * without the need of closing the allocation. Allocations should only be closed when indexers want to reclaim the allocated\n * tokens for other purposes.\n *\n * Emits a {AllocationClosed} event\n *\n * @param _allocationId The id of the allocation to be closed\n */\n function _closeAllocation(address _allocationId) internal {\n Allocation.State memory allocation = allocations.get(_allocationId);\n\n // Take rewards snapshot to prevent other allos from counting tokens from this allo\n allocations.snapshotRewards(\n _allocationId,\n _graphRewardsManager().onSubgraphAllocationUpdate(allocation.subgraphDeploymentId)\n );\n\n allocations.close(_allocationId);\n allocationProvisionTracker.release(allocation.indexer, allocation.tokens);\n\n // Update total allocated tokens for the subgraph deployment\n subgraphAllocatedTokens[allocation.subgraphDeploymentId] =\n subgraphAllocatedTokens[allocation.subgraphDeploymentId] -\n allocation.tokens;\n\n emit AllocationClosed(allocation.indexer, _allocationId, allocation.subgraphDeploymentId, allocation.tokens);\n }\n\n /**\n * @notice Sets the rewards destination for an indexer to receive indexing rewards\n * @dev Emits a {RewardsDestinationSet} event\n * @param _rewardsDestination The address where indexing rewards should be sent\n */\n function _setRewardsDestination(address _indexer, address _rewardsDestination) internal {\n rewardsDestination[_indexer] = _rewardsDestination;\n emit RewardsDestinationSet(_indexer, _rewardsDestination);\n }\n\n /**\n * @notice Sets the maximum amount of time, in seconds, allowed between presenting POIs to qualify for indexing rewards\n * @dev Emits a {MaxPOIStalenessSet} event\n * @param _maxPOIStaleness The max POI staleness in seconds\n */\n function _setMaxPOIStaleness(uint256 _maxPOIStaleness) internal {\n maxPOIStaleness = _maxPOIStaleness;\n emit MaxPOIStalenessSet(_maxPOIStaleness);\n }\n\n /**\n * @notice Gets the details of an allocation\n * @param _allocationId The id of the allocation\n */\n function _getAllocation(address _allocationId) internal view returns (Allocation.State memory) {\n return allocations.get(_allocationId);\n }\n\n /**\n * @notice Gets the details of a legacy allocation\n * @param _allocationId The id of the legacy allocation\n */\n function _getLegacyAllocation(address _allocationId) internal view returns (LegacyAllocation.State memory) {\n return legacyAllocations.get(_allocationId);\n }\n\n /**\n * @notice Encodes the allocation proof for EIP712 signing\n * @param _indexer The address of the indexer\n * @param _allocationId The id of the allocation\n */\n function _encodeAllocationProof(address _indexer, address _allocationId) internal view returns (bytes32) {\n return _hashTypedDataV4(keccak256(abi.encode(EIP712_ALLOCATION_PROOF_TYPEHASH, _indexer, _allocationId)));\n }\n\n /**\n * @notice Checks if an allocation is over-allocated\n * @param _indexer The address of the indexer\n * @param _delegationRatio The delegation ratio to consider when locking tokens\n * @return True if the allocation is over-allocated, false otherwise\n */\n function _isOverAllocated(address _indexer, uint32 _delegationRatio) internal view returns (bool) {\n return !allocationProvisionTracker.check(_graphStaking(), _indexer, _delegationRatio);\n }\n\n /**\n * @notice Verifies ownership of an allocation id by verifying an EIP712 allocation proof\n * @dev Requirements:\n * - Signer must be the allocation id address\n * @param _indexer The address of the indexer\n * @param _allocationId The id of the allocation\n * @param _proof The EIP712 proof, an EIP712 signed message of (indexer,allocationId)\n */\n function _verifyAllocationProof(address _indexer, address _allocationId, bytes memory _proof) private view {\n address signer = ECDSA.recover(_encodeAllocationProof(_indexer, _allocationId), _proof);\n require(signer == _allocationId, AllocationManagerInvalidAllocationProof(signer, _allocationId));\n }\n}\n" - }, - "contracts/utilities/AllocationManagerStorage.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { Allocation } from \"../libraries/Allocation.sol\";\nimport { LegacyAllocation } from \"../libraries/LegacyAllocation.sol\";\n\nabstract contract AllocationManagerV1Storage {\n /// @notice Allocation details\n mapping(address allocationId => Allocation.State allocation) public allocations;\n\n /// @notice Legacy allocation details\n mapping(address allocationId => LegacyAllocation.State allocation) public legacyAllocations;\n\n /// @notice Tracks allocated tokens per indexer\n mapping(address indexer => uint256 tokens) public allocationProvisionTracker;\n\n /// @notice Maximum amount of time, in seconds, allowed between presenting POIs to qualify for indexing rewards\n uint256 public maxPOIStaleness;\n\n /// @notice Destination of accrued indexing rewards\n mapping(address indexer => address destination) public rewardsDestination;\n\n /// @notice Track total tokens allocated per subgraph deployment\n /// @dev Used to calculate indexing rewards\n mapping(bytes32 subgraphDeploymentId => uint256 tokens) public subgraphAllocatedTokens;\n\n /// @dev Gap to allow adding variables in future upgrades\n uint256[50] private __gap;\n}\n" - }, - "contracts/utilities/AttestationManager.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { AttestationManagerV1Storage } from \"./AttestationManagerStorage.sol\";\n\nimport { ECDSA } from \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport { Initializable } from \"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\";\nimport { Attestation } from \"../libraries/Attestation.sol\";\n\n/**\n * @title AttestationManager contract\n * @notice A helper contract implementing attestation verification.\n * Uses a custom implementation of EIP712 for backwards compatibility with attestations.\n */\nabstract contract AttestationManager is Initializable, AttestationManagerV1Storage {\n /// @notice EIP712 type hash for Receipt struct\n bytes32 private constant RECEIPT_TYPE_HASH =\n keccak256(\"Receipt(bytes32 requestCID,bytes32 responseCID,bytes32 subgraphDeploymentID)\");\n\n /// @notice EIP712 domain type hash\n bytes32 private constant DOMAIN_TYPE_HASH =\n keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract,bytes32 salt)\");\n\n /// @notice EIP712 domain name\n bytes32 private constant DOMAIN_NAME_HASH = keccak256(\"Graph Protocol\");\n\n /// @notice EIP712 domain version\n bytes32 private constant DOMAIN_VERSION_HASH = keccak256(\"0\");\n\n /// @notice EIP712 domain salt\n bytes32 private constant DOMAIN_SALT = 0xa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c2;\n\n /**\n * @dev Initialize the AttestationManager contract and parent contracts\n */\n // solhint-disable-next-line func-name-mixedcase\n function __AttestationManager_init() internal onlyInitializing {\n __AttestationManager_init_unchained();\n }\n\n /**\n * @dev Initialize the AttestationManager contract\n */\n // solhint-disable-next-line func-name-mixedcase\n function __AttestationManager_init_unchained() internal onlyInitializing {\n _domainSeparator = keccak256(\n abi.encode(\n DOMAIN_TYPE_HASH,\n DOMAIN_NAME_HASH,\n DOMAIN_VERSION_HASH,\n block.chainid,\n address(this),\n DOMAIN_SALT\n )\n );\n }\n\n /**\n * @dev Recover the signer address of the `_attestation`.\n * @param _attestation The attestation struct\n * @return Signer address\n */\n function _recoverSigner(Attestation.State memory _attestation) internal view returns (address) {\n // Obtain the hash of the fully-encoded message, per EIP-712 encoding\n Attestation.Receipt memory receipt = Attestation.Receipt(\n _attestation.requestCID,\n _attestation.responseCID,\n _attestation.subgraphDeploymentId\n );\n bytes32 messageHash = _encodeReceipt(receipt);\n\n // Obtain the signer of the fully-encoded EIP-712 message hash\n // NOTE: The signer of the attestation is the indexer that served the request\n return ECDSA.recover(messageHash, abi.encodePacked(_attestation.r, _attestation.s, _attestation.v));\n }\n\n /**\n * @dev Get the message hash that a indexer used to sign the receipt.\n * Encodes a receipt using a domain separator, as described on\n * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-712.md#specification.\n * @notice Return the message hash used to sign the receipt\n * @param _receipt Receipt returned by indexer and submitted by fisherman\n * @return Message hash used to sign the receipt\n */\n function _encodeReceipt(Attestation.Receipt memory _receipt) internal view returns (bytes32) {\n return\n keccak256(\n abi.encodePacked(\n \"\\x19\\x01\", // EIP-191 encoding pad, EIP-712 version 1\n _domainSeparator,\n keccak256(\n abi.encode(\n RECEIPT_TYPE_HASH,\n _receipt.requestCID,\n _receipt.responseCID,\n _receipt.subgraphDeploymentId\n ) // EIP 712-encoded message hash\n )\n )\n );\n }\n}\n" - }, - "contracts/utilities/AttestationManagerStorage.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nabstract contract AttestationManagerV1Storage {\n /// @dev EIP712 domain separator\n bytes32 internal _domainSeparator;\n\n /// @dev Gap to allow adding variables in future upgrades\n uint256[50] private __gap;\n}\n" - }, - "contracts/utilities/Directory.sol": { - "content": "// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity 0.8.27;\n\nimport { IDisputeManager } from \"../interfaces/IDisputeManager.sol\";\nimport { ISubgraphService } from \"../interfaces/ISubgraphService.sol\";\nimport { ITAPCollector } from \"@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol\";\nimport { ICuration } from \"@graphprotocol/contracts/contracts/curation/ICuration.sol\";\n\n/**\n * @title Directory contract\n * @notice This contract is meant to be inherited by {SubgraphService} contract.\n * It contains the addresses of the contracts that the contract interacts with.\n * Uses immutable variables to minimize gas costs.\n */\nabstract contract Directory {\n /// @notice The Subgraph Service contract address\n ISubgraphService private immutable SUBGRAPH_SERVICE;\n\n /// @notice The Dispute Manager contract address\n IDisputeManager private immutable DISPUTE_MANAGER;\n\n /// @notice The TAP Collector contract address\n /// @dev Required to collect payments via Graph Horizon payments protocol\n ITAPCollector private immutable TAP_COLLECTOR;\n\n /// @notice The Curation contract address\n /// @dev Required for curation fees distribution\n ICuration private immutable CURATION;\n\n /**\n * @notice Emitted when the Directory is initialized\n * @param subgraphService The Subgraph Service contract address\n * @param disputeManager The Dispute Manager contract address\n * @param tapCollector The TAP Collector contract address\n * @param curation The Curation contract address\n */\n event SubgraphServiceDirectoryInitialized(\n address subgraphService,\n address disputeManager,\n address tapCollector,\n address curation\n );\n\n /**\n * @notice Thrown when the caller is not the Dispute Manager\n * @param caller The caller address\n * @param disputeManager The Dispute Manager address\n */\n error DirectoryNotDisputeManager(address caller, address disputeManager);\n\n /**\n * @notice Checks that the caller is the Dispute Manager\n */\n modifier onlyDisputeManager() {\n require(\n msg.sender == address(DISPUTE_MANAGER),\n DirectoryNotDisputeManager(msg.sender, address(DISPUTE_MANAGER))\n );\n _;\n }\n\n /**\n * @notice Constructor for the Directory contract\n * @param subgraphService The Subgraph Service contract address\n * @param disputeManager The Dispute Manager contract address\n * @param tapCollector The TAP Collector contract address\n * @param curation The Curation contract address\n */\n constructor(address subgraphService, address disputeManager, address tapCollector, address curation) {\n SUBGRAPH_SERVICE = ISubgraphService(subgraphService);\n DISPUTE_MANAGER = IDisputeManager(disputeManager);\n TAP_COLLECTOR = ITAPCollector(tapCollector);\n CURATION = ICuration(curation);\n\n emit SubgraphServiceDirectoryInitialized(subgraphService, disputeManager, tapCollector, curation);\n }\n\n /**\n * @notice Returns the Subgraph Service contract address\n */\n function _subgraphService() internal view returns (ISubgraphService) {\n return SUBGRAPH_SERVICE;\n }\n\n /**\n * @notice Returns the Dispute Manager contract address\n */\n function _disputeManager() internal view returns (IDisputeManager) {\n return DISPUTE_MANAGER;\n }\n\n /**\n * @notice Returns the TAP Collector contract address\n */\n function _tapCollector() internal view returns (ITAPCollector) {\n return TAP_COLLECTOR;\n }\n\n /**\n * @notice Returns the Curation contract address\n */\n function _curation() internal view returns (ICuration) {\n return CURATION;\n }\n}\n" - } - }, - "settings": { - "optimizer": { - "enabled": true, - "runs": 50 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata", - "storageLayout" - ], - "": [ - "ast" - ] - } - } - } - }, - "output": { - "sources": { - "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol": { - "ast": { - "absolutePath": "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol", - "exportedSymbols": { - "ITokenGateway": [ - 41 - ] - }, - "id": 42, - "license": "Apache-2.0", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "913:33:0" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ITokenGateway", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "id": 41, - "linearizedBaseContracts": [ - 41 - ], - "name": "ITokenGateway", - "nameLocation": "958:13:0", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 2, - "nodeType": "StructuredDocumentation", - "src": "1298:81:0", - "text": "@notice event deprecated in favor of DepositFinalized and WithdrawalFinalized" - }, - "functionSelector": "d2ce7d65", - "id": 19, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "outboundTransfer", - "nameLocation": "1626:16:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 15, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4, - "mutability": "mutable", - "name": "token", - "nameLocation": "1660:5:0", - "nodeType": "VariableDeclaration", - "scope": 19, - "src": "1652:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1652:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6, - "mutability": "mutable", - "name": "to", - "nameLocation": "1683:2:0", - "nodeType": "VariableDeclaration", - "scope": 19, - "src": "1675:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1675:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8, - "mutability": "mutable", - "name": "amunt", - "nameLocation": "1703:5:0", - "nodeType": "VariableDeclaration", - "scope": 19, - "src": "1695:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1695:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10, - "mutability": "mutable", - "name": "maxas", - "nameLocation": "1726:5:0", - "nodeType": "VariableDeclaration", - "scope": 19, - "src": "1718:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1718:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12, - "mutability": "mutable", - "name": "gasPiceBid", - "nameLocation": "1749:10:0", - "nodeType": "VariableDeclaration", - "scope": 19, - "src": "1741:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1741:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 14, - "mutability": "mutable", - "name": "data", - "nameLocation": "1784:4:0", - "nodeType": "VariableDeclaration", - "scope": 19, - "src": "1769:19:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 13, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1769:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1642:152:0" - }, - "returnParameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 17, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 19, - "src": "1821:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 16, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1821:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1820:14:0" - }, - "scope": 41, - "src": "1617:218:0", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "2e567b36", - "id": 32, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "finalizeInboundTransfer", - "nameLocation": "1850:23:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 30, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 21, - "mutability": "mutable", - "name": "token", - "nameLocation": "1891:5:0", - "nodeType": "VariableDeclaration", - "scope": 32, - "src": "1883:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 20, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1883:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 23, - "mutability": "mutable", - "name": "from", - "nameLocation": "1914:4:0", - "nodeType": "VariableDeclaration", - "scope": 32, - "src": "1906:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1906:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 25, - "mutability": "mutable", - "name": "to", - "nameLocation": "1936:2:0", - "nodeType": "VariableDeclaration", - "scope": 32, - "src": "1928:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 24, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1928:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 27, - "mutability": "mutable", - "name": "amount", - "nameLocation": "1956:6:0", - "nodeType": "VariableDeclaration", - "scope": 32, - "src": "1948:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 26, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1948:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 29, - "mutability": "mutable", - "name": "data", - "nameLocation": "1987:4:0", - "nodeType": "VariableDeclaration", - "scope": 32, - "src": "1972:19:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 28, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1972:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1873:124:0" - }, - "returnParameters": { - "id": 31, - "nodeType": "ParameterList", - "parameters": [], - "src": "2014:0:0" - }, - "scope": 41, - "src": "1841:174:0", - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 33, - "nodeType": "StructuredDocumentation", - "src": "2021:354:0", - "text": " @notice Calculate the address used when bridging an ERC20 token\n @dev the L1 and L2 address oracles may not always be in sync.\n For example, a custom token may have been registered but not deployed or the contract self destructed.\n @param l1ERC20 address of L1 token\n @return L2 address of a bridged ERC20 token" - }, - "functionSelector": "a7e28d48", - "id": 40, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "calculateL2TokenAddress", - "nameLocation": "2389:23:0", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 36, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 35, - "mutability": "mutable", - "name": "l1ERC20", - "nameLocation": "2421:7:0", - "nodeType": "VariableDeclaration", - "scope": 40, - "src": "2413:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 34, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2413:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2412:17:0" - }, - "returnParameters": { - "id": 39, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 38, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 40, - "src": "2453:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2453:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2452:9:0" - }, - "scope": 41, - "src": "2380:82:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 42, - "src": "948:1516:0", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "913:1552:0" - }, - "id": 0 - }, - "@graphprotocol/contracts/contracts/curation/ICuration.sol": { - "ast": { - "absolutePath": "@graphprotocol/contracts/contracts/curation/ICuration.sol", - "exportedSymbols": { - "ICuration": [ - 165 - ] - }, - "id": 166, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 43, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:33:1" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ICuration", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 44, - "nodeType": "StructuredDocumentation", - "src": "81:101:1", - "text": " @title Curation Interface\n @dev Interface for the Curation contract (and L2Curation too)" - }, - "fullyImplemented": false, - "id": 165, - "linearizedBaseContracts": [ - 165 - ], - "name": "ICuration", - "nameLocation": "193:9:1", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 45, - "nodeType": "StructuredDocumentation", - "src": "237:143:1", - "text": " @notice Update the default reserve ratio to `_defaultReserveRatio`\n @param _defaultReserveRatio Reserve ratio (in PPM)" - }, - "functionSelector": "cd0ad4a2", - "id": 50, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setDefaultReserveRatio", - "nameLocation": "394:22:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 48, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 47, - "mutability": "mutable", - "name": "_defaultReserveRatio", - "nameLocation": "424:20:1", - "nodeType": "VariableDeclaration", - "scope": 50, - "src": "417:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 46, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "417:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "416:29:1" - }, - "returnParameters": { - "id": 49, - "nodeType": "ParameterList", - "parameters": [], - "src": "454:0:1" - }, - "scope": 165, - "src": "385:70:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 51, - "nodeType": "StructuredDocumentation", - "src": "461:175:1", - "text": " @notice Update the minimum deposit amount needed to intialize a new subgraph\n @param _minimumCurationDeposit Minimum amount of tokens required deposit" - }, - "functionSelector": "6536fe32", - "id": 56, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setMinimumCurationDeposit", - "nameLocation": "650:25:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 54, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53, - "mutability": "mutable", - "name": "_minimumCurationDeposit", - "nameLocation": "684:23:1", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "676:31:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 52, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "676:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "675:33:1" - }, - "returnParameters": { - "id": 55, - "nodeType": "ParameterList", - "parameters": [], - "src": "717:0:1" - }, - "scope": 165, - "src": "641:77:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 57, - "nodeType": "StructuredDocumentation", - "src": "724:189:1", - "text": " @notice Set the curation tax percentage to charge when a curator deposits GRT tokens.\n @param _percentage Curation tax percentage charged when depositing GRT tokens" - }, - "functionSelector": "cd18119e", - "id": 62, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setCurationTaxPercentage", - "nameLocation": "927:24:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 60, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 59, - "mutability": "mutable", - "name": "_percentage", - "nameLocation": "959:11:1", - "nodeType": "VariableDeclaration", - "scope": 62, - "src": "952:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 58, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "952:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "951:20:1" - }, - "returnParameters": { - "id": 61, - "nodeType": "ParameterList", - "parameters": [], - "src": "980:0:1" - }, - "scope": 165, - "src": "918:63:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 63, - "nodeType": "StructuredDocumentation", - "src": "987:184:1", - "text": " @notice Set the master copy to use as clones for the curation token.\n @param _curationTokenMaster Address of implementation contract to use for curation tokens" - }, - "functionSelector": "9b4d9f33", - "id": 68, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setCurationTokenMaster", - "nameLocation": "1185:22:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 66, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65, - "mutability": "mutable", - "name": "_curationTokenMaster", - "nameLocation": "1216:20:1", - "nodeType": "VariableDeclaration", - "scope": 68, - "src": "1208:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 64, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1208:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1207:30:1" - }, - "returnParameters": { - "id": 67, - "nodeType": "ParameterList", - "parameters": [], - "src": "1246:0:1" - }, - "scope": 165, - "src": "1176:71:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 69, - "nodeType": "StructuredDocumentation", - "src": "1276:411:1", - "text": " @notice Deposit Graph Tokens in exchange for signal of a SubgraphDeployment curation pool.\n @param _subgraphDeploymentID Subgraph deployment pool from where to mint signal\n @param _tokensIn Amount of Graph Tokens to deposit\n @param _signalOutMin Expected minimum amount of signal to receive\n @return Amount of signal minted\n @return Amount of curation tax burned" - }, - "functionSelector": "375a54ab", - "id": 82, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "mint", - "nameLocation": "1701:4:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 76, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 71, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "1723:21:1", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "1715:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 70, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1715:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 73, - "mutability": "mutable", - "name": "_tokensIn", - "nameLocation": "1762:9:1", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "1754:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 72, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1754:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 75, - "mutability": "mutable", - "name": "_signalOutMin", - "nameLocation": "1789:13:1", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "1781:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 74, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1781:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1705:103:1" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 78, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "1827:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 77, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1827:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 80, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "1836:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 79, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1836:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1826:18:1" - }, - "scope": 165, - "src": "1692:153:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 83, - "nodeType": "StructuredDocumentation", - "src": "1851:323:1", - "text": " @notice Burn _signal from the SubgraphDeployment curation pool\n @param _subgraphDeploymentID SubgraphDeployment the curator is returning signal\n @param _signalIn Amount of signal to return\n @param _tokensOutMin Expected minimum amount of tokens to receive\n @return Tokens returned" - }, - "functionSelector": "24bdeec7", - "id": 94, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "burn", - "nameLocation": "2188:4:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 85, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "2201:21:1", - "nodeType": "VariableDeclaration", - "scope": 94, - "src": "2193:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 84, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2193:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 87, - "mutability": "mutable", - "name": "_signalIn", - "nameLocation": "2232:9:1", - "nodeType": "VariableDeclaration", - "scope": 94, - "src": "2224:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 86, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2224:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 89, - "mutability": "mutable", - "name": "_tokensOutMin", - "nameLocation": "2251:13:1", - "nodeType": "VariableDeclaration", - "scope": 94, - "src": "2243:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 88, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2192:73:1" - }, - "returnParameters": { - "id": 93, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 92, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 94, - "src": "2284:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 91, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2284:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2283:9:1" - }, - "scope": 165, - "src": "2179:114:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 95, - "nodeType": "StructuredDocumentation", - "src": "2299:266:1", - "text": " @notice Assign Graph Tokens collected as curation fees to the curation pool reserve.\n @param _subgraphDeploymentID SubgraphDeployment where funds should be allocated as reserves\n @param _tokens Amount of Graph Tokens to add to reserves" - }, - "functionSelector": "81573288", - "id": 102, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "collect", - "nameLocation": "2579:7:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 100, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 97, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "2595:21:1", - "nodeType": "VariableDeclaration", - "scope": 102, - "src": "2587:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 96, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2587:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 99, - "mutability": "mutable", - "name": "_tokens", - "nameLocation": "2626:7:1", - "nodeType": "VariableDeclaration", - "scope": 102, - "src": "2618:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 98, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2618:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2586:48:1" - }, - "returnParameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [], - "src": "2643:0:1" - }, - "scope": 165, - "src": "2570:74:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 103, - "nodeType": "StructuredDocumentation", - "src": "2672:213:1", - "text": " @notice Check if any GRT tokens are deposited for a SubgraphDeployment.\n @param _subgraphDeploymentID SubgraphDeployment to check if curated\n @return True if curated, false otherwise" - }, - "functionSelector": "4c4ea0ed", - "id": 110, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isCurated", - "nameLocation": "2899:9:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 106, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 105, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "2917:21:1", - "nodeType": "VariableDeclaration", - "scope": 110, - "src": "2909:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 104, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2909:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2908:31:1" - }, - "returnParameters": { - "id": 109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 108, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 110, - "src": "2963:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 107, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2963:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2962:6:1" - }, - "scope": 165, - "src": "2890:79:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 111, - "nodeType": "StructuredDocumentation", - "src": "2975:290:1", - "text": " @notice Get the amount of signal a curator has in a curation pool.\n @param _curator Curator owning the signal tokens\n @param _subgraphDeploymentID Subgraph deployment curation pool\n @return Amount of signal owned by a curator for the subgraph deployment" - }, - "functionSelector": "9f94c667", - "id": 120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getCuratorSignal", - "nameLocation": "3279:16:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 113, - "mutability": "mutable", - "name": "_curator", - "nameLocation": "3304:8:1", - "nodeType": "VariableDeclaration", - "scope": 120, - "src": "3296:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3296:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 115, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "3322:21:1", - "nodeType": "VariableDeclaration", - "scope": 120, - "src": "3314:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 114, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3314:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3295:49:1" - }, - "returnParameters": { - "id": 119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 118, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 120, - "src": "3368:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3368:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3367:9:1" - }, - "scope": 165, - "src": "3270:107:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 121, - "nodeType": "StructuredDocumentation", - "src": "3383:208:1", - "text": " @notice Get the amount of signal in a curation pool.\n @param _subgraphDeploymentID Subgraph deployment curation pool\n @return Amount of signal minted for the subgraph deployment" - }, - "functionSelector": "99439fee", - "id": 128, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getCurationPoolSignal", - "nameLocation": "3605:21:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 124, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 123, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "3635:21:1", - "nodeType": "VariableDeclaration", - "scope": 128, - "src": "3627:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 122, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3627:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3626:31:1" - }, - "returnParameters": { - "id": 127, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 126, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 128, - "src": "3681:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 125, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3681:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3680:9:1" - }, - "scope": 165, - "src": "3596:94:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 129, - "nodeType": "StructuredDocumentation", - "src": "3696:210:1", - "text": " @notice Get the amount of token reserves in a curation pool.\n @param _subgraphDeploymentID Subgraph deployment curation pool\n @return Amount of token reserves in the curation pool" - }, - "functionSelector": "46e855da", - "id": 136, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getCurationPoolTokens", - "nameLocation": "3920:21:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 131, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "3950:21:1", - "nodeType": "VariableDeclaration", - "scope": 136, - "src": "3942:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 130, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3942:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3941:31:1" - }, - "returnParameters": { - "id": 135, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 134, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 136, - "src": "3996:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 133, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3996:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3995:9:1" - }, - "scope": 165, - "src": "3911:94:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 137, - "nodeType": "StructuredDocumentation", - "src": "4011:416:1", - "text": " @notice Calculate amount of signal that can be bought with tokens in a curation pool.\n This function considers and excludes the deposit tax.\n @param _subgraphDeploymentID Subgraph deployment to mint signal\n @param _tokensIn Amount of tokens used to mint signal\n @return Amount of signal that can be bought\n @return Amount of tokens that will be burned as curation tax" - }, - "functionSelector": "f049b900", - "id": 148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "tokensToSignal", - "nameLocation": "4441:14:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 139, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "4464:21:1", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "4456:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 138, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4456:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 141, - "mutability": "mutable", - "name": "_tokensIn", - "nameLocation": "4495:9:1", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "4487:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 140, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4487:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4455:50:1" - }, - "returnParameters": { - "id": 147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 144, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "4529:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 143, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4529:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 146, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "4538:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4538:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4528:18:1" - }, - "scope": 165, - "src": "4432:115:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 149, - "nodeType": "StructuredDocumentation", - "src": "4553:296:1", - "text": " @notice Calculate number of tokens to get when burning signal from a curation pool.\n @param _subgraphDeploymentID Subgraph deployment to burn signal\n @param _signalIn Amount of signal to burn\n @return Amount of tokens to get for the specified amount of signal" - }, - "functionSelector": "0faaf87f", - "id": 158, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "signalToTokens", - "nameLocation": "4863:14:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 151, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "4886:21:1", - "nodeType": "VariableDeclaration", - "scope": 158, - "src": "4878:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 150, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4878:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 153, - "mutability": "mutable", - "name": "_signalIn", - "nameLocation": "4917:9:1", - "nodeType": "VariableDeclaration", - "scope": 158, - "src": "4909:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 152, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4909:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4877:50:1" - }, - "returnParameters": { - "id": 157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 156, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 158, - "src": "4951:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4951:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4950:9:1" - }, - "scope": 165, - "src": "4854:106:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 159, - "nodeType": "StructuredDocumentation", - "src": "4966:199:1", - "text": " @notice Tax charged when curators deposit funds.\n Parts per million. (Allows for 4 decimal points, 999,999 = 99.9999%)\n @return Curation tax percentage expressed in PPM" - }, - "functionSelector": "f115c427", - "id": 164, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "curationTaxPercentage", - "nameLocation": "5179:21:1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 160, - "nodeType": "ParameterList", - "parameters": [], - "src": "5200:2:1" - }, - "returnParameters": { - "id": 163, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 162, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 164, - "src": "5226:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 161, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5226:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "5225:8:1" - }, - "scope": 165, - "src": "5170:64:1", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 166, - "src": "183:5053:1", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "46:5191:1" - }, - "id": 1 - }, - "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol": { - "ast": { - "absolutePath": "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol", - "exportedSymbols": { - "IEpochManager": [ - 220 - ] - }, - "id": 221, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 167, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:33:2" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IEpochManager", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "id": 220, - "linearizedBaseContracts": [ - 220 - ], - "name": "IEpochManager", - "nameLocation": "91:13:2", - "nodeType": "ContractDefinition", - "nodes": [ - { - "functionSelector": "54eea796", - "id": 172, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setEpochLength", - "nameLocation": "148:14:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 169, - "mutability": "mutable", - "name": "_epochLength", - "nameLocation": "171:12:2", - "nodeType": "VariableDeclaration", - "scope": 172, - "src": "163:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 168, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "163:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "162:22:2" - }, - "returnParameters": { - "id": 171, - "nodeType": "ParameterList", - "parameters": [], - "src": "193:0:2" - }, - "scope": 220, - "src": "139:55:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "c46e58eb", - "id": 175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "runEpoch", - "nameLocation": "227:8:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [], - "src": "235:2:2" - }, - "returnParameters": { - "id": 174, - "nodeType": "ParameterList", - "parameters": [], - "src": "246:0:2" - }, - "scope": 220, - "src": "218:29:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "1ce05d38", - "id": 180, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isCurrentEpochRun", - "nameLocation": "284:17:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 176, - "nodeType": "ParameterList", - "parameters": [], - "src": "301:2:2" - }, - "returnParameters": { - "id": 179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 178, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 180, - "src": "327:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 177, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "327:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "326:6:2" - }, - "scope": 220, - "src": "275:58:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "8ae63d6d", - "id": 185, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "blockNum", - "nameLocation": "348:8:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 181, - "nodeType": "ParameterList", - "parameters": [], - "src": "356:2:2" - }, - "returnParameters": { - "id": 184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 183, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 185, - "src": "382:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 182, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "382:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "381:9:2" - }, - "scope": 220, - "src": "339:52:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "85df51fd", - "id": 192, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "blockHash", - "nameLocation": "406:9:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 188, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 187, - "mutability": "mutable", - "name": "_block", - "nameLocation": "424:6:2", - "nodeType": "VariableDeclaration", - "scope": 192, - "src": "416:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 186, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "416:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "415:16:2" - }, - "returnParameters": { - "id": 191, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 190, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 192, - "src": "455:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 189, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "455:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "454:9:2" - }, - "scope": 220, - "src": "397:67:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "76671808", - "id": 197, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "currentEpoch", - "nameLocation": "479:12:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 193, - "nodeType": "ParameterList", - "parameters": [], - "src": "491:2:2" - }, - "returnParameters": { - "id": 196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 195, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 197, - "src": "517:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 194, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "517:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "516:9:2" - }, - "scope": 220, - "src": "470:56:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "ab93122c", - "id": 202, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "currentEpochBlock", - "nameLocation": "541:17:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 198, - "nodeType": "ParameterList", - "parameters": [], - "src": "558:2:2" - }, - "returnParameters": { - "id": 201, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 200, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 202, - "src": "584:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "584:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "583:9:2" - }, - "scope": 220, - "src": "532:61:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "d0cfa46e", - "id": 207, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "currentEpochBlockSinceStart", - "nameLocation": "608:27:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 203, - "nodeType": "ParameterList", - "parameters": [], - "src": "635:2:2" - }, - "returnParameters": { - "id": 206, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 205, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 207, - "src": "661:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 204, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "661:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "660:9:2" - }, - "scope": 220, - "src": "599:71:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "1b28126d", - "id": 214, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "epochsSince", - "nameLocation": "685:11:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 210, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 209, - "mutability": "mutable", - "name": "_epoch", - "nameLocation": "705:6:2", - "nodeType": "VariableDeclaration", - "scope": 214, - "src": "697:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 208, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "697:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "696:16:2" - }, - "returnParameters": { - "id": 213, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 212, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 214, - "src": "736:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "736:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "735:9:2" - }, - "scope": 220, - "src": "676:69:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "19c3b82d", - "id": 219, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "epochsSinceUpdate", - "nameLocation": "760:17:2", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 215, - "nodeType": "ParameterList", - "parameters": [], - "src": "777:2:2" - }, - "returnParameters": { - "id": 218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 217, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 219, - "src": "803:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "803:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "802:9:2" - }, - "scope": 220, - "src": "751:61:2", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 221, - "src": "81:733:2", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "46:769:2" - }, - "id": 2 - }, - "@graphprotocol/contracts/contracts/governance/IController.sol": { - "ast": { - "absolutePath": "@graphprotocol/contracts/contracts/governance/IController.sol", - "exportedSymbols": { - "IController": [ - 279 - ] - }, - "id": 280, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 222, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:33:3" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IController", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "id": 279, - "linearizedBaseContracts": [ - 279 - ], - "name": "IController", - "nameLocation": "91:11:3", - "nodeType": "ContractDefinition", - "nodes": [ - { - "functionSelector": "4fc07d75", - "id": 227, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getGovernor", - "nameLocation": "118:11:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 223, - "nodeType": "ParameterList", - "parameters": [], - "src": "129:2:3" - }, - "returnParameters": { - "id": 226, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 225, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 227, - "src": "155:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 224, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "155:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "154:9:3" - }, - "scope": 279, - "src": "109:55:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "e0e99292", - "id": 234, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setContractProxy", - "nameLocation": "202:16:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 229, - "mutability": "mutable", - "name": "_id", - "nameLocation": "227:3:3", - "nodeType": "VariableDeclaration", - "scope": 234, - "src": "219:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 228, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "219:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 231, - "mutability": "mutable", - "name": "_contractAddress", - "nameLocation": "240:16:3", - "nodeType": "VariableDeclaration", - "scope": 234, - "src": "232:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 230, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "232:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "218:39:3" - }, - "returnParameters": { - "id": 233, - "nodeType": "ParameterList", - "parameters": [], - "src": "266:0:3" - }, - "scope": 279, - "src": "193:74:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "9181df9c", - "id": 239, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "unsetContractProxy", - "nameLocation": "282:18:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 237, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 236, - "mutability": "mutable", - "name": "_id", - "nameLocation": "309:3:3", - "nodeType": "VariableDeclaration", - "scope": 239, - "src": "301:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 235, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "301:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "300:13:3" - }, - "returnParameters": { - "id": 238, - "nodeType": "ParameterList", - "parameters": [], - "src": "322:0:3" - }, - "scope": 279, - "src": "273:50:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "eb5dd94f", - "id": 246, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "updateController", - "nameLocation": "338:16:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 241, - "mutability": "mutable", - "name": "_id", - "nameLocation": "363:3:3", - "nodeType": "VariableDeclaration", - "scope": 246, - "src": "355:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 240, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "355:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 243, - "mutability": "mutable", - "name": "_controller", - "nameLocation": "376:11:3", - "nodeType": "VariableDeclaration", - "scope": 246, - "src": "368:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "368:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "354:34:3" - }, - "returnParameters": { - "id": 245, - "nodeType": "ParameterList", - "parameters": [], - "src": "397:0:3" - }, - "scope": 279, - "src": "329:69:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "f7641a5e", - "id": 253, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getContractProxy", - "nameLocation": "413:16:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 249, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 248, - "mutability": "mutable", - "name": "_id", - "nameLocation": "438:3:3", - "nodeType": "VariableDeclaration", - "scope": 253, - "src": "430:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 247, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "430:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "429:13:3" - }, - "returnParameters": { - "id": 252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 251, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 253, - "src": "466:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 250, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "466:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "465:9:3" - }, - "scope": 279, - "src": "404:71:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "56371bd8", - "id": 258, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setPartialPaused", - "nameLocation": "512:16:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 255, - "mutability": "mutable", - "name": "_partialPaused", - "nameLocation": "534:14:3", - "nodeType": "VariableDeclaration", - "scope": 258, - "src": "529:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 254, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "529:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "528:21:3" - }, - "returnParameters": { - "id": 257, - "nodeType": "ParameterList", - "parameters": [], - "src": "558:0:3" - }, - "scope": 279, - "src": "503:56:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "16c38b3c", - "id": 263, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setPaused", - "nameLocation": "574:9:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 260, - "mutability": "mutable", - "name": "_paused", - "nameLocation": "589:7:3", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "584:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 259, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "584:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "583:14:3" - }, - "returnParameters": { - "id": 262, - "nodeType": "ParameterList", - "parameters": [], - "src": "606:0:3" - }, - "scope": 279, - "src": "565:42:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "48bde20c", - "id": 268, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setPauseGuardian", - "nameLocation": "622:16:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 265, - "mutability": "mutable", - "name": "_newPauseGuardian", - "nameLocation": "647:17:3", - "nodeType": "VariableDeclaration", - "scope": 268, - "src": "639:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 264, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "639:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "638:27:3" - }, - "returnParameters": { - "id": 267, - "nodeType": "ParameterList", - "parameters": [], - "src": "674:0:3" - }, - "scope": 279, - "src": "613:62:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "5c975abb", - "id": 273, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "paused", - "nameLocation": "690:6:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 269, - "nodeType": "ParameterList", - "parameters": [], - "src": "696:2:3" - }, - "returnParameters": { - "id": 272, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 271, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 273, - "src": "722:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 270, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "722:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "721:6:3" - }, - "scope": 279, - "src": "681:47:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "2e292fc7", - "id": 278, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "partialPaused", - "nameLocation": "743:13:3", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 274, - "nodeType": "ParameterList", - "parameters": [], - "src": "756:2:3" - }, - "returnParameters": { - "id": 277, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 276, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 278, - "src": "782:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 275, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "782:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "781:6:3" - }, - "scope": 279, - "src": "734:54:3", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 280, - "src": "81:709:3", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "46:745:3" - }, - "id": 3 - }, - "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol": { - "ast": { - "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol", - "exportedSymbols": { - "IRewardsIssuer": [ - 314 - ] - }, - "id": 315, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 281, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:33:4" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IRewardsIssuer", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "id": 314, - "linearizedBaseContracts": [ - 314 - ], - "name": "IRewardsIssuer", - "nameLocation": "91:14:4", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 282, - "nodeType": "StructuredDocumentation", - "src": "112:470:4", - "text": " @dev Get allocation data to calculate rewards issuance\n @param allocationId The allocation Id\n @return indexer The indexer address\n @return subgraphDeploymentId Subgraph deployment id for the allocation\n @return tokens Amount of allocated tokens\n @return accRewardsPerAllocatedToken Rewards snapshot\n @return accRewardsPending Snapshot of accumulated rewards from previous allocation resizing, pending to be claimed" - }, - "functionSelector": "55c85269", - "id": 297, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAllocationData", - "nameLocation": "596:17:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 284, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "631:12:4", - "nodeType": "VariableDeclaration", - "scope": 297, - "src": "623:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "623:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "613:36:4" - }, - "returnParameters": { - "id": 296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 287, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "718:7:4", - "nodeType": "VariableDeclaration", - "scope": 297, - "src": "710:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 286, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "710:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 289, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "747:20:4", - "nodeType": "VariableDeclaration", - "scope": 297, - "src": "739:28:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 288, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "739:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 291, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "789:6:4", - "nodeType": "VariableDeclaration", - "scope": 297, - "src": "781:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 290, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "781:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 293, - "mutability": "mutable", - "name": "accRewardsPerAllocatedToken", - "nameLocation": "817:27:4", - "nodeType": "VariableDeclaration", - "scope": 297, - "src": "809:35:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 292, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "809:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 295, - "mutability": "mutable", - "name": "accRewardsPending", - "nameLocation": "866:17:4", - "nodeType": "VariableDeclaration", - "scope": 297, - "src": "858:25:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "858:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "696:197:4" - }, - "scope": 314, - "src": "587:307:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 298, - "nodeType": "StructuredDocumentation", - "src": "900:200:4", - "text": " @notice Return the total amount of tokens allocated to subgraph.\n @param _subgraphDeploymentId Deployment Id for the subgraph\n @return Total tokens allocated to subgraph" - }, - "functionSelector": "e2e1e8e9", - "id": 305, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getSubgraphAllocatedTokens", - "nameLocation": "1114:26:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 301, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 300, - "mutability": "mutable", - "name": "_subgraphDeploymentId", - "nameLocation": "1149:21:4", - "nodeType": "VariableDeclaration", - "scope": 305, - "src": "1141:29:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 299, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1141:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1140:31:4" - }, - "returnParameters": { - "id": 304, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 303, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 305, - "src": "1195:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 302, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1195:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1194:9:4" - }, - "scope": 314, - "src": "1105:99:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 306, - "nodeType": "StructuredDocumentation", - "src": "1210:173:4", - "text": " @notice Whether or not an allocation is active (i.e open)\n @param _allocationId Allocation Id\n @return Whether or not the allocation is active" - }, - "functionSelector": "6a3ca383", - "id": 313, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isActiveAllocation", - "nameLocation": "1397:18:4", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 308, - "mutability": "mutable", - "name": "_allocationId", - "nameLocation": "1424:13:4", - "nodeType": "VariableDeclaration", - "scope": 313, - "src": "1416:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 307, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1416:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1415:23:4" - }, - "returnParameters": { - "id": 312, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 311, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 313, - "src": "1462:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 310, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1462:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1461:6:4" - }, - "scope": 314, - "src": "1388:80:4", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 315, - "src": "81:1389:4", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "46:1425:4" - }, - "id": 4 - }, - "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol": { - "ast": { - "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol", - "exportedSymbols": { - "IRewardsManager": [ - 438 - ] - }, - "id": 439, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 316, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:33:5" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IRewardsManager", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "id": 438, - "linearizedBaseContracts": [ - 438 - ], - "name": "IRewardsManager", - "nameLocation": "91:15:5", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "IRewardsManager.Subgraph", - "documentation": { - "id": 317, - "nodeType": "StructuredDocumentation", - "src": "113:108:5", - "text": " @dev Stores accumulated rewards and snapshots related to a particular SubgraphDeployment." - }, - "id": 326, - "members": [ - { - "constant": false, - "id": 319, - "mutability": "mutable", - "name": "accRewardsForSubgraph", - "nameLocation": "260:21:5", - "nodeType": "VariableDeclaration", - "scope": 326, - "src": "252:29:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 318, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "252:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 321, - "mutability": "mutable", - "name": "accRewardsForSubgraphSnapshot", - "nameLocation": "299:29:5", - "nodeType": "VariableDeclaration", - "scope": 326, - "src": "291:37:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 320, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "291:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 323, - "mutability": "mutable", - "name": "accRewardsPerSignalSnapshot", - "nameLocation": "346:27:5", - "nodeType": "VariableDeclaration", - "scope": 326, - "src": "338:35:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 322, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "338:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 325, - "mutability": "mutable", - "name": "accRewardsPerAllocatedToken", - "nameLocation": "391:27:5", - "nodeType": "VariableDeclaration", - "scope": 326, - "src": "383:35:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 324, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "383:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Subgraph", - "nameLocation": "233:8:5", - "nodeType": "StructDefinition", - "scope": 438, - "src": "226:199:5", - "visibility": "public" - }, - { - "functionSelector": "1156bdc1", - "id": 331, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setIssuancePerBlock", - "nameLocation": "461:19:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 329, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 328, - "mutability": "mutable", - "name": "_issuancePerBlock", - "nameLocation": "489:17:5", - "nodeType": "VariableDeclaration", - "scope": 331, - "src": "481:25:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 327, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "481:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "480:27:5" - }, - "returnParameters": { - "id": 330, - "nodeType": "ParameterList", - "parameters": [], - "src": "516:0:5" - }, - "scope": 438, - "src": "452:65:5", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "4bbfc1c5", - "id": 336, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setMinimumSubgraphSignal", - "nameLocation": "532:24:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 334, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 333, - "mutability": "mutable", - "name": "_minimumSubgraphSignal", - "nameLocation": "565:22:5", - "nodeType": "VariableDeclaration", - "scope": 336, - "src": "557:30:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 332, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "557:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "556:32:5" - }, - "returnParameters": { - "id": 335, - "nodeType": "ParameterList", - "parameters": [], - "src": "597:0:5" - }, - "scope": 438, - "src": "523:75:5", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "93a90a1e", - "id": 341, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSubgraphService", - "nameLocation": "613:18:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 339, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 338, - "mutability": "mutable", - "name": "_subgraphService", - "nameLocation": "640:16:5", - "nodeType": "VariableDeclaration", - "scope": 341, - "src": "632:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "632:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "631:26:5" - }, - "returnParameters": { - "id": 340, - "nodeType": "ParameterList", - "parameters": [], - "src": "666:0:5" - }, - "scope": 438, - "src": "604:63:5", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "0903c094", - "id": 346, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSubgraphAvailabilityOracle", - "nameLocation": "705:29:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 344, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 343, - "mutability": "mutable", - "name": "_subgraphAvailabilityOracle", - "nameLocation": "743:27:5", - "nodeType": "VariableDeclaration", - "scope": 346, - "src": "735:35:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "735:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "734:37:5" - }, - "returnParameters": { - "id": 345, - "nodeType": "ParameterList", - "parameters": [], - "src": "780:0:5" - }, - "scope": 438, - "src": "696:85:5", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "1324a506", - "id": 353, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setDenied", - "nameLocation": "796:9:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 348, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "814:21:5", - "nodeType": "VariableDeclaration", - "scope": 353, - "src": "806:29:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 347, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "806:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 350, - "mutability": "mutable", - "name": "_deny", - "nameLocation": "842:5:5", - "nodeType": "VariableDeclaration", - "scope": 353, - "src": "837:10:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 349, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "837:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "805:43:5" - }, - "returnParameters": { - "id": 352, - "nodeType": "ParameterList", - "parameters": [], - "src": "857:0:5" - }, - "scope": 438, - "src": "787:71:5", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "1debaded", - "id": 362, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setDeniedMany", - "nameLocation": "873:13:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 356, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "906:21:5", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "887:40:5", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 354, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "887:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 355, - "nodeType": "ArrayTypeName", - "src": "887:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 359, - "mutability": "mutable", - "name": "_deny", - "nameLocation": "945:5:5", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "929:21:5", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_calldata_ptr", - "typeString": "bool[]" - }, - "typeName": { - "baseType": { - "id": 357, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "929:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 358, - "nodeType": "ArrayTypeName", - "src": "929:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", - "typeString": "bool[]" - } - }, - "visibility": "internal" - } - ], - "src": "886:65:5" - }, - "returnParameters": { - "id": 361, - "nodeType": "ParameterList", - "parameters": [], - "src": "960:0:5" - }, - "scope": 438, - "src": "864:97:5", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "e820e284", - "id": 369, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isDenied", - "nameLocation": "976:8:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 364, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "993:21:5", - "nodeType": "VariableDeclaration", - "scope": 369, - "src": "985:29:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 363, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "985:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "984:31:5" - }, - "returnParameters": { - "id": 368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 367, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 369, - "src": "1039:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 366, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1039:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1038:6:5" - }, - "scope": 438, - "src": "967:78:5", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "e284f848", - "id": 374, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getNewRewardsPerSignal", - "nameLocation": "1082:22:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "1104:2:5" - }, - "returnParameters": { - "id": 373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 372, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 374, - "src": "1130:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 371, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1130:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1129:9:5" - }, - "scope": 438, - "src": "1073:66:5", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "a8cc0ee2", - "id": 379, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAccRewardsPerSignal", - "nameLocation": "1154:22:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 375, - "nodeType": "ParameterList", - "parameters": [], - "src": "1176:2:5" - }, - "returnParameters": { - "id": 378, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 377, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 379, - "src": "1202:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 376, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1202:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1201:9:5" - }, - "scope": 438, - "src": "1145:66:5", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "5c6cbd59", - "id": 386, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAccRewardsForSubgraph", - "nameLocation": "1226:24:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 381, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "1259:21:5", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "1251:29:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 380, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1251:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1250:31:5" - }, - "returnParameters": { - "id": 385, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 384, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 386, - "src": "1305:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 383, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1305:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1304:9:5" - }, - "scope": 438, - "src": "1217:97:5", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "702a280e", - "id": 395, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAccRewardsPerAllocatedToken", - "nameLocation": "1329:30:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 389, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 388, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "1368:21:5", - "nodeType": "VariableDeclaration", - "scope": 395, - "src": "1360:29:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 387, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1360:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1359:31:5" - }, - "returnParameters": { - "id": 394, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 391, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 395, - "src": "1414:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 390, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1414:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 393, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 395, - "src": "1423:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 392, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1423:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1413:18:5" - }, - "scope": 438, - "src": "1320:112:5", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "79ee54f7", - "id": 402, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getRewards", - "nameLocation": "1447:10:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 398, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 397, - "mutability": "mutable", - "name": "_allocationID", - "nameLocation": "1466:13:5", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "1458:21:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1458:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1457:23:5" - }, - "returnParameters": { - "id": 401, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 400, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 402, - "src": "1504:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 399, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1504:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1503:9:5" - }, - "scope": 438, - "src": "1438:75:5", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "c8a5f81e", - "id": 411, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "calcRewards", - "nameLocation": "1528:11:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 407, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 404, - "mutability": "mutable", - "name": "_tokens", - "nameLocation": "1548:7:5", - "nodeType": "VariableDeclaration", - "scope": 411, - "src": "1540:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 403, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1540:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 406, - "mutability": "mutable", - "name": "_accRewardsPerAllocatedToken", - "nameLocation": "1565:28:5", - "nodeType": "VariableDeclaration", - "scope": 411, - "src": "1557:36:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1557:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1539:55:5" - }, - "returnParameters": { - "id": 410, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 409, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 411, - "src": "1618:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1618:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1617:9:5" - }, - "scope": 438, - "src": "1519:108:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "c7d1117d", - "id": 416, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "updateAccRewardsPerSignal", - "nameLocation": "1664:25:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 412, - "nodeType": "ParameterList", - "parameters": [], - "src": "1689:2:5" - }, - "returnParameters": { - "id": 415, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 414, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 416, - "src": "1710:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1710:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1709:9:5" - }, - "scope": 438, - "src": "1655:64:5", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "db750926", - "id": 423, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "takeRewards", - "nameLocation": "1734:11:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 419, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 418, - "mutability": "mutable", - "name": "_allocationID", - "nameLocation": "1754:13:5", - "nodeType": "VariableDeclaration", - "scope": 423, - "src": "1746:21:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 417, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1746:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1745:23:5" - }, - "returnParameters": { - "id": 422, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 421, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 423, - "src": "1787:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 420, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1787:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1786:9:5" - }, - "scope": 438, - "src": "1725:71:5", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "1d1c2fec", - "id": 430, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onSubgraphSignalUpdate", - "nameLocation": "1831:22:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 425, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "1862:21:5", - "nodeType": "VariableDeclaration", - "scope": 430, - "src": "1854:29:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 424, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1854:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1853:31:5" - }, - "returnParameters": { - "id": 429, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 428, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 430, - "src": "1903:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 427, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1903:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1902:9:5" - }, - "scope": 438, - "src": "1822:90:5", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "eeac3e0e", - "id": 437, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onSubgraphAllocationUpdate", - "nameLocation": "1927:26:5", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 433, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 432, - "mutability": "mutable", - "name": "_subgraphDeploymentID", - "nameLocation": "1962:21:5", - "nodeType": "VariableDeclaration", - "scope": 437, - "src": "1954:29:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 431, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1954:7:5", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1953:31:5" - }, - "returnParameters": { - "id": 436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 435, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 437, - "src": "2003:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 434, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2003:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2002:9:5" - }, - "scope": 438, - "src": "1918:94:5", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 439, - "src": "81:1933:5", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "46:1969:5" - }, - "id": 5 - }, - "@graphprotocol/contracts/contracts/token/IGraphToken.sol": { - "ast": { - "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", - "exportedSymbols": { - "IERC20": [ - 5874 - ], - "IGraphToken": [ - 518 - ] - }, - "id": 519, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 440, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:33:6" - }, - { - "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "id": 441, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 519, - "sourceUnit": 5875, - "src": "81:56:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 442, - "name": "IERC20", - "nameLocations": [ - "164:6:6" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5874, - "src": "164:6:6" - }, - "id": 443, - "nodeType": "InheritanceSpecifier", - "src": "164:6:6" - } - ], - "canonicalName": "IGraphToken", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "id": 518, - "linearizedBaseContracts": [ - 518, - 5874 - ], - "name": "IGraphToken", - "nameLocation": "149:11:6", - "nodeType": "ContractDefinition", - "nodes": [ - { - "functionSelector": "42966c68", - "id": 448, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "burn", - "nameLocation": "214:4:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 446, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 445, - "mutability": "mutable", - "name": "amount", - "nameLocation": "227:6:6", - "nodeType": "VariableDeclaration", - "scope": 448, - "src": "219:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 444, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "219:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "218:16:6" - }, - "returnParameters": { - "id": 447, - "nodeType": "ParameterList", - "parameters": [], - "src": "243:0:6" - }, - "scope": 518, - "src": "205:39:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "79cc6790", - "id": 455, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "burnFrom", - "nameLocation": "259:8:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 453, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 450, - "mutability": "mutable", - "name": "_from", - "nameLocation": "276:5:6", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "268:13:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 449, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "268:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 452, - "mutability": "mutable", - "name": "amount", - "nameLocation": "291:6:6", - "nodeType": "VariableDeclaration", - "scope": 455, - "src": "283:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 451, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "283:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "267:31:6" - }, - "returnParameters": { - "id": 454, - "nodeType": "ParameterList", - "parameters": [], - "src": "307:0:6" - }, - "scope": 518, - "src": "250:58:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "40c10f19", - "id": 462, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "mint", - "nameLocation": "323:4:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 457, - "mutability": "mutable", - "name": "_to", - "nameLocation": "336:3:6", - "nodeType": "VariableDeclaration", - "scope": 462, - "src": "328:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 456, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "328:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 459, - "mutability": "mutable", - "name": "_amount", - "nameLocation": "349:7:6", - "nodeType": "VariableDeclaration", - "scope": 462, - "src": "341:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 458, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "341:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "327:30:6" - }, - "returnParameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [], - "src": "366:0:6" - }, - "scope": 518, - "src": "314:53:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "983b2d56", - "id": 467, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "addMinter", - "nameLocation": "407:9:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 465, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 464, - "mutability": "mutable", - "name": "_account", - "nameLocation": "425:8:6", - "nodeType": "VariableDeclaration", - "scope": 467, - "src": "417:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 463, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "417:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "416:18:6" - }, - "returnParameters": { - "id": 466, - "nodeType": "ParameterList", - "parameters": [], - "src": "443:0:6" - }, - "scope": 518, - "src": "398:46:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "3092afd5", - "id": 472, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "removeMinter", - "nameLocation": "459:12:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 470, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 469, - "mutability": "mutable", - "name": "_account", - "nameLocation": "480:8:6", - "nodeType": "VariableDeclaration", - "scope": 472, - "src": "472:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 468, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "472:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "471:18:6" - }, - "returnParameters": { - "id": 471, - "nodeType": "ParameterList", - "parameters": [], - "src": "498:0:6" - }, - "scope": 518, - "src": "450:49:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "98650275", - "id": 475, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "renounceMinter", - "nameLocation": "514:14:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 473, - "nodeType": "ParameterList", - "parameters": [], - "src": "528:2:6" - }, - "returnParameters": { - "id": 474, - "nodeType": "ParameterList", - "parameters": [], - "src": "539:0:6" - }, - "scope": 518, - "src": "505:35:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "aa271e1a", - "id": 482, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isMinter", - "nameLocation": "555:8:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 478, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 477, - "mutability": "mutable", - "name": "_account", - "nameLocation": "572:8:6", - "nodeType": "VariableDeclaration", - "scope": 482, - "src": "564:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 476, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "564:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "563:18:6" - }, - "returnParameters": { - "id": 481, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 480, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 482, - "src": "605:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 479, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "605:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "604:6:6" - }, - "scope": 518, - "src": "546:65:6", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "d505accf", - "id": 499, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "permit", - "nameLocation": "647:6:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 484, - "mutability": "mutable", - "name": "_owner", - "nameLocation": "671:6:6", - "nodeType": "VariableDeclaration", - "scope": 499, - "src": "663:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 483, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "663:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 486, - "mutability": "mutable", - "name": "_spender", - "nameLocation": "695:8:6", - "nodeType": "VariableDeclaration", - "scope": 499, - "src": "687:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "687:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 488, - "mutability": "mutable", - "name": "_value", - "nameLocation": "721:6:6", - "nodeType": "VariableDeclaration", - "scope": 499, - "src": "713:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 487, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "713:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 490, - "mutability": "mutable", - "name": "_deadline", - "nameLocation": "745:9:6", - "nodeType": "VariableDeclaration", - "scope": 499, - "src": "737:17:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 489, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "737:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 492, - "mutability": "mutable", - "name": "_v", - "nameLocation": "770:2:6", - "nodeType": "VariableDeclaration", - "scope": 499, - "src": "764:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 491, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "764:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 494, - "mutability": "mutable", - "name": "_r", - "nameLocation": "790:2:6", - "nodeType": "VariableDeclaration", - "scope": 499, - "src": "782:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 493, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "782:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 496, - "mutability": "mutable", - "name": "_s", - "nameLocation": "810:2:6", - "nodeType": "VariableDeclaration", - "scope": 499, - "src": "802:10:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 495, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "802:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "653:165:6" - }, - "returnParameters": { - "id": 498, - "nodeType": "ParameterList", - "parameters": [], - "src": "827:0:6" - }, - "scope": 518, - "src": "638:190:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "39509351", - "id": 508, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "increaseAllowance", - "nameLocation": "867:17:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 501, - "mutability": "mutable", - "name": "spender", - "nameLocation": "893:7:6", - "nodeType": "VariableDeclaration", - "scope": 508, - "src": "885:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 500, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "885:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 503, - "mutability": "mutable", - "name": "addedValue", - "nameLocation": "910:10:6", - "nodeType": "VariableDeclaration", - "scope": 508, - "src": "902:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 502, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "902:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "884:37:6" - }, - "returnParameters": { - "id": 507, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 506, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 508, - "src": "940:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 505, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "940:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "939:6:6" - }, - "scope": 518, - "src": "858:88:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "a457c2d7", - "id": 517, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "decreaseAllowance", - "nameLocation": "961:17:6", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 513, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 510, - "mutability": "mutable", - "name": "spender", - "nameLocation": "987:7:6", - "nodeType": "VariableDeclaration", - "scope": 517, - "src": "979:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 509, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "979:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 512, - "mutability": "mutable", - "name": "subtractedValue", - "nameLocation": "1004:15:6", - "nodeType": "VariableDeclaration", - "scope": 517, - "src": "996:23:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 511, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "996:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "978:42:6" - }, - "returnParameters": { - "id": 516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 515, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 517, - "src": "1039:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 514, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1039:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1038:6:6" - }, - "scope": 518, - "src": "952:93:6", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 519, - "src": "139:908:6", - "usedErrors": [], - "usedEvents": [ - 5808, - 5817 - ] - } - ], - "src": "46:1002:6" - }, - "id": 6 - }, - "@graphprotocol/contracts/contracts/utils/TokenUtils.sol": { - "ast": { - "absolutePath": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", - "exportedSymbols": { - "IERC20": [ - 5874 - ], - "IGraphToken": [ - 518 - ], - "TokenUtils": [ - 600 - ] - }, - "id": 601, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 520, - "literals": [ - "solidity", - "^", - "0.7", - ".6", - "||", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:33:7" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", - "file": "../token/IGraphToken.sol", - "id": 521, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 601, - "sourceUnit": 519, - "src": "81:34:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "TokenUtils", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 522, - "nodeType": "StructuredDocumentation", - "src": "117:239:7", - "text": " @title TokenUtils library\n @notice This library contains utility functions for handling tokens (transfers and burns).\n It is specifically adapted for the GraphToken, so does not need to handle edge cases\n for other tokens." - }, - "fullyImplemented": true, - "id": 600, - "linearizedBaseContracts": [ - 600 - ], - "name": "TokenUtils", - "nameLocation": "365:10:7", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 551, - "nodeType": "Block", - "src": "684:135:7", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 533, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "698:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "708:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "698:11:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 550, - "nodeType": "IfStatement", - "src": "694:119:7", - "trueBody": { - "id": 549, - "nodeType": "Block", - "src": "711:102:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 539, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 528, - "src": "758:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 542, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "773:4:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenUtils_$600", - "typeString": "library TokenUtils" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_TokenUtils_$600", - "typeString": "library TokenUtils" - } - ], - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "765:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 540, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "765:7:7", - "typeDescriptions": {} - } - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "765:13:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 544, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "780:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 537, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "733:11:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "745:12:7", - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 5873, - "src": "733:24:7", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "733:55:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "217472616e73666572", - "id": 546, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "790:11:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50", - "typeString": "literal_string \"!transfer\"" - }, - "value": "!transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50", - "typeString": "literal_string \"!transfer\"" - } - ], - "id": 536, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "725:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "725:77:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 548, - "nodeType": "ExpressionStatement", - "src": "725:77:7" - } - ] - } - } - ] - }, - "documentation": { - "id": 523, - "nodeType": "StructuredDocumentation", - "src": "382:211:7", - "text": " @dev Pull tokens from an address to this contract.\n @param _graphToken Token to transfer\n @param _from Address sending the tokens\n @param _amount Amount of tokens to transfer" - }, - "id": 552, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pullTokens", - "nameLocation": "607:10:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 531, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 526, - "mutability": "mutable", - "name": "_graphToken", - "nameLocation": "630:11:7", - "nodeType": "VariableDeclaration", - "scope": 552, - "src": "618:23:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - }, - "typeName": { - "id": 525, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 524, - "name": "IGraphToken", - "nameLocations": [ - "618:11:7" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 518, - "src": "618:11:7" - }, - "referencedDeclaration": 518, - "src": "618:11:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 528, - "mutability": "mutable", - "name": "_from", - "nameLocation": "651:5:7", - "nodeType": "VariableDeclaration", - "scope": 552, - "src": "643:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "643:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 530, - "mutability": "mutable", - "name": "_amount", - "nameLocation": "666:7:7", - "nodeType": "VariableDeclaration", - "scope": 552, - "src": "658:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 529, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "658:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "617:57:7" - }, - "returnParameters": { - "id": 532, - "nodeType": "ParameterList", - "parameters": [], - "src": "684:0:7" - }, - "scope": 600, - "src": "598:221:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 577, - "nodeType": "Block", - "src": "1134:114:7", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 563, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "1148:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1158:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1148:11:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 576, - "nodeType": "IfStatement", - "src": "1144:98:7", - "trueBody": { - "id": 575, - "nodeType": "Block", - "src": "1161:81:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 569, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 558, - "src": "1204:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 570, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 560, - "src": "1209:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 567, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "1183:11:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1195:8:7", - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 5841, - "src": "1183:20:7", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1183:34:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "217472616e73666572", - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1219:11:7", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50", - "typeString": "literal_string \"!transfer\"" - }, - "value": "!transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50", - "typeString": "literal_string \"!transfer\"" - } - ], - "id": 566, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1175:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1175:56:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 574, - "nodeType": "ExpressionStatement", - "src": "1175:56:7" - } - ] - } - } - ] - }, - "documentation": { - "id": 553, - "nodeType": "StructuredDocumentation", - "src": "825:220:7", - "text": " @dev Push tokens from this contract to a receiving address.\n @param _graphToken Token to transfer\n @param _to Address receiving the tokens\n @param _amount Amount of tokens to transfer" - }, - "id": 578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pushTokens", - "nameLocation": "1059:10:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 556, - "mutability": "mutable", - "name": "_graphToken", - "nameLocation": "1082:11:7", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "1070:23:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - }, - "typeName": { - "id": 555, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 554, - "name": "IGraphToken", - "nameLocations": [ - "1070:11:7" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 518, - "src": "1070:11:7" - }, - "referencedDeclaration": 518, - "src": "1070:11:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 558, - "mutability": "mutable", - "name": "_to", - "nameLocation": "1103:3:7", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "1095:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 557, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1095:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 560, - "mutability": "mutable", - "name": "_amount", - "nameLocation": "1116:7:7", - "nodeType": "VariableDeclaration", - "scope": 578, - "src": "1108:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 559, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1108:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1069:55:7" - }, - "returnParameters": { - "id": 562, - "nodeType": "ParameterList", - "parameters": [], - "src": "1134:0:7" - }, - "scope": 600, - "src": "1050:198:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 598, - "nodeType": "Block", - "src": "1475:83:7", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 587, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "1489:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1499:1:7", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1489:11:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 597, - "nodeType": "IfStatement", - "src": "1485:67:7", - "trueBody": { - "id": 596, - "nodeType": "Block", - "src": "1502:50:7", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 593, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "1533:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 590, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "1516:11:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1528:4:7", - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 448, - "src": "1516:16:7", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1516:25:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 595, - "nodeType": "ExpressionStatement", - "src": "1516:25:7" - } - ] - } - } - ] - }, - "documentation": { - "id": 579, - "nodeType": "StructuredDocumentation", - "src": "1254:145:7", - "text": " @dev Burn tokens held by this contract.\n @param _graphToken Token to burn\n @param _amount Amount of tokens to burn" - }, - "id": 599, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burnTokens", - "nameLocation": "1413:10:7", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 585, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 582, - "mutability": "mutable", - "name": "_graphToken", - "nameLocation": "1436:11:7", - "nodeType": "VariableDeclaration", - "scope": 599, - "src": "1424:23:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - }, - "typeName": { - "id": 581, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 580, - "name": "IGraphToken", - "nameLocations": [ - "1424:11:7" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 518, - "src": "1424:11:7" - }, - "referencedDeclaration": 518, - "src": "1424:11:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 584, - "mutability": "mutable", - "name": "_amount", - "nameLocation": "1457:7:7", - "nodeType": "VariableDeclaration", - "scope": 599, - "src": "1449:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 583, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1449:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1423:42:7" - }, - "returnParameters": { - "id": 586, - "nodeType": "ParameterList", - "parameters": [], - "src": "1475:0:7" - }, - "scope": 600, - "src": "1404:154:7", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 601, - "src": "357:1203:7", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "46:1515:7" - }, - "id": 7 - }, - "@graphprotocol/horizon/contracts/data-service/DataService.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataService.sol", - "exportedSymbols": { - "DataService": [ - 696 - ], - "DataServiceV1Storage": [ - 704 - ], - "GraphDirectory": [ - 4653 - ], - "IDataService": [ - 1318 - ], - "ProvisionManager": [ - 2128 - ] - }, - "id": 697, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 602, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:8" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol", - "file": "./interfaces/IDataService.sol", - "id": 604, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 697, - "sourceUnit": 1319, - "src": "70:61:8", - "symbolAliases": [ - { - "foreign": { - "id": 603, - "name": "IDataService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "79:12:8", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol", - "file": "./DataServiceStorage.sol", - "id": 606, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 697, - "sourceUnit": 705, - "src": "133:64:8", - "symbolAliases": [ - { - "foreign": { - "id": 605, - "name": "DataServiceV1Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 704, - "src": "142:20:8", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", - "file": "../utilities/GraphDirectory.sol", - "id": 608, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 697, - "sourceUnit": 4654, - "src": "198:65:8", - "symbolAliases": [ - { - "foreign": { - "id": 607, - "name": "GraphDirectory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4653, - "src": "207:14:8", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol", - "file": "./utilities/ProvisionManager.sol", - "id": 610, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 697, - "sourceUnit": 2129, - "src": "264:68:8", - "symbolAliases": [ - { - "foreign": { - "id": 609, - "name": "ProvisionManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2128, - "src": "273:16:8", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 612, - "name": "GraphDirectory", - "nameLocations": [ - "1575:14:8" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4653, - "src": "1575:14:8" - }, - "id": 613, - "nodeType": "InheritanceSpecifier", - "src": "1575:14:8" - }, - { - "baseName": { - "id": 614, - "name": "ProvisionManager", - "nameLocations": [ - "1591:16:8" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2128, - "src": "1591:16:8" - }, - "id": 615, - "nodeType": "InheritanceSpecifier", - "src": "1591:16:8" - }, - { - "baseName": { - "id": 616, - "name": "DataServiceV1Storage", - "nameLocations": [ - "1609:20:8" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 704, - "src": "1609:20:8" - }, - "id": 617, - "nodeType": "InheritanceSpecifier", - "src": "1609:20:8" - }, - { - "baseName": { - "id": 618, - "name": "IDataService", - "nameLocations": [ - "1631:12:8" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1318, - "src": "1631:12:8" - }, - "id": 619, - "nodeType": "InheritanceSpecifier", - "src": "1631:12:8" - } - ], - "canonicalName": "DataService", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 611, - "nodeType": "StructuredDocumentation", - "src": "334:1207:8", - "text": " @title DataService contract\n @dev Implementation of the {IDataService} interface.\n @notice This implementation provides base functionality for a data service:\n - GraphDirectory, allows the data service to interact with Graph Horizon contracts\n - ProvisionManager, provides functionality to manage provisions\n The derived contract MUST implement all the interfaces described in {IDataService} and in\n accordance with the Data Service framework.\n @dev A note on upgradeability: this base contract can be inherited by upgradeable or non upgradeable\n contracts.\n - If the data service implementation is upgradeable, it must initialize the contract via an external\n initializer function with the `initializer` modifier that calls {__DataService_init} or\n {__DataService_init_unchained}. It's recommended the implementation constructor to also call\n {_disableInitializers} to prevent the implementation from being initialized.\n - If the data service implementation is NOT upgradeable, it must initialize the contract by calling\n {__DataService_init} or {__DataService_init_unchained} in the constructor. Note that the `initializer`\n will be required in the constructor." - }, - "fullyImplemented": false, - "id": 696, - "linearizedBaseContracts": [ - 696, - 1318, - 704, - 2128, - 2158, - 4653, - 5102 - ], - "name": "DataService", - "nameLocation": "1560:11:8", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 628, - "nodeType": "Block", - "src": "1902:2:8", - "statements": [] - }, - "documentation": { - "id": 620, - "nodeType": "StructuredDocumentation", - "src": "1650:188:8", - "text": " @dev Addresses in GraphDirectory are immutables, they can only be set in this constructor.\n @param controller The address of the Graph Horizon controller contract." - }, - "id": 629, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 625, - "name": "controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 622, - "src": "1890:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 626, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 624, - "name": "GraphDirectory", - "nameLocations": [ - "1875:14:8" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4653, - "src": "1875:14:8" - }, - "nodeType": "ModifierInvocation", - "src": "1875:26:8" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 623, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 622, - "mutability": "mutable", - "name": "controller", - "nameLocation": "1863:10:8", - "nodeType": "VariableDeclaration", - "scope": 629, - "src": "1855:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1855:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1854:20:8" - }, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "1902:0:8" - }, - "scope": 696, - "src": "1843:61:8", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 641, - "nodeType": "Block", - "src": "2101:92:8", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 635, - "name": "__ProvisionManager_init_unchained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1760, - "src": "2111:33:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2111:35:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 637, - "nodeType": "ExpressionStatement", - "src": "2111:35:8" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 638, - "name": "__DataService_init_unchained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 649, - "src": "2156:28:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2156:30:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 640, - "nodeType": "ExpressionStatement", - "src": "2156:30:8" - } - ] - }, - "documentation": { - "id": 630, - "nodeType": "StructuredDocumentation", - "src": "1910:77:8", - "text": " @notice Initializes the contract and any parent contracts." - }, - "id": 642, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 633, - "kind": "modifierInvocation", - "modifierName": { - "id": 632, - "name": "onlyInitializing", - "nameLocations": [ - "2084:16:8" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "2084:16:8" - }, - "nodeType": "ModifierInvocation", - "src": "2084:16:8" - } - ], - "name": "__DataService_init", - "nameLocation": "2054:18:8", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 631, - "nodeType": "ParameterList", - "parameters": [], - "src": "2072:2:8" - }, - "returnParameters": { - "id": 634, - "nodeType": "ParameterList", - "parameters": [], - "src": "2101:0:8" - }, - "scope": 696, - "src": "2045:148:8", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 648, - "nodeType": "Block", - "src": "2375:2:8", - "statements": [] - }, - "documentation": { - "id": 643, - "nodeType": "StructuredDocumentation", - "src": "2199:52:8", - "text": " @notice Initializes the contract." - }, - "id": 649, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 646, - "kind": "modifierInvocation", - "modifierName": { - "id": 645, - "name": "onlyInitializing", - "nameLocations": [ - "2358:16:8" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "2358:16:8" - }, - "nodeType": "ModifierInvocation", - "src": "2358:16:8" - } - ], - "name": "__DataService_init_unchained", - "nameLocation": "2318:28:8", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 644, - "nodeType": "ParameterList", - "parameters": [], - "src": "2346:2:8" - }, - "returnParameters": { - "id": 647, - "nodeType": "ParameterList", - "parameters": [], - "src": "2375:0:8" - }, - "scope": 696, - "src": "2309:68:8", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "baseFunctions": [ - 1295 - ], - "body": { - "id": 660, - "nodeType": "Block", - "src": "2528:48:8", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 657, - "name": "_getThawingPeriodRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "2545:22:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$", - "typeString": "function () view returns (uint64,uint64)" - } - }, - "id": 658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2545:24:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$", - "typeString": "tuple(uint64,uint64)" - } - }, - "functionReturnParameters": 656, - "id": 659, - "nodeType": "Return", - "src": "2538:31:8" - } - ] - }, - "documentation": { - "id": 650, - "nodeType": "StructuredDocumentation", - "src": "2383:68:8", - "text": " @notice See {IDataService-getThawingPeriodRange}." - }, - "functionSelector": "71ce020a", - "id": 661, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getThawingPeriodRange", - "nameLocation": "2465:21:8", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 651, - "nodeType": "ParameterList", - "parameters": [], - "src": "2486:2:8" - }, - "returnParameters": { - "id": 656, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 653, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "2512:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 652, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2512:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 655, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "2520:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 654, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2520:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "2511:16:8" - }, - "scope": 696, - "src": "2456:120:8", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 1303 - ], - "body": { - "id": 672, - "nodeType": "Block", - "src": "2723:46:8", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 669, - "name": "_getVerifierCutRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2063, - "src": "2740:20:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint32_$_t_uint32_$", - "typeString": "function () view returns (uint32,uint32)" - } - }, - "id": 670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2740:22:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 668, - "id": 671, - "nodeType": "Return", - "src": "2733:29:8" - } - ] - }, - "documentation": { - "id": 662, - "nodeType": "StructuredDocumentation", - "src": "2582:66:8", - "text": " @notice See {IDataService-getVerifierCutRange}." - }, - "functionSelector": "482468b7", - "id": 673, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getVerifierCutRange", - "nameLocation": "2662:19:8", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 663, - "nodeType": "ParameterList", - "parameters": [], - "src": "2681:2:8" - }, - "returnParameters": { - "id": 668, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 665, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 673, - "src": "2707:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 664, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2707:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 667, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 673, - "src": "2715:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 666, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2715:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "2706:16:8" - }, - "scope": 696, - "src": "2653:116:8", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 1311 - ], - "body": { - "id": 684, - "nodeType": "Block", - "src": "2926:50:8", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 681, - "name": "_getProvisionTokensRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2037, - "src": "2943:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", - "typeString": "function () view returns (uint256,uint256)" - } - }, - "id": 682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2943:26:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 680, - "id": 683, - "nodeType": "Return", - "src": "2936:33:8" - } - ] - }, - "documentation": { - "id": 674, - "nodeType": "StructuredDocumentation", - "src": "2775:70:8", - "text": " @notice See {IDataService-getProvisionTokensRange}." - }, - "functionSelector": "819ba366", - "id": 685, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProvisionTokensRange", - "nameLocation": "2859:23:8", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 675, - "nodeType": "ParameterList", - "parameters": [], - "src": "2882:2:8" - }, - "returnParameters": { - "id": 680, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 677, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 685, - "src": "2908:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 676, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2908:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 679, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 685, - "src": "2917:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 678, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2917:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2907:18:8" - }, - "scope": 696, - "src": "2850:126:8", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 1317 - ], - "body": { - "id": 694, - "nodeType": "Block", - "src": "3113:45:8", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 691, - "name": "_getDelegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "3130:19:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint32_$", - "typeString": "function () view returns (uint32)" - } - }, - "id": 692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3130:21:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 690, - "id": 693, - "nodeType": "Return", - "src": "3123:28:8" - } - ] - }, - "documentation": { - "id": 686, - "nodeType": "StructuredDocumentation", - "src": "2982:65:8", - "text": " @notice See {IDataService-getDelegationRatio}." - }, - "functionSelector": "1ebb7c30", - "id": 695, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDelegationRatio", - "nameLocation": "3061:18:8", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 687, - "nodeType": "ParameterList", - "parameters": [], - "src": "3079:2:8" - }, - "returnParameters": { - "id": 690, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 689, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 695, - "src": "3105:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 688, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3105:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "3104:8:8" - }, - "scope": 696, - "src": "3052:106:8", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 697, - "src": "1542:1618:8", - "usedErrors": [ - 1658, - 1665, - 1672, - 1677, - 4380, - 4865, - 4868 - ], - "usedEvents": [ - 1198, - 1203, - 1210, - 1217, - 1227, - 1234, - 1628, - 1633, - 1640, - 1647, - 4375, - 4873 - ] - } - ], - "src": "45:3116:8" - }, - "id": 8 - }, - "@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol", - "exportedSymbols": { - "DataServiceV1Storage": [ - 704 - ] - }, - "id": 705, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 698, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:9" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "DataServiceV1Storage", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 704, - "linearizedBaseContracts": [ - 704 - ], - "name": "DataServiceV1Storage", - "nameLocation": "88:20:9", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "documentation": { - "id": 699, - "nodeType": "StructuredDocumentation", - "src": "115:57:9", - "text": "@dev Gap to allow adding variables in future upgrades" - }, - "id": 703, - "mutability": "mutable", - "name": "__gap", - "nameLocation": "197:5:9", - "nodeType": "VariableDeclaration", - "scope": 704, - "src": "177:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage", - "typeString": "uint256[50]" - }, - "typeName": { - "baseType": { - "id": 700, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "177:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 702, - "length": { - "hexValue": "3530", - "id": 701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "185:2:9", - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "50" - }, - "nodeType": "ArrayTypeName", - "src": "177:11:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", - "typeString": "uint256[50]" - } - }, - "visibility": "private" - } - ], - "scope": 705, - "src": "70:135:9", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "45:161:9" - }, - "id": 9 - }, - "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol", - "exportedSymbols": { - "DataService": [ - 696 - ], - "DataServiceFees": [ - 1052 - ], - "DataServiceFeesV1Storage": [ - 1081 - ], - "IDataServiceFees": [ - 1381 - ], - "LinkedList": [ - 4087 - ], - "ProvisionTracker": [ - 1555 - ] - }, - "id": 1053, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 706, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:10" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol", - "file": "../interfaces/IDataServiceFees.sol", - "id": 708, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1053, - "sourceUnit": 1382, - "src": "70:70:10", - "symbolAliases": [ - { - "foreign": { - "id": 707, - "name": "IDataServiceFees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1381, - "src": "79:16:10", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol", - "file": "../libraries/ProvisionTracker.sol", - "id": 710, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1053, - "sourceUnit": 1556, - "src": "142:69:10", - "symbolAliases": [ - { - "foreign": { - "id": 709, - "name": "ProvisionTracker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "151:16:10", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/LinkedList.sol", - "file": "../../libraries/LinkedList.sol", - "id": 712, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1053, - "sourceUnit": 4088, - "src": "212:60:10", - "symbolAliases": [ - { - "foreign": { - "id": 711, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4087, - "src": "221:10:10", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataService.sol", - "file": "../DataService.sol", - "id": 714, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1053, - "sourceUnit": 697, - "src": "274:49:10", - "symbolAliases": [ - { - "foreign": { - "id": 713, - "name": "DataService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "283:11:10", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol", - "file": "./DataServiceFeesStorage.sol", - "id": 716, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1053, - "sourceUnit": 1082, - "src": "324:72:10", - "symbolAliases": [ - { - "foreign": { - "id": 715, - "name": "DataServiceFeesV1Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1081, - "src": "333:24:10", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 718, - "name": "DataService", - "nameLocations": [ - "698:11:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 696, - "src": "698:11:10" - }, - "id": 719, - "nodeType": "InheritanceSpecifier", - "src": "698:11:10" - }, - { - "baseName": { - "id": 720, - "name": "DataServiceFeesV1Storage", - "nameLocations": [ - "711:24:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1081, - "src": "711:24:10" - }, - "id": 721, - "nodeType": "InheritanceSpecifier", - "src": "711:24:10" - }, - { - "baseName": { - "id": 722, - "name": "IDataServiceFees", - "nameLocations": [ - "737:16:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1381, - "src": "737:16:10" - }, - "id": 723, - "nodeType": "InheritanceSpecifier", - "src": "737:16:10" - } - ], - "canonicalName": "DataServiceFees", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 717, - "nodeType": "StructuredDocumentation", - "src": "398:262:10", - "text": " @title DataServiceFees contract\n @dev Implementation of the {IDataServiceFees} interface.\n @notice Extension for the {IDataService} contract to handle payment collateralization\n using a Horizon provision. See {IDataServiceFees} for more details." - }, - "fullyImplemented": false, - "id": 1052, - "internalFunctionIDs": { - "958": 1, - "970": 2, - "1028": 3 - }, - "linearizedBaseContracts": [ - 1052, - 1381, - 1081, - 696, - 1318, - 704, - 2128, - 2158, - 4653, - 5102 - ], - "name": "DataServiceFees", - "nameLocation": "679:15:10", - "nodeType": "ContractDefinition", - "nodes": [ - { - "global": false, - "id": 728, - "libraryName": { - "id": 724, - "name": "ProvisionTracker", - "nameLocations": [ - "766:16:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1555, - "src": "766:16:10" - }, - "nodeType": "UsingForDirective", - "src": "760:55:10", - "typeName": { - "id": 727, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 725, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "795:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "787:27:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "806:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - { - "global": false, - "id": 732, - "libraryName": { - "id": 729, - "name": "LinkedList", - "nameLocations": [ - "826:10:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4087, - "src": "826:10:10" - }, - "nodeType": "UsingForDirective", - "src": "820:37:10", - "typeName": { - "id": 731, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 730, - "name": "LinkedList.List", - "nameLocations": [ - "841:10:10", - "852:4:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3813, - "src": "841:15:10" - }, - "referencedDeclaration": 3813, - "src": "841:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - } - } - }, - { - "baseFunctions": [ - 1380 - ], - "body": { - "id": 745, - "nodeType": "Block", - "src": "1006:62:10", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 740, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1030:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1034:6:10", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1030:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 742, - "name": "numClaimsToRelease", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 735, - "src": "1042:18:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 739, - "name": "_releaseStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "1016:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1016:45:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 744, - "nodeType": "ExpressionStatement", - "src": "1016:45:10" - } - ] - }, - "documentation": { - "id": 733, - "nodeType": "StructuredDocumentation", - "src": "863:62:10", - "text": " @notice See {IDataServiceFees-releaseStake}" - }, - "functionSelector": "45f54485", - "id": 746, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "releaseStake", - "nameLocation": "939:12:10", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 737, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "997:8:10" - }, - "parameters": { - "id": 736, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 735, - "mutability": "mutable", - "name": "numClaimsToRelease", - "nameLocation": "960:18:10", - "nodeType": "VariableDeclaration", - "scope": 746, - "src": "952:26:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 734, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "952:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "951:28:10" - }, - "returnParameters": { - "id": 738, - "nodeType": "ParameterList", - "parameters": [], - "src": "1006:0:10" - }, - "scope": 1052, - "src": "930:138:10", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - }, - { - "body": { - "id": 832, - "nodeType": "Block", - "src": "1717:761:10", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 757, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "1735:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1746:1:10", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1735:12:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 760, - "name": "DataServiceFeesZeroTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "1749:25:10", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1749:27:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 756, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1727:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1727:50:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 763, - "nodeType": "ExpressionStatement", - "src": "1727:50:10" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 767, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "1813:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1813:15:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - { - "id": 769, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "1830:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 770, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "1848:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 771, - "name": "delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2152, - "src": "1857:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 764, - "name": "feesProvisionTracker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "1787:20:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1808:4:10", - "memberName": "lock", - "nodeType": "MemberAccess", - "referencedDeclaration": 1480, - "src": "1787:25:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_uint256_$_$_t_contract$_IHorizonStaking_$2235_$_t_address_$_t_uint256_$_t_uint32_$returns$__$attached_to$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "function (mapping(address => uint256),contract IHorizonStaking,address,uint256,uint32)" - } - }, - "id": 772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1787:86:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 773, - "nodeType": "ExpressionStatement", - "src": "1787:86:10" - }, - { - "assignments": [ - 778 - ], - "declarations": [ - { - "constant": false, - "id": 778, - "mutability": "mutable", - "name": "claimsList", - "nameLocation": "1908:10:10", - "nodeType": "VariableDeclaration", - "scope": 832, - "src": "1884:34:10", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "id": 777, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 776, - "name": "LinkedList.List", - "nameLocations": [ - "1884:10:10", - "1895:4:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3813, - "src": "1884:15:10" - }, - "referencedDeclaration": 3813, - "src": "1884:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "visibility": "internal" - } - ], - "id": 782, - "initialValue": { - "baseExpression": { - "id": 779, - "name": "claimsLists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1921:11:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$3813_storage_$", - "typeString": "mapping(address => struct LinkedList.List storage ref)" - } - }, - "id": 781, - "indexExpression": { - "id": 780, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "1933:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1921:29:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1884:66:10" - }, - { - "assignments": [ - 784 - ], - "declarations": [ - { - "constant": false, - "id": 784, - "mutability": "mutable", - "name": "claimId", - "nameLocation": "2006:7:10", - "nodeType": "VariableDeclaration", - "scope": 832, - "src": "1998:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 783, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1998:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 790, - "initialValue": { - "arguments": [ - { - "id": 786, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "2035:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 787, - "name": "claimsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 778, - "src": "2053:10:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 788, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2064:5:10", - "memberName": "nonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 3810, - "src": "2053:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 785, - "name": "_buildStakeClaimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "2016:18:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256) view returns (bytes32)" - } - }, - "id": 789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2016:54:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1998:72:10" - }, - { - "expression": { - "id": 804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 791, - "name": "claims", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "2080:6:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1335_storage_$", - "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim storage ref)" - } - }, - "id": 793, - "indexExpression": { - "id": 792, - "name": "claimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "2087:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2080:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_storage", - "typeString": "struct IDataServiceFees.StakeClaim storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 795, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "2131:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 796, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "2163:5:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2169:9:10", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "2163:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 798, - "name": "_unlockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "2206:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2255:1:10", - "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": 800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2247:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 799, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2247:7:10", - "typeDescriptions": {} - } - }, - "id": 802, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2247:10:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 794, - "name": "StakeClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1335, - "src": "2098:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_StakeClaim_$1335_storage_ptr_$", - "typeString": "type(struct IDataServiceFees.StakeClaim storage pointer)" - } - }, - "id": 803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2123:6:10", - "2152:9:10", - "2192:12:10", - "2236:9:10" - ], - "names": [ - "tokens", - "createdAt", - "releasableAt", - "nextClaim" - ], - "nodeType": "FunctionCall", - "src": "2098:170:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim memory" - } - }, - "src": "2080:188:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_storage", - "typeString": "struct IDataServiceFees.StakeClaim storage ref" - } - }, - "id": 805, - "nodeType": "ExpressionStatement", - "src": "2080:188:10" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 806, - "name": "claimsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 778, - "src": "2282:10:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 807, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2293:5:10", - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3812, - "src": "2282:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2302:1:10", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2282:21:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 818, - "nodeType": "IfStatement", - "src": "2278:70:10", - "trueBody": { - "expression": { - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 810, - "name": "claims", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "2305:6:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1335_storage_$", - "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim storage ref)" - } - }, - "id": 813, - "indexExpression": { - "expression": { - "id": 811, - "name": "claimsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 778, - "src": "2312:10:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 812, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2323:4:10", - "memberName": "tail", - "nodeType": "MemberAccess", - "referencedDeclaration": 3808, - "src": "2312:15:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2305:23:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_storage", - "typeString": "struct IDataServiceFees.StakeClaim storage ref" - } - }, - "id": 814, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2329:9:10", - "memberName": "nextClaim", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "2305:33:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 815, - "name": "claimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "2341:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2305:43:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 817, - "nodeType": "ExpressionStatement", - "src": "2305:43:10" - } - }, - { - "expression": { - "arguments": [ - { - "id": 822, - "name": "claimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "2377:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 819, - "name": "claimsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 778, - "src": "2358:10:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 821, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2369:7:10", - "memberName": "addTail", - "nodeType": "MemberAccess", - "referencedDeclaration": 3895, - "src": "2358:18:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$3813_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_struct$_List_$3813_storage_ptr_$", - "typeString": "function (struct LinkedList.List storage pointer,bytes32)" - } - }, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2358:27:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 824, - "nodeType": "ExpressionStatement", - "src": "2358:27:10" - }, - { - "eventCall": { - "arguments": [ - { - "id": 826, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "2418:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 827, - "name": "claimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 784, - "src": "2436:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 828, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "2445:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 829, - "name": "_unlockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "2454:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 825, - "name": "StakeClaimLocked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1346, - "src": "2401:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,bytes32,uint256,uint256)" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2401:70:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 831, - "nodeType": "EmitStatement", - "src": "2396:75:10" - } - ] - }, - "documentation": { - "id": 747, - "nodeType": "StructuredDocumentation", - "src": "1074:540:10", - "text": " @notice Locks stake for a service provider to back a payment.\n Creates a stake claim, which is stored in a linked list by service provider.\n @dev Requirements:\n - The associated provision must have enough available tokens to lock the stake.\n Emits a {StakeClaimLocked} event.\n @param _serviceProvider The address of the service provider\n @param _tokens The amount of tokens to lock in the claim\n @param _unlockTimestamp The timestamp when the tokens can be released" - }, - "id": 833, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_lockStake", - "nameLocation": "1628:10:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 754, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 749, - "mutability": "mutable", - "name": "_serviceProvider", - "nameLocation": "1647:16:10", - "nodeType": "VariableDeclaration", - "scope": 833, - "src": "1639:24:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 748, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1639:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 751, - "mutability": "mutable", - "name": "_tokens", - "nameLocation": "1673:7:10", - "nodeType": "VariableDeclaration", - "scope": 833, - "src": "1665:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 750, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1665:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 753, - "mutability": "mutable", - "name": "_unlockTimestamp", - "nameLocation": "1690:16:10", - "nodeType": "VariableDeclaration", - "scope": 833, - "src": "1682:24:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 752, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1682:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1638:69:10" - }, - "returnParameters": { - "id": 755, - "nodeType": "ParameterList", - "parameters": [], - "src": "1717:0:10" - }, - "scope": 1052, - "src": "1619:859:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 879, - "nodeType": "Block", - "src": "2638:439:10", - "statements": [ - { - "assignments": [ - 845 - ], - "declarations": [ - { - "constant": false, - "id": 845, - "mutability": "mutable", - "name": "claimsList", - "nameLocation": "2672:10:10", - "nodeType": "VariableDeclaration", - "scope": 879, - "src": "2648:34:10", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "id": 844, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 843, - "name": "LinkedList.List", - "nameLocations": [ - "2648:10:10", - "2659:4:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3813, - "src": "2648:15:10" - }, - "referencedDeclaration": 3813, - "src": "2648:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "visibility": "internal" - } - ], - "id": 849, - "initialValue": { - "baseExpression": { - "id": 846, - "name": "claimsLists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "2685:11:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$3813_storage_$", - "typeString": "mapping(address => struct LinkedList.List storage ref)" - } - }, - "id": 848, - "indexExpression": { - "id": 847, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 836, - "src": "2697:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2685:29:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2648:66:10" - }, - { - "assignments": [ - 851, - 853 - ], - "declarations": [ - { - "constant": false, - "id": 851, - "mutability": "mutable", - "name": "claimsReleased", - "nameLocation": "2733:14:10", - "nodeType": "VariableDeclaration", - "scope": 879, - "src": "2725:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 850, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2725:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 853, - "mutability": "mutable", - "name": "data", - "nameLocation": "2762:4:10", - "nodeType": "VariableDeclaration", - "scope": 879, - "src": "2749:17:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 852, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2749:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 866, - "initialValue": { - "arguments": [ - { - "id": 856, - "name": "_getNextStakeClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1028, - "src": "2803:18:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - } - }, - { - "id": 857, - "name": "_processStakeClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "2835:18:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes32,bytes memory) returns (bool,bytes memory)" - } - }, - { - "id": 858, - "name": "_deleteStakeClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "2867:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2909:1:10", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "id": 862, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 836, - "src": "2912:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 859, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2898:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2902:6:10", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "2898:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2898:31:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 864, - "name": "_numClaimsToRelease", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 838, - "src": "2943:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - }, - { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes32,bytes memory) returns (bool,bytes memory)" - }, - { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 854, - "name": "claimsList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 845, - "src": "2770:10:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 855, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2781:8:10", - "memberName": "traverse", - "nodeType": "MemberAccess", - "referencedDeclaration": 4086, - "src": "2770:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$3813_storage_ptr_$_t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$_$_t_function_internal_nonpayable$_t_bytes32_$returns$__$_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$_t_bytes_memory_ptr_$attached_to$_t_struct$_List_$3813_storage_ptr_$", - "typeString": "function (struct LinkedList.List storage pointer,function (bytes32) view returns (bytes32),function (bytes32,bytes memory) returns (bool,bytes memory),function (bytes32),bytes memory,uint256) returns (uint256,bytes memory)" - } - }, - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2770:202:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bytes_memory_ptr_$", - "typeString": "tuple(uint256,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2724:248:10" - }, - { - "eventCall": { - "arguments": [ - { - "id": 868, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 836, - "src": "3008:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 869, - "name": "claimsReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "3026:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 872, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 853, - "src": "3053:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3060:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 873, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3060:7:10", - "typeDescriptions": {} - } - } - ], - "id": 875, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3059:9:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - ], - "expression": { - "id": 870, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3042:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3046:6:10", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "3042:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3042:27:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 867, - "name": "StakeClaimsReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1366, - "src": "2988:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2988:82:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "EmitStatement", - "src": "2983:87:10" - } - ] - }, - "documentation": { - "id": 834, - "nodeType": "StructuredDocumentation", - "src": "2484:62:10", - "text": " @notice See {IDataServiceFees-releaseStake}" - }, - "id": 880, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_releaseStake", - "nameLocation": "2560:13:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 839, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 836, - "mutability": "mutable", - "name": "_serviceProvider", - "nameLocation": "2582:16:10", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "2574:24:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 835, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2574:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 838, - "mutability": "mutable", - "name": "_numClaimsToRelease", - "nameLocation": "2608:19:10", - "nodeType": "VariableDeclaration", - "scope": 880, - "src": "2600:27:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 837, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2600:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2573:55:10" - }, - "returnParameters": { - "id": 840, - "nodeType": "ParameterList", - "parameters": [], - "src": "2638:0:10" - }, - "scope": 1052, - "src": "2551:526:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 957, - "nodeType": "Block", - "src": "3654:624:10", - "statements": [ - { - "assignments": [ - 894 - ], - "declarations": [ - { - "constant": false, - "id": 894, - "mutability": "mutable", - "name": "claim", - "nameLocation": "3682:5:10", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "3664:23:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim" - }, - "typeName": { - "id": 893, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 892, - "name": "StakeClaim", - "nameLocations": [ - "3664:10:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1335, - "src": "3664:10:10" - }, - "referencedDeclaration": 1335, - "src": "3664:10:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_storage_ptr", - "typeString": "struct IDataServiceFees.StakeClaim" - } - }, - "visibility": "internal" - } - ], - "id": 898, - "initialValue": { - "arguments": [ - { - "id": 896, - "name": "_claimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 883, - "src": "3705:8:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 895, - "name": "_getStakeClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "3690:14:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_StakeClaim_$1335_memory_ptr_$", - "typeString": "function (bytes32) view returns (struct IDataServiceFees.StakeClaim memory)" - } - }, - "id": 897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3690:24:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3664:50:10" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 899, - "name": "claim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "3751:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim memory" - } - }, - "id": 900, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3757:12:10", - "memberName": "releasableAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 1332, - "src": "3751:18:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "id": 901, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "3772:5:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3778:9:10", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "3772:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3751:36:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 910, - "nodeType": "IfStatement", - "src": "3747:103:10", - "trueBody": { - "id": 909, - "nodeType": "Block", - "src": "3789:61:10", - "statements": [ - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3811:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "expression": { - "id": 905, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4087, - "src": "3817:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$4087_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3828:10:10", - "memberName": "NULL_BYTES", - "nodeType": "MemberAccess", - "referencedDeclaration": 3820, - "src": "3817:21:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 907, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3810:29:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "functionReturnParameters": 891, - "id": 908, - "nodeType": "Return", - "src": "3803:36:10" - } - ] - } - }, - { - "assignments": [ - 912, - 914 - ], - "declarations": [ - { - "constant": false, - "id": 912, - "mutability": "mutable", - "name": "tokensClaimed", - "nameLocation": "3887:13:10", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "3879:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 911, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3879:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 914, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3910:15:10", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "3902:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3902:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 924, - "initialValue": { - "arguments": [ - { - "id": 917, - "name": "_acc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 885, - "src": "3940:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 919, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3947:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 918, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3947:7:10", - "typeDescriptions": {} - } - }, - { - "id": 921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3956:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 920, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3956:7:10", - "typeDescriptions": {} - } - } - ], - "id": 922, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3946:18:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$", - "typeString": "tuple(type(uint256),type(address))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$", - "typeString": "tuple(type(uint256),type(address))" - } - ], - "expression": { - "id": 915, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3929:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3933:6:10", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "3929:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3929:36:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", - "typeString": "tuple(uint256,address payable)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3878:87:10" - }, - { - "expression": { - "arguments": [ - { - "id": 928, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "4024:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 929, - "name": "claim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "4041:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim memory" - } - }, - "id": 930, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4047:6:10", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 1328, - "src": "4041:12:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 925, - "name": "feesProvisionTracker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "3995:20:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4016:7:10", - "memberName": "release", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "3995:28:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_uint256_$_$_t_address_$_t_uint256_$returns$__$attached_to$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "function (mapping(address => uint256),address,uint256)" - } - }, - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3995:59:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 932, - "nodeType": "ExpressionStatement", - "src": "3995:59:10" - }, - { - "eventCall": { - "arguments": [ - { - "id": 934, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "4088:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 935, - "name": "_claimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 883, - "src": "4105:8:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 936, - "name": "claim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "4115:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim memory" - } - }, - "id": 937, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4121:6:10", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 1328, - "src": "4115:12:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 938, - "name": "claim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "4129:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim memory" - } - }, - "id": 939, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4135:12:10", - "memberName": "releasableAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 1332, - "src": "4129:18:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 933, - "name": "StakeClaimReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1357, - "src": "4069:18:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,bytes32,uint256,uint256)" - } - }, - "id": 940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4069:79:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 941, - "nodeType": "EmitStatement", - "src": "4064:84:10" - }, - { - "expression": { - "id": 951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 942, - "name": "_acc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 885, - "src": "4177:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 945, - "name": "tokensClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "4195:13:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "id": 946, - "name": "claim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "4211:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim memory" - } - }, - "id": 947, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4217:6:10", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 1328, - "src": "4211:12:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4195:28:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 949, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "4225:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 943, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "4184:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 944, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4188:6:10", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "4184:10:10", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4184:57:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "4177:64:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 952, - "nodeType": "ExpressionStatement", - "src": "4177:64:10" - }, - { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4259:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "id": 954, - "name": "_acc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 885, - "src": "4266:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 955, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4258:13:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "functionReturnParameters": 891, - "id": 956, - "nodeType": "Return", - "src": "4251:20:10" - } - ] - }, - "documentation": { - "id": 881, - "nodeType": "StructuredDocumentation", - "src": "3083:464:10", - "text": " @notice Processes a stake claim, releasing the tokens if the claim has expired.\n @dev This function is used as a callback in the stake claims linked list traversal.\n @param _claimId The id of the stake claim\n @param _acc The accumulator for the stake claims being processed\n @return Wether the stake claim is still locked, indicating that the traversal should continue or stop.\n @return The updated accumulator data" - }, - "id": 958, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_processStakeClaim", - "nameLocation": "3561:18:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 886, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 883, - "mutability": "mutable", - "name": "_claimId", - "nameLocation": "3588:8:10", - "nodeType": "VariableDeclaration", - "scope": 958, - "src": "3580:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 882, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3580:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 885, - "mutability": "mutable", - "name": "_acc", - "nameLocation": "3611:4:10", - "nodeType": "VariableDeclaration", - "scope": 958, - "src": "3598:17:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 884, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3598:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3579:37:10" - }, - "returnParameters": { - "id": 891, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 888, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 958, - "src": "3634:4:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 887, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3634:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 890, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 958, - "src": "3640:12:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 889, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3640:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3633:20:10" - }, - "scope": 1052, - "src": "3552:726:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 969, - "nodeType": "Block", - "src": "4541:40:10", - "statements": [ - { - "expression": { - "id": 967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "4551:23:10", - "subExpression": { - "baseExpression": { - "id": 964, - "name": "claims", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "4558:6:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1335_storage_$", - "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim storage ref)" - } - }, - "id": 966, - "indexExpression": { - "id": 965, - "name": "_claimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 961, - "src": "4565:8:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4558:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_storage", - "typeString": "struct IDataServiceFees.StakeClaim storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 968, - "nodeType": "ExpressionStatement", - "src": "4551:23:10" - } - ] - }, - "documentation": { - "id": 959, - "nodeType": "StructuredDocumentation", - "src": "4284:199:10", - "text": " @notice Deletes a stake claim.\n @dev This function is used as a callback in the stake claims linked list traversal.\n @param _claimId The ID of the stake claim to delete" - }, - "id": 970, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_deleteStakeClaim", - "nameLocation": "4497:17:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 962, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 961, - "mutability": "mutable", - "name": "_claimId", - "nameLocation": "4523:8:10", - "nodeType": "VariableDeclaration", - "scope": 970, - "src": "4515:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 960, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4515:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4514:18:10" - }, - "returnParameters": { - "id": 963, - "nodeType": "ParameterList", - "parameters": [], - "src": "4541:0:10" - }, - "scope": 1052, - "src": "4488:93:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 998, - "nodeType": "Block", - "src": "4784:160:10", - "statements": [ - { - "assignments": [ - 981 - ], - "declarations": [ - { - "constant": false, - "id": 981, - "mutability": "mutable", - "name": "claim", - "nameLocation": "4812:5:10", - "nodeType": "VariableDeclaration", - "scope": 998, - "src": "4794:23:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim" - }, - "typeName": { - "id": 980, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 979, - "name": "StakeClaim", - "nameLocations": [ - "4794:10:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1335, - "src": "4794:10:10" - }, - "referencedDeclaration": 1335, - "src": "4794:10:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_storage_ptr", - "typeString": "struct IDataServiceFees.StakeClaim" - } - }, - "visibility": "internal" - } - ], - "id": 985, - "initialValue": { - "baseExpression": { - "id": 982, - "name": "claims", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "4820:6:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1335_storage_$", - "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim storage ref)" - } - }, - "id": 984, - "indexExpression": { - "id": 983, - "name": "_claimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "4827:8:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4820:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_storage", - "typeString": "struct IDataServiceFees.StakeClaim storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4794:42:10" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 987, - "name": "claim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "4854:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim memory" - } - }, - "id": 988, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4860:9:10", - "memberName": "createdAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 1330, - "src": "4854:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 989, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4873:1:10", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4854:20:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 992, - "name": "_claimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "4905:8:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 991, - "name": "DataServiceFeesClaimNotFound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "4876:28:10", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", - "typeString": "function (bytes32) pure returns (error)" - } - }, - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4876:38:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 986, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4846:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4846:69:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 995, - "nodeType": "ExpressionStatement", - "src": "4846:69:10" - }, - { - "expression": { - "id": 996, - "name": "claim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "4932:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim memory" - } - }, - "functionReturnParameters": 978, - "id": 997, - "nodeType": "Return", - "src": "4925:12:10" - } - ] - }, - "documentation": { - "id": 971, - "nodeType": "StructuredDocumentation", - "src": "4587:109:10", - "text": " @notice Gets the details of a stake claim\n @param _claimId The ID of the stake claim" - }, - "id": 999, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getStakeClaim", - "nameLocation": "4710:14:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 974, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 973, - "mutability": "mutable", - "name": "_claimId", - "nameLocation": "4733:8:10", - "nodeType": "VariableDeclaration", - "scope": 999, - "src": "4725:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 972, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4725:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4724:18:10" - }, - "returnParameters": { - "id": 978, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 977, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 999, - "src": "4765:17:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim" - }, - "typeName": { - "id": 976, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 975, - "name": "StakeClaim", - "nameLocations": [ - "4765:10:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1335, - "src": "4765:10:10" - }, - "referencedDeclaration": 1335, - "src": "4765:10:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_storage_ptr", - "typeString": "struct IDataServiceFees.StakeClaim" - } - }, - "visibility": "internal" - } - ], - "src": "4764:19:10" - }, - "scope": 1052, - "src": "4701:243:10", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 1027, - "nodeType": "Block", - "src": "5243:170:10", - "statements": [ - { - "assignments": [ - 1009 - ], - "declarations": [ - { - "constant": false, - "id": 1009, - "mutability": "mutable", - "name": "claim", - "nameLocation": "5271:5:10", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "5253:23:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim" - }, - "typeName": { - "id": 1008, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1007, - "name": "StakeClaim", - "nameLocations": [ - "5253:10:10" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1335, - "src": "5253:10:10" - }, - "referencedDeclaration": 1335, - "src": "5253:10:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_storage_ptr", - "typeString": "struct IDataServiceFees.StakeClaim" - } - }, - "visibility": "internal" - } - ], - "id": 1013, - "initialValue": { - "baseExpression": { - "id": 1010, - "name": "claims", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "5279:6:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1335_storage_$", - "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim storage ref)" - } - }, - "id": 1012, - "indexExpression": { - "id": 1011, - "name": "_claimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1002, - "src": "5286:8:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5279:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_storage", - "typeString": "struct IDataServiceFees.StakeClaim storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5253:42:10" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 1015, - "name": "claim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1009, - "src": "5313:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim memory" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5319:9:10", - "memberName": "createdAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 1330, - "src": "5313:15:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5332:1:10", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5313:20:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 1020, - "name": "_claimId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1002, - "src": "5364:8:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1019, - "name": "DataServiceFeesClaimNotFound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1371, - "src": "5335:28:10", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", - "typeString": "function (bytes32) pure returns (error)" - } - }, - "id": 1021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5335:38:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 1014, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5305:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 1022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5305:69:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1023, - "nodeType": "ExpressionStatement", - "src": "5305:69:10" - }, - { - "expression": { - "expression": { - "id": 1024, - "name": "claim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1009, - "src": "5391:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_memory_ptr", - "typeString": "struct IDataServiceFees.StakeClaim memory" - } - }, - "id": 1025, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5397:9:10", - "memberName": "nextClaim", - "nodeType": "MemberAccess", - "referencedDeclaration": 1334, - "src": "5391:15:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 1006, - "id": 1026, - "nodeType": "Return", - "src": "5384:22:10" - } - ] - }, - "documentation": { - "id": 1000, - "nodeType": "StructuredDocumentation", - "src": "4950:211:10", - "text": " @notice Gets the next stake claim in the linked list\n @dev This function is used as a callback in the stake claims linked list traversal.\n @param _claimId The ID of the stake claim" - }, - "id": 1028, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getNextStakeClaim", - "nameLocation": "5175:18:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1002, - "mutability": "mutable", - "name": "_claimId", - "nameLocation": "5202:8:10", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "5194:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1001, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5194:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5193:18:10" - }, - "returnParameters": { - "id": 1006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1028, - "src": "5234:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1004, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5234:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5233:9:10" - }, - "scope": 1052, - "src": "5166:247:10", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 1050, - "nodeType": "Block", - "src": "5690:92:10", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 1043, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "5742:4:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DataServiceFees_$1052", - "typeString": "contract DataServiceFees" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DataServiceFees_$1052", - "typeString": "contract DataServiceFees" - } - ], - "id": 1042, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5734:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1041, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5734:7:10", - "typeDescriptions": {} - } - }, - "id": 1044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5734:13:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1045, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "5749:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1046, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "5767:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 1039, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "5717:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5721:12:10", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "5717:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5717:57:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1038, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "5707:9:10", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5707:68:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 1037, - "id": 1049, - "nodeType": "Return", - "src": "5700:75:10" - } - ] - }, - "documentation": { - "id": 1029, - "nodeType": "StructuredDocumentation", - "src": "5419:165:10", - "text": " @notice Builds a stake claim ID\n @param _serviceProvider The address of the service provider\n @param _nonce A nonce of the stake claim" - }, - "id": 1051, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_buildStakeClaimId", - "nameLocation": "5598:18:10", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1034, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1031, - "mutability": "mutable", - "name": "_serviceProvider", - "nameLocation": "5625:16:10", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "5617:24:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1030, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5617:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1033, - "mutability": "mutable", - "name": "_nonce", - "nameLocation": "5651:6:10", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "5643:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1032, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5643:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5616:42:10" - }, - "returnParameters": { - "id": 1037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1036, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "5681:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1035, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5681:7:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5680:9:10" - }, - "scope": 1052, - "src": "5589:193:10", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "scope": 1053, - "src": "661:5123:10", - "usedErrors": [ - 1371, - 1374, - 1421, - 1658, - 1665, - 1672, - 1677, - 3827, - 3833, - 4380, - 4865, - 4868 - ], - "usedEvents": [ - 1198, - 1203, - 1210, - 1217, - 1227, - 1234, - 1346, - 1357, - 1366, - 1628, - 1633, - 1640, - 1647, - 4375, - 4873 - ] - } - ], - "src": "45:5740:10" - }, - "id": 10 - }, - "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol", - "exportedSymbols": { - "DataServiceFeesV1Storage": [ - 1081 - ], - "IDataServiceFees": [ - 1381 - ], - "LinkedList": [ - 4087 - ] - }, - "id": 1082, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1054, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:11" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol", - "file": "../interfaces/IDataServiceFees.sol", - "id": 1056, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1082, - "sourceUnit": 1382, - "src": "70:70:11", - "symbolAliases": [ - { - "foreign": { - "id": 1055, - "name": "IDataServiceFees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1381, - "src": "79:16:11", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/LinkedList.sol", - "file": "../../libraries/LinkedList.sol", - "id": 1058, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1082, - "sourceUnit": 4088, - "src": "142:60:11", - "symbolAliases": [ - { - "foreign": { - "id": 1057, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4087, - "src": "151:10:11", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "DataServiceFeesV1Storage", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 1059, - "nodeType": "StructuredDocumentation", - "src": "204:78:11", - "text": " @title Storage layout for the {DataServiceFees} extension contract." - }, - "fullyImplemented": true, - "id": 1081, - "linearizedBaseContracts": [ - 1081 - ], - "name": "DataServiceFeesV1Storage", - "nameLocation": "301:24:11", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "cbe5f3f2", - "id": 1063, - "mutability": "mutable", - "name": "feesProvisionTracker", - "nameLocation": "390:20:11", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "332:78:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 1062, - "keyName": "serviceProvider", - "keyNameLocation": "348:15:11", - "keyType": { - "id": 1060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "340:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "332:50:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "tokens", - "valueNameLocation": "375:6:11", - "valueType": { - "id": 1061, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "367:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 1064, - "nodeType": "StructuredDocumentation", - "src": "417:79:11", - "text": "@notice List of all locked stake claims to be released to service providers" - }, - "functionSelector": "eff0f592", - "id": 1069, - "mutability": "mutable", - "name": "claims", - "nameLocation": "570:6:11", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "501:75:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1335_storage_$", - "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim)" - }, - "typeName": { - "id": 1068, - "keyName": "claimId", - "keyNameLocation": "517:7:11", - "keyType": { - "id": 1065, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "509:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "501:61:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_StakeClaim_$1335_storage_$", - "typeString": "mapping(bytes32 => struct IDataServiceFees.StakeClaim)" - }, - "valueName": "claim", - "valueNameLocation": "556:5:11", - "valueType": { - "id": 1067, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1066, - "name": "IDataServiceFees.StakeClaim", - "nameLocations": [ - "528:16:11", - "545:10:11" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1335, - "src": "528:27:11" - }, - "referencedDeclaration": 1335, - "src": "528:27:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_StakeClaim_$1335_storage_ptr", - "typeString": "struct IDataServiceFees.StakeClaim" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 1070, - "nodeType": "StructuredDocumentation", - "src": "583:60:11", - "text": "@notice Service providers registered in the data service" - }, - "functionSelector": "13c474c9", - "id": 1075, - "mutability": "mutable", - "name": "claimsLists", - "nameLocation": "712:11:11", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "648:75:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$3813_storage_$", - "typeString": "mapping(address => struct LinkedList.List)" - }, - "typeName": { - "id": 1074, - "keyName": "serviceProvider", - "keyNameLocation": "664:15:11", - "keyType": { - "id": 1071, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "656:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "648:56:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_List_$3813_storage_$", - "typeString": "mapping(address => struct LinkedList.List)" - }, - "valueName": "list", - "valueNameLocation": "699:4:11", - "valueType": { - "id": 1073, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1072, - "name": "LinkedList.List", - "nameLocations": [ - "683:10:11", - "694:4:11" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3813, - "src": "683:15:11" - }, - "referencedDeclaration": 3813, - "src": "683:15:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 1076, - "nodeType": "StructuredDocumentation", - "src": "730:57:11", - "text": "@dev Gap to allow adding variables in future upgrades" - }, - "id": 1080, - "mutability": "mutable", - "name": "__gap", - "nameLocation": "812:5:11", - "nodeType": "VariableDeclaration", - "scope": 1081, - "src": "792:25:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage", - "typeString": "uint256[50]" - }, - "typeName": { - "baseType": { - "id": 1077, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "792:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1079, - "length": { - "hexValue": "3530", - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "800:2:11", - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "50" - }, - "nodeType": "ArrayTypeName", - "src": "792:11:11", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", - "typeString": "uint256[50]" - } - }, - "visibility": "private" - } - ], - "scope": 1082, - "src": "283:537:11", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "45:776:11" - }, - "id": 11 - }, - "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol", - "exportedSymbols": { - "DataService": [ - 696 - ], - "DataServicePausableUpgradeable": [ - 1186 - ], - "IDataServicePausable": [ - 1409 - ], - "PausableUpgradeable": [ - 5427 - ] - }, - "id": 1187, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1083, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:12" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol", - "file": "../interfaces/IDataServicePausable.sol", - "id": 1085, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 1410, - "src": "70:78:12", - "symbolAliases": [ - { - "foreign": { - "id": 1084, - "name": "IDataServicePausable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1409, - "src": "79:20:12", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol", - "id": 1087, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 5428, - "src": "150:104:12", - "symbolAliases": [ - { - "foreign": { - "id": 1086, - "name": "PausableUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5427, - "src": "159:19:12", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataService.sol", - "file": "../DataService.sol", - "id": 1089, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1187, - "sourceUnit": 697, - "src": "255:49:12", - "symbolAliases": [ - { - "foreign": { - "id": 1088, - "name": "DataService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "264:11:12", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 1091, - "name": "PausableUpgradeable", - "nameLocations": [ - "547:19:12" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5427, - "src": "547:19:12" - }, - "id": 1092, - "nodeType": "InheritanceSpecifier", - "src": "547:19:12" - }, - { - "baseName": { - "id": 1093, - "name": "DataService", - "nameLocations": [ - "568:11:12" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 696, - "src": "568:11:12" - }, - "id": 1094, - "nodeType": "InheritanceSpecifier", - "src": "568:11:12" - }, - { - "baseName": { - "id": 1095, - "name": "IDataServicePausable", - "nameLocations": [ - "581:20:12" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1409, - "src": "581:20:12" - }, - "id": 1096, - "nodeType": "InheritanceSpecifier", - "src": "581:20:12" - } - ], - "canonicalName": "DataServicePausableUpgradeable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 1090, - "nodeType": "StructuredDocumentation", - "src": "306:188:12", - "text": " @title DataServicePausableUpgradeable contract\n @dev Implementation of the {IDataServicePausable} interface.\n @dev Upgradeable version of the {DataServicePausable} contract." - }, - "fullyImplemented": false, - "id": 1186, - "linearizedBaseContracts": [ - 1186, - 1409, - 696, - 1318, - 704, - 2128, - 2158, - 4653, - 5427, - 5148, - 5102 - ], - "name": "DataServicePausableUpgradeable", - "nameLocation": "513:30:12", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "documentation": { - "id": 1097, - "nodeType": "StructuredDocumentation", - "src": "608:60:12", - "text": "@notice List of pause guardians and their allowed status" - }, - "functionSelector": "9384e078", - "id": 1101, - "mutability": "mutable", - "name": "pauseGuardians", - "nameLocation": "727:14:12", - "nodeType": "VariableDeclaration", - "scope": 1186, - "src": "673:68:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 1100, - "keyName": "pauseGuardian", - "keyNameLocation": "689:13:12", - "keyType": { - "id": 1098, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "681:7:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "673:46:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueName": "allowed", - "valueNameLocation": "711:7:12", - "valueType": { - "id": 1099, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "706:4:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "visibility": "public" - }, - { - "body": { - "id": 1116, - "nodeType": "Block", - "src": "850:112:12", - "statements": [ - { - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 1105, - "name": "pauseGuardians", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1101, - "src": "868:14:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1108, - "indexExpression": { - "expression": { - "id": 1106, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "883:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "887:6:12", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "883:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "868:26:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "expression": { - "id": 1110, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "932:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "936:6:12", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "932:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1109, - "name": "DataServicePausableNotPauseGuardian", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "896:35:12", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 1112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "896:47:12", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 1104, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "860:7:12", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 1113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "860:84:12", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1114, - "nodeType": "ExpressionStatement", - "src": "860:84:12" - }, - { - "id": 1115, - "nodeType": "PlaceholderStatement", - "src": "954:1:12" - } - ] - }, - "documentation": { - "id": 1102, - "nodeType": "StructuredDocumentation", - "src": "748:68:12", - "text": " @notice Checks if the caller is a pause guardian." - }, - "id": 1117, - "name": "onlyPauseGuardian", - "nameLocation": "830:17:12", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1103, - "nodeType": "ParameterList", - "parameters": [], - "src": "847:2:12" - }, - "src": "821:141:12", - "virtual": false, - "visibility": "internal" - }, - { - "baseFunctions": [ - 1404 - ], - "body": { - "id": 1129, - "nodeType": "Block", - "src": "1099:25:12", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1126, - "name": "_pause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5402, - "src": "1109:6:12", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1109:8:12", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1128, - "nodeType": "ExpressionStatement", - "src": "1109:8:12" - } - ] - }, - "documentation": { - "id": 1118, - "nodeType": "StructuredDocumentation", - "src": "968:59:12", - "text": " @notice See {IDataServicePausable-pause}" - }, - "functionSelector": "8456cb59", - "id": 1130, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 1122, - "kind": "modifierInvocation", - "modifierName": { - "id": 1121, - "name": "onlyPauseGuardian", - "nameLocations": [ - "1067:17:12" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1117, - "src": "1067:17:12" - }, - "nodeType": "ModifierInvocation", - "src": "1067:17:12" - }, - { - "id": 1124, - "kind": "modifierInvocation", - "modifierName": { - "id": 1123, - "name": "whenNotPaused", - "nameLocations": [ - "1085:13:12" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5329, - "src": "1085:13:12" - }, - "nodeType": "ModifierInvocation", - "src": "1085:13:12" - } - ], - "name": "pause", - "nameLocation": "1041:5:12", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 1120, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "1058:8:12" - }, - "parameters": { - "id": 1119, - "nodeType": "ParameterList", - "parameters": [], - "src": "1046:2:12" - }, - "returnParameters": { - "id": 1125, - "nodeType": "ParameterList", - "parameters": [], - "src": "1099:0:12" - }, - "scope": 1186, - "src": "1032:92:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 1408 - ], - "body": { - "id": 1142, - "nodeType": "Block", - "src": "1260:27:12", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1139, - "name": "_unpause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5426, - "src": "1270:8:12", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1270:10:12", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "1270:10:12" - } - ] - }, - "documentation": { - "id": 1131, - "nodeType": "StructuredDocumentation", - "src": "1130:59:12", - "text": " @notice See {IDataServicePausable-pause}" - }, - "functionSelector": "3f4ba83a", - "id": 1143, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 1135, - "kind": "modifierInvocation", - "modifierName": { - "id": 1134, - "name": "onlyPauseGuardian", - "nameLocations": [ - "1231:17:12" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1117, - "src": "1231:17:12" - }, - "nodeType": "ModifierInvocation", - "src": "1231:17:12" - }, - { - "id": 1137, - "kind": "modifierInvocation", - "modifierName": { - "id": 1136, - "name": "whenPaused", - "nameLocations": [ - "1249:10:12" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5337, - "src": "1249:10:12" - }, - "nodeType": "ModifierInvocation", - "src": "1249:10:12" - } - ], - "name": "unpause", - "nameLocation": "1203:7:12", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 1133, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "1222:8:12" - }, - "parameters": { - "id": 1132, - "nodeType": "ParameterList", - "parameters": [], - "src": "1210:2:12" - }, - "returnParameters": { - "id": 1138, - "nodeType": "ParameterList", - "parameters": [], - "src": "1260:0:12" - }, - "scope": 1186, - "src": "1194:93:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 1155, - "nodeType": "Block", - "src": "1487:92:12", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1149, - "name": "__Pausable_init_unchained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5321, - "src": "1497:25:12", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1497:27:12", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1151, - "nodeType": "ExpressionStatement", - "src": "1497:27:12" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1152, - "name": "__DataServicePausable_init_unchained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "1534:36:12", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1534:38:12", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1154, - "nodeType": "ExpressionStatement", - "src": "1534:38:12" - } - ] - }, - "documentation": { - "id": 1144, - "nodeType": "StructuredDocumentation", - "src": "1293:72:12", - "text": " @notice Initializes the contract and parent contracts" - }, - "id": 1156, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 1147, - "kind": "modifierInvocation", - "modifierName": { - "id": 1146, - "name": "onlyInitializing", - "nameLocations": [ - "1470:16:12" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "1470:16:12" - }, - "nodeType": "ModifierInvocation", - "src": "1470:16:12" - } - ], - "name": "__DataServicePausable_init", - "nameLocation": "1432:26:12", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1145, - "nodeType": "ParameterList", - "parameters": [], - "src": "1458:2:12" - }, - "returnParameters": { - "id": 1148, - "nodeType": "ParameterList", - "parameters": [], - "src": "1487:0:12" - }, - "scope": 1186, - "src": "1423:156:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1162, - "nodeType": "Block", - "src": "1768:2:12", - "statements": [] - }, - "documentation": { - "id": 1157, - "nodeType": "StructuredDocumentation", - "src": "1585:51:12", - "text": " @notice Initializes the contract" - }, - "id": 1163, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 1160, - "kind": "modifierInvocation", - "modifierName": { - "id": 1159, - "name": "onlyInitializing", - "nameLocations": [ - "1751:16:12" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "1751:16:12" - }, - "nodeType": "ModifierInvocation", - "src": "1751:16:12" - } - ], - "name": "__DataServicePausable_init_unchained", - "nameLocation": "1703:36:12", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "1739:2:12" - }, - "returnParameters": { - "id": 1161, - "nodeType": "ParameterList", - "parameters": [], - "src": "1768:0:12" - }, - "scope": 1186, - "src": "1694:76:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1184, - "nodeType": "Block", - "src": "2190:115:12", - "statements": [ - { - "expression": { - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1173, - "name": "pauseGuardians", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1101, - "src": "2200:14:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1175, - "indexExpression": { - "id": 1174, - "name": "_pauseGuardian", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "2215:14:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2200:30:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 1176, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1168, - "src": "2233:8:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2200:41:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1178, - "nodeType": "ExpressionStatement", - "src": "2200:41:12" - }, - { - "eventCall": { - "arguments": [ - { - "id": 1180, - "name": "_pauseGuardian", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "2273:14:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1181, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1168, - "src": "2289:8:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1179, - "name": "PauseGuardianSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1395, - "src": "2256:16:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,bool)" - } - }, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2256:42:12", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1183, - "nodeType": "EmitStatement", - "src": "2251:47:12" - } - ] - }, - "documentation": { - "id": 1164, - "nodeType": "StructuredDocumentation", - "src": "1776:320:12", - "text": " @notice Sets a pause guardian.\n @dev Internal function to be used by the derived contract to set pause guardians.\n Emits a {PauseGuardianSet} event.\n @param _pauseGuardian The address of the pause guardian\n @param _allowed The allowed status of the pause guardian" - }, - "id": 1185, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 1171, - "kind": "modifierInvocation", - "modifierName": { - "id": 1170, - "name": "whenNotPaused", - "nameLocations": [ - "2176:13:12" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5329, - "src": "2176:13:12" - }, - "nodeType": "ModifierInvocation", - "src": "2176:13:12" - } - ], - "name": "_setPauseGuardian", - "nameLocation": "2110:17:12", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1169, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1166, - "mutability": "mutable", - "name": "_pauseGuardian", - "nameLocation": "2136:14:12", - "nodeType": "VariableDeclaration", - "scope": 1185, - "src": "2128:22:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1165, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2128:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1168, - "mutability": "mutable", - "name": "_allowed", - "nameLocation": "2157:8:12", - "nodeType": "VariableDeclaration", - "scope": 1185, - "src": "2152:13:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1167, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2152:4:12", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2127:39:12" - }, - "returnParameters": { - "id": 1172, - "nodeType": "ParameterList", - "parameters": [], - "src": "2190:0:12" - }, - "scope": 1186, - "src": "2101:204:12", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1187, - "src": "495:1812:12", - "usedErrors": [ - 1400, - 1658, - 1665, - 1672, - 1677, - 4380, - 4865, - 4868, - 5290, - 5293 - ], - "usedEvents": [ - 1198, - 1203, - 1210, - 1217, - 1227, - 1234, - 1395, - 1628, - 1633, - 1640, - 1647, - 4375, - 4873, - 5282, - 5287 - ] - } - ], - "src": "45:2263:12" - }, - "id": 12 - }, - "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol", - "exportedSymbols": { - "IDataService": [ - 1318 - ], - "IGraphPayments": [ - 2211 - ] - }, - "id": 1319, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1188, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:13" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "file": "../../interfaces/IGraphPayments.sol", - "id": 1190, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1319, - "sourceUnit": 2212, - "src": "70:69:13", - "symbolAliases": [ - { - "foreign": { - "id": 1189, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "79:14:13", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IDataService", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 1191, - "nodeType": "StructuredDocumentation", - "src": "141:755:13", - "text": " @title Interface of the base {DataService} contract as defined by the Graph Horizon specification.\n @notice This interface provides a guardrail for contracts that use the Data Service framework\n to implement a data service on Graph Horizon. Much of the specification is intentionally loose\n to allow for greater flexibility when designing a data service. It's not possible to guarantee that\n an implementation will honor the Data Service framework guidelines so it's advised to always review\n the implementation code and the documentation.\n @dev This interface is expected to be inherited and extended by a data service interface. It can be\n used to interact with it however it's advised to use the more specific parent interface." - }, - "fullyImplemented": false, - "id": 1318, - "linearizedBaseContracts": [ - 1318 - ], - "name": "IDataService", - "nameLocation": "907:12:13", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 1192, - "nodeType": "StructuredDocumentation", - "src": "926:229:13", - "text": " @notice Emitted when a service provider is registered with the data service.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service." - }, - "eventSelector": "159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa", - "id": 1198, - "name": "ServiceProviderRegistered", - "nameLocation": "1166:25:13", - "nodeType": "EventDefinition", - "parameters": { - "id": 1197, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1194, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1208:15:13", - "nodeType": "VariableDeclaration", - "scope": 1198, - "src": "1192:31:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1193, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1192:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1196, - "indexed": false, - "mutability": "mutable", - "name": "data", - "nameLocation": "1231:4:13", - "nodeType": "VariableDeclaration", - "scope": 1198, - "src": "1225:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1195, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1225:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1191:45:13" - }, - "src": "1160:77:13" - }, - { - "anonymous": false, - "documentation": { - "id": 1199, - "nodeType": "StructuredDocumentation", - "src": "1243:182:13", - "text": " @notice Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\n @param serviceProvider The address of the service provider." - }, - "eventSelector": "f53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a939", - "id": 1203, - "name": "ProvisionPendingParametersAccepted", - "nameLocation": "1436:34:13", - "nodeType": "EventDefinition", - "parameters": { - "id": 1202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1201, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1487:15:13", - "nodeType": "VariableDeclaration", - "scope": 1203, - "src": "1471:31:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1200, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1471:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1470:33:13" - }, - "src": "1430:74:13" - }, - { - "anonymous": false, - "documentation": { - "id": 1204, - "nodeType": "StructuredDocumentation", - "src": "1510:222:13", - "text": " @notice Emitted when a service provider starts providing the service.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service." - }, - "eventSelector": "d3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e7", - "id": 1210, - "name": "ServiceStarted", - "nameLocation": "1743:14:13", - "nodeType": "EventDefinition", - "parameters": { - "id": 1209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1206, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1774:15:13", - "nodeType": "VariableDeclaration", - "scope": 1210, - "src": "1758:31:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1205, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1758:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1208, - "indexed": false, - "mutability": "mutable", - "name": "data", - "nameLocation": "1797:4:13", - "nodeType": "VariableDeclaration", - "scope": 1210, - "src": "1791:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1207, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1791:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1757:45:13" - }, - "src": "1737:66:13" - }, - { - "anonymous": false, - "documentation": { - "id": 1211, - "nodeType": "StructuredDocumentation", - "src": "1809:221:13", - "text": " @notice Emitted when a service provider stops providing the service.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service." - }, - "eventSelector": "73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a", - "id": 1217, - "name": "ServiceStopped", - "nameLocation": "2041:14:13", - "nodeType": "EventDefinition", - "parameters": { - "id": 1216, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1213, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "2072:15:13", - "nodeType": "VariableDeclaration", - "scope": 1217, - "src": "2056:31:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2056:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1215, - "indexed": false, - "mutability": "mutable", - "name": "data", - "nameLocation": "2095:4:13", - "nodeType": "VariableDeclaration", - "scope": 1217, - "src": "2089:10:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1214, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2089:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2055:45:13" - }, - "src": "2035:66:13" - }, - { - "anonymous": false, - "documentation": { - "id": 1218, - "nodeType": "StructuredDocumentation", - "src": "2107:276:13", - "text": " @notice Emitted when a service provider collects payment.\n @param serviceProvider The address of the service provider.\n @param feeType The type of fee to collect as defined in {GraphPayments}.\n @param tokens The amount of tokens collected." - }, - "eventSelector": "54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff5", - "id": 1227, - "name": "ServicePaymentCollected", - "nameLocation": "2394:23:13", - "nodeType": "EventDefinition", - "parameters": { - "id": 1226, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1220, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "2443:15:13", - "nodeType": "VariableDeclaration", - "scope": 1227, - "src": "2427:31:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2427:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1223, - "indexed": true, - "mutability": "mutable", - "name": "feeType", - "nameLocation": "2504:7:13", - "nodeType": "VariableDeclaration", - "scope": 1227, - "src": "2468:43:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "typeName": { - "id": 1222, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1221, - "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "2468:14:13", - "2483:12:13" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2166, - "src": "2468:27:13" - }, - "referencedDeclaration": 2166, - "src": "2468:27:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1225, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2529:6:13", - "nodeType": "VariableDeclaration", - "scope": 1227, - "src": "2521:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1224, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2521:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2417:124:13" - }, - "src": "2388:154:13" - }, - { - "anonymous": false, - "documentation": { - "id": 1228, - "nodeType": "StructuredDocumentation", - "src": "2548:188:13", - "text": " @notice Emitted when a service provider is slashed.\n @param serviceProvider The address of the service provider.\n @param tokens The amount of tokens slashed." - }, - "eventSelector": "02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c58", - "id": 1234, - "name": "ServiceProviderSlashed", - "nameLocation": "2747:22:13", - "nodeType": "EventDefinition", - "parameters": { - "id": 1233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1230, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "2786:15:13", - "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "2770:31:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2770:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1232, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2811:6:13", - "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "2803:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1231, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2803:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2769:49:13" - }, - "src": "2741:78:13" - }, - { - "documentation": { - "id": 1235, - "nodeType": "StructuredDocumentation", - "src": "2825:903:13", - "text": " @notice Registers a service provider with the data service. The service provider can now\n start providing the service.\n @dev Before registering, the service provider must have created a provision in the\n Graph Horizon staking contract with parameters that are compatible with the data service.\n Verifies provision parameters and rejects registration in the event they are not valid.\n Emits a {ServiceProviderRegistered} event.\n NOTE: Failing to accept the provision will result in the service provider operating\n on an unverified provision. Depending on of the data service this can be a security\n risk as the protocol won't be able to guarantee economic security for the consumer.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service." - }, - "functionSelector": "24b8fbf6", - "id": 1242, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "register", - "nameLocation": "3742:8:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1240, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1237, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3759:15:13", - "nodeType": "VariableDeclaration", - "scope": 1242, - "src": "3751:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1236, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3751:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1239, - "mutability": "mutable", - "name": "data", - "nameLocation": "3791:4:13", - "nodeType": "VariableDeclaration", - "scope": 1242, - "src": "3776:19:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1238, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3776:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3750:46:13" - }, - "returnParameters": { - "id": 1241, - "nodeType": "ParameterList", - "parameters": [], - "src": "3805:0:13" - }, - "scope": 1318, - "src": "3733:73:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1243, - "nodeType": "StructuredDocumentation", - "src": "3812:472:13", - "text": " @notice Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking\n contract}.\n @dev Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}.\n Emits a {ProvisionPendingParametersAccepted} event.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service." - }, - "functionSelector": "ce0fc0cc", - "id": 1250, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "acceptProvisionPendingParameters", - "nameLocation": "4298:32:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1245, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "4339:15:13", - "nodeType": "VariableDeclaration", - "scope": 1250, - "src": "4331:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4331:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1247, - "mutability": "mutable", - "name": "data", - "nameLocation": "4371:4:13", - "nodeType": "VariableDeclaration", - "scope": 1250, - "src": "4356:19:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1246, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4356:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4330:46:13" - }, - "returnParameters": { - "id": 1249, - "nodeType": "ParameterList", - "parameters": [], - "src": "4385:0:13" - }, - "scope": 1318, - "src": "4289:97:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1251, - "nodeType": "StructuredDocumentation", - "src": "4392:251:13", - "text": " @notice Service provider starts providing the service.\n @dev Emits a {ServiceStarted} event.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service." - }, - "functionSelector": "dedf6726", - "id": 1258, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "startService", - "nameLocation": "4657:12:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1253, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "4678:15:13", - "nodeType": "VariableDeclaration", - "scope": 1258, - "src": "4670:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1252, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4670:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1255, - "mutability": "mutable", - "name": "data", - "nameLocation": "4710:4:13", - "nodeType": "VariableDeclaration", - "scope": 1258, - "src": "4695:19:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1254, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4695:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4669:46:13" - }, - "returnParameters": { - "id": 1257, - "nodeType": "ParameterList", - "parameters": [], - "src": "4724:0:13" - }, - "scope": 1318, - "src": "4648:77:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1259, - "nodeType": "StructuredDocumentation", - "src": "4731:250:13", - "text": " @notice Service provider stops providing the service.\n @dev Emits a {ServiceStopped} event.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service." - }, - "functionSelector": "8180083b", - "id": 1266, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "stopService", - "nameLocation": "4995:11:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1264, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1261, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "5015:15:13", - "nodeType": "VariableDeclaration", - "scope": 1266, - "src": "5007:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1260, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5007:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1263, - "mutability": "mutable", - "name": "data", - "nameLocation": "5047:4:13", - "nodeType": "VariableDeclaration", - "scope": 1266, - "src": "5032:19:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1262, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5032:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5006:46:13" - }, - "returnParameters": { - "id": 1265, - "nodeType": "ParameterList", - "parameters": [], - "src": "5061:0:13" - }, - "scope": 1318, - "src": "4986:76:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1267, - "nodeType": "StructuredDocumentation", - "src": "5068:931:13", - "text": " @notice Collects payment earnt by the service provider.\n @dev The implementation of this function is expected to interact with {GraphPayments}\n to collect payment from the service payer, which is done via {IGraphPayments-collect}.\n @param serviceProvider The address of the service provider.\n Emits a {ServicePaymentCollected} event.\n NOTE: Data services that are vetted by the Graph Council might qualify for a portion of\n protocol issuance to cover for these payments. In this case, the funds are taken by\n interacting with the rewards manager contract instead of the {GraphPayments} contract.\n @param serviceProvider The address of the service provider.\n @param feeType The type of fee to collect as defined in {GraphPayments}.\n @param data Custom data, usage defined by the data service.\n @return The amount of tokens collected." - }, - "functionSelector": "b15d2a2c", - "id": 1279, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "collect", - "nameLocation": "6013:7:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1269, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "6038:15:13", - "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "6030:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6030:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1272, - "mutability": "mutable", - "name": "feeType", - "nameLocation": "6091:7:13", - "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "6063:35:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "typeName": { - "id": 1271, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1270, - "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "6063:14:13", - "6078:12:13" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2166, - "src": "6063:27:13" - }, - "referencedDeclaration": 2166, - "src": "6063:27:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1274, - "mutability": "mutable", - "name": "data", - "nameLocation": "6123:4:13", - "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "6108:19:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1273, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6108:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6020:113:13" - }, - "returnParameters": { - "id": 1278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1277, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "6152:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6152:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6151:9:13" - }, - "scope": 1318, - "src": "6004:157:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1280, - "nodeType": "StructuredDocumentation", - "src": "6167:367:13", - "text": " @notice Slash a service provider for misbehaviour.\n @dev To slash the service provider's provision the function should call\n {Staking-slash}.\n Emits a {ServiceProviderSlashed} event.\n @param serviceProvider The address of the service provider.\n @param data Custom data, usage defined by the data service." - }, - "functionSelector": "cb8347fe", - "id": 1287, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "slash", - "nameLocation": "6548:5:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1282, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "6562:15:13", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "6554:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6554:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1284, - "mutability": "mutable", - "name": "data", - "nameLocation": "6594:4:13", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "6579:19:13", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1283, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6579:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6553:46:13" - }, - "returnParameters": { - "id": 1286, - "nodeType": "ParameterList", - "parameters": [], - "src": "6608:0:13" - }, - "scope": 1318, - "src": "6539:70:13", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1288, - "nodeType": "StructuredDocumentation", - "src": "6615:163:13", - "text": " @notice External getter for the thawing period range\n @return Minimum thawing period allowed\n @return Maximum thawing period allowed" - }, - "functionSelector": "71ce020a", - "id": 1295, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getThawingPeriodRange", - "nameLocation": "6792:21:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1289, - "nodeType": "ParameterList", - "parameters": [], - "src": "6813:2:13" - }, - "returnParameters": { - "id": 1294, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1291, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1295, - "src": "6839:6:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1290, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6839:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1293, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1295, - "src": "6847:6:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1292, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6847:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "6838:16:13" - }, - "scope": 1318, - "src": "6783:72:13", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1296, - "nodeType": "StructuredDocumentation", - "src": "6861:157:13", - "text": " @notice External getter for the verifier cut range\n @return Minimum verifier cut allowed\n @return Maximum verifier cut allowed" - }, - "functionSelector": "482468b7", - "id": 1303, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getVerifierCutRange", - "nameLocation": "7032:19:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1297, - "nodeType": "ParameterList", - "parameters": [], - "src": "7051:2:13" - }, - "returnParameters": { - "id": 1302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1299, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1303, - "src": "7077:6:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1298, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7077:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1301, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1303, - "src": "7085:6:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1300, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7085:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "7076:16:13" - }, - "scope": 1318, - "src": "7023:70:13", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1304, - "nodeType": "StructuredDocumentation", - "src": "7099:169:13", - "text": " @notice External getter for the provision tokens range\n @return Minimum provision tokens allowed\n @return Maximum provision tokens allowed" - }, - "functionSelector": "819ba366", - "id": 1311, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getProvisionTokensRange", - "nameLocation": "7282:23:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1305, - "nodeType": "ParameterList", - "parameters": [], - "src": "7305:2:13" - }, - "returnParameters": { - "id": 1310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1307, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1311, - "src": "7331:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1306, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7331:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1309, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1311, - "src": "7340:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1308, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7340:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7330:18:13" - }, - "scope": 1318, - "src": "7273:76:13", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1312, - "nodeType": "StructuredDocumentation", - "src": "7355:103:13", - "text": " @notice External getter for the delegation ratio\n @return The delegation ratio" - }, - "functionSelector": "1ebb7c30", - "id": 1317, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getDelegationRatio", - "nameLocation": "7472:18:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1313, - "nodeType": "ParameterList", - "parameters": [], - "src": "7490:2:13" - }, - "returnParameters": { - "id": 1316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1315, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1317, - "src": "7516:6:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1314, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7516:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "7515:8:13" - }, - "scope": 1318, - "src": "7463:61:13", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 1319, - "src": "897:6629:13", - "usedErrors": [], - "usedEvents": [ - 1198, - 1203, - 1210, - 1217, - 1227, - 1234 - ] - } - ], - "src": "45:7482:13" - }, - "id": 13 - }, - "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol", - "exportedSymbols": { - "IDataService": [ - 1318 - ], - "IDataServiceFees": [ - 1381 - ] - }, - "id": 1382, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1320, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:14" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol", - "file": "./IDataService.sol", - "id": 1322, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1382, - "sourceUnit": 1319, - "src": "70:50:14", - "symbolAliases": [ - { - "foreign": { - "id": 1321, - "name": "IDataService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "79:12:14", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 1324, - "name": "IDataService", - "nameLocations": [ - "1067:12:14" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1318, - "src": "1067:12:14" - }, - "id": 1325, - "nodeType": "InheritanceSpecifier", - "src": "1067:12:14" - } - ], - "canonicalName": "IDataServiceFees", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 1323, - "nodeType": "StructuredDocumentation", - "src": "122:914:14", - "text": " @title Interface for the {DataServiceFees} contract.\n @notice Extension for the {IDataService} contract to handle payment collateralization\n using a Horizon provision.\n It's designed to be used with the Data Service framework:\n - When a service provider collects payment with {IDataService.collect} the data service should lock\n stake to back the payment using {_lockStake}.\n - Every time there is a payment collection with {IDataService.collect}, the data service should\n attempt to release any expired stake claims by calling {_releaseStake}.\n - Stake claims can also be manually released by calling {releaseStake} directly.\n @dev Note that this implementation uses the entire provisioned stake as collateral for the payment.\n It can be used to provide economic security for the payments collected as long as the provisioned\n stake is not being used for other purposes." - }, - "fullyImplemented": false, - "id": 1381, - "linearizedBaseContracts": [ - 1381, - 1318 - ], - "name": "IDataServiceFees", - "nameLocation": "1047:16:14", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "IDataServiceFees.StakeClaim", - "documentation": { - "id": 1326, - "nodeType": "StructuredDocumentation", - "src": "1086:244:14", - "text": " @notice A stake claim, representing provisioned stake that gets locked\n to be released to a service provider.\n @dev StakeClaims are stored in linked lists by service provider, ordered by\n creation timestamp." - }, - "id": 1335, - "members": [ - { - "constant": false, - "id": 1328, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1429:6:14", - "nodeType": "VariableDeclaration", - "scope": 1335, - "src": "1421:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1327, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1421:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1330, - "mutability": "mutable", - "name": "createdAt", - "nameLocation": "1501:9:14", - "nodeType": "VariableDeclaration", - "scope": 1335, - "src": "1493:17:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1329, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1493:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1332, - "mutability": "mutable", - "name": "releasableAt", - "nameLocation": "1603:12:14", - "nodeType": "VariableDeclaration", - "scope": 1335, - "src": "1595:20:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1331, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1595:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1334, - "mutability": "mutable", - "name": "nextClaim", - "nameLocation": "1674:9:14", - "nodeType": "VariableDeclaration", - "scope": 1335, - "src": "1666:17:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1333, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1666:7:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "name": "StakeClaim", - "nameLocation": "1342:10:14", - "nodeType": "StructDefinition", - "scope": 1381, - "src": "1335:355:14", - "visibility": "public" - }, - { - "anonymous": false, - "documentation": { - "id": 1336, - "nodeType": "StructuredDocumentation", - "src": "1696:338:14", - "text": " @notice Emitted when a stake claim is created and stake is locked.\n @param serviceProvider The address of the service provider\n @param claimId The id of the stake claim\n @param tokens The amount of tokens to lock in the claim\n @param unlockTimestamp The timestamp when the tokens can be released" - }, - "eventSelector": "5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f", - "id": 1346, - "name": "StakeClaimLocked", - "nameLocation": "2045:16:14", - "nodeType": "EventDefinition", - "parameters": { - "id": 1345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1338, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "2087:15:14", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "2071:31:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2071:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1340, - "indexed": true, - "mutability": "mutable", - "name": "claimId", - "nameLocation": "2128:7:14", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "2112:23:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1339, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2112:7:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1342, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2153:6:14", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "2145:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1341, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2145:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1344, - "indexed": false, - "mutability": "mutable", - "name": "unlockTimestamp", - "nameLocation": "2177:15:14", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "2169:23:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1343, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2169:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2061:137:14" - }, - "src": "2039:160:14" - }, - { - "anonymous": false, - "documentation": { - "id": 1347, - "nodeType": "StructuredDocumentation", - "src": "2205:324:14", - "text": " @notice Emitted when a stake claim is released and stake is unlocked.\n @param serviceProvider The address of the service provider\n @param claimId The id of the stake claim\n @param tokens The amount of tokens released\n @param releasableAt The timestamp when the tokens were released" - }, - "eventSelector": "4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f44", - "id": 1357, - "name": "StakeClaimReleased", - "nameLocation": "2540:18:14", - "nodeType": "EventDefinition", - "parameters": { - "id": 1356, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1349, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "2584:15:14", - "nodeType": "VariableDeclaration", - "scope": 1357, - "src": "2568:31:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2568:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1351, - "indexed": true, - "mutability": "mutable", - "name": "claimId", - "nameLocation": "2625:7:14", - "nodeType": "VariableDeclaration", - "scope": 1357, - "src": "2609:23:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1350, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2609:7:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1353, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2650:6:14", - "nodeType": "VariableDeclaration", - "scope": 1357, - "src": "2642:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1352, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2642:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1355, - "indexed": false, - "mutability": "mutable", - "name": "releasableAt", - "nameLocation": "2674:12:14", - "nodeType": "VariableDeclaration", - "scope": 1357, - "src": "2666:20:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1354, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2666:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2558:134:14" - }, - "src": "2534:159:14" - }, - { - "anonymous": false, - "documentation": { - "id": 1358, - "nodeType": "StructuredDocumentation", - "src": "2699:283:14", - "text": " @notice Emitted when a series of stake claims are released.\n @param serviceProvider The address of the service provider\n @param claimsCount The number of stake claims being released\n @param tokensReleased The total amount of tokens being released" - }, - "eventSelector": "13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb", - "id": 1366, - "name": "StakeClaimsReleased", - "nameLocation": "2993:19:14", - "nodeType": "EventDefinition", - "parameters": { - "id": 1365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1360, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3029:15:14", - "nodeType": "VariableDeclaration", - "scope": 1366, - "src": "3013:31:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1359, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3013:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1362, - "indexed": false, - "mutability": "mutable", - "name": "claimsCount", - "nameLocation": "3054:11:14", - "nodeType": "VariableDeclaration", - "scope": 1366, - "src": "3046:19:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1361, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3046:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1364, - "indexed": false, - "mutability": "mutable", - "name": "tokensReleased", - "nameLocation": "3075:14:14", - "nodeType": "VariableDeclaration", - "scope": 1366, - "src": "3067:22:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1363, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3067:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3012:78:14" - }, - "src": "2987:104:14" - }, - { - "documentation": { - "id": 1367, - "nodeType": "StructuredDocumentation", - "src": "3097:91:14", - "text": " @notice Thrown when attempting to get a stake claim that does not exist." - }, - "errorSelector": "41cd26a4", - "id": 1371, - "name": "DataServiceFeesClaimNotFound", - "nameLocation": "3199:28:14", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1370, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1369, - "mutability": "mutable", - "name": "claimId", - "nameLocation": "3236:7:14", - "nodeType": "VariableDeclaration", - "scope": 1371, - "src": "3228:15:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1368, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3228:7:14", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3227:17:14" - }, - "src": "3193:52:14" - }, - { - "documentation": { - "id": 1372, - "nodeType": "StructuredDocumentation", - "src": "3251:83:14", - "text": " @notice Emitted when trying to lock zero tokens in a stake claim" - }, - "errorSelector": "8f4c63d9", - "id": 1374, - "name": "DataServiceFeesZeroTokens", - "nameLocation": "3345:25:14", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [], - "src": "3370:2:14" - }, - "src": "3339:34:14" - }, - { - "documentation": { - "id": 1375, - "nodeType": "StructuredDocumentation", - "src": "3379:519:14", - "text": " @notice Releases expired stake claims for the caller.\n @dev This function is only meant to be called if the service provider has enough\n stake claims that releasing them all at once would exceed the block gas limit.\n @dev This function can be overriden and/or disabled.\n @dev Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.\n @param numClaimsToRelease Amount of stake claims to process. If 0, all stake claims are processed." - }, - "functionSelector": "45f54485", - "id": 1380, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "releaseStake", - "nameLocation": "3912:12:14", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1378, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1377, - "mutability": "mutable", - "name": "numClaimsToRelease", - "nameLocation": "3933:18:14", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3925:26:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1376, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3925:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3924:28:14" - }, - "returnParameters": { - "id": 1379, - "nodeType": "ParameterList", - "parameters": [], - "src": "3961:0:14" - }, - "scope": 1381, - "src": "3903:59:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 1382, - "src": "1037:2927:14", - "usedErrors": [ - 1371, - 1374 - ], - "usedEvents": [ - 1198, - 1203, - 1210, - 1217, - 1227, - 1234, - 1346, - 1357, - 1366 - ] - } - ], - "src": "45:3920:14" - }, - "id": 14 - }, - "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol", - "exportedSymbols": { - "IDataService": [ - 1318 - ], - "IDataServicePausable": [ - 1409 - ] - }, - "id": 1410, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1383, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:15" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol", - "file": "./IDataService.sol", - "id": 1385, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1410, - "sourceUnit": 1319, - "src": "70:50:15", - "symbolAliases": [ - { - "foreign": { - "id": 1384, - "name": "IDataService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "79:12:15", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 1387, - "name": "IDataService", - "nameLocations": [ - "401:12:15" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1318, - "src": "401:12:15" - }, - "id": 1388, - "nodeType": "InheritanceSpecifier", - "src": "401:12:15" - } - ], - "canonicalName": "IDataServicePausable", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 1386, - "nodeType": "StructuredDocumentation", - "src": "122:244:15", - "text": " @title Interface for the {DataServicePausable} contract.\n @notice Extension for the {IDataService} contract, adds pausing functionality\n to the data service. Pausing is controlled by privileged accounts called\n pause guardians." - }, - "fullyImplemented": false, - "id": 1409, - "linearizedBaseContracts": [ - 1409, - 1318 - ], - "name": "IDataServicePausable", - "nameLocation": "377:20:15", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 1389, - "nodeType": "StructuredDocumentation", - "src": "420:183:15", - "text": " @notice Emitted when a pause guardian is set.\n @param account The address of the pause guardian\n @param allowed The allowed status of the pause guardian" - }, - "eventSelector": "a95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789", - "id": 1395, - "name": "PauseGuardianSet", - "nameLocation": "614:16:15", - "nodeType": "EventDefinition", - "parameters": { - "id": 1394, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1391, - "indexed": true, - "mutability": "mutable", - "name": "account", - "nameLocation": "647:7:15", - "nodeType": "VariableDeclaration", - "scope": 1395, - "src": "631:23:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1390, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "631:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1393, - "indexed": false, - "mutability": "mutable", - "name": "allowed", - "nameLocation": "661:7:15", - "nodeType": "VariableDeclaration", - "scope": 1395, - "src": "656:12:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1392, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "656:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "630:39:15" - }, - "src": "608:62:15" - }, - { - "documentation": { - "id": 1396, - "nodeType": "StructuredDocumentation", - "src": "676:132:15", - "text": " @notice Emitted when a the caller is not a pause guardian\n @param account The address of the pause guardian" - }, - "errorSelector": "72e3ef97", - "id": 1400, - "name": "DataServicePausableNotPauseGuardian", - "nameLocation": "819:35:15", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1398, - "mutability": "mutable", - "name": "account", - "nameLocation": "863:7:15", - "nodeType": "VariableDeclaration", - "scope": 1400, - "src": "855:15:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1397, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "855:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "854:17:15" - }, - "src": "813:59:15" - }, - { - "documentation": { - "id": 1401, - "nodeType": "StructuredDocumentation", - "src": "878:256:15", - "text": " @notice Pauses the data service.\n @dev Note that only functions using the modifiers `whenNotPaused`\n and `whenPaused` will be affected by the pause.\n Requirements:\n - The contract must not be already paused" - }, - "functionSelector": "8456cb59", - "id": 1404, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "pause", - "nameLocation": "1148:5:15", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1402, - "nodeType": "ParameterList", - "parameters": [], - "src": "1153:2:15" - }, - "returnParameters": { - "id": 1403, - "nodeType": "ParameterList", - "parameters": [], - "src": "1164:0:15" - }, - "scope": 1409, - "src": "1139:26:15", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 1405, - "nodeType": "StructuredDocumentation", - "src": "1171:246:15", - "text": " @notice Unpauses the data service.\n @dev Note that only functions using the modifiers `whenNotPaused`\n and `whenPaused` will be affected by the pause.\n Requirements:\n - The contract must be paused" - }, - "functionSelector": "3f4ba83a", - "id": 1408, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "unpause", - "nameLocation": "1431:7:15", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1406, - "nodeType": "ParameterList", - "parameters": [], - "src": "1438:2:15" - }, - "returnParameters": { - "id": 1407, - "nodeType": "ParameterList", - "parameters": [], - "src": "1449:0:15" - }, - "scope": 1409, - "src": "1422:28:15", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 1410, - "src": "367:1085:15", - "usedErrors": [ - 1400 - ], - "usedEvents": [ - 1198, - 1203, - 1210, - 1217, - 1227, - 1234, - 1395 - ] - } - ], - "src": "45:1408:15" - }, - "id": 15 - }, - "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol", - "exportedSymbols": { - "IHorizonStaking": [ - 2235 - ], - "ProvisionTracker": [ - 1555 - ] - }, - "id": 1556, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1411, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:16" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", - "file": "../../interfaces/IHorizonStaking.sol", - "id": 1413, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 1556, - "sourceUnit": 2236, - "src": "70:71:16", - "symbolAliases": [ - { - "foreign": { - "id": 1412, - "name": "IHorizonStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2235, - "src": "79:15:16", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ProvisionTracker", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 1414, - "nodeType": "StructuredDocumentation", - "src": "143:495:16", - "text": " @title ProvisionTracker library\n @notice A library to facilitate tracking of \"used tokens\" on Graph Horizon provisions. This can be used to\n ensure data services have enough economic security (provisioned stake) to back the payments they collect for\n their services.\n The library provides two primitives, lock and release to signal token usage and free up tokens respectively. It\n does not make any assumptions about the conditions under which tokens are locked or released." - }, - "fullyImplemented": true, - "id": 1555, - "linearizedBaseContracts": [ - 1555 - ], - "name": "ProvisionTracker", - "nameLocation": "647:16:16", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 1415, - "nodeType": "StructuredDocumentation", - "src": "670:80:16", - "text": " @notice Thrown when trying to lock more tokens than available" - }, - "errorSelector": "5f8ec709", - "id": 1421, - "name": "ProvisionTrackerInsufficientTokens", - "nameLocation": "761:34:16", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1420, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1417, - "mutability": "mutable", - "name": "tokensAvailable", - "nameLocation": "804:15:16", - "nodeType": "VariableDeclaration", - "scope": 1421, - "src": "796:23:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1416, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "796:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1419, - "mutability": "mutable", - "name": "tokensRequired", - "nameLocation": "829:14:16", - "nodeType": "VariableDeclaration", - "scope": 1421, - "src": "821:22:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1418, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "821:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "795:49:16" - }, - "src": "755:90:16" - }, - { - "body": { - "id": 1479, - "nodeType": "Block", - "src": "1583:384:16", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1438, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1433, - "src": "1597:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1607:1:16", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1597:11:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1442, - "nodeType": "IfStatement", - "src": "1593:24:16", - "trueBody": { - "functionReturnParameters": 1437, - "id": 1441, - "nodeType": "Return", - "src": "1610:7:16" - } - }, - { - "assignments": [ - 1444 - ], - "declarations": [ - { - "constant": false, - "id": 1444, - "mutability": "mutable", - "name": "tokensRequired", - "nameLocation": "1635:14:16", - "nodeType": "VariableDeclaration", - "scope": 1479, - "src": "1627:22:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1443, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1627:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1450, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 1445, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1426, - "src": "1652:4:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1447, - "indexExpression": { - "id": 1446, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1431, - "src": "1657:15:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1652:21:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 1448, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1433, - "src": "1676:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1652:30:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1627:55:16" - }, - { - "assignments": [ - 1452 - ], - "declarations": [ - { - "constant": false, - "id": 1452, - "mutability": "mutable", - "name": "tokensAvailable", - "nameLocation": "1700:15:16", - "nodeType": "VariableDeclaration", - "scope": 1479, - "src": "1692:23:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1451, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1692:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1462, - "initialValue": { - "arguments": [ - { - "id": 1455, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1431, - "src": "1750:15:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 1458, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1775:4:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ProvisionTracker_$1555", - "typeString": "library ProvisionTracker" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ProvisionTracker_$1555", - "typeString": "library ProvisionTracker" - } - ], - "id": 1457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1767:7:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1456, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1767:7:16", - "typeDescriptions": {} - } - }, - "id": 1459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1767:13:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1460, - "name": "delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1435, - "src": "1782:15:16", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 1453, - "name": "graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1429, - "src": "1718:12:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 1454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1731:18:16", - "memberName": "getTokensAvailable", - "nodeType": "MemberAccess", - "referencedDeclaration": 2796, - "src": "1718:31:16", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$_t_uint32_$returns$_t_uint256_$", - "typeString": "function (address,address,uint32) view external returns (uint256)" - } - }, - "id": 1461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1718:80:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1692:106:16" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1464, - "name": "tokensRequired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1444, - "src": "1816:14:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 1465, - "name": "tokensAvailable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1452, - "src": "1834:15:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1816:33:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 1468, - "name": "tokensAvailable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1452, - "src": "1886:15:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1469, - "name": "tokensRequired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1444, - "src": "1903:14:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1467, - "name": "ProvisionTrackerInsufficientTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "1851:34:16", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 1470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1851:67:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 1463, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1808:7:16", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 1471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1808:111:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1472, - "nodeType": "ExpressionStatement", - "src": "1808:111:16" - }, - { - "expression": { - "id": 1477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1473, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1426, - "src": "1929:4:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1475, - "indexExpression": { - "id": 1474, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1431, - "src": "1934:15:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1929:21:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 1476, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1433, - "src": "1954:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1929:31:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1478, - "nodeType": "ExpressionStatement", - "src": "1929:31:16" - } - ] - }, - "documentation": { - "id": 1422, - "nodeType": "StructuredDocumentation", - "src": "851:521:16", - "text": " @notice Locks tokens for a service provider\n @dev Requirements:\n - `tokens` must be less than or equal to the amount of tokens available, as reported by the HorizonStaking contract\n @param self The provision tracker mapping\n @param graphStaking The HorizonStaking contract\n @param serviceProvider The service provider address\n @param tokens The amount of tokens to lock\n @param delegationRatio A delegation ratio to limit the amount of delegation that's usable" - }, - "id": 1480, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "lock", - "nameLocation": "1386:4:16", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1426, - "mutability": "mutable", - "name": "self", - "nameLocation": "1436:4:16", - "nodeType": "VariableDeclaration", - "scope": 1480, - "src": "1400:40:16", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 1425, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 1423, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1408:7:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1400:27:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 1424, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1419:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1429, - "mutability": "mutable", - "name": "graphStaking", - "nameLocation": "1466:12:16", - "nodeType": "VariableDeclaration", - "scope": 1480, - "src": "1450:28:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - }, - "typeName": { - "id": 1428, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1427, - "name": "IHorizonStaking", - "nameLocations": [ - "1450:15:16" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2235, - "src": "1450:15:16" - }, - "referencedDeclaration": 2235, - "src": "1450:15:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1431, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1496:15:16", - "nodeType": "VariableDeclaration", - "scope": 1480, - "src": "1488:23:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1430, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1488:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1433, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1529:6:16", - "nodeType": "VariableDeclaration", - "scope": 1480, - "src": "1521:14:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1432, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1521:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1435, - "mutability": "mutable", - "name": "delegationRatio", - "nameLocation": "1552:15:16", - "nodeType": "VariableDeclaration", - "scope": 1480, - "src": "1545:22:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1434, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1545:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "1390:183:16" - }, - "returnParameters": { - "id": 1437, - "nodeType": "ParameterList", - "parameters": [], - "src": "1583:0:16" - }, - "scope": 1555, - "src": "1377:590:16", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1517, - "nodeType": "Block", - "src": "2440:198:16", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1492, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2454:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 1493, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2464:1:16", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2454:11:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1496, - "nodeType": "IfStatement", - "src": "2450:24:16", - "trueBody": { - "functionReturnParameters": 1491, - "id": 1495, - "nodeType": "Return", - "src": "2467:7:16" - } - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 1498, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1485, - "src": "2491:4:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1500, - "indexExpression": { - "id": 1499, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1487, - "src": "2496:15:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2491:21:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 1501, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2516:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2491:31:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "baseExpression": { - "id": 1504, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1485, - "src": "2559:4:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1506, - "indexExpression": { - "id": 1505, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1487, - "src": "2564:15:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2559:21:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1507, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2582:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1503, - "name": "ProvisionTrackerInsufficientTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "2524:34:16", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2524:65:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 1497, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2483:7:16", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2483:107:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1510, - "nodeType": "ExpressionStatement", - "src": "2483:107:16" - }, - { - "expression": { - "id": 1515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 1511, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1485, - "src": "2600:4:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1513, - "indexExpression": { - "id": 1512, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1487, - "src": "2605:15:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2600:21:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 1514, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2625:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2600:31:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1516, - "nodeType": "ExpressionStatement", - "src": "2600:31:16" - } - ] - }, - "documentation": { - "id": 1481, - "nodeType": "StructuredDocumentation", - "src": "1973:353:16", - "text": " @notice Releases tokens for a service provider\n @dev Requirements:\n - `tokens` must be less than or equal to the amount of tokens locked for the service provider\n @param self The provision tracker mapping\n @param serviceProvider The service provider address\n @param tokens The amount of tokens to release" - }, - "id": 1518, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "release", - "nameLocation": "2340:7:16", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1490, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1485, - "mutability": "mutable", - "name": "self", - "nameLocation": "2384:4:16", - "nodeType": "VariableDeclaration", - "scope": 1518, - "src": "2348:40:16", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 1484, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 1482, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2356:7:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2348:27:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 1483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2367:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1487, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "2398:15:16", - "nodeType": "VariableDeclaration", - "scope": 1518, - "src": "2390:23:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2390:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1489, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2423:6:16", - "nodeType": "VariableDeclaration", - "scope": 1518, - "src": "2415:14:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1488, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2415:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2347:83:16" - }, - "returnParameters": { - "id": 1491, - "nodeType": "ParameterList", - "parameters": [], - "src": "2440:0:16" - }, - "scope": 1555, - "src": "2331:307:16", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1553, - "nodeType": "Block", - "src": "3203:180:16", - "statements": [ - { - "assignments": [ - 1536 - ], - "declarations": [ - { - "constant": false, - "id": 1536, - "mutability": "mutable", - "name": "tokensAvailable", - "nameLocation": "3221:15:16", - "nodeType": "VariableDeclaration", - "scope": 1553, - "src": "3213:23:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1535, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3213:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 1546, - "initialValue": { - "arguments": [ - { - "id": 1539, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1528, - "src": "3271:15:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 1542, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3296:4:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ProvisionTracker_$1555", - "typeString": "library ProvisionTracker" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ProvisionTracker_$1555", - "typeString": "library ProvisionTracker" - } - ], - "id": 1541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3288:7:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1540, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3288:7:16", - "typeDescriptions": {} - } - }, - "id": 1543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3288:13:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 1544, - "name": "delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "3303:15:16", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 1537, - "name": "graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "3239:12:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 1538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3252:18:16", - "memberName": "getTokensAvailable", - "nodeType": "MemberAccess", - "referencedDeclaration": 2796, - "src": "3239:31:16", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$_t_uint32_$returns$_t_uint256_$", - "typeString": "function (address,address,uint32) view external returns (uint256)" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3239:80:16", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3213:106:16" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 1547, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1523, - "src": "3336:4:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1549, - "indexExpression": { - "id": 1548, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1528, - "src": "3341:15:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3336:21:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 1550, - "name": "tokensAvailable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1536, - "src": "3361:15:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3336:40:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1534, - "id": 1552, - "nodeType": "Return", - "src": "3329:47:16" - } - ] - }, - "documentation": { - "id": 1519, - "nodeType": "StructuredDocumentation", - "src": "2644:351:16", - "text": " @notice Checks if a service provider has enough tokens available to lock\n @param self The provision tracker mapping\n @param graphStaking The HorizonStaking contract\n @param serviceProvider The service provider address\n @param delegationRatio A delegation ratio to limit the amount of delegation that's usable" - }, - "id": 1554, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "check", - "nameLocation": "3009:5:16", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1531, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1523, - "mutability": "mutable", - "name": "self", - "nameLocation": "3060:4:16", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "3024:40:16", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 1522, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 1520, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3032:7:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3024:27:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 1521, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3043:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1526, - "mutability": "mutable", - "name": "graphStaking", - "nameLocation": "3090:12:16", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "3074:28:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - }, - "typeName": { - "id": 1525, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1524, - "name": "IHorizonStaking", - "nameLocations": [ - "3074:15:16" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2235, - "src": "3074:15:16" - }, - "referencedDeclaration": 2235, - "src": "3074:15:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1528, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3120:15:16", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "3112:23:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3112:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1530, - "mutability": "mutable", - "name": "delegationRatio", - "nameLocation": "3152:15:16", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "3145:22:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1529, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3145:6:16", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "3014:159:16" - }, - "returnParameters": { - "id": 1534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1533, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "3197:4:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1532, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3197:4:16", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "3196:6:16" - }, - "scope": 1555, - "src": "3000:383:16", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1556, - "src": "639:2746:16", - "usedErrors": [ - 1421 - ], - "usedEvents": [] - } - ], - "src": "45:3341:16" - }, - "id": 16 - }, - "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol", - "exportedSymbols": { - "GraphDirectory": [ - 4653 - ], - "IHorizonStaking": [ - 2235 - ], - "Initializable": [ - 5102 - ], - "PPMMath": [ - 4262 - ], - "ProvisionManager": [ - 2128 - ], - "ProvisionManagerV1Storage": [ - 2158 - ], - "UintRange": [ - 4290 - ] - }, - "id": 2129, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1557, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:17" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", - "file": "../../interfaces/IHorizonStaking.sol", - "id": 1559, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2129, - "sourceUnit": 2236, - "src": "70:71:17", - "symbolAliases": [ - { - "foreign": { - "id": 1558, - "name": "IHorizonStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2235, - "src": "79:15:17", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/UintRange.sol", - "file": "../../libraries/UintRange.sol", - "id": 1561, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2129, - "sourceUnit": 4291, - "src": "143:58:17", - "symbolAliases": [ - { - "foreign": { - "id": 1560, - "name": "UintRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4290, - "src": "152:9:17", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", - "file": "../../libraries/PPMMath.sol", - "id": 1563, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2129, - "sourceUnit": 4263, - "src": "202:54:17", - "symbolAliases": [ - { - "foreign": { - "id": 1562, - "name": "PPMMath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4262, - "src": "211:7:17", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "id": 1565, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2129, - "sourceUnit": 5103, - "src": "258:98:17", - "symbolAliases": [ - { - "foreign": { - "id": 1564, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5102, - "src": "267:13:17", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", - "file": "../../utilities/GraphDirectory.sol", - "id": 1567, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2129, - "sourceUnit": 4654, - "src": "357:68:17", - "symbolAliases": [ - { - "foreign": { - "id": 1566, - "name": "GraphDirectory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4653, - "src": "366:14:17", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol", - "file": "./ProvisionManagerStorage.sol", - "id": 1569, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2129, - "sourceUnit": 2159, - "src": "426:74:17", - "symbolAliases": [ - { - "foreign": { - "id": 1568, - "name": "ProvisionManagerV1Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "435:25:17", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 1571, - "name": "Initializable", - "nameLocations": [ - "1007:13:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5102, - "src": "1007:13:17" - }, - "id": 1572, - "nodeType": "InheritanceSpecifier", - "src": "1007:13:17" - }, - { - "baseName": { - "id": 1573, - "name": "GraphDirectory", - "nameLocations": [ - "1022:14:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4653, - "src": "1022:14:17" - }, - "id": 1574, - "nodeType": "InheritanceSpecifier", - "src": "1022:14:17" - }, - { - "baseName": { - "id": 1575, - "name": "ProvisionManagerV1Storage", - "nameLocations": [ - "1038:25:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2158, - "src": "1038:25:17" - }, - "id": 1576, - "nodeType": "InheritanceSpecifier", - "src": "1038:25:17" - } - ], - "canonicalName": "ProvisionManager", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 1570, - "nodeType": "StructuredDocumentation", - "src": "502:466:17", - "text": " @title ProvisionManager contract\n @notice A helper contract that implements several provision management functions.\n @dev Provides utilities to verify provision parameters are within an acceptable range. Each\n parameter has an overridable setter and getter for the validity range, and a checker that reverts\n if the parameter is out of range.\n The parameters are:\n - Provision parameters (thawing period and verifier cut)\n - Provision tokens" - }, - "fullyImplemented": true, - "id": 2128, - "linearizedBaseContracts": [ - 2128, - 2158, - 4653, - 5102 - ], - "name": "ProvisionManager", - "nameLocation": "987:16:17", - "nodeType": "ContractDefinition", - "nodes": [ - { - "global": false, - "id": 1579, - "libraryName": { - "id": 1577, - "name": "UintRange", - "nameLocations": [ - "1076:9:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4290, - "src": "1076:9:17" - }, - "nodeType": "UsingForDirective", - "src": "1070:28:17", - "typeName": { - "id": 1578, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1090:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "id": 1586, - "mutability": "constant", - "name": "DEFAULT_MIN_VERIFIER_CUT", - "nameLocation": "1146:24:17", - "nodeType": "VariableDeclaration", - "scope": 2128, - "src": "1121:68:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1580, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1121:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "expression": { - "arguments": [ - { - "id": 1583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1178:6:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 1582, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1178:6:17", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - } - ], - "id": 1581, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "1173:4:17", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1173:12:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint32", - "typeString": "type(uint32)" - } - }, - "id": 1585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1186:3:17", - "memberName": "min", - "nodeType": "MemberAccess", - "src": "1173:16:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 1593, - "mutability": "constant", - "name": "DEFAULT_MAX_VERIFIER_CUT", - "nameLocation": "1220:24:17", - "nodeType": "VariableDeclaration", - "scope": 2128, - "src": "1195:75:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1587, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1195:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "arguments": [ - { - "expression": { - "id": 1590, - "name": "PPMMath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4262, - "src": "1254:7:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PPMMath_$4262_$", - "typeString": "type(library PPMMath)" - } - }, - "id": 1591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1262:7:17", - "memberName": "MAX_PPM", - "nodeType": "MemberAccess", - "referencedDeclaration": 4175, - "src": "1254:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1247:6:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 1588, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1247:6:17", - "typeDescriptions": {} - } - }, - "id": 1592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1247:23:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 1600, - "mutability": "constant", - "name": "DEFAULT_MIN_THAWING_PERIOD", - "nameLocation": "1301:26:17", - "nodeType": "VariableDeclaration", - "scope": 2128, - "src": "1276:70:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1594, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1276:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "expression": { - "arguments": [ - { - "id": 1597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1335:6:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 1596, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1335:6:17", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - } - ], - "id": 1595, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "1330:4:17", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1330:12:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint64", - "typeString": "type(uint64)" - } - }, - "id": 1599, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1343:3:17", - "memberName": "min", - "nodeType": "MemberAccess", - "src": "1330:16:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 1607, - "mutability": "constant", - "name": "DEFAULT_MAX_THAWING_PERIOD", - "nameLocation": "1377:26:17", - "nodeType": "VariableDeclaration", - "scope": 2128, - "src": "1352:70:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1601, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1352:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "expression": { - "arguments": [ - { - "id": 1604, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1411:6:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 1603, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1411:6:17", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - } - ], - "id": 1602, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "1406:4:17", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1605, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1406:12:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint64", - "typeString": "type(uint64)" - } - }, - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1419:3:17", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "1406:16:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 1614, - "mutability": "constant", - "name": "DEFAULT_MIN_PROVISION_TOKENS", - "nameLocation": "1454:28:17", - "nodeType": "VariableDeclaration", - "scope": 2128, - "src": "1428:74:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1608, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1428:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "expression": { - "arguments": [ - { - "id": 1611, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1490:7:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 1610, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1490:7:17", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - ], - "id": 1609, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "1485:4:17", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1485:13:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint256", - "typeString": "type(uint256)" - } - }, - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1499:3:17", - "memberName": "min", - "nodeType": "MemberAccess", - "src": "1485:17:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 1621, - "mutability": "constant", - "name": "DEFAULT_MAX_PROVISION_TOKENS", - "nameLocation": "1534:28:17", - "nodeType": "VariableDeclaration", - "scope": 2128, - "src": "1508:74:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1615, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1508:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "expression": { - "arguments": [ - { - "id": 1618, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1570:7:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 1617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1570:7:17", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - ], - "id": 1616, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "1565:4:17", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1565:13:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint256", - "typeString": "type(uint256)" - } - }, - "id": 1620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1579:3:17", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "1565:17:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": { - "id": 1622, - "nodeType": "StructuredDocumentation", - "src": "1589:214:17", - "text": " @notice Emitted when the provision tokens range is set.\n @param min The minimum allowed value for the provision tokens.\n @param max The maximum allowed value for the provision tokens." - }, - "eventSelector": "90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f568849", - "id": 1628, - "name": "ProvisionTokensRangeSet", - "nameLocation": "1814:23:17", - "nodeType": "EventDefinition", - "parameters": { - "id": 1627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1624, - "indexed": false, - "mutability": "mutable", - "name": "min", - "nameLocation": "1846:3:17", - "nodeType": "VariableDeclaration", - "scope": 1628, - "src": "1838:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1623, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1838:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1626, - "indexed": false, - "mutability": "mutable", - "name": "max", - "nameLocation": "1859:3:17", - "nodeType": "VariableDeclaration", - "scope": 1628, - "src": "1851:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1851:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1837:26:17" - }, - "src": "1808:56:17" - }, - { - "anonymous": false, - "documentation": { - "id": 1629, - "nodeType": "StructuredDocumentation", - "src": "1870:109:17", - "text": " @notice Emitted when the delegation ratio is set.\n @param ratio The delegation ratio" - }, - "eventSelector": "472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f", - "id": 1633, - "name": "DelegationRatioSet", - "nameLocation": "1990:18:17", - "nodeType": "EventDefinition", - "parameters": { - "id": 1632, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1631, - "indexed": false, - "mutability": "mutable", - "name": "ratio", - "nameLocation": "2016:5:17", - "nodeType": "VariableDeclaration", - "scope": 1633, - "src": "2009:12:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1630, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2009:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "2008:14:17" - }, - "src": "1984:39:17" - }, - { - "anonymous": false, - "documentation": { - "id": 1634, - "nodeType": "StructuredDocumentation", - "src": "2029:210:17", - "text": " @notice Emitted when the verifier cut range is set.\n @param min The minimum allowed value for the max verifier cut.\n @param max The maximum allowed value for the max verifier cut." - }, - "eventSelector": "2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a36", - "id": 1640, - "name": "VerifierCutRangeSet", - "nameLocation": "2250:19:17", - "nodeType": "EventDefinition", - "parameters": { - "id": 1639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1636, - "indexed": false, - "mutability": "mutable", - "name": "min", - "nameLocation": "2277:3:17", - "nodeType": "VariableDeclaration", - "scope": 1640, - "src": "2270:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1635, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2270:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1638, - "indexed": false, - "mutability": "mutable", - "name": "max", - "nameLocation": "2289:3:17", - "nodeType": "VariableDeclaration", - "scope": 1640, - "src": "2282:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1637, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2282:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "2269:24:17" - }, - "src": "2244:50:17" - }, - { - "anonymous": false, - "documentation": { - "id": 1641, - "nodeType": "StructuredDocumentation", - "src": "2300:208:17", - "text": " @notice Emitted when the thawing period range is set.\n @param min The minimum allowed value for the thawing period.\n @param max The maximum allowed value for the thawing period." - }, - "eventSelector": "2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d1", - "id": 1647, - "name": "ThawingPeriodRangeSet", - "nameLocation": "2519:21:17", - "nodeType": "EventDefinition", - "parameters": { - "id": 1646, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1643, - "indexed": false, - "mutability": "mutable", - "name": "min", - "nameLocation": "2548:3:17", - "nodeType": "VariableDeclaration", - "scope": 1647, - "src": "2541:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1642, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2541:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1645, - "indexed": false, - "mutability": "mutable", - "name": "max", - "nameLocation": "2560:3:17", - "nodeType": "VariableDeclaration", - "scope": 1647, - "src": "2553:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1644, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2553:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "2540:24:17" - }, - "src": "2513:52:17" - }, - { - "documentation": { - "id": 1648, - "nodeType": "StructuredDocumentation", - "src": "2571:260:17", - "text": " @notice Thrown when a provision parameter is out of range.\n @param message The error message.\n @param value The value that is out of range.\n @param min The minimum allowed value.\n @param max The maximum allowed value." - }, - "errorSelector": "0871e13d", - "id": 1658, - "name": "ProvisionManagerInvalidValue", - "nameLocation": "2842:28:17", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1657, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1650, - "mutability": "mutable", - "name": "message", - "nameLocation": "2877:7:17", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "2871:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1649, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2871:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1652, - "mutability": "mutable", - "name": "value", - "nameLocation": "2894:5:17", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "2886:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1651, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2886:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1654, - "mutability": "mutable", - "name": "min", - "nameLocation": "2909:3:17", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "2901:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1653, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2901:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1656, - "mutability": "mutable", - "name": "max", - "nameLocation": "2922:3:17", - "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "2914:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1655, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2914:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2870:56:17" - }, - "src": "2836:91:17" - }, - { - "documentation": { - "id": 1659, - "nodeType": "StructuredDocumentation", - "src": "2933:169:17", - "text": " @notice Thrown when attempting to set a range where min is greater than max.\n @param min The minimum value.\n @param max The maximum value." - }, - "errorSelector": "ccccdafb", - "id": 1665, - "name": "ProvisionManagerInvalidRange", - "nameLocation": "3113:28:17", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1664, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1661, - "mutability": "mutable", - "name": "min", - "nameLocation": "3150:3:17", - "nodeType": "VariableDeclaration", - "scope": 1665, - "src": "3142:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1660, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3142:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1663, - "mutability": "mutable", - "name": "max", - "nameLocation": "3163:3:17", - "nodeType": "VariableDeclaration", - "scope": 1665, - "src": "3155:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1662, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3155:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3141:26:17" - }, - "src": "3107:61:17" - }, - { - "documentation": { - "id": 1666, - "nodeType": "StructuredDocumentation", - "src": "3174:228:17", - "text": " @notice Thrown when the caller is not authorized to manage the provision of a service provider.\n @param serviceProvider The address of the serviceProvider.\n @param caller The address of the caller." - }, - "errorSelector": "cc5d3c8b", - "id": 1672, - "name": "ProvisionManagerNotAuthorized", - "nameLocation": "3413:29:17", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1671, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1668, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3451:15:17", - "nodeType": "VariableDeclaration", - "scope": 1672, - "src": "3443:23:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1667, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3443:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1670, - "mutability": "mutable", - "name": "caller", - "nameLocation": "3476:6:17", - "nodeType": "VariableDeclaration", - "scope": 1672, - "src": "3468:14:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1669, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3468:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3442:41:17" - }, - "src": "3407:77:17" - }, - { - "documentation": { - "id": 1673, - "nodeType": "StructuredDocumentation", - "src": "3490:131:17", - "text": " @notice Thrown when a provision is not found.\n @param serviceProvider The address of the service provider." - }, - "errorSelector": "7b3c09bf", - "id": 1677, - "name": "ProvisionManagerProvisionNotFound", - "nameLocation": "3632:33:17", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 1676, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1675, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3674:15:17", - "nodeType": "VariableDeclaration", - "scope": 1677, - "src": "3666:23:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3666:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3665:25:17" - }, - "src": "3626:65:17" - }, - { - "body": { - "id": 1702, - "nodeType": "Block", - "src": "3871:203:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 1686, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1680, - "src": "3931:15:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 1689, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3956:4:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ProvisionManager_$2128", - "typeString": "contract ProvisionManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ProvisionManager_$2128", - "typeString": "contract ProvisionManager" - } - ], - "id": 1688, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3948:7:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1687, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3948:7:17", - "typeDescriptions": {} - } - }, - "id": 1690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3948:13:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 1691, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3963:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3967:6:17", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3963:10:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1683, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "3902:13:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 1684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3902:15:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 1685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3918:12:17", - "memberName": "isAuthorized", - "nodeType": "MemberAccess", - "referencedDeclaration": 3694, - "src": "3902:28:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address,address) view external returns (bool)" - } - }, - "id": 1693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3902:72:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 1695, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1680, - "src": "4018:15:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 1696, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4035:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4039:6:17", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4035:10:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1694, - "name": "ProvisionManagerNotAuthorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1672, - "src": "3988:29:17", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", - "typeString": "function (address,address) pure returns (error)" - } - }, - "id": 1698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3988:58:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 1682, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3881:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 1699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3881:175:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1700, - "nodeType": "ExpressionStatement", - "src": "3881:175:17" - }, - { - "id": 1701, - "nodeType": "PlaceholderStatement", - "src": "4066:1:17" - } - ] - }, - "documentation": { - "id": 1678, - "nodeType": "StructuredDocumentation", - "src": "3697:108:17", - "text": " @notice Checks if the caller is authorized to manage the provision of a service provider." - }, - "id": 1703, - "name": "onlyAuthorizedForProvision", - "nameLocation": "3819:26:17", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1681, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1680, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3854:15:17", - "nodeType": "VariableDeclaration", - "scope": 1703, - "src": "3846:23:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1679, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3846:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3845:25:17" - }, - "src": "3810:264:17", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1727, - "nodeType": "Block", - "src": "4279:198:17", - "statements": [ - { - "assignments": [ - 1712 - ], - "declarations": [ - { - "constant": false, - "id": 1712, - "mutability": "mutable", - "name": "provision", - "nameLocation": "4322:9:17", - "nodeType": "VariableDeclaration", - "scope": 1727, - "src": "4289:42:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 1711, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1710, - "name": "IHorizonStaking.Provision", - "nameLocations": [ - "4289:15:17", - "4305:9:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "4289:25:17" - }, - "referencedDeclaration": 3718, - "src": "4289:25:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - } - ], - "id": 1716, - "initialValue": { - "arguments": [ - { - "id": 1714, - "name": "serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1706, - "src": "4348:15:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1713, - "name": "_getProvision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "4334:13:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_struct$_Provision_$3718_memory_ptr_$", - "typeString": "function (address) view returns (struct IHorizonStakingTypes.Provision memory)" - } - }, - "id": 1715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4334:30:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4289:75:17" - }, - { - "expression": { - "arguments": [ - { - "id": 1718, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1712, - "src": "4396:9:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - ], - "id": 1717, - "name": "_checkProvisionTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1920, - 1936 - ], - "referencedDeclaration": 1936, - "src": "4374:21:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Provision_$3718_memory_ptr_$returns$__$", - "typeString": "function (struct IHorizonStakingTypes.Provision memory) view" - } - }, - "id": 1719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4374:32:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1720, - "nodeType": "ExpressionStatement", - "src": "4374:32:17" - }, - { - "expression": { - "arguments": [ - { - "id": 1722, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1712, - "src": "4442:9:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - { - "hexValue": "66616c7365", - "id": 1723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4453:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1721, - "name": "_checkProvisionParameters", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1959, - 2015 - ], - "referencedDeclaration": 2015, - "src": "4416:25:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Provision_$3718_memory_ptr_$_t_bool_$returns$__$", - "typeString": "function (struct IHorizonStakingTypes.Provision memory,bool) view" - } - }, - "id": 1724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4416:43:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1725, - "nodeType": "ExpressionStatement", - "src": "4416:43:17" - }, - { - "id": 1726, - "nodeType": "PlaceholderStatement", - "src": "4469:1:17" - } - ] - }, - "documentation": { - "id": 1704, - "nodeType": "StructuredDocumentation", - "src": "4080:133:17", - "text": " @notice Checks if a provision of a service provider is valid according\n to the parameter ranges established." - }, - "id": 1728, - "name": "onlyValidProvision", - "nameLocation": "4227:18:17", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1707, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1706, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "4254:15:17", - "nodeType": "VariableDeclaration", - "scope": 1728, - "src": "4246:23:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1705, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4246:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4245:25:17" - }, - "src": "4218:259:17", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 1737, - "nodeType": "Block", - "src": "4679:52:17", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1734, - "name": "__ProvisionManager_init_unchained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1760, - "src": "4689:33:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4689:35:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1736, - "nodeType": "ExpressionStatement", - "src": "4689:35:17" - } - ] - }, - "documentation": { - "id": 1729, - "nodeType": "StructuredDocumentation", - "src": "4483:77:17", - "text": " @notice Initializes the contract and any parent contracts." - }, - "id": 1738, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 1732, - "kind": "modifierInvocation", - "modifierName": { - "id": 1731, - "name": "onlyInitializing", - "nameLocations": [ - "4662:16:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "4662:16:17" - }, - "nodeType": "ModifierInvocation", - "src": "4662:16:17" - } - ], - "name": "__ProvisionManager_init", - "nameLocation": "4627:23:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1730, - "nodeType": "ParameterList", - "parameters": [], - "src": "4650:2:17" - }, - "returnParameters": { - "id": 1733, - "nodeType": "ParameterList", - "parameters": [], - "src": "4679:0:17" - }, - "scope": 2128, - "src": "4618:113:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1759, - "nodeType": "Block", - "src": "4981:271:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 1745, - "name": "DEFAULT_MIN_PROVISION_TOKENS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1614, - "src": "5016:28:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1746, - "name": "DEFAULT_MAX_PROVISION_TOKENS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "5046:28:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1744, - "name": "_setProvisionTokensRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "4991:24:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4991:84:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1748, - "nodeType": "ExpressionStatement", - "src": "4991:84:17" - }, - { - "expression": { - "arguments": [ - { - "id": 1750, - "name": "DEFAULT_MIN_VERIFIER_CUT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1586, - "src": "5106:24:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 1751, - "name": "DEFAULT_MAX_VERIFIER_CUT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1593, - "src": "5132:24:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 1749, - "name": "_setVerifierCutRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1868, - "src": "5085:20:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$_t_uint32_$returns$__$", - "typeString": "function (uint32,uint32)" - } - }, - "id": 1752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5085:72:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1753, - "nodeType": "ExpressionStatement", - "src": "5085:72:17" - }, - { - "expression": { - "arguments": [ - { - "id": 1755, - "name": "DEFAULT_MIN_THAWING_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1600, - "src": "5190:26:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 1756, - "name": "DEFAULT_MAX_THAWING_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1607, - "src": "5218:26:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 1754, - "name": "_setThawingPeriodRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1900, - "src": "5167:22:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$_t_uint64_$returns$__$", - "typeString": "function (uint64,uint64)" - } - }, - "id": 1757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5167:78:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1758, - "nodeType": "ExpressionStatement", - "src": "5167:78:17" - } - ] - }, - "documentation": { - "id": 1739, - "nodeType": "StructuredDocumentation", - "src": "4737:115:17", - "text": " @notice Initializes the contract.\n @dev All parameters set to their entire range as valid." - }, - "id": 1760, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 1742, - "kind": "modifierInvocation", - "modifierName": { - "id": 1741, - "name": "onlyInitializing", - "nameLocations": [ - "4964:16:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "4964:16:17" - }, - "nodeType": "ModifierInvocation", - "src": "4964:16:17" - } - ], - "name": "__ProvisionManager_init_unchained", - "nameLocation": "4919:33:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1740, - "nodeType": "ParameterList", - "parameters": [], - "src": "4952:2:17" - }, - "returnParameters": { - "id": 1743, - "nodeType": "ParameterList", - "parameters": [], - "src": "4981:0:17" - }, - "scope": 2128, - "src": "4910:342:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1777, - "nodeType": "Block", - "src": "5685:135:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 1767, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "5721:16:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "hexValue": "74727565", - "id": 1768, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5739:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1766, - "name": "_checkProvisionParameters", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1959, - 2015 - ], - "referencedDeclaration": 1959, - "src": "5695:25:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,bool) view" - } - }, - "id": 1769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5695:49:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1770, - "nodeType": "ExpressionStatement", - "src": "5695:49:17" - }, - { - "expression": { - "arguments": [ - { - "id": 1774, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "5796:16:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1771, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "5754:13:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 1772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5754:15:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 1773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5770:25:17", - "memberName": "acceptProvisionParameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 3503, - "src": "5754:41:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5754:59:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1776, - "nodeType": "ExpressionStatement", - "src": "5754:59:17" - } - ] - }, - "documentation": { - "id": 1761, - "nodeType": "StructuredDocumentation", - "src": "5258:351:17", - "text": " @notice Verifies and accepts the provision parameters of a service provider in\n the {HorizonStaking} contract.\n @dev Checks the pending provision parameters, not the current ones.\n Emits a {ProvisionPendingParametersAccepted} event.\n @param _serviceProvider The address of the service provider." - }, - "id": 1778, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_acceptProvisionParameters", - "nameLocation": "5623:26:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1764, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1763, - "mutability": "mutable", - "name": "_serviceProvider", - "nameLocation": "5658:16:17", - "nodeType": "VariableDeclaration", - "scope": 1778, - "src": "5650:24:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1762, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5650:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5649:26:17" - }, - "returnParameters": { - "id": 1765, - "nodeType": "ParameterList", - "parameters": [], - "src": "5685:0:17" - }, - "scope": 2128, - "src": "5614:206:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1792, - "nodeType": "Block", - "src": "6010:82:17", - "statements": [ - { - "expression": { - "id": 1786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 1784, - "name": "delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2152, - "src": "6020:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 1785, - "name": "_ratio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1781, - "src": "6038:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "6020:24:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 1787, - "nodeType": "ExpressionStatement", - "src": "6020:24:17" - }, - { - "eventCall": { - "arguments": [ - { - "id": 1789, - "name": "_ratio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1781, - "src": "6078:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 1788, - "name": "DelegationRatioSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1633, - "src": "6059:18:17", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 1790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6059:26:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1791, - "nodeType": "EmitStatement", - "src": "6054:31:17" - } - ] - }, - "documentation": { - "id": 1779, - "nodeType": "StructuredDocumentation", - "src": "5847:105:17", - "text": " @notice Sets the delegation ratio.\n @param _ratio The delegation ratio to be set" - }, - "id": 1793, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setDelegationRatio", - "nameLocation": "5966:19:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1782, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1781, - "mutability": "mutable", - "name": "_ratio", - "nameLocation": "5993:6:17", - "nodeType": "VariableDeclaration", - "scope": 1793, - "src": "5986:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1780, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5986:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "5985:15:17" - }, - "returnParameters": { - "id": 1783, - "nodeType": "ParameterList", - "parameters": [], - "src": "6010:0:17" - }, - "scope": 2128, - "src": "5957:135:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1824, - "nodeType": "Block", - "src": "6383:208:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1802, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "6401:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 1803, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "6409:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6401:12:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 1806, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "6444:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1807, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "6450:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1805, - "name": "ProvisionManagerInvalidRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "6415:28:17", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 1808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6415:40:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 1801, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6393:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 1809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6393:63:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1810, - "nodeType": "ExpressionStatement", - "src": "6393:63:17" - }, - { - "expression": { - "id": 1813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 1811, - "name": "minimumProvisionTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "6466:22:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 1812, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "6491:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6466:29:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1814, - "nodeType": "ExpressionStatement", - "src": "6466:29:17" - }, - { - "expression": { - "id": 1817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 1815, - "name": "maximumProvisionTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "6505:22:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 1816, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "6530:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6505:29:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1818, - "nodeType": "ExpressionStatement", - "src": "6505:29:17" - }, - { - "eventCall": { - "arguments": [ - { - "id": 1820, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1796, - "src": "6573:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1821, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "6579:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1819, - "name": "ProvisionTokensRangeSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "6549:23:17", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6549:35:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1823, - "nodeType": "EmitStatement", - "src": "6544:40:17" - } - ] - }, - "documentation": { - "id": 1794, - "nodeType": "StructuredDocumentation", - "src": "6098:209:17", - "text": " @notice Sets the range for the provision tokens.\n @param _min The minimum allowed value for the provision tokens.\n @param _max The maximum allowed value for the provision tokens." - }, - "id": 1825, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setProvisionTokensRange", - "nameLocation": "6321:24:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1799, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1796, - "mutability": "mutable", - "name": "_min", - "nameLocation": "6354:4:17", - "nodeType": "VariableDeclaration", - "scope": 1825, - "src": "6346:12:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1795, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6346:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1798, - "mutability": "mutable", - "name": "_max", - "nameLocation": "6368:4:17", - "nodeType": "VariableDeclaration", - "scope": 1825, - "src": "6360:12:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1797, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6360:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6345:28:17" - }, - "returnParameters": { - "id": 1800, - "nodeType": "ParameterList", - "parameters": [], - "src": "6383:0:17" - }, - "scope": 2128, - "src": "6312:279:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1867, - "nodeType": "Block", - "src": "6872:281:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1834, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1828, - "src": "6890:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 1835, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "6898:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "6890:12:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 1838, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1828, - "src": "6933:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 1839, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "6939:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 1837, - "name": "ProvisionManagerInvalidRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "6904:28:17", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 1840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6904:40:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 1833, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6882:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 1841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6882:63:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1842, - "nodeType": "ExpressionStatement", - "src": "6882:63:17" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 1846, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "6982:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 1844, - "name": "PPMMath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4262, - "src": "6963:7:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PPMMath_$4262_$", - "typeString": "type(library PPMMath)" - } - }, - "id": 1845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6971:10:17", - "memberName": "isValidPPM", - "nodeType": "MemberAccess", - "referencedDeclaration": 4261, - "src": "6963:18:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 1847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6963:24:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 1849, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1828, - "src": "7018:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 1850, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "7024:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 1848, - "name": "ProvisionManagerInvalidRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "6989:28:17", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 1851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6989:40:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 1843, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6955:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 1852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6955:75:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1853, - "nodeType": "ExpressionStatement", - "src": "6955:75:17" - }, - { - "expression": { - "id": 1856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 1854, - "name": "minimumVerifierCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2146, - "src": "7040:18:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 1855, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1828, - "src": "7061:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "7040:25:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 1857, - "nodeType": "ExpressionStatement", - "src": "7040:25:17" - }, - { - "expression": { - "id": 1860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 1858, - "name": "maximumVerifierCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2149, - "src": "7075:18:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 1859, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "7096:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "7075:25:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 1861, - "nodeType": "ExpressionStatement", - "src": "7075:25:17" - }, - { - "eventCall": { - "arguments": [ - { - "id": 1863, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1828, - "src": "7135:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 1864, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "7141:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 1862, - "name": "VerifierCutRangeSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1640, - "src": "7115:19:17", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$", - "typeString": "function (uint32,uint32)" - } - }, - "id": 1865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7115:31:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1866, - "nodeType": "EmitStatement", - "src": "7110:36:17" - } - ] - }, - "documentation": { - "id": 1826, - "nodeType": "StructuredDocumentation", - "src": "6597:205:17", - "text": " @notice Sets the range for the verifier cut.\n @param _min The minimum allowed value for the max verifier cut.\n @param _max The maximum allowed value for the max verifier cut." - }, - "id": 1868, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setVerifierCutRange", - "nameLocation": "6816:20:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1831, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1828, - "mutability": "mutable", - "name": "_min", - "nameLocation": "6844:4:17", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "6837:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1827, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6837:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1830, - "mutability": "mutable", - "name": "_max", - "nameLocation": "6857:4:17", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "6850:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1829, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6850:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "6836:26:17" - }, - "returnParameters": { - "id": 1832, - "nodeType": "ParameterList", - "parameters": [], - "src": "6872:0:17" - }, - "scope": 2128, - "src": "6807:346:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1899, - "nodeType": "Block", - "src": "7434:202:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 1879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 1877, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7452:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 1878, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "7460:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "7452:12:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 1881, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7495:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 1882, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "7501:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 1880, - "name": "ProvisionManagerInvalidRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "7466:28:17", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 1883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7466:40:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 1876, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7444:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 1884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7444:63:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1885, - "nodeType": "ExpressionStatement", - "src": "7444:63:17" - }, - { - "expression": { - "id": 1888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 1886, - "name": "minimumThawingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2140, - "src": "7517:20:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 1887, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7540:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "7517:27:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 1889, - "nodeType": "ExpressionStatement", - "src": "7517:27:17" - }, - { - "expression": { - "id": 1892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 1890, - "name": "maximumThawingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "7554:20:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 1891, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "7577:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "7554:27:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 1893, - "nodeType": "ExpressionStatement", - "src": "7554:27:17" - }, - { - "eventCall": { - "arguments": [ - { - "id": 1895, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7618:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 1896, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "7624:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 1894, - "name": "ThawingPeriodRangeSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1647, - "src": "7596:21:17", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$returns$__$", - "typeString": "function (uint64,uint64)" - } - }, - "id": 1897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7596:33:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1898, - "nodeType": "EmitStatement", - "src": "7591:38:17" - } - ] - }, - "documentation": { - "id": 1869, - "nodeType": "StructuredDocumentation", - "src": "7159:203:17", - "text": " @notice Sets the range for the thawing period.\n @param _min The minimum allowed value for the thawing period.\n @param _max The maximum allowed value for the thawing period." - }, - "id": 1900, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setThawingPeriodRange", - "nameLocation": "7376:22:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1874, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1871, - "mutability": "mutable", - "name": "_min", - "nameLocation": "7406:4:17", - "nodeType": "VariableDeclaration", - "scope": 1900, - "src": "7399:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1870, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "7399:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1873, - "mutability": "mutable", - "name": "_max", - "nameLocation": "7419:4:17", - "nodeType": "VariableDeclaration", - "scope": 1900, - "src": "7412:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1872, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "7412:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "7398:26:17" - }, - "returnParameters": { - "id": 1875, - "nodeType": "ParameterList", - "parameters": [], - "src": "7434:0:17" - }, - "scope": 2128, - "src": "7367:269:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1919, - "nodeType": "Block", - "src": "7922:135:17", - "statements": [ - { - "assignments": [ - 1910 - ], - "declarations": [ - { - "constant": false, - "id": 1910, - "mutability": "mutable", - "name": "provision", - "nameLocation": "7965:9:17", - "nodeType": "VariableDeclaration", - "scope": 1919, - "src": "7932:42:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 1909, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1908, - "name": "IHorizonStaking.Provision", - "nameLocations": [ - "7932:15:17", - "7948:9:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "7932:25:17" - }, - "referencedDeclaration": 3718, - "src": "7932:25:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - } - ], - "id": 1914, - "initialValue": { - "arguments": [ - { - "id": 1912, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1903, - "src": "7991:16:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1911, - "name": "_getProvision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "7977:13:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_struct$_Provision_$3718_memory_ptr_$", - "typeString": "function (address) view returns (struct IHorizonStakingTypes.Provision memory)" - } - }, - "id": 1913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7977:31:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7932:76:17" - }, - { - "expression": { - "arguments": [ - { - "id": 1916, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1910, - "src": "8040:9:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - ], - "id": 1915, - "name": "_checkProvisionTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1920, - 1936 - ], - "referencedDeclaration": 1936, - "src": "8018:21:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Provision_$3718_memory_ptr_$returns$__$", - "typeString": "function (struct IHorizonStakingTypes.Provision memory) view" - } - }, - "id": 1917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8018:32:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1918, - "nodeType": "ExpressionStatement", - "src": "8018:32:17" - } - ] - }, - "documentation": { - "id": 1901, - "nodeType": "StructuredDocumentation", - "src": "7663:175:17", - "text": " @notice Checks if the provision tokens of a service provider are within the valid range.\n @param _serviceProvider The address of the service provider." - }, - "id": 1920, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkProvisionTokens", - "nameLocation": "7852:21:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1904, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1903, - "mutability": "mutable", - "name": "_serviceProvider", - "nameLocation": "7882:16:17", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "7874:24:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1902, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7874:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "7873:26:17" - }, - "returnParameters": { - "id": 1905, - "nodeType": "ParameterList", - "parameters": [], - "src": "7922:0:17" - }, - "scope": 2128, - "src": "7843:214:17", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 1935, - "nodeType": "Block", - "src": "8322:112:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 1928, - "name": "_provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1924, - "src": "8351:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 1929, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8362:6:17", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 3701, - "src": "8351:17:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1930, - "name": "minimumProvisionTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "8370:22:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 1931, - "name": "maximumProvisionTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "8394:22:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "746f6b656e73", - "id": 1932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8418:8:17", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_680989b8ba4329dbb34fe099c4644fce6e521152facc82d70e978bdc51facd5c", - "typeString": "literal_string \"tokens\"" - }, - "value": "tokens" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_680989b8ba4329dbb34fe099c4644fce6e521152facc82d70e978bdc51facd5c", - "typeString": "literal_string \"tokens\"" - } - ], - "id": 1927, - "name": "_checkValueInRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "8332:18:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,uint256,bytes memory) pure" - } - }, - "id": 1933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8332:95:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1934, - "nodeType": "ExpressionStatement", - "src": "8332:95:17" - } - ] - }, - "documentation": { - "id": 1921, - "nodeType": "StructuredDocumentation", - "src": "8063:156:17", - "text": " @notice Checks if the provision tokens of a service provider are within the valid range.\n @param _provision The provision to check." - }, - "id": 1936, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkProvisionTokens", - "nameLocation": "8233:21:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1925, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1924, - "mutability": "mutable", - "name": "_provision", - "nameLocation": "8288:10:17", - "nodeType": "VariableDeclaration", - "scope": 1936, - "src": "8255:43:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 1923, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1922, - "name": "IHorizonStaking.Provision", - "nameLocations": [ - "8255:15:17", - "8271:9:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "8255:25:17" - }, - "referencedDeclaration": 3718, - "src": "8255:25:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - } - ], - "src": "8254:45:17" - }, - "returnParameters": { - "id": 1926, - "nodeType": "ParameterList", - "parameters": [], - "src": "8322:0:17" - }, - "scope": 2128, - "src": "8224:210:17", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 1958, - "nodeType": "Block", - "src": "8805:154:17", - "statements": [ - { - "assignments": [ - 1948 - ], - "declarations": [ - { - "constant": false, - "id": 1948, - "mutability": "mutable", - "name": "provision", - "nameLocation": "8848:9:17", - "nodeType": "VariableDeclaration", - "scope": 1958, - "src": "8815:42:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 1947, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1946, - "name": "IHorizonStaking.Provision", - "nameLocations": [ - "8815:15:17", - "8831:9:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "8815:25:17" - }, - "referencedDeclaration": 3718, - "src": "8815:25:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - } - ], - "id": 1952, - "initialValue": { - "arguments": [ - { - "id": 1950, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "8874:16:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1949, - "name": "_getProvision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "8860:13:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_struct$_Provision_$3718_memory_ptr_$", - "typeString": "function (address) view returns (struct IHorizonStakingTypes.Provision memory)" - } - }, - "id": 1951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8860:31:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8815:76:17" - }, - { - "expression": { - "arguments": [ - { - "id": 1954, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1948, - "src": "8927:9:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - { - "id": 1955, - "name": "_checkPending", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1941, - "src": "8938:13:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1953, - "name": "_checkProvisionParameters", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1959, - 2015 - ], - "referencedDeclaration": 2015, - "src": "8901:25:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Provision_$3718_memory_ptr_$_t_bool_$returns$__$", - "typeString": "function (struct IHorizonStakingTypes.Provision memory,bool) view" - } - }, - "id": 1956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8901:51:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1957, - "nodeType": "ExpressionStatement", - "src": "8901:51:17" - } - ] - }, - "documentation": { - "id": 1937, - "nodeType": "StructuredDocumentation", - "src": "8440:257:17", - "text": " @notice Checks if the provision parameters of a service provider are within the valid range.\n @param _serviceProvider The address of the service provider.\n @param _checkPending If true, checks the pending provision parameters." - }, - "id": 1959, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkProvisionParameters", - "nameLocation": "8711:25:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1942, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1939, - "mutability": "mutable", - "name": "_serviceProvider", - "nameLocation": "8745:16:17", - "nodeType": "VariableDeclaration", - "scope": 1959, - "src": "8737:24:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1938, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8737:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1941, - "mutability": "mutable", - "name": "_checkPending", - "nameLocation": "8768:13:17", - "nodeType": "VariableDeclaration", - "scope": 1959, - "src": "8763:18:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1940, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8763:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "8736:46:17" - }, - "returnParameters": { - "id": 1943, - "nodeType": "ParameterList", - "parameters": [], - "src": "8805:0:17" - }, - "scope": 2128, - "src": "8702:257:17", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 2014, - "nodeType": "Block", - "src": "9380:611:17", - "statements": [ - { - "assignments": [ - 1969, - 1971 - ], - "declarations": [ - { - "constant": false, - "id": 1969, - "mutability": "mutable", - "name": "thawingPeriodMin", - "nameLocation": "9398:16:17", - "nodeType": "VariableDeclaration", - "scope": 2014, - "src": "9391:23:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1968, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "9391:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1971, - "mutability": "mutable", - "name": "thawingPeriodMax", - "nameLocation": "9423:16:17", - "nodeType": "VariableDeclaration", - "scope": 2014, - "src": "9416:23:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1970, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "9416:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "id": 1974, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1972, - "name": "_getThawingPeriodRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2050, - "src": "9443:22:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint64_$_t_uint64_$", - "typeString": "function () view returns (uint64,uint64)" - } - }, - "id": 1973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9443:24:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$", - "typeString": "tuple(uint64,uint64)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9390:77:17" - }, - { - "assignments": [ - 1976 - ], - "declarations": [ - { - "constant": false, - "id": 1976, - "mutability": "mutable", - "name": "thawingPeriodToCheck", - "nameLocation": "9484:20:17", - "nodeType": "VariableDeclaration", - "scope": 2014, - "src": "9477:27:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1975, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "9477:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "id": 1983, - "initialValue": { - "condition": { - "id": 1977, - "name": "_checkPending", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1965, - "src": "9507:13:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "expression": { - "id": 1980, - "name": "_provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "9557:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 1981, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9568:13:17", - "memberName": "thawingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 3709, - "src": "9557:24:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 1982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "9507:74:17", - "trueExpression": { - "expression": { - "id": 1978, - "name": "_provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "9523:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 1979, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9534:20:17", - "memberName": "thawingPeriodPending", - "nodeType": "MemberAccess", - "referencedDeclaration": 3715, - "src": "9523:31:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9477:104:17" - }, - { - "expression": { - "arguments": [ - { - "id": 1985, - "name": "thawingPeriodToCheck", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "9610:20:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 1986, - "name": "thawingPeriodMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1969, - "src": "9632:16:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 1987, - "name": "thawingPeriodMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "9650:16:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "hexValue": "74686177696e67506572696f64", - "id": 1988, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9668:15:17", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_305ab1a02b7b2a803db444b8e35c7e19e6475b5dd6b215ff165ee071bbd360ee", - "typeString": "literal_string \"thawingPeriod\"" - }, - "value": "thawingPeriod" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_stringliteral_305ab1a02b7b2a803db444b8e35c7e19e6475b5dd6b215ff165ee071bbd360ee", - "typeString": "literal_string \"thawingPeriod\"" - } - ], - "id": 1984, - "name": "_checkValueInRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "9591:18:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,uint256,bytes memory) pure" - } - }, - "id": 1989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9591:93:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1990, - "nodeType": "ExpressionStatement", - "src": "9591:93:17" - }, - { - "assignments": [ - 1992, - 1994 - ], - "declarations": [ - { - "constant": false, - "id": 1992, - "mutability": "mutable", - "name": "verifierCutMin", - "nameLocation": "9703:14:17", - "nodeType": "VariableDeclaration", - "scope": 2014, - "src": "9696:21:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1991, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9696:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1994, - "mutability": "mutable", - "name": "verifierCutMax", - "nameLocation": "9726:14:17", - "nodeType": "VariableDeclaration", - "scope": 2014, - "src": "9719:21:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1993, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9719:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 1997, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1995, - "name": "_getVerifierCutRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2063, - "src": "9744:20:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint32_$_t_uint32_$", - "typeString": "function () view returns (uint32,uint32)" - } - }, - "id": 1996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9744:22:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9695:71:17" - }, - { - "assignments": [ - 1999 - ], - "declarations": [ - { - "constant": false, - "id": 1999, - "mutability": "mutable", - "name": "maxVerifierCutToCheck", - "nameLocation": "9783:21:17", - "nodeType": "VariableDeclaration", - "scope": 2014, - "src": "9776:28:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1998, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9776:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 2006, - "initialValue": { - "condition": { - "id": 2000, - "name": "_checkPending", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1965, - "src": "9807:13:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "expression": { - "id": 2003, - "name": "_provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "9858:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 2004, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9869:14:17", - "memberName": "maxVerifierCut", - "nodeType": "MemberAccess", - "referencedDeclaration": 3707, - "src": "9858:25:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "9807:76:17", - "trueExpression": { - "expression": { - "id": 2001, - "name": "_provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "9823:10:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 2002, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9834:21:17", - "memberName": "maxVerifierCutPending", - "nodeType": "MemberAccess", - "referencedDeclaration": 3713, - "src": "9823:32:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9776:107:17" - }, - { - "expression": { - "arguments": [ - { - "id": 2008, - "name": "maxVerifierCutToCheck", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1999, - "src": "9912:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 2009, - "name": "verifierCutMin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1992, - "src": "9935:14:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 2010, - "name": "verifierCutMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1994, - "src": "9951:14:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "hexValue": "6d61785665726966696572437574", - "id": 2011, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9967:16:17", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_68fc3345e83d56ef118660e3367c327aecf533ff1f8bdee8e3dd2ce1b31b5e0c", - "typeString": "literal_string \"maxVerifierCut\"" - }, - "value": "maxVerifierCut" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_stringliteral_68fc3345e83d56ef118660e3367c327aecf533ff1f8bdee8e3dd2ce1b31b5e0c", - "typeString": "literal_string \"maxVerifierCut\"" - } - ], - "id": 2007, - "name": "_checkValueInRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "9893:18:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,uint256,bytes memory) pure" - } - }, - "id": 2012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9893:91:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2013, - "nodeType": "ExpressionStatement", - "src": "9893:91:17" - } - ] - }, - "documentation": { - "id": 1960, - "nodeType": "StructuredDocumentation", - "src": "8965:266:17", - "text": " @notice Checks if the provision parameters of a service provider are within the valid range.\n @param _provision The provision to check.\n @param _checkPending If true, checks the pending provision parameters instead of the current ones." - }, - "id": 2015, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkProvisionParameters", - "nameLocation": "9245:25:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1966, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1963, - "mutability": "mutable", - "name": "_provision", - "nameLocation": "9313:10:17", - "nodeType": "VariableDeclaration", - "scope": 2015, - "src": "9280:43:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 1962, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 1961, - "name": "IHorizonStaking.Provision", - "nameLocations": [ - "9280:15:17", - "9296:9:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "9280:25:17" - }, - "referencedDeclaration": 3718, - "src": "9280:25:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 1965, - "mutability": "mutable", - "name": "_checkPending", - "nameLocation": "9338:13:17", - "nodeType": "VariableDeclaration", - "scope": 2015, - "src": "9333:18:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1964, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9333:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "9270:87:17" - }, - "returnParameters": { - "id": 1967, - "nodeType": "ParameterList", - "parameters": [], - "src": "9380:0:17" - }, - "scope": 2128, - "src": "9236:755:17", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 2023, - "nodeType": "Block", - "src": "10175:39:17", - "statements": [ - { - "expression": { - "id": 2021, - "name": "delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2152, - "src": "10192:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 2020, - "id": 2022, - "nodeType": "Return", - "src": "10185:22:17" - } - ] - }, - "documentation": { - "id": 2016, - "nodeType": "StructuredDocumentation", - "src": "10019:89:17", - "text": " @notice Gets the delegation ratio.\n @return The delegation ratio" - }, - "id": 2024, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getDelegationRatio", - "nameLocation": "10122:19:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2017, - "nodeType": "ParameterList", - "parameters": [], - "src": "10141:2:17" - }, - "returnParameters": { - "id": 2020, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2019, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2024, - "src": "10167:6:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2018, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "10167:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "10166:8:17" - }, - "scope": 2128, - "src": "10113:101:17", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2036, - "nodeType": "Block", - "src": "10527:72:17", - "statements": [ - { - "expression": { - "components": [ - { - "id": 2032, - "name": "minimumProvisionTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "10545:22:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 2033, - "name": "maximumProvisionTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2137, - "src": "10569:22:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2034, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10544:48:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "functionReturnParameters": 2031, - "id": 2035, - "nodeType": "Return", - "src": "10537:55:17" - } - ] - }, - "documentation": { - "id": 2025, - "nodeType": "StructuredDocumentation", - "src": "10220:209:17", - "text": " @notice Gets the range for the provision tokens.\n @return min The minimum allowed value for the provision tokens.\n @return max The maximum allowed value for the provision tokens." - }, - "id": 2037, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getProvisionTokensRange", - "nameLocation": "10443:24:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2026, - "nodeType": "ParameterList", - "parameters": [], - "src": "10467:2:17" - }, - "returnParameters": { - "id": 2031, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2028, - "mutability": "mutable", - "name": "min", - "nameLocation": "10509:3:17", - "nodeType": "VariableDeclaration", - "scope": 2037, - "src": "10501:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2027, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10501:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2030, - "mutability": "mutable", - "name": "max", - "nameLocation": "10522:3:17", - "nodeType": "VariableDeclaration", - "scope": 2037, - "src": "10514:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2029, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10514:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10500:26:17" - }, - "scope": 2128, - "src": "10434:165:17", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 2049, - "nodeType": "Block", - "src": "10903:68:17", - "statements": [ - { - "expression": { - "components": [ - { - "id": 2045, - "name": "minimumThawingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2140, - "src": "10921:20:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 2046, - "name": "maximumThawingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "10943:20:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "id": 2047, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10920:44:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$", - "typeString": "tuple(uint64,uint64)" - } - }, - "functionReturnParameters": 2044, - "id": 2048, - "nodeType": "Return", - "src": "10913:51:17" - } - ] - }, - "documentation": { - "id": 2038, - "nodeType": "StructuredDocumentation", - "src": "10605:204:17", - "text": " @notice Gets the range for the thawing period.\n @return min The minimum allowed value for the thawing period.\n @return max The maximum allowed value for the thawing period." - }, - "id": 2050, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getThawingPeriodRange", - "nameLocation": "10823:22:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2039, - "nodeType": "ParameterList", - "parameters": [], - "src": "10845:2:17" - }, - "returnParameters": { - "id": 2044, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2041, - "mutability": "mutable", - "name": "min", - "nameLocation": "10886:3:17", - "nodeType": "VariableDeclaration", - "scope": 2050, - "src": "10879:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2040, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "10879:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2043, - "mutability": "mutable", - "name": "max", - "nameLocation": "10898:3:17", - "nodeType": "VariableDeclaration", - "scope": 2050, - "src": "10891:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2042, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "10891:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "10878:24:17" - }, - "scope": 2128, - "src": "10814:157:17", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 2062, - "nodeType": "Block", - "src": "11274:64:17", - "statements": [ - { - "expression": { - "components": [ - { - "id": 2058, - "name": "minimumVerifierCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2146, - "src": "11292:18:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 2059, - "name": "maximumVerifierCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2149, - "src": "11312:18:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 2060, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11291:40:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 2057, - "id": 2061, - "nodeType": "Return", - "src": "11284:47:17" - } - ] - }, - "documentation": { - "id": 2051, - "nodeType": "StructuredDocumentation", - "src": "10977:205:17", - "text": " @notice Gets the range for the verifier cut.\n @return min The minimum allowed value for the max verifier cut.\n @return max The maximum allowed value for the max verifier cut." - }, - "id": 2063, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getVerifierCutRange", - "nameLocation": "11196:20:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2052, - "nodeType": "ParameterList", - "parameters": [], - "src": "11216:2:17" - }, - "returnParameters": { - "id": 2057, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2054, - "mutability": "mutable", - "name": "min", - "nameLocation": "11257:3:17", - "nodeType": "VariableDeclaration", - "scope": 2063, - "src": "11250:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2053, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "11250:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2056, - "mutability": "mutable", - "name": "max", - "nameLocation": "11269:3:17", - "nodeType": "VariableDeclaration", - "scope": 2063, - "src": "11262:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2055, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "11262:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "11249:24:17" - }, - "scope": 2128, - "src": "11187:151:17", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 2099, - "nodeType": "Block", - "src": "11663:245:17", - "statements": [ - { - "assignments": [ - 2076 - ], - "declarations": [ - { - "constant": false, - "id": 2076, - "mutability": "mutable", - "name": "provision", - "nameLocation": "11706:9:17", - "nodeType": "VariableDeclaration", - "scope": 2099, - "src": "11673:42:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 2075, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2074, - "name": "IHorizonStaking.Provision", - "nameLocations": [ - "11673:15:17", - "11689:9:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "11673:25:17" - }, - "referencedDeclaration": 3718, - "src": "11673:25:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - } - ], - "id": 2086, - "initialValue": { - "arguments": [ - { - "id": 2080, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "11747:16:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 2083, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "11773:4:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ProvisionManager_$2128", - "typeString": "contract ProvisionManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ProvisionManager_$2128", - "typeString": "contract ProvisionManager" - } - ], - "id": 2082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11765:7:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 2081, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11765:7:17", - "typeDescriptions": {} - } - }, - "id": 2084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11765:13:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2077, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "11718:13:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11718:15:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 2079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11734:12:17", - "memberName": "getProvision", - "nodeType": "MemberAccess", - "referencedDeclaration": 2784, - "src": "11718:28:17", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_Provision_$3718_memory_ptr_$", - "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.Provision memory)" - } - }, - "id": 2085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11718:61:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11673:106:17" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 2088, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "11797:9:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 2089, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11807:9:17", - "memberName": "createdAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 3711, - "src": "11797:19:17", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 2090, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11820:1:17", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11797:24:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 2093, - "name": "_serviceProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "11857:16:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2092, - "name": "ProvisionManagerProvisionNotFound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1677, - "src": "11823:33:17", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 2094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11823:51:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 2087, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11789:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 2095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11789:86:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2096, - "nodeType": "ExpressionStatement", - "src": "11789:86:17" - }, - { - "expression": { - "id": 2097, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "11892:9:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "functionReturnParameters": 2071, - "id": 2098, - "nodeType": "Return", - "src": "11885:16:17" - } - ] - }, - "documentation": { - "id": 2064, - "nodeType": "StructuredDocumentation", - "src": "11344:208:17", - "text": " @notice Gets a provision from the {HorizonStaking} contract.\n @dev Requirements:\n - The provision must exist.\n @param _serviceProvider The address of the service provider." - }, - "id": 2100, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getProvision", - "nameLocation": "11566:13:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2066, - "mutability": "mutable", - "name": "_serviceProvider", - "nameLocation": "11588:16:17", - "nodeType": "VariableDeclaration", - "scope": 2100, - "src": "11580:24:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2065, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11580:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "11579:26:17" - }, - "returnParameters": { - "id": 2071, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2070, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2100, - "src": "11629:32:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 2069, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2068, - "name": "IHorizonStaking.Provision", - "nameLocations": [ - "11629:15:17", - "11645:9:17" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "11629:25:17" - }, - "referencedDeclaration": 3718, - "src": "11629:25:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - } - ], - "src": "11628:34:17" - }, - "scope": 2128, - "src": "11557:351:17", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2126, - "nodeType": "Block", - "src": "12324:120:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 2115, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2105, - "src": "12359:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 2116, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2107, - "src": "12365:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 2113, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "12342:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12349:9:17", - "memberName": "isInRange", - "nodeType": "MemberAccess", - "referencedDeclaration": 4289, - "src": "12342:16:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (bool)" - } - }, - "id": 2117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12342:28:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 2119, - "name": "_revertMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "12401:14:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 2120, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "12417:6:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 2121, - "name": "_min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2105, - "src": "12425:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 2122, - "name": "_max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2107, - "src": "12431:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2118, - "name": "ProvisionManagerInvalidValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1658, - "src": "12372:28:17", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (bytes memory,uint256,uint256,uint256) pure returns (error)" - } - }, - "id": 2123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12372:64:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 2112, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12334:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 2124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12334:103:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2125, - "nodeType": "ExpressionStatement", - "src": "12334:103:17" - } - ] - }, - "documentation": { - "id": 2101, - "nodeType": "StructuredDocumentation", - "src": "11914:291:17", - "text": " @notice Checks if a value is within a valid range.\n @param _value The value to check.\n @param _min The minimum allowed value.\n @param _max The maximum allowed value.\n @param _revertMessage The revert message to display if the value is out of range." - }, - "id": 2127, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkValueInRange", - "nameLocation": "12219:18:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2103, - "mutability": "mutable", - "name": "_value", - "nameLocation": "12246:6:17", - "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "12238:14:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2102, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12238:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2105, - "mutability": "mutable", - "name": "_min", - "nameLocation": "12262:4:17", - "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "12254:12:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2104, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12254:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2107, - "mutability": "mutable", - "name": "_max", - "nameLocation": "12276:4:17", - "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "12268:12:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2106, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12268:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2109, - "mutability": "mutable", - "name": "_revertMessage", - "nameLocation": "12295:14:17", - "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "12282:27:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2108, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "12282:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "12237:73:17" - }, - "returnParameters": { - "id": 2111, - "nodeType": "ParameterList", - "parameters": [], - "src": "12324:0:17" - }, - "scope": 2128, - "src": "12210:234:17", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "scope": 2129, - "src": "969:11477:17", - "usedErrors": [ - 1658, - 1665, - 1672, - 1677, - 4380, - 4865, - 4868 - ], - "usedEvents": [ - 1628, - 1633, - 1640, - 1647, - 4375, - 4873 - ] - } - ], - "src": "45:12402:17" - }, - "id": 17 - }, - "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol", - "exportedSymbols": { - "ProvisionManagerV1Storage": [ - 2158 - ] - }, - "id": 2159, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2130, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:18" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "ProvisionManagerV1Storage", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 2131, - "nodeType": "StructuredDocumentation", - "src": "70:76:18", - "text": " @title Storage layout for the {ProvisionManager} helper contract." - }, - "fullyImplemented": true, - "id": 2158, - "linearizedBaseContracts": [ - 2158 - ], - "name": "ProvisionManagerV1Storage", - "nameLocation": "165:25:18", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "documentation": { - "id": 2132, - "nodeType": "StructuredDocumentation", - "src": "197:93:18", - "text": "@notice The minimum amount of tokens required to register a provision in the data service" - }, - "functionSelector": "36fdd28a", - "id": 2134, - "mutability": "mutable", - "name": "minimumProvisionTokens", - "nameLocation": "310:22:18", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "295:37:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2133, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "295:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 2135, - "nodeType": "StructuredDocumentation", - "src": "339:92:18", - "text": "@notice The maximum amount of tokens allowed to register a provision in the data service" - }, - "functionSelector": "73371823", - "id": 2137, - "mutability": "mutable", - "name": "maximumProvisionTokens", - "nameLocation": "451:22:18", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "436:37:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2136, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "436:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 2138, - "nodeType": "StructuredDocumentation", - "src": "480:91:18", - "text": "@notice The minimum thawing period required to register a provision in the data service" - }, - "functionSelector": "8d2f2948", - "id": 2140, - "mutability": "mutable", - "name": "minimumThawingPeriod", - "nameLocation": "590:20:18", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "576:34:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2139, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "576:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 2141, - "nodeType": "StructuredDocumentation", - "src": "617:90:18", - "text": "@notice The maximum thawing period allowed to register a provision in the data service" - }, - "functionSelector": "9aafa5d1", - "id": 2143, - "mutability": "mutable", - "name": "maximumThawingPeriod", - "nameLocation": "726:20:18", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "712:34:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2142, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "712:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 2144, - "nodeType": "StructuredDocumentation", - "src": "753:98:18", - "text": "@notice The minimum verifier cut required to register a provision in the data service (in PPM)" - }, - "functionSelector": "88812583", - "id": 2146, - "mutability": "mutable", - "name": "minimumVerifierCut", - "nameLocation": "870:18:18", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "856:32:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2145, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "856:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 2147, - "nodeType": "StructuredDocumentation", - "src": "895:97:18", - "text": "@notice The maximum verifier cut allowed to register a provision in the data service (in PPM)" - }, - "functionSelector": "9249c5c1", - "id": 2149, - "mutability": "mutable", - "name": "maximumVerifierCut", - "nameLocation": "1011:18:18", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "997:32:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2148, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "997:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 2150, - "nodeType": "StructuredDocumentation", - "src": "1036:146:18", - "text": "@notice How much delegation the service provider can effectively use\n @dev Max calculated as service provider's stake * delegationRatio" - }, - "functionSelector": "bfdfa7af", - "id": 2152, - "mutability": "mutable", - "name": "delegationRatio", - "nameLocation": "1201:15:18", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "1187:29:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2151, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1187:6:18", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 2153, - "nodeType": "StructuredDocumentation", - "src": "1223:57:18", - "text": "@dev Gap to allow adding variables in future upgrades" - }, - "id": 2157, - "mutability": "mutable", - "name": "__gap", - "nameLocation": "1305:5:18", - "nodeType": "VariableDeclaration", - "scope": 2158, - "src": "1285:25:18", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage", - "typeString": "uint256[50]" - }, - "typeName": { - "baseType": { - "id": 2154, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1285:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2156, - "length": { - "hexValue": "3530", - "id": 2155, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1293:2:18", - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "50" - }, - "nodeType": "ArrayTypeName", - "src": "1285:11:18", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", - "typeString": "uint256[50]" - } - }, - "visibility": "private" - } - ], - "scope": 2159, - "src": "147:1166:18", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "45:1269:18" - }, - "id": 18 - }, - "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "exportedSymbols": { - "IGraphPayments": [ - 2211 - ] - }, - "id": 2212, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2160, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:19" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IGraphPayments", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2161, - "nodeType": "StructuredDocumentation", - "src": "70:264:19", - "text": " @title Interface for the {GraphPayments} contract\n @notice This contract is part of the Graph Horizon payments protocol. It's designed\n to pull funds (GRT) from the {PaymentsEscrow} and distribute them according to a\n set of pre established rules." - }, - "fullyImplemented": false, - "id": 2211, - "linearizedBaseContracts": [ - 2211 - ], - "name": "IGraphPayments", - "nameLocation": "345:14:19", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "IGraphPayments.PaymentTypes", - "documentation": { - "id": 2162, - "nodeType": "StructuredDocumentation", - "src": "366:100:19", - "text": " @notice Types of payments that are supported by the payments protocol\n @dev" - }, - "id": 2166, - "members": [ - { - "id": 2163, - "name": "QueryFee", - "nameLocation": "499:8:19", - "nodeType": "EnumValue", - "src": "499:8:19" - }, - { - "id": 2164, - "name": "IndexingFee", - "nameLocation": "517:11:19", - "nodeType": "EnumValue", - "src": "517:11:19" - }, - { - "id": 2165, - "name": "IndexingRewards", - "nameLocation": "538:15:19", - "nodeType": "EnumValue", - "src": "538:15:19" - } - ], - "name": "PaymentTypes", - "nameLocation": "476:12:19", - "nodeType": "EnumDefinition", - "src": "471:88:19" - }, - { - "anonymous": false, - "documentation": { - "id": 2167, - "nodeType": "StructuredDocumentation", - "src": "565:486:19", - "text": " @notice Emitted when a payment is collected\n @param payer The address of the payer\n @param receiver The address of the receiver\n @param dataService The address of the data service\n @param tokensReceiver Amount of tokens for the receiver\n @param tokensDelegationPool Amount of tokens for delegators\n @param tokensDataService Amount of tokens for the data service\n @param tokensProtocol Amount of tokens charged as protocol tax" - }, - "eventSelector": "b6dba03dcdcd7b7167b22bd6f1462a936eb55f4218b1d4dddff20bdec5703ca3", - "id": 2183, - "name": "PaymentCollected", - "nameLocation": "1062:16:19", - "nodeType": "EventDefinition", - "parameters": { - "id": 2182, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2169, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "1104:5:19", - "nodeType": "VariableDeclaration", - "scope": 2183, - "src": "1088:21:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2168, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1088:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2171, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "1135:8:19", - "nodeType": "VariableDeclaration", - "scope": 2183, - "src": "1119:24:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1119:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2173, - "indexed": true, - "mutability": "mutable", - "name": "dataService", - "nameLocation": "1169:11:19", - "nodeType": "VariableDeclaration", - "scope": 2183, - "src": "1153:27:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2172, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1153:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2175, - "indexed": false, - "mutability": "mutable", - "name": "tokensReceiver", - "nameLocation": "1198:14:19", - "nodeType": "VariableDeclaration", - "scope": 2183, - "src": "1190:22:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1190:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2177, - "indexed": false, - "mutability": "mutable", - "name": "tokensDelegationPool", - "nameLocation": "1230:20:19", - "nodeType": "VariableDeclaration", - "scope": 2183, - "src": "1222:28:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2176, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1222:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2179, - "indexed": false, - "mutability": "mutable", - "name": "tokensDataService", - "nameLocation": "1268:17:19", - "nodeType": "VariableDeclaration", - "scope": 2183, - "src": "1260:25:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2178, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1260:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2181, - "indexed": false, - "mutability": "mutable", - "name": "tokensProtocol", - "nameLocation": "1303:14:19", - "nodeType": "VariableDeclaration", - "scope": 2183, - "src": "1295:22:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1295:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1078:245:19" - }, - "src": "1056:268:19" - }, - { - "documentation": { - "id": 2184, - "nodeType": "StructuredDocumentation", - "src": "1330:208:19", - "text": " @notice Thrown when there are insufficient tokens to pay the required amount\n @param tokens The amount of tokens available\n @param minTokens The amount of tokens being collected" - }, - "errorSelector": "8bd93bad", - "id": 2190, - "name": "GraphPaymentsInsufficientTokens", - "nameLocation": "1549:31:19", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2186, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1589:6:19", - "nodeType": "VariableDeclaration", - "scope": 2190, - "src": "1581:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2185, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1581:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2188, - "mutability": "mutable", - "name": "minTokens", - "nameLocation": "1605:9:19", - "nodeType": "VariableDeclaration", - "scope": 2190, - "src": "1597:17:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2187, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1597:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1580:35:19" - }, - "src": "1543:73:19" - }, - { - "documentation": { - "id": 2191, - "nodeType": "StructuredDocumentation", - "src": "1622:132:19", - "text": " @notice Thrown when the protocol payment cut is invalid\n @param protocolPaymentCut The protocol payment cut" - }, - "errorSelector": "d3097bcb", - "id": 2195, - "name": "GraphPaymentsInvalidProtocolPaymentCut", - "nameLocation": "1765:38:19", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2194, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2193, - "mutability": "mutable", - "name": "protocolPaymentCut", - "nameLocation": "1812:18:19", - "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "1804:26:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2192, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1804:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1803:28:19" - }, - "src": "1759:73:19" - }, - { - "documentation": { - "id": 2196, - "nodeType": "StructuredDocumentation", - "src": "1838:478:19", - "text": " @notice Collects funds from a payer.\n It will pay cuts to all relevant parties and forward the rest to the receiver.\n @param paymentType The type of payment as defined in {IGraphPayments}\n @param receiver The address of the receiver\n @param tokens The amount of tokens being collected\n @param dataService The address of the data service\n @param tokensDataService The amount of tokens that should be sent to the data service" - }, - "functionSelector": "6c69783a", - "id": 2210, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "collect", - "nameLocation": "2330:7:19", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2199, - "mutability": "mutable", - "name": "paymentType", - "nameLocation": "2360:11:19", - "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "2347:24:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "typeName": { - "id": 2198, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2197, - "name": "PaymentTypes", - "nameLocations": [ - "2347:12:19" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2166, - "src": "2347:12:19" - }, - "referencedDeclaration": 2166, - "src": "2347:12:19", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2201, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "2389:8:19", - "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "2381:16:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2200, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2381:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2203, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2415:6:19", - "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "2407:14:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2202, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2407:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2205, - "mutability": "mutable", - "name": "dataService", - "nameLocation": "2439:11:19", - "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "2431:19:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2204, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2431:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2207, - "mutability": "mutable", - "name": "tokensDataService", - "nameLocation": "2468:17:19", - "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "2460:25:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2460:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2337:154:19" - }, - "returnParameters": { - "id": 2209, - "nodeType": "ParameterList", - "parameters": [], - "src": "2500:0:19" - }, - "scope": 2211, - "src": "2321:180:19", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 2212, - "src": "335:2168:19", - "usedErrors": [ - 2190, - 2195 - ], - "usedEvents": [ - 2183 - ] - } - ], - "src": "45:2459:19" - }, - "id": 19 - }, - "@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol", - "exportedSymbols": { - "IGraphProxyAdmin": [ - 2215 - ] - }, - "id": 2216, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2213, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:20" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IGraphProxyAdmin", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2214, - "nodeType": "StructuredDocumentation", - "src": "71:142:20", - "text": " @title IGraphProxyAdmin\n @dev Empty interface to allow the GraphProxyAdmin contract to be used\n in the GraphDirectory contract." - }, - "fullyImplemented": true, - "id": 2215, - "linearizedBaseContracts": [ - 2215 - ], - "name": "IGraphProxyAdmin", - "nameLocation": "224:16:20", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2216, - "src": "214:29:20", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "46:198:20" - }, - "id": 20 - }, - "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", - "exportedSymbols": { - "IHorizonStaking": [ - 2235 - ], - "IHorizonStakingBase": [ - 2871 - ], - "IHorizonStakingExtension": [ - 3022 - ], - "IHorizonStakingMain": [ - 3695 - ], - "IHorizonStakingTypes": [ - 3796 - ] - }, - "id": 2236, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2217, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:21" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", - "file": "./internal/IHorizonStakingTypes.sol", - "id": 2219, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2236, - "sourceUnit": 3797, - "src": "71:75:21", - "symbolAliases": [ - { - "foreign": { - "id": 2218, - "name": "IHorizonStakingTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "80:20:21", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol", - "file": "./internal/IHorizonStakingMain.sol", - "id": 2221, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2236, - "sourceUnit": 3696, - "src": "147:73:21", - "symbolAliases": [ - { - "foreign": { - "id": 2220, - "name": "IHorizonStakingMain", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3695, - "src": "156:19:21", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol", - "file": "./internal/IHorizonStakingBase.sol", - "id": 2223, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2236, - "sourceUnit": 2872, - "src": "221:73:21", - "symbolAliases": [ - { - "foreign": { - "id": 2222, - "name": "IHorizonStakingBase", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2871, - "src": "230:19:21", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol", - "file": "./internal/IHorizonStakingExtension.sol", - "id": 2225, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2236, - "sourceUnit": 3023, - "src": "295:83:21", - "symbolAliases": [ - { - "foreign": { - "id": 2224, - "name": "IHorizonStakingExtension", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3022, - "src": "304:24:21", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 2227, - "name": "IHorizonStakingTypes", - "nameLocations": [ - "748:20:21" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3796, - "src": "748:20:21" - }, - "id": 2228, - "nodeType": "InheritanceSpecifier", - "src": "748:20:21" - }, - { - "baseName": { - "id": 2229, - "name": "IHorizonStakingBase", - "nameLocations": [ - "770:19:21" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2871, - "src": "770:19:21" - }, - "id": 2230, - "nodeType": "InheritanceSpecifier", - "src": "770:19:21" - }, - { - "baseName": { - "id": 2231, - "name": "IHorizonStakingMain", - "nameLocations": [ - "791:19:21" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3695, - "src": "791:19:21" - }, - "id": 2232, - "nodeType": "InheritanceSpecifier", - "src": "791:19:21" - }, - { - "baseName": { - "id": 2233, - "name": "IHorizonStakingExtension", - "nameLocations": [ - "812:24:21" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3022, - "src": "812:24:21" - }, - "id": 2234, - "nodeType": "InheritanceSpecifier", - "src": "812:24:21" - } - ], - "canonicalName": "IHorizonStaking", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2226, - "nodeType": "StructuredDocumentation", - "src": "380:338:21", - "text": " @title Complete interface for the Horizon Staking contract\n @notice This interface exposes all functions implemented by the {HorizonStaking} contract and its extension\n {HorizonStakingExtension} as well as the custom data types used by the contract.\n @dev Use this interface to interact with the Horizon Staking contract." - }, - "fullyImplemented": false, - "id": 2235, - "linearizedBaseContracts": [ - 2235, - 3022, - 314, - 3695, - 2871, - 3796 - ], - "name": "IHorizonStaking", - "nameLocation": "729:15:21", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2236, - "src": "719:120:21", - "usedErrors": [ - 3272, - 3279, - 3286, - 3293, - 3302, - 3307, - 3314, - 3317, - 3324, - 3331, - 3338, - 3341, - 3348, - 3355, - 3362, - 3365, - 3368, - 3371, - 3373, - 3375, - 3380, - 3385, - 3388, - 3393 - ], - "usedEvents": [ - 2711, - 2922, - 2947, - 3036, - 3043, - 3056, - 3065, - 3074, - 3083, - 3094, - 3105, - 3116, - 3125, - 3134, - 3143, - 3154, - 3165, - 3176, - 3187, - 3196, - 3208, - 3223, - 3236, - 3249, - 3254, - 3261, - 3264, - 3269 - ] - } - ], - "src": "46:794:21" - }, - "id": 21 - }, - "@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol", - "exportedSymbols": { - "IGraphPayments": [ - 2211 - ], - "IPaymentsCollector": [ - 2268 - ] - }, - "id": 2269, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2237, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:22" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "file": "./IGraphPayments.sol", - "id": 2239, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2269, - "sourceUnit": 2212, - "src": "71:54:22", - "symbolAliases": [ - { - "foreign": { - "id": 2238, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "80:14:22", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IPaymentsCollector", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2240, - "nodeType": "StructuredDocumentation", - "src": "127:491:22", - "text": " @title Interface for a payments collector contract as defined by Graph Horizon payments protocol\n @notice Contracts implementing this interface can be used with the payments protocol. First, a payer must\n approve the collector to collect payments on their behalf. Only then can payment collection be initiated\n using the collector contract.\n @dev It's important to note that it's the collector contract's responsibility to validate the payment\n request is legitimate." - }, - "fullyImplemented": false, - "id": 2268, - "linearizedBaseContracts": [ - 2268 - ], - "name": "IPaymentsCollector", - "nameLocation": "629:18:22", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 2241, - "nodeType": "StructuredDocumentation", - "src": "654:457:22", - "text": " @notice Emitted when a payment is collected\n @param paymentType The payment type collected as defined by {IGraphPayments}\n @param payer The address of the payer\n @param receiver The address of the receiver\n @param tokensReceiver The amount of tokens received by the receiver\n @param dataService The address of the data service\n @param tokensDataService The amount of tokens received by the data service" - }, - "eventSelector": "fadd34108e3c00b000a046b272ee080bb1755b91078c0ef5200c0b7da6132bd1", - "id": 2256, - "name": "PaymentCollected", - "nameLocation": "1122:16:22", - "nodeType": "EventDefinition", - "parameters": { - "id": 2255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2244, - "indexed": true, - "mutability": "mutable", - "name": "paymentType", - "nameLocation": "1184:11:22", - "nodeType": "VariableDeclaration", - "scope": 2256, - "src": "1148:47:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "typeName": { - "id": 2243, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2242, - "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "1148:14:22", - "1163:12:22" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2166, - "src": "1148:27:22" - }, - "referencedDeclaration": 2166, - "src": "1148:27:22", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2246, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "1221:5:22", - "nodeType": "VariableDeclaration", - "scope": 2256, - "src": "1205:21:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1205:7:22", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2248, - "indexed": false, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "1244:8:22", - "nodeType": "VariableDeclaration", - "scope": 2256, - "src": "1236:16:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2247, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1236:7:22", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2250, - "indexed": false, - "mutability": "mutable", - "name": "tokensReceiver", - "nameLocation": "1270:14:22", - "nodeType": "VariableDeclaration", - "scope": 2256, - "src": "1262:22:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1262:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2252, - "indexed": true, - "mutability": "mutable", - "name": "dataService", - "nameLocation": "1310:11:22", - "nodeType": "VariableDeclaration", - "scope": 2256, - "src": "1294:27:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2251, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1294:7:22", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2254, - "indexed": false, - "mutability": "mutable", - "name": "tokensDataService", - "nameLocation": "1339:17:22", - "nodeType": "VariableDeclaration", - "scope": 2256, - "src": "1331:25:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1331:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1138:224:22" - }, - "src": "1116:247:22" - }, - { - "documentation": { - "id": 2257, - "nodeType": "StructuredDocumentation", - "src": "1369:727:22", - "text": " @notice Initiate a payment collection through the payments protocol\n @dev This function should require the caller to present some form of evidence of the payer's debt to\n the receiver. The collector should validate this evidence and, if valid, collect the payment.\n Requirements:\n - The caller must be the data service the RAV was issued to\n - The signer of the RAV must be authorized to sign for the payer\n Emits a {PaymentCollected} event\n @param paymentType The payment type to collect, as defined by {IGraphPayments}\n @param data Additional data required for the payment collection. Will vary depending on the collector\n implementation." - }, - "functionSelector": "7f07d283", - "id": 2267, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "collect", - "nameLocation": "2110:7:22", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2260, - "mutability": "mutable", - "name": "paymentType", - "nameLocation": "2146:11:22", - "nodeType": "VariableDeclaration", - "scope": 2267, - "src": "2118:39:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "typeName": { - "id": 2259, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2258, - "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "2118:14:22", - "2133:12:22" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2166, - "src": "2118:27:22" - }, - "referencedDeclaration": 2166, - "src": "2118:27:22", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2262, - "mutability": "mutable", - "name": "data", - "nameLocation": "2172:4:22", - "nodeType": "VariableDeclaration", - "scope": 2267, - "src": "2159:17:22", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2261, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2159:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2117:60:22" - }, - "returnParameters": { - "id": 2266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2265, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2267, - "src": "2196:7:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2264, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2196:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2195:9:22" - }, - "scope": 2268, - "src": "2101:104:22", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 2269, - "src": "619:1588:22", - "usedErrors": [], - "usedEvents": [ - 2256 - ] - } - ], - "src": "46:2162:22" - }, - "id": 22 - }, - "@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol", - "exportedSymbols": { - "IGraphPayments": [ - 2211 - ], - "IPaymentsEscrow": [ - 2514 - ] - }, - "id": 2515, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2270, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:23" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "file": "./IGraphPayments.sol", - "id": 2272, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2515, - "sourceUnit": 2212, - "src": "70:54:23", - "symbolAliases": [ - { - "foreign": { - "id": 2271, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "79:14:23", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IPaymentsEscrow", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2273, - "nodeType": "StructuredDocumentation", - "src": "126:631:23", - "text": " @title Interface for the {PaymentsEscrow} contract\n @notice This contract is part of the Graph Horizon payments protocol. It holds the funds (GRT)\n for payments made through the payments protocol for services provided\n via a Graph Horizon data service.\n Payers deposit funds on the escrow, signalling their ability to pay for a service, and only\n being able to retrieve them after a thawing period. Receivers collect funds from the escrow,\n provided the payer has authorized them. The payer authorization is delegated to a payment\n collector contract which implements the {IPaymentsCollector} interface." - }, - "fullyImplemented": false, - "id": 2514, - "linearizedBaseContracts": [ - 2514 - ], - "name": "IPaymentsEscrow", - "nameLocation": "768:15:23", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "IPaymentsEscrow.EscrowAccount", - "documentation": { - "id": 2274, - "nodeType": "StructuredDocumentation", - "src": "790:63:23", - "text": "@notice Escrow account for a payer-collector-receiver tuple" - }, - "id": 2281, - "members": [ - { - "constant": false, - "id": 2276, - "mutability": "mutable", - "name": "balance", - "nameLocation": "967:7:23", - "nodeType": "VariableDeclaration", - "scope": 2281, - "src": "959:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2275, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "959:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2278, - "mutability": "mutable", - "name": "tokensThawing", - "nameLocation": "1043:13:23", - "nodeType": "VariableDeclaration", - "scope": 2281, - "src": "1035:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2277, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1035:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2280, - "mutability": "mutable", - "name": "thawEndTimestamp", - "nameLocation": "1146:16:23", - "nodeType": "VariableDeclaration", - "scope": 2281, - "src": "1138:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1138:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "EscrowAccount", - "nameLocation": "865:13:23", - "nodeType": "StructDefinition", - "scope": 2514, - "src": "858:311:23", - "visibility": "public" - }, - { - "canonicalName": "IPaymentsEscrow.Collector", - "documentation": { - "id": 2282, - "nodeType": "StructuredDocumentation", - "src": "1175:113:23", - "text": "@notice Details for a payer-collector pair\n @dev Collectors can be removed only after a thawing period" - }, - "id": 2287, - "members": [ - { - "constant": false, - "id": 2284, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "1392:9:23", - "nodeType": "VariableDeclaration", - "scope": 2287, - "src": "1384:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2283, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1384:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2286, - "mutability": "mutable", - "name": "thawEndTimestamp", - "nameLocation": "1505:16:23", - "nodeType": "VariableDeclaration", - "scope": 2287, - "src": "1497:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2285, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1497:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Collector", - "nameLocation": "1300:9:23", - "nodeType": "StructDefinition", - "scope": 2514, - "src": "1293:235:23", - "visibility": "public" - }, - { - "anonymous": false, - "documentation": { - "id": 2288, - "nodeType": "StructuredDocumentation", - "src": "1534:341:23", - "text": " @notice Emitted when a payer authorizes a collector to collect funds\n @param payer The address of the payer\n @param collector The address of the collector\n @param addedAllowance The amount of tokens added to the collector's allowance\n @param newTotalAllowance The new total allowance after addition" - }, - "eventSelector": "61715ac91d89f310ff71b2ccccdce0ebbd98d1ae31e8482559060139ac54a69d", - "id": 2298, - "name": "AuthorizedCollector", - "nameLocation": "1886:19:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 2297, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2290, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "1931:5:23", - "nodeType": "VariableDeclaration", - "scope": 2298, - "src": "1915:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2289, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1915:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2292, - "indexed": true, - "mutability": "mutable", - "name": "collector", - "nameLocation": "1962:9:23", - "nodeType": "VariableDeclaration", - "scope": 2298, - "src": "1946:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1946:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2294, - "indexed": false, - "mutability": "mutable", - "name": "addedAllowance", - "nameLocation": "1989:14:23", - "nodeType": "VariableDeclaration", - "scope": 2298, - "src": "1981:22:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2293, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1981:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2296, - "indexed": false, - "mutability": "mutable", - "name": "newTotalAllowance", - "nameLocation": "2021:17:23", - "nodeType": "VariableDeclaration", - "scope": 2298, - "src": "2013:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2295, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2013:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1905:139:23" - }, - "src": "1880:165:23" - }, - { - "anonymous": false, - "documentation": { - "id": 2299, - "nodeType": "StructuredDocumentation", - "src": "2051:163:23", - "text": " @notice Emitted when a payer thaws a collector\n @param payer The address of the payer\n @param collector The address of the collector" - }, - "eventSelector": "47c16ea40fc834cf4be3dc9ec160a1ff77ba18b1231e9e6886e3231c708326ff", - "id": 2305, - "name": "ThawCollector", - "nameLocation": "2225:13:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 2304, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2301, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "2255:5:23", - "nodeType": "VariableDeclaration", - "scope": 2305, - "src": "2239:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2300, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2239:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2303, - "indexed": true, - "mutability": "mutable", - "name": "collector", - "nameLocation": "2278:9:23", - "nodeType": "VariableDeclaration", - "scope": 2305, - "src": "2262:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2302, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2262:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2238:50:23" - }, - "src": "2219:70:23" - }, - { - "anonymous": false, - "documentation": { - "id": 2306, - "nodeType": "StructuredDocumentation", - "src": "2295:180:23", - "text": " @notice Emitted when a payer cancels the thawing of a collector\n @param payer The address of the payer\n @param collector The address of the collector" - }, - "eventSelector": "988de7a3afe0d801be198872279c1fd9771d8013712ee4f00652354c8a6ec27d", - "id": 2312, - "name": "CancelThawCollector", - "nameLocation": "2486:19:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 2311, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2308, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "2522:5:23", - "nodeType": "VariableDeclaration", - "scope": 2312, - "src": "2506:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2307, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2506:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2310, - "indexed": true, - "mutability": "mutable", - "name": "collector", - "nameLocation": "2545:9:23", - "nodeType": "VariableDeclaration", - "scope": 2312, - "src": "2529:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2529:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2505:50:23" - }, - "src": "2480:76:23" - }, - { - "anonymous": false, - "documentation": { - "id": 2313, - "nodeType": "StructuredDocumentation", - "src": "2562:180:23", - "text": " @notice Emitted when a payer revokes a collector authorization.\n @param payer The address of the payer\n @param collector The address of the collector" - }, - "eventSelector": "3d7c3b7414bb2ce0675b85ea842ee937d10fe3b291f1cb2dc3361510bd113d90", - "id": 2319, - "name": "RevokeCollector", - "nameLocation": "2753:15:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 2318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2315, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "2785:5:23", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2769:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2314, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2769:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2317, - "indexed": true, - "mutability": "mutable", - "name": "collector", - "nameLocation": "2808:9:23", - "nodeType": "VariableDeclaration", - "scope": 2319, - "src": "2792:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2316, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2792:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2768:50:23" - }, - "src": "2747:72:23" - }, - { - "anonymous": false, - "documentation": { - "id": 2320, - "nodeType": "StructuredDocumentation", - "src": "2825:316:23", - "text": " @notice Emitted when a payer deposits funds into the escrow for a payer-collector-receiver tuple\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens deposited" - }, - "eventSelector": "7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a96", - "id": 2330, - "name": "Deposit", - "nameLocation": "3152:7:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 2329, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2322, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "3176:5:23", - "nodeType": "VariableDeclaration", - "scope": 2330, - "src": "3160:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2321, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3160:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2324, - "indexed": true, - "mutability": "mutable", - "name": "collector", - "nameLocation": "3199:9:23", - "nodeType": "VariableDeclaration", - "scope": 2330, - "src": "3183:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2323, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3183:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2326, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "3226:8:23", - "nodeType": "VariableDeclaration", - "scope": 2330, - "src": "3210:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2325, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3210:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2328, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "3244:6:23", - "nodeType": "VariableDeclaration", - "scope": 2330, - "src": "3236:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2327, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3236:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3159:92:23" - }, - "src": "3146:106:23" - }, - { - "anonymous": false, - "documentation": { - "id": 2331, - "nodeType": "StructuredDocumentation", - "src": "3258:169:23", - "text": " @notice Emitted when a payer cancels an escrow thawing\n @param payer The address of the payer\n @param receiver The address of the receiver" - }, - "eventSelector": "b2486c13d5da6cdbddffe9f9ec53350f7f15033cec803877fd75ff89d734c948", - "id": 2337, - "name": "CancelThaw", - "nameLocation": "3438:10:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 2336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2333, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "3465:5:23", - "nodeType": "VariableDeclaration", - "scope": 2337, - "src": "3449:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3449:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2335, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "3488:8:23", - "nodeType": "VariableDeclaration", - "scope": 2337, - "src": "3472:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2334, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3472:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3448:49:23" - }, - "src": "3432:66:23" - }, - { - "anonymous": false, - "documentation": { - "id": 2338, - "nodeType": "StructuredDocumentation", - "src": "3504:394:23", - "text": " @notice Emitted when a payer thaws funds from the escrow for a payer-collector-receiver tuple\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens being thawed\n @param thawEndTimestamp The timestamp at which the thawing period ends" - }, - "eventSelector": "ba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc", - "id": 2350, - "name": "Thaw", - "nameLocation": "3909:4:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 2349, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2340, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "3939:5:23", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "3923:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2339, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3923:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2342, - "indexed": true, - "mutability": "mutable", - "name": "collector", - "nameLocation": "3970:9:23", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "3954:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2341, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3954:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2344, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "4005:8:23", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "3989:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3989:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2346, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "4031:6:23", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "4023:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2345, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4023:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2348, - "indexed": false, - "mutability": "mutable", - "name": "thawEndTimestamp", - "nameLocation": "4055:16:23", - "nodeType": "VariableDeclaration", - "scope": 2350, - "src": "4047:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2347, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4047:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3913:164:23" - }, - "src": "3903:175:23" - }, - { - "anonymous": false, - "documentation": { - "id": 2351, - "nodeType": "StructuredDocumentation", - "src": "4084:317:23", - "text": " @notice Emitted when a payer withdraws funds from the escrow for a payer-collector-receiver tuple\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens withdrawn" - }, - "eventSelector": "3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f7", - "id": 2361, - "name": "Withdraw", - "nameLocation": "4412:8:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 2360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2353, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "4437:5:23", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "4421:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4421:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2355, - "indexed": true, - "mutability": "mutable", - "name": "collector", - "nameLocation": "4460:9:23", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "4444:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4444:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2357, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "4487:8:23", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "4471:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2356, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4471:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2359, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "4505:6:23", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "4497:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2358, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4497:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4420:92:23" - }, - "src": "4406:107:23" - }, - { - "anonymous": false, - "documentation": { - "id": 2362, - "nodeType": "StructuredDocumentation", - "src": "4519:320:23", - "text": " @notice Emitted when a collector collects funds from the escrow for a payer-collector-receiver tuple\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens collected" - }, - "eventSelector": "edeef164a6af3d5877b558880222d022aafee6e9787cafd3e5055f7d33306dd6", - "id": 2372, - "name": "EscrowCollected", - "nameLocation": "4850:15:23", - "nodeType": "EventDefinition", - "parameters": { - "id": 2371, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2364, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "4882:5:23", - "nodeType": "VariableDeclaration", - "scope": 2372, - "src": "4866:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4866:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2366, - "indexed": true, - "mutability": "mutable", - "name": "collector", - "nameLocation": "4905:9:23", - "nodeType": "VariableDeclaration", - "scope": 2372, - "src": "4889:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2365, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4889:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2368, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "4932:8:23", - "nodeType": "VariableDeclaration", - "scope": 2372, - "src": "4916:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2367, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4916:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2370, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "4950:6:23", - "nodeType": "VariableDeclaration", - "scope": 2372, - "src": "4942:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2369, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4942:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4865:92:23" - }, - "src": "4844:114:23" - }, - { - "documentation": { - "id": 2373, - "nodeType": "StructuredDocumentation", - "src": "4985:97:23", - "text": " @notice Thrown when a protected function is called and the contract is paused." - }, - "errorSelector": "9e68cf0b", - "id": 2375, - "name": "PaymentsEscrowIsPaused", - "nameLocation": "5093:22:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2374, - "nodeType": "ParameterList", - "parameters": [], - "src": "5115:2:23" - }, - "src": "5087:31:23" - }, - { - "documentation": { - "id": 2376, - "nodeType": "StructuredDocumentation", - "src": "5124:196:23", - "text": " @notice Thrown when the available balance is insufficient to perform an operation\n @param balance The current balance\n @param minBalance The minimum required balance" - }, - "errorSelector": "3db4e691", - "id": 2382, - "name": "PaymentsEscrowInsufficientBalance", - "nameLocation": "5331:33:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2381, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2378, - "mutability": "mutable", - "name": "balance", - "nameLocation": "5373:7:23", - "nodeType": "VariableDeclaration", - "scope": 2382, - "src": "5365:15:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5365:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2380, - "mutability": "mutable", - "name": "minBalance", - "nameLocation": "5390:10:23", - "nodeType": "VariableDeclaration", - "scope": 2382, - "src": "5382:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2379, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5382:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5364:37:23" - }, - "src": "5325:77:23" - }, - { - "documentation": { - "id": 2383, - "nodeType": "StructuredDocumentation", - "src": "5408:92:23", - "text": " @notice Thrown when a thawing is expected to be in progress but it is not" - }, - "errorSelector": "8cbd172f", - "id": 2385, - "name": "PaymentsEscrowNotThawing", - "nameLocation": "5511:24:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2384, - "nodeType": "ParameterList", - "parameters": [], - "src": "5535:2:23" - }, - "src": "5505:33:23" - }, - { - "documentation": { - "id": 2386, - "nodeType": "StructuredDocumentation", - "src": "5544:200:23", - "text": " @notice Thrown when a thawing is still in progress\n @param currentTimestamp The current timestamp\n @param thawEndTimestamp The timestamp at which the thawing period ends" - }, - "errorSelector": "78a1b6f2", - "id": 2392, - "name": "PaymentsEscrowStillThawing", - "nameLocation": "5755:26:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2391, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2388, - "mutability": "mutable", - "name": "currentTimestamp", - "nameLocation": "5790:16:23", - "nodeType": "VariableDeclaration", - "scope": 2392, - "src": "5782:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2387, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5782:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2390, - "mutability": "mutable", - "name": "thawEndTimestamp", - "nameLocation": "5816:16:23", - "nodeType": "VariableDeclaration", - "scope": 2392, - "src": "5808:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2389, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5808:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5781:52:23" - }, - "src": "5749:85:23" - }, - { - "documentation": { - "id": 2393, - "nodeType": "StructuredDocumentation", - "src": "5840:200:23", - "text": " @notice Thrown when setting the thawing period to a value greater than the maximum\n @param thawingPeriod The thawing period\n @param maxWaitPeriod The maximum wait period" - }, - "errorSelector": "5c0f65a1", - "id": 2399, - "name": "PaymentsEscrowThawingPeriodTooLong", - "nameLocation": "6051:34:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2398, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2395, - "mutability": "mutable", - "name": "thawingPeriod", - "nameLocation": "6094:13:23", - "nodeType": "VariableDeclaration", - "scope": 2399, - "src": "6086:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2394, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6086:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2397, - "mutability": "mutable", - "name": "maxWaitPeriod", - "nameLocation": "6117:13:23", - "nodeType": "VariableDeclaration", - "scope": 2399, - "src": "6109:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2396, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6109:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6085:46:23" - }, - "src": "6045:87:23" - }, - { - "documentation": { - "id": 2400, - "nodeType": "StructuredDocumentation", - "src": "6138:198:23", - "text": " @notice Thrown when a collector has insufficient allowance to collect funds\n @param allowance The current allowance\n @param minAllowance The minimum required allowance" - }, - "errorSelector": "b0b503e7", - "id": 2406, - "name": "PaymentsEscrowInsufficientAllowance", - "nameLocation": "6347:35:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2402, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "6391:9:23", - "nodeType": "VariableDeclaration", - "scope": 2406, - "src": "6383:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2401, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6383:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2404, - "mutability": "mutable", - "name": "minAllowance", - "nameLocation": "6410:12:23", - "nodeType": "VariableDeclaration", - "scope": 2406, - "src": "6402:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2403, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6402:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6382:41:23" - }, - "src": "6341:83:23" - }, - { - "documentation": { - "id": 2407, - "nodeType": "StructuredDocumentation", - "src": "6430:278:23", - "text": " @notice Thrown when the contract balance is not consistent with the collection amount\n @param balanceBefore The balance before the collection\n @param balanceAfter The balance after the collection\n @param tokens The amount of tokens collected" - }, - "errorSelector": "7e09c9ac", - "id": 2415, - "name": "PaymentsEscrowInconsistentCollection", - "nameLocation": "6719:36:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2414, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2409, - "mutability": "mutable", - "name": "balanceBefore", - "nameLocation": "6764:13:23", - "nodeType": "VariableDeclaration", - "scope": 2415, - "src": "6756:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6756:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2411, - "mutability": "mutable", - "name": "balanceAfter", - "nameLocation": "6787:12:23", - "nodeType": "VariableDeclaration", - "scope": 2415, - "src": "6779:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6779:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2413, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "6809:6:23", - "nodeType": "VariableDeclaration", - "scope": 2415, - "src": "6801:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2412, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6801:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6755:61:23" - }, - "src": "6713:104:23" - }, - { - "documentation": { - "id": 2416, - "nodeType": "StructuredDocumentation", - "src": "6823:84:23", - "text": " @notice Thrown when operating a zero token amount is not allowed." - }, - "errorSelector": "ebfc7cdc", - "id": 2418, - "name": "PaymentsEscrowInvalidZeroTokens", - "nameLocation": "6918:31:23", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2417, - "nodeType": "ParameterList", - "parameters": [], - "src": "6949:2:23" - }, - "src": "6912:40:23" - }, - { - "documentation": { - "id": 2419, - "nodeType": "StructuredDocumentation", - "src": "6958:526:23", - "text": " @notice Authorize a collector to collect funds from the payer's escrow\n @dev This function can only be used to increase the allowance of a collector.\n To reduce it the authorization must be revoked and a new one must be created.\n Requirements:\n - `allowance` must be greater than zero\n Emits an {AuthorizedCollector} event\n @param collector The address of the collector\n @param allowance The amount of tokens to add to the collector's allowance" - }, - "functionSelector": "4f9d392e", - "id": 2426, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approveCollector", - "nameLocation": "7498:16:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2421, - "mutability": "mutable", - "name": "collector", - "nameLocation": "7523:9:23", - "nodeType": "VariableDeclaration", - "scope": 2426, - "src": "7515:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7515:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2423, - "mutability": "mutable", - "name": "allowance", - "nameLocation": "7542:9:23", - "nodeType": "VariableDeclaration", - "scope": 2426, - "src": "7534:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2422, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7534:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7514:38:23" - }, - "returnParameters": { - "id": 2425, - "nodeType": "ParameterList", - "parameters": [], - "src": "7561:0:23" - }, - "scope": 2514, - "src": "7489:73:23", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2427, - "nodeType": "StructuredDocumentation", - "src": "7568:265:23", - "text": " @notice Thaw a collector's collector authorization\n @dev The thawing period is defined by the `REVOKE_COLLECTOR_THAWING_PERIOD` constant\n Emits a {ThawCollector} event\n @param collector The address of the collector" - }, - "functionSelector": "0ee36be3", - "id": 2432, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "thawCollector", - "nameLocation": "7847:13:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2430, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2429, - "mutability": "mutable", - "name": "collector", - "nameLocation": "7869:9:23", - "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "7861:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2428, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7861:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "7860:19:23" - }, - "returnParameters": { - "id": 2431, - "nodeType": "ParameterList", - "parameters": [], - "src": "7888:0:23" - }, - "scope": 2514, - "src": "7838:51:23", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2433, - "nodeType": "StructuredDocumentation", - "src": "7895:242:23", - "text": " @notice Cancel a collector's authorization thawing\n @dev Requirements:\n - `collector` must be thawing\n Emits a {CancelThawCollector} event\n @param collector The address of the collector" - }, - "functionSelector": "78a24c54", - "id": 2438, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "cancelThawCollector", - "nameLocation": "8151:19:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2435, - "mutability": "mutable", - "name": "collector", - "nameLocation": "8179:9:23", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "8171:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2434, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8171:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "8170:19:23" - }, - "returnParameters": { - "id": 2437, - "nodeType": "ParameterList", - "parameters": [], - "src": "8198:0:23" - }, - "scope": 2514, - "src": "8142:57:23", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2439, - "nodeType": "StructuredDocumentation", - "src": "8205:301:23", - "text": " @notice Revoke a collector's authorization.\n Removes the collector from the list of authorized collectors.\n @dev Requirements:\n - `collector` must have thawed\n Emits a {RevokeCollector} event\n @param collector The address of the collector" - }, - "functionSelector": "32825b81", - "id": 2444, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "revokeCollector", - "nameLocation": "8520:15:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2441, - "mutability": "mutable", - "name": "collector", - "nameLocation": "8544:9:23", - "nodeType": "VariableDeclaration", - "scope": 2444, - "src": "8536:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2440, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8536:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "8535:19:23" - }, - "returnParameters": { - "id": 2443, - "nodeType": "ParameterList", - "parameters": [], - "src": "8563:0:23" - }, - "scope": 2514, - "src": "8511:53:23", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2445, - "nodeType": "StructuredDocumentation", - "src": "8570:338:23", - "text": " @notice Deposits funds into the escrow for a payer-collector-receiver tuple, where\n the payer is the transaction caller.\n @dev Emits a {Deposit} event\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens to deposit" - }, - "functionSelector": "8340f549", - "id": 2454, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nameLocation": "8922:7:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2452, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2447, - "mutability": "mutable", - "name": "collector", - "nameLocation": "8938:9:23", - "nodeType": "VariableDeclaration", - "scope": 2454, - "src": "8930:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2446, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8930:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2449, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "8957:8:23", - "nodeType": "VariableDeclaration", - "scope": 2454, - "src": "8949:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2448, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8949:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2451, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "8975:6:23", - "nodeType": "VariableDeclaration", - "scope": 2454, - "src": "8967:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2450, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8967:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8929:53:23" - }, - "returnParameters": { - "id": 2453, - "nodeType": "ParameterList", - "parameters": [], - "src": "8991:0:23" - }, - "scope": 2514, - "src": "8913:79:23", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2455, - "nodeType": "StructuredDocumentation", - "src": "8998:374:23", - "text": " @notice Deposits funds into the escrow for a payer-collector-receiver tuple, where\n the payer can be specified.\n @dev Emits a {Deposit} event\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens to deposit" - }, - "functionSelector": "72eb521e", - "id": 2466, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "depositTo", - "nameLocation": "9386:9:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2457, - "mutability": "mutable", - "name": "payer", - "nameLocation": "9404:5:23", - "nodeType": "VariableDeclaration", - "scope": 2466, - "src": "9396:13:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2456, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9396:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2459, - "mutability": "mutable", - "name": "collector", - "nameLocation": "9419:9:23", - "nodeType": "VariableDeclaration", - "scope": 2466, - "src": "9411:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9411:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2461, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "9438:8:23", - "nodeType": "VariableDeclaration", - "scope": 2466, - "src": "9430:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2460, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9430:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2463, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "9456:6:23", - "nodeType": "VariableDeclaration", - "scope": 2466, - "src": "9448:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2462, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9448:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9395:68:23" - }, - "returnParameters": { - "id": 2465, - "nodeType": "ParameterList", - "parameters": [], - "src": "9472:0:23" - }, - "scope": 2514, - "src": "9377:96:23", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2467, - "nodeType": "StructuredDocumentation", - "src": "9479:716:23", - "text": " @notice Thaw a specific amount of escrow from a payer-collector-receiver's escrow account.\n The payer is the transaction caller.\n If `tokens` is zero and funds were already thawing it will cancel the thawing.\n Note that repeated calls to this function will overwrite the previous thawing amount\n and reset the thawing period.\n @dev Requirements:\n - `tokens` must be less than or equal to the available balance\n Emits a {Thaw} event. If `tokens` is zero it will emit a {CancelThaw} event.\n @param collector The address of the collector\n @param receiver The address of the receiver\n @param tokens The amount of tokens to thaw" - }, - "functionSelector": "f93f1cd0", - "id": 2476, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "thaw", - "nameLocation": "10209:4:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2474, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2469, - "mutability": "mutable", - "name": "collector", - "nameLocation": "10222:9:23", - "nodeType": "VariableDeclaration", - "scope": 2476, - "src": "10214:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2468, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10214:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2471, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "10241:8:23", - "nodeType": "VariableDeclaration", - "scope": 2476, - "src": "10233:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2470, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10233:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2473, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "10259:6:23", - "nodeType": "VariableDeclaration", - "scope": 2476, - "src": "10251:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2472, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10251:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10213:53:23" - }, - "returnParameters": { - "id": 2475, - "nodeType": "ParameterList", - "parameters": [], - "src": "10275:0:23" - }, - "scope": 2514, - "src": "10200:76:23", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2477, - "nodeType": "StructuredDocumentation", - "src": "10282:486:23", - "text": " @notice Withdraws all thawed escrow from a payer-collector-receiver's escrow account.\n The payer is the transaction caller.\n Note that the withdrawn funds might be less than the thawed amount if there were\n payment collections in the meantime.\n @dev Requirements:\n - Funds must be thawed\n Emits a {Withdraw} event\n @param collector The address of the collector\n @param receiver The address of the receiver" - }, - "functionSelector": "f940e385", - "id": 2484, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nameLocation": "10782:8:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2482, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2479, - "mutability": "mutable", - "name": "collector", - "nameLocation": "10799:9:23", - "nodeType": "VariableDeclaration", - "scope": 2484, - "src": "10791:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2478, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10791:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2481, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "10818:8:23", - "nodeType": "VariableDeclaration", - "scope": 2484, - "src": "10810:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2480, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10810:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "10790:37:23" - }, - "returnParameters": { - "id": 2483, - "nodeType": "ParameterList", - "parameters": [], - "src": "10836:0:23" - }, - "scope": 2514, - "src": "10773:64:23", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2485, - "nodeType": "StructuredDocumentation", - "src": "10843:845:23", - "text": " @notice Collects funds from the payer-collector-receiver's escrow and sends them to {GraphPayments} for\n distribution using the Graph Horizon Payments protocol.\n The function will revert if there are not enough funds in the escrow.\n @dev Requirements:\n - `collector` needs to be authorized by the payer and have enough allowance\n Emits an {EscrowCollected} event\n @param paymentType The type of payment being collected as defined in the {IGraphPayments} interface\n @param payer The address of the payer\n @param receiver The address of the receiver\n @param tokens The amount of tokens to collect\n @param dataService The address of the data service\n @param tokensDataService The amount of tokens that {GraphPayments} should send to the data service" - }, - "functionSelector": "87dbfe82", - "id": 2501, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "collect", - "nameLocation": "11702:7:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2499, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2488, - "mutability": "mutable", - "name": "paymentType", - "nameLocation": "11747:11:23", - "nodeType": "VariableDeclaration", - "scope": 2501, - "src": "11719:39:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "typeName": { - "id": 2487, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2486, - "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "11719:14:23", - "11734:12:23" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2166, - "src": "11719:27:23" - }, - "referencedDeclaration": 2166, - "src": "11719:27:23", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2490, - "mutability": "mutable", - "name": "payer", - "nameLocation": "11776:5:23", - "nodeType": "VariableDeclaration", - "scope": 2501, - "src": "11768:13:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2489, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11768:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2492, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "11799:8:23", - "nodeType": "VariableDeclaration", - "scope": 2501, - "src": "11791:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2491, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11791:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2494, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "11825:6:23", - "nodeType": "VariableDeclaration", - "scope": 2501, - "src": "11817:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2493, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11817:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2496, - "mutability": "mutable", - "name": "dataService", - "nameLocation": "11849:11:23", - "nodeType": "VariableDeclaration", - "scope": 2501, - "src": "11841:19:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2495, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11841:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2498, - "mutability": "mutable", - "name": "tokensDataService", - "nameLocation": "11878:17:23", - "nodeType": "VariableDeclaration", - "scope": 2501, - "src": "11870:25:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2497, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11870:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11709:192:23" - }, - "returnParameters": { - "id": 2500, - "nodeType": "ParameterList", - "parameters": [], - "src": "11910:0:23" - }, - "scope": 2514, - "src": "11693:218:23", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2502, - "nodeType": "StructuredDocumentation", - "src": "11917:227:23", - "text": " @notice Get the balance of a payer-collector-receiver tuple\n @param payer The address of the payer\n @param collector The address of the collector\n @param receiver The address of the receiver" - }, - "functionSelector": "d6bd603c", - "id": 2513, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getBalance", - "nameLocation": "12158:10:23", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2504, - "mutability": "mutable", - "name": "payer", - "nameLocation": "12177:5:23", - "nodeType": "VariableDeclaration", - "scope": 2513, - "src": "12169:13:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2503, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12169:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2506, - "mutability": "mutable", - "name": "collector", - "nameLocation": "12192:9:23", - "nodeType": "VariableDeclaration", - "scope": 2513, - "src": "12184:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2505, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12184:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2508, - "mutability": "mutable", - "name": "receiver", - "nameLocation": "12211:8:23", - "nodeType": "VariableDeclaration", - "scope": 2513, - "src": "12203:16:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2507, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12203:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "12168:52:23" - }, - "returnParameters": { - "id": 2512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2511, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2513, - "src": "12244:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12244:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12243:9:23" - }, - "scope": 2514, - "src": "12149:104:23", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 2515, - "src": "758:11497:23", - "usedErrors": [ - 2375, - 2382, - 2385, - 2392, - 2399, - 2406, - 2415, - 2418 - ], - "usedEvents": [ - 2298, - 2305, - 2312, - 2319, - 2330, - 2337, - 2350, - 2361, - 2372 - ] - } - ], - "src": "45:12211:23" - }, - "id": 23 - }, - "@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol", - "exportedSymbols": { - "IPaymentsCollector": [ - 2268 - ], - "ITAPCollector": [ - 2695 - ] - }, - "id": 2696, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2516, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:24" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol", - "file": "./IPaymentsCollector.sol", - "id": 2518, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2696, - "sourceUnit": 2269, - "src": "70:62:24", - "symbolAliases": [ - { - "foreign": { - "id": 2517, - "name": "IPaymentsCollector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "79:18:24", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 2520, - "name": "IPaymentsCollector", - "nameLocations": [ - "465:18:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2268, - "src": "465:18:24" - }, - "id": 2521, - "nodeType": "InheritanceSpecifier", - "src": "465:18:24" - } - ], - "canonicalName": "ITAPCollector", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2519, - "nodeType": "StructuredDocumentation", - "src": "134:303:24", - "text": " @title Interface for the {TAPCollector} contract\n @dev Implements the {IPaymentCollector} interface as defined by the Graph\n Horizon payments protocol.\n @notice Implements a payments collector contract that can be used to collect\n payments using a TAP RAV (Receipt Aggregate Voucher)." - }, - "fullyImplemented": false, - "id": 2695, - "linearizedBaseContracts": [ - 2695, - 2268 - ], - "name": "ITAPCollector", - "nameLocation": "448:13:24", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "ITAPCollector.PayerAuthorization", - "documentation": { - "id": 2522, - "nodeType": "StructuredDocumentation", - "src": "490:107:24", - "text": "@notice Details for a payer-signer pair\n @dev Signers can be removed only after a thawing period" - }, - "id": 2527, - "members": [ - { - "constant": false, - "id": 2524, - "mutability": "mutable", - "name": "payer", - "nameLocation": "700:5:24", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "692:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2523, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "692:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2526, - "mutability": "mutable", - "name": "thawEndTimestamp", - "nameLocation": "795:16:24", - "nodeType": "VariableDeclaration", - "scope": 2527, - "src": "787:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2525, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "787:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "PayerAuthorization", - "nameLocation": "609:18:24", - "nodeType": "StructDefinition", - "scope": 2695, - "src": "602:216:24", - "visibility": "public" - }, - { - "canonicalName": "ITAPCollector.ReceiptAggregateVoucher", - "documentation": { - "id": 2528, - "nodeType": "StructuredDocumentation", - "src": "824:54:24", - "text": "@notice The Receipt Aggregate Voucher (RAV) struct" - }, - "id": 2539, - "members": [ - { - "constant": false, - "id": 2530, - "mutability": "mutable", - "name": "dataService", - "nameLocation": "997:11:24", - "nodeType": "VariableDeclaration", - "scope": 2539, - "src": "989:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2529, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "989:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2532, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1095:15:24", - "nodeType": "VariableDeclaration", - "scope": 2539, - "src": "1087:23:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1087:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2534, - "mutability": "mutable", - "name": "timestampNs", - "nameLocation": "1202:11:24", - "nodeType": "VariableDeclaration", - "scope": 2539, - "src": "1195:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2533, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1195:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2536, - "mutability": "mutable", - "name": "valueAggregate", - "nameLocation": "1404:14:24", - "nodeType": "VariableDeclaration", - "scope": 2539, - "src": "1396:22:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 2535, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "1396:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2538, - "mutability": "mutable", - "name": "metadata", - "nameLocation": "1518:8:24", - "nodeType": "VariableDeclaration", - "scope": 2539, - "src": "1512:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2537, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1512:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "name": "ReceiptAggregateVoucher", - "nameLocation": "890:23:24", - "nodeType": "StructDefinition", - "scope": 2695, - "src": "883:650:24", - "visibility": "public" - }, - { - "canonicalName": "ITAPCollector.SignedRAV", - "documentation": { - "id": 2540, - "nodeType": "StructuredDocumentation", - "src": "1539:46:24", - "text": "@notice A struct representing a signed RAV" - }, - "id": 2546, - "members": [ - { - "constant": false, - "id": 2543, - "mutability": "mutable", - "name": "rav", - "nameLocation": "1660:3:24", - "nodeType": "VariableDeclaration", - "scope": 2546, - "src": "1636:27:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2539_storage_ptr", - "typeString": "struct ITAPCollector.ReceiptAggregateVoucher" - }, - "typeName": { - "id": 2542, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2541, - "name": "ReceiptAggregateVoucher", - "nameLocations": [ - "1636:23:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2539, - "src": "1636:23:24" - }, - "referencedDeclaration": 2539, - "src": "1636:23:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2539_storage_ptr", - "typeString": "struct ITAPCollector.ReceiptAggregateVoucher" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2545, - "mutability": "mutable", - "name": "signature", - "nameLocation": "1755:9:24", - "nodeType": "VariableDeclaration", - "scope": 2546, - "src": "1749:15:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2544, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1749:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "name": "SignedRAV", - "nameLocation": "1597:9:24", - "nodeType": "StructDefinition", - "scope": 2695, - "src": "1590:181:24", - "visibility": "public" - }, - { - "anonymous": false, - "documentation": { - "id": 2547, - "nodeType": "StructuredDocumentation", - "src": "1777:223:24", - "text": " @notice Emitted when a signer is authorized to sign RAVs for a payer\n @param payer The address of the payer authorizing the signer\n @param authorizedSigner The address of the authorized signer" - }, - "eventSelector": "6edcdd4150e63c6c36d965976c1c37375609c8b040c50d39e7156437b80e2828", - "id": 2553, - "name": "SignerAuthorized", - "nameLocation": "2011:16:24", - "nodeType": "EventDefinition", - "parameters": { - "id": 2552, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2549, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "2044:5:24", - "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "2028:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2548, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2028:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2551, - "indexed": true, - "mutability": "mutable", - "name": "authorizedSigner", - "nameLocation": "2067:16:24", - "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "2051:32:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2550, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2051:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2027:57:24" - }, - "src": "2005:80:24" - }, - { - "anonymous": false, - "documentation": { - "id": 2554, - "nodeType": "StructuredDocumentation", - "src": "2091:312:24", - "text": " @notice Emitted when a signer is thawed to be removed from the authorized signers list\n @param payer The address of the payer thawing the signer\n @param authorizedSigner The address of the signer to thaw\n @param thawEndTimestamp The timestamp at which the thawing period ends" - }, - "eventSelector": "d939049941f6a15381248e4ac0010f15efdf0f3221923711244c200b5ff2cddf", - "id": 2562, - "name": "SignerThawing", - "nameLocation": "2414:13:24", - "nodeType": "EventDefinition", - "parameters": { - "id": 2561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2556, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "2444:5:24", - "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "2428:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2555, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2428:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2558, - "indexed": true, - "mutability": "mutable", - "name": "authorizedSigner", - "nameLocation": "2467:16:24", - "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "2451:32:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2557, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2451:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2560, - "indexed": false, - "mutability": "mutable", - "name": "thawEndTimestamp", - "nameLocation": "2493:16:24", - "nodeType": "VariableDeclaration", - "scope": 2562, - "src": "2485:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2559, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2485:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2427:83:24" - }, - "src": "2408:103:24" - }, - { - "anonymous": false, - "documentation": { - "id": 2563, - "nodeType": "StructuredDocumentation", - "src": "2517:287:24", - "text": " @dev Emitted when the thawing of a signer is cancelled\n @param payer The address of the payer cancelling the thawing\n @param authorizedSigner The address of the authorized signer\n @param thawEndTimestamp The timestamp at which the thawing period ends" - }, - "eventSelector": "3b4432b11b66b46d9a7b190aa989c0ae85a5395b543540220596dd94dd405ceb", - "id": 2571, - "name": "SignerThawCanceled", - "nameLocation": "2815:18:24", - "nodeType": "EventDefinition", - "parameters": { - "id": 2570, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2565, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "2850:5:24", - "nodeType": "VariableDeclaration", - "scope": 2571, - "src": "2834:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2564, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2834:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2567, - "indexed": true, - "mutability": "mutable", - "name": "authorizedSigner", - "nameLocation": "2873:16:24", - "nodeType": "VariableDeclaration", - "scope": 2571, - "src": "2857:32:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2857:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2569, - "indexed": false, - "mutability": "mutable", - "name": "thawEndTimestamp", - "nameLocation": "2899:16:24", - "nodeType": "VariableDeclaration", - "scope": 2571, - "src": "2891:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2568, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2891:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2833:83:24" - }, - "src": "2809:108:24" - }, - { - "anonymous": false, - "documentation": { - "id": 2572, - "nodeType": "StructuredDocumentation", - "src": "2923:206:24", - "text": " @dev Emitted when a authorized signer has been revoked\n @param payer The address of the payer revoking the signer\n @param authorizedSigner The address of the authorized signer" - }, - "eventSelector": "2fc91dbd92d741cae16e0315578d7f6cf77043b771692c4bd993658ecfe89422", - "id": 2578, - "name": "SignerRevoked", - "nameLocation": "3140:13:24", - "nodeType": "EventDefinition", - "parameters": { - "id": 2577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2574, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "3170:5:24", - "nodeType": "VariableDeclaration", - "scope": 2578, - "src": "3154:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3154:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2576, - "indexed": true, - "mutability": "mutable", - "name": "authorizedSigner", - "nameLocation": "3193:16:24", - "nodeType": "VariableDeclaration", - "scope": 2578, - "src": "3177:32:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2575, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3177:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3153:57:24" - }, - "src": "3134:77:24" - }, - { - "anonymous": false, - "documentation": { - "id": 2579, - "nodeType": "StructuredDocumentation", - "src": "3217:444:24", - "text": " @notice Emitted when a RAV is collected\n @param payer The address of the payer\n @param dataService The address of the data service\n @param serviceProvider The address of the service provider\n @param timestampNs The timestamp of the RAV\n @param valueAggregate The total amount owed to the service provider\n @param metadata Arbitrary metadata\n @param signature The signature of the RAV" - }, - "eventSelector": "2d55f33a4a377f40129b217a6cf7a5022a112941b80cd589332abc245aa0a5c7", - "id": 2595, - "name": "RAVCollected", - "nameLocation": "3672:12:24", - "nodeType": "EventDefinition", - "parameters": { - "id": 2594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2581, - "indexed": true, - "mutability": "mutable", - "name": "payer", - "nameLocation": "3710:5:24", - "nodeType": "VariableDeclaration", - "scope": 2595, - "src": "3694:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3694:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2583, - "indexed": true, - "mutability": "mutable", - "name": "dataService", - "nameLocation": "3741:11:24", - "nodeType": "VariableDeclaration", - "scope": 2595, - "src": "3725:27:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2582, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3725:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2585, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3778:15:24", - "nodeType": "VariableDeclaration", - "scope": 2595, - "src": "3762:31:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3762:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2587, - "indexed": false, - "mutability": "mutable", - "name": "timestampNs", - "nameLocation": "3810:11:24", - "nodeType": "VariableDeclaration", - "scope": 2595, - "src": "3803:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2586, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3803:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2589, - "indexed": false, - "mutability": "mutable", - "name": "valueAggregate", - "nameLocation": "3839:14:24", - "nodeType": "VariableDeclaration", - "scope": 2595, - "src": "3831:22:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - }, - "typeName": { - "id": 2588, - "name": "uint128", - "nodeType": "ElementaryTypeName", - "src": "3831:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint128", - "typeString": "uint128" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2591, - "indexed": false, - "mutability": "mutable", - "name": "metadata", - "nameLocation": "3869:8:24", - "nodeType": "VariableDeclaration", - "scope": 2595, - "src": "3863:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2590, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3863:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2593, - "indexed": false, - "mutability": "mutable", - "name": "signature", - "nameLocation": "3893:9:24", - "nodeType": "VariableDeclaration", - "scope": 2595, - "src": "3887:15:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2592, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3887:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3684:224:24" - }, - "src": "3666:243:24" - }, - { - "documentation": { - "id": 2596, - "nodeType": "StructuredDocumentation", - "src": "3915:189:24", - "text": " Thrown when the signer is already authorized\n @param authorizingPayer The address of the payer authorizing the signer\n @param signer The address of the signer" - }, - "errorSelector": "cb2320b7", - "id": 2602, - "name": "TAPCollectorSignerAlreadyAuthorized", - "nameLocation": "4115:35:24", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2598, - "mutability": "mutable", - "name": "authorizingPayer", - "nameLocation": "4159:16:24", - "nodeType": "VariableDeclaration", - "scope": 2602, - "src": "4151:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4151:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2600, - "mutability": "mutable", - "name": "signer", - "nameLocation": "4185:6:24", - "nodeType": "VariableDeclaration", - "scope": 2602, - "src": "4177:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2599, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4177:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4150:42:24" - }, - "src": "4109:84:24" - }, - { - "documentation": { - "id": 2603, - "nodeType": "StructuredDocumentation", - "src": "4199:198:24", - "text": " Thrown when the signer proof deadline is invalid\n @param proofDeadline The deadline for the proof provided by the signer\n @param currentTimestamp The current timestamp" - }, - "errorSelector": "43c042b3", - "id": 2609, - "name": "TAPCollectorInvalidSignerProofDeadline", - "nameLocation": "4408:38:24", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2608, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2605, - "mutability": "mutable", - "name": "proofDeadline", - "nameLocation": "4455:13:24", - "nodeType": "VariableDeclaration", - "scope": 2609, - "src": "4447:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2604, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4447:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2607, - "mutability": "mutable", - "name": "currentTimestamp", - "nameLocation": "4478:16:24", - "nodeType": "VariableDeclaration", - "scope": 2609, - "src": "4470:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2606, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4470:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4446:49:24" - }, - "src": "4402:94:24" - }, - { - "documentation": { - "id": 2610, - "nodeType": "StructuredDocumentation", - "src": "4502:58:24", - "text": " Thrown when the signer proof is invalid" - }, - "errorSelector": "2c9e215e", - "id": 2612, - "name": "TAPCollectorInvalidSignerProof", - "nameLocation": "4571:30:24", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2611, - "nodeType": "ParameterList", - "parameters": [], - "src": "4601:2:24" - }, - "src": "4565:39:24" - }, - { - "documentation": { - "id": 2613, - "nodeType": "StructuredDocumentation", - "src": "4610:164:24", - "text": " Thrown when the signer is not authorized by the payer\n @param payer The address of the payer\n @param signer The address of the signer" - }, - "errorSelector": "ad827d30", - "id": 2619, - "name": "TAPCollectorSignerNotAuthorizedByPayer", - "nameLocation": "4785:38:24", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2618, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2615, - "mutability": "mutable", - "name": "payer", - "nameLocation": "4832:5:24", - "nodeType": "VariableDeclaration", - "scope": 2619, - "src": "4824:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2614, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4824:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2617, - "mutability": "mutable", - "name": "signer", - "nameLocation": "4847:6:24", - "nodeType": "VariableDeclaration", - "scope": 2619, - "src": "4839:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2616, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4839:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4823:31:24" - }, - "src": "4779:76:24" - }, - { - "documentation": { - "id": 2620, - "nodeType": "StructuredDocumentation", - "src": "4861:103:24", - "text": " Thrown when the signer is not thawing\n @param signer The address of the signer" - }, - "errorSelector": "1885ecbd", - "id": 2624, - "name": "TAPCollectorSignerNotThawing", - "nameLocation": "4975:28:24", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2623, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2622, - "mutability": "mutable", - "name": "signer", - "nameLocation": "5012:6:24", - "nodeType": "VariableDeclaration", - "scope": 2624, - "src": "5004:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5004:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5003:16:24" - }, - "src": "4969:51:24" - }, - { - "documentation": { - "id": 2625, - "nodeType": "StructuredDocumentation", - "src": "5026:189:24", - "text": " Thrown when the signer is still thawing\n @param currentTimestamp The current timestamp\n @param thawEndTimestamp The timestamp at which the thawing period ends" - }, - "errorSelector": "d2168558", - "id": 2631, - "name": "TAPCollectorSignerStillThawing", - "nameLocation": "5226:30:24", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2630, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2627, - "mutability": "mutable", - "name": "currentTimestamp", - "nameLocation": "5265:16:24", - "nodeType": "VariableDeclaration", - "scope": 2631, - "src": "5257:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2626, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5257:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2629, - "mutability": "mutable", - "name": "thawEndTimestamp", - "nameLocation": "5291:16:24", - "nodeType": "VariableDeclaration", - "scope": 2631, - "src": "5283:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2628, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5283:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5256:52:24" - }, - "src": "5220:89:24" - }, - { - "documentation": { - "id": 2632, - "nodeType": "StructuredDocumentation", - "src": "5315:56:24", - "text": " Thrown when the RAV signer is invalid" - }, - "errorSelector": "0ef060dd", - "id": 2634, - "name": "TAPCollectorInvalidRAVSigner", - "nameLocation": "5382:28:24", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2633, - "nodeType": "ParameterList", - "parameters": [], - "src": "5410:2:24" - }, - "src": "5376:37:24" - }, - { - "documentation": { - "id": 2635, - "nodeType": "StructuredDocumentation", - "src": "5419:192:24", - "text": " Thrown when the caller is not the data service the RAV was issued to\n @param caller The address of the caller\n @param dataService The address of the data service" - }, - "errorSelector": "8eccd746", - "id": 2641, - "name": "TAPCollectorCallerNotDataService", - "nameLocation": "5622:32:24", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2640, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2637, - "mutability": "mutable", - "name": "caller", - "nameLocation": "5663:6:24", - "nodeType": "VariableDeclaration", - "scope": 2641, - "src": "5655:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2636, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5655:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2639, - "mutability": "mutable", - "name": "dataService", - "nameLocation": "5679:11:24", - "nodeType": "VariableDeclaration", - "scope": 2641, - "src": "5671:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2638, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5671:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5654:37:24" - }, - "src": "5616:76:24" - }, - { - "documentation": { - "id": 2642, - "nodeType": "StructuredDocumentation", - "src": "5698:292:24", - "text": " @notice Thrown when the tokens collected are inconsistent with the collection history\n Each RAV should have a value greater than the previous one\n @param tokens The amount of tokens in the RAV\n @param tokensCollected The amount of tokens already collected" - }, - "errorSelector": "47233ec8", - "id": 2648, - "name": "TAPCollectorInconsistentRAVTokens", - "nameLocation": "6001:33:24", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2647, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2644, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "6043:6:24", - "nodeType": "VariableDeclaration", - "scope": 2648, - "src": "6035:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2643, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6035:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2646, - "mutability": "mutable", - "name": "tokensCollected", - "nameLocation": "6059:15:24", - "nodeType": "VariableDeclaration", - "scope": 2648, - "src": "6051:23:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2645, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6051:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6034:41:24" - }, - "src": "5995:81:24" - }, - { - "documentation": { - "id": 2649, - "nodeType": "StructuredDocumentation", - "src": "6082:616:24", - "text": " @notice Authorize a signer to sign on behalf of the payer\n @dev Requirements:\n - `signer` must not be already authorized\n - `proofDeadline` must be greater than the current timestamp\n - `proof` must be a valid signature from the signer being authorized\n Emits an {SignerAuthorized} event\n @param signer The addres of the authorized signer\n @param proofDeadline The deadline for the proof provided by the signer\n @param proof The proof provided by the signer to be authorized by the payer, consists of (chainID, proof deadline, sender address)" - }, - "functionSelector": "fee9f01f", - "id": 2658, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "authorizeSigner", - "nameLocation": "6712:15:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2656, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2651, - "mutability": "mutable", - "name": "signer", - "nameLocation": "6736:6:24", - "nodeType": "VariableDeclaration", - "scope": 2658, - "src": "6728:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2650, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6728:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2653, - "mutability": "mutable", - "name": "proofDeadline", - "nameLocation": "6752:13:24", - "nodeType": "VariableDeclaration", - "scope": 2658, - "src": "6744:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2652, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6744:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2655, - "mutability": "mutable", - "name": "proof", - "nameLocation": "6782:5:24", - "nodeType": "VariableDeclaration", - "scope": 2658, - "src": "6767:20:24", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2654, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6767:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6727:61:24" - }, - "returnParameters": { - "id": 2657, - "nodeType": "ParameterList", - "parameters": [], - "src": "6797:0:24" - }, - "scope": 2695, - "src": "6703:95:24", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2659, - "nodeType": "StructuredDocumentation", - "src": "6804:720:24", - "text": " @notice Starts thawing a signer to be removed from the authorized signers list\n @dev Thawing a signer alerts receivers that signatures from that signer will soon be deemed invalid.\n Receivers without existing signed receipts or RAVs from this signer should treat them as unauthorized.\n Those with existing signed documents from this signer should work towards settling their engagements.\n Once a signer is thawed, they should be viewed as revoked regardless of their revocation status.\n Requirements:\n - `signer` must be authorized by the payer calling this function\n Emits a {SignerThawing} event\n @param signer The address of the signer to thaw" - }, - "functionSelector": "1354f019", - "id": 2664, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "thawSigner", - "nameLocation": "7538:10:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2662, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2661, - "mutability": "mutable", - "name": "signer", - "nameLocation": "7557:6:24", - "nodeType": "VariableDeclaration", - "scope": 2664, - "src": "7549:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2660, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7549:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "7548:16:24" - }, - "returnParameters": { - "id": 2663, - "nodeType": "ParameterList", - "parameters": [], - "src": "7573:0:24" - }, - "scope": 2695, - "src": "7529:45:24", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2665, - "nodeType": "StructuredDocumentation", - "src": "7580:274:24", - "text": " @notice Stops thawing a signer.\n @dev Requirements:\n - `signer` must be thawing and authorized by the payer calling this function\n Emits a {SignerThawCanceled} event\n @param signer The address of the signer to cancel thawing" - }, - "functionSelector": "015cdd80", - "id": 2670, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "cancelThawSigner", - "nameLocation": "7868:16:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2668, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2667, - "mutability": "mutable", - "name": "signer", - "nameLocation": "7893:6:24", - "nodeType": "VariableDeclaration", - "scope": 2670, - "src": "7885:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2666, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7885:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "7884:16:24" - }, - "returnParameters": { - "id": 2669, - "nodeType": "ParameterList", - "parameters": [], - "src": "7909:0:24" - }, - "scope": 2695, - "src": "7859:51:24", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2671, - "nodeType": "StructuredDocumentation", - "src": "7916:287:24", - "text": " @notice Revokes a signer from the authorized signers list if thawed.\n @dev Requirements:\n - `signer` must be thawed and authorized by the payer calling this function\n Emits a {SignerRevoked} event\n @param signer The address of the signer" - }, - "functionSelector": "39aa7416", - "id": 2676, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "revokeAuthorizedSigner", - "nameLocation": "8217:22:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2674, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2673, - "mutability": "mutable", - "name": "signer", - "nameLocation": "8248:6:24", - "nodeType": "VariableDeclaration", - "scope": 2676, - "src": "8240:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2672, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8240:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "8239:16:24" - }, - "returnParameters": { - "id": 2675, - "nodeType": "ParameterList", - "parameters": [], - "src": "8264:0:24" - }, - "scope": 2695, - "src": "8208:57:24", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2677, - "nodeType": "StructuredDocumentation", - "src": "8271:212:24", - "text": " @dev Recovers the signer address of a signed ReceiptAggregateVoucher (RAV).\n @param signedRAV The SignedRAV containing the RAV and its signature.\n @return The address of the signer." - }, - "functionSelector": "1ef518f2", - "id": 2685, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "recoverRAVSigner", - "nameLocation": "8497:16:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2681, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2680, - "mutability": "mutable", - "name": "signedRAV", - "nameLocation": "8533:9:24", - "nodeType": "VariableDeclaration", - "scope": 2685, - "src": "8514:28:24", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_calldata_ptr", - "typeString": "struct ITAPCollector.SignedRAV" - }, - "typeName": { - "id": 2679, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2678, - "name": "SignedRAV", - "nameLocations": [ - "8514:9:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2546, - "src": "8514:9:24" - }, - "referencedDeclaration": 2546, - "src": "8514:9:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_storage_ptr", - "typeString": "struct ITAPCollector.SignedRAV" - } - }, - "visibility": "internal" - } - ], - "src": "8513:30:24" - }, - "returnParameters": { - "id": 2684, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2683, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2685, - "src": "8567:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2682, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8567:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "8566:9:24" - }, - "scope": 2695, - "src": "8488:88:24", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2686, - "nodeType": "StructuredDocumentation", - "src": "8582:170:24", - "text": " @dev Computes the hash of a ReceiptAggregateVoucher (RAV).\n @param rav The RAV for which to compute the hash.\n @return The hash of the RAV." - }, - "functionSelector": "8821603c", - "id": 2694, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "encodeRAV", - "nameLocation": "8766:9:24", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2690, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2689, - "mutability": "mutable", - "name": "rav", - "nameLocation": "8809:3:24", - "nodeType": "VariableDeclaration", - "scope": 2694, - "src": "8776:36:24", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2539_calldata_ptr", - "typeString": "struct ITAPCollector.ReceiptAggregateVoucher" - }, - "typeName": { - "id": 2688, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2687, - "name": "ReceiptAggregateVoucher", - "nameLocations": [ - "8776:23:24" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2539, - "src": "8776:23:24" - }, - "referencedDeclaration": 2539, - "src": "8776:23:24", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2539_storage_ptr", - "typeString": "struct ITAPCollector.ReceiptAggregateVoucher" - } - }, - "visibility": "internal" - } - ], - "src": "8775:38:24" - }, - "returnParameters": { - "id": 2693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2692, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2694, - "src": "8837:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2691, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8837:7:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "8836:9:24" - }, - "scope": 2695, - "src": "8757:89:24", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 2696, - "src": "438:8410:24", - "usedErrors": [ - 2602, - 2609, - 2612, - 2619, - 2624, - 2631, - 2634, - 2641, - 2648 - ], - "usedEvents": [ - 2256, - 2553, - 2562, - 2571, - 2578, - 2595 - ] - } - ], - "src": "45:8804:24" - }, - "id": 24 - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol", - "exportedSymbols": { - "IGraphPayments": [ - 2211 - ], - "IHorizonStakingBase": [ - 2871 - ], - "IHorizonStakingTypes": [ - 3796 - ], - "LinkedList": [ - 4087 - ] - }, - "id": 2872, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2697, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:25" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", - "file": "./IHorizonStakingTypes.sol", - "id": 2699, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2872, - "sourceUnit": 3797, - "src": "71:66:25", - "symbolAliases": [ - { - "foreign": { - "id": 2698, - "name": "IHorizonStakingTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "80:20:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "file": "../IGraphPayments.sol", - "id": 2701, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2872, - "sourceUnit": 2212, - "src": "138:55:25", - "symbolAliases": [ - { - "foreign": { - "id": 2700, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "147:14:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/LinkedList.sol", - "file": "../../libraries/LinkedList.sol", - "id": 2703, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 2872, - "sourceUnit": 4088, - "src": "195:60:25", - "symbolAliases": [ - { - "foreign": { - "id": 2702, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4087, - "src": "204:10:25", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IHorizonStakingBase", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2704, - "nodeType": "StructuredDocumentation", - "src": "257:324:25", - "text": " @title Interface for the {HorizonStakingBase} contract.\n @notice Provides getters for {HorizonStaking} and {HorizonStakingExtension} storage variables.\n @dev Most functions operate over {HorizonStaking} provisions. To uniquely identify a provision\n functions take `serviceProvider` and `verifier` addresses." - }, - "fullyImplemented": false, - "id": 2871, - "linearizedBaseContracts": [ - 2871 - ], - "name": "IHorizonStakingBase", - "nameLocation": "592:19:25", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 2705, - "nodeType": "StructuredDocumentation", - "src": "618:408:25", - "text": " @notice Emitted when a service provider stakes tokens.\n @dev TODO: After transition period move to IHorizonStakingMain. Temporarily it\n needs to be here since it's emitted by {_stake} which is used by both {HorizonStaking}\n and {HorizonStakingExtension}.\n @param serviceProvider The address of the service provider.\n @param tokens The amount of tokens staked." - }, - "eventSelector": "0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc2", - "id": 2711, - "name": "StakeDeposited", - "nameLocation": "1037:14:25", - "nodeType": "EventDefinition", - "parameters": { - "id": 2710, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2707, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1068:15:25", - "nodeType": "VariableDeclaration", - "scope": 2711, - "src": "1052:31:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2706, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1052:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2709, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1093:6:25", - "nodeType": "VariableDeclaration", - "scope": 2711, - "src": "1085:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2708, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1085:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1051:49:25" - }, - "src": "1031:70:25" - }, - { - "documentation": { - "id": 2712, - "nodeType": "StructuredDocumentation", - "src": "1107:133:25", - "text": " @notice Gets the details of a service provider.\n @param serviceProvider The address of the service provider." - }, - "functionSelector": "8cc01c86", - "id": 2720, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getServiceProvider", - "nameLocation": "1254:18:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2715, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2714, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1290:15:25", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "1282:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2713, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1282:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1272:39:25" - }, - "returnParameters": { - "id": 2719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2718, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "1335:43:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ServiceProvider_$3724_memory_ptr", - "typeString": "struct IHorizonStakingTypes.ServiceProvider" - }, - "typeName": { - "id": 2717, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2716, - "name": "IHorizonStakingTypes.ServiceProvider", - "nameLocations": [ - "1335:20:25", - "1356:15:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3724, - "src": "1335:36:25" - }, - "referencedDeclaration": 3724, - "src": "1335:36:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ServiceProvider_$3724_storage_ptr", - "typeString": "struct IHorizonStakingTypes.ServiceProvider" - } - }, - "visibility": "internal" - } - ], - "src": "1334:45:25" - }, - "scope": 2871, - "src": "1245:135:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2721, - "nodeType": "StructuredDocumentation", - "src": "1386:175:25", - "text": " @notice Gets the stake of a service provider.\n @param serviceProvider The address of the service provider.\n @return The amount of tokens staked." - }, - "functionSelector": "7a766460", - "id": 2728, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getStake", - "nameLocation": "1575:8:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2724, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2723, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1592:15:25", - "nodeType": "VariableDeclaration", - "scope": 2728, - "src": "1584:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2722, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1584:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1583:25:25" - }, - "returnParameters": { - "id": 2727, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2726, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2728, - "src": "1632:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2725, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1632:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1631:9:25" - }, - "scope": 2871, - "src": "1566:75:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2729, - "nodeType": "StructuredDocumentation", - "src": "1647:311:25", - "text": " @notice Gets the service provider's idle stake which is the stake that is not being\n used for any provision. Note that this only includes service provider's self stake.\n @param serviceProvider The address of the service provider.\n @return The amount of tokens that are idle." - }, - "functionSelector": "a784d498", - "id": 2736, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getIdleStake", - "nameLocation": "1972:12:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2732, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2731, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1993:15:25", - "nodeType": "VariableDeclaration", - "scope": 2736, - "src": "1985:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2730, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1985:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1984:25:25" - }, - "returnParameters": { - "id": 2735, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2734, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2736, - "src": "2033:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2733, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2033:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2032:9:25" - }, - "scope": 2871, - "src": "1963:79:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2737, - "nodeType": "StructuredDocumentation", - "src": "2048:226:25", - "text": " @notice Gets the details of delegation pool.\n @param serviceProvider The address of the service provider.\n @param verifier The address of the verifier.\n @return The delegation pool details." - }, - "functionSelector": "561285e4", - "id": 2747, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getDelegationPool", - "nameLocation": "2288:17:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2742, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2739, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "2323:15:25", - "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "2315:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2738, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2315:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2741, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2356:8:25", - "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "2348:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2348:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2305:65:25" - }, - "returnParameters": { - "id": 2746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2745, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "2394:42:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DelegationPool_$3748_memory_ptr", - "typeString": "struct IHorizonStakingTypes.DelegationPool" - }, - "typeName": { - "id": 2744, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2743, - "name": "IHorizonStakingTypes.DelegationPool", - "nameLocations": [ - "2394:20:25", - "2415:14:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3748, - "src": "2394:35:25" - }, - "referencedDeclaration": 3748, - "src": "2394:35:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DelegationPool_$3748_storage_ptr", - "typeString": "struct IHorizonStakingTypes.DelegationPool" - } - }, - "visibility": "internal" - } - ], - "src": "2393:44:25" - }, - "scope": 2871, - "src": "2279:159:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2748, - "nodeType": "StructuredDocumentation", - "src": "2444:272:25", - "text": " @notice Gets the details of a delegation.\n @param serviceProvider The address of the service provider.\n @param verifier The address of the verifier.\n @param delegator The address of the delegator.\n @return The delegation details." - }, - "functionSelector": "ccebcabb", - "id": 2760, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getDelegation", - "nameLocation": "2730:13:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2750, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "2761:15:25", - "nodeType": "VariableDeclaration", - "scope": 2760, - "src": "2753:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2749, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2753:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2752, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2794:8:25", - "nodeType": "VariableDeclaration", - "scope": 2760, - "src": "2786:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2751, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2786:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2754, - "mutability": "mutable", - "name": "delegator", - "nameLocation": "2820:9:25", - "nodeType": "VariableDeclaration", - "scope": 2760, - "src": "2812:17:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2812:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2743:92:25" - }, - "returnParameters": { - "id": 2759, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2758, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2760, - "src": "2859:38:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Delegation_$3777_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Delegation" - }, - "typeName": { - "id": 2757, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2756, - "name": "IHorizonStakingTypes.Delegation", - "nameLocations": [ - "2859:20:25", - "2880:10:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3777, - "src": "2859:31:25" - }, - "referencedDeclaration": 3777, - "src": "2859:31:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Delegation_$3777_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Delegation" - } - }, - "visibility": "internal" - } - ], - "src": "2858:40:25" - }, - "scope": 2871, - "src": "2721:178:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2761, - "nodeType": "StructuredDocumentation", - "src": "2905:327:25", - "text": " @notice Gets the delegation fee cut for a payment type.\n @param serviceProvider The address of the service provider.\n @param verifier The address of the verifier.\n @param paymentType The payment type as defined by {IGraphPayments.PaymentTypes}.\n @return The delegation fee cut in PPM." - }, - "functionSelector": "7573ef4f", - "id": 2773, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getDelegationFeeCut", - "nameLocation": "3246:19:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2769, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2763, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3283:15:25", - "nodeType": "VariableDeclaration", - "scope": 2773, - "src": "3275:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2762, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3275:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2765, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "3316:8:25", - "nodeType": "VariableDeclaration", - "scope": 2773, - "src": "3308:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2764, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3308:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2768, - "mutability": "mutable", - "name": "paymentType", - "nameLocation": "3362:11:25", - "nodeType": "VariableDeclaration", - "scope": 2773, - "src": "3334:39:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "typeName": { - "id": 2767, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2766, - "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "3334:14:25", - "3349:12:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2166, - "src": "3334:27:25" - }, - "referencedDeclaration": 2166, - "src": "3334:27:25", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "visibility": "internal" - } - ], - "src": "3265:114:25" - }, - "returnParameters": { - "id": 2772, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2771, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2773, - "src": "3403:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2770, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3403:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3402:9:25" - }, - "scope": 2871, - "src": "3237:175:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2774, - "nodeType": "StructuredDocumentation", - "src": "3418:216:25", - "text": " @notice Gets the details of a provision.\n @param serviceProvider The address of the service provider.\n @param verifier The address of the verifier.\n @return The provision details." - }, - "functionSelector": "25d9897e", - "id": 2784, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getProvision", - "nameLocation": "3648:12:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2776, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3678:15:25", - "nodeType": "VariableDeclaration", - "scope": 2784, - "src": "3670:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2775, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3670:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2778, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "3711:8:25", - "nodeType": "VariableDeclaration", - "scope": 2784, - "src": "3703:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2777, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3703:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3660:65:25" - }, - "returnParameters": { - "id": 2783, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2782, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2784, - "src": "3749:37:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 2781, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2780, - "name": "IHorizonStakingTypes.Provision", - "nameLocations": [ - "3749:20:25", - "3770:9:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "3749:30:25" - }, - "referencedDeclaration": 3718, - "src": "3749:30:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - } - ], - "src": "3748:39:25" - }, - "scope": 2871, - "src": "3639:149:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2785, - "nodeType": "StructuredDocumentation", - "src": "3794:559:25", - "text": " @notice Gets the tokens available in a provision.\n Tokens available are the tokens in a provision that are not thawing. Includes service\n provider's and delegator's stake.\n Allows specifying a `delegationRatio` which caps the amount of delegated tokens that are\n considered available.\n @param serviceProvider The address of the service provider.\n @param verifier The address of the verifier.\n @param delegationRatio The delegation ratio.\n @return The amount of tokens available." - }, - "functionSelector": "872d0489", - "id": 2796, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getTokensAvailable", - "nameLocation": "4367:18:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2792, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2787, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "4403:15:25", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "4395:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2786, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4395:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2789, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "4436:8:25", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "4428:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2788, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4428:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2791, - "mutability": "mutable", - "name": "delegationRatio", - "nameLocation": "4461:15:25", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "4454:22:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2790, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4454:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "4385:97:25" - }, - "returnParameters": { - "id": 2795, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2794, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2796, - "src": "4506:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2793, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4506:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4505:9:25" - }, - "scope": 2871, - "src": "4358:157:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2797, - "nodeType": "StructuredDocumentation", - "src": "4521:326:25", - "text": " @notice Gets the service provider's tokens available in a provision.\n @dev Calculated as the tokens available minus the tokens thawing.\n @param serviceProvider The address of the service provider.\n @param verifier The address of the verifier.\n @return The amount of tokens available." - }, - "functionSelector": "08ce5f68", - "id": 2806, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getProviderTokensAvailable", - "nameLocation": "4861:26:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2802, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2799, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "4896:15:25", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "4888:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2798, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4888:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2801, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "4921:8:25", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "4913:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4913:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4887:43:25" - }, - "returnParameters": { - "id": 2805, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2804, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "4954:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2803, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4954:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4953:9:25" - }, - "scope": 2871, - "src": "4852:111:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2807, - "nodeType": "StructuredDocumentation", - "src": "4969:319:25", - "text": " @notice Gets the delegator's tokens available in a provision.\n @dev Calculated as the tokens available minus the tokens thawing.\n @param serviceProvider The address of the service provider.\n @param verifier The address of the verifier.\n @return The amount of tokens available." - }, - "functionSelector": "fb744cc0", - "id": 2816, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getDelegatedTokensAvailable", - "nameLocation": "5302:27:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2812, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2809, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "5338:15:25", - "nodeType": "VariableDeclaration", - "scope": 2816, - "src": "5330:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2808, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5330:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2811, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "5363:8:25", - "nodeType": "VariableDeclaration", - "scope": 2816, - "src": "5355:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5355:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5329:43:25" - }, - "returnParameters": { - "id": 2815, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2814, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2816, - "src": "5396:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2813, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5396:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5395:9:25" - }, - "scope": 2871, - "src": "5293:112:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2817, - "nodeType": "StructuredDocumentation", - "src": "5411:144:25", - "text": " @notice Gets a thaw request.\n @param thawRequestId The id of the thaw request.\n @return The thaw request details." - }, - "functionSelector": "b7ca7241", - "id": 2825, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getThawRequest", - "nameLocation": "5569:14:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2819, - "mutability": "mutable", - "name": "thawRequestId", - "nameLocation": "5592:13:25", - "nodeType": "VariableDeclaration", - "scope": 2825, - "src": "5584:21:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2818, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5584:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5583:23:25" - }, - "returnParameters": { - "id": 2824, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2823, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2825, - "src": "5630:39:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ThawRequest_$3795_memory_ptr", - "typeString": "struct IHorizonStakingTypes.ThawRequest" - }, - "typeName": { - "id": 2822, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2821, - "name": "IHorizonStakingTypes.ThawRequest", - "nameLocations": [ - "5630:20:25", - "5651:11:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3795, - "src": "5630:32:25" - }, - "referencedDeclaration": 3795, - "src": "5630:32:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ThawRequest_$3795_storage_ptr", - "typeString": "struct IHorizonStakingTypes.ThawRequest" - } - }, - "visibility": "internal" - } - ], - "src": "5629:41:25" - }, - "scope": 2871, - "src": "5560:111:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2826, - "nodeType": "StructuredDocumentation", - "src": "5677:529:25", - "text": " @notice Gets the metadata of a thaw request list.\n Service provider and delegators each have their own thaw request list per provision.\n Metadata includes the head and tail of the list, plus the total number of thaw requests.\n @param serviceProvider The address of the service provider.\n @param verifier The address of the verifier.\n @param owner The owner of the thaw requests. Use either the service provider or delegator address.\n @return The thaw requests list metadata." - }, - "functionSelector": "a212daf8", - "id": 2838, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getThawRequestList", - "nameLocation": "6220:18:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2828, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "6256:15:25", - "nodeType": "VariableDeclaration", - "scope": 2838, - "src": "6248:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2827, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6248:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2830, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "6289:8:25", - "nodeType": "VariableDeclaration", - "scope": 2838, - "src": "6281:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2829, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6281:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2832, - "mutability": "mutable", - "name": "owner", - "nameLocation": "6315:5:25", - "nodeType": "VariableDeclaration", - "scope": 2838, - "src": "6307:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2831, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6307:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6238:88:25" - }, - "returnParameters": { - "id": 2837, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2836, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2838, - "src": "6350:22:25", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_memory_ptr", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "id": 2835, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2834, - "name": "LinkedList.List", - "nameLocations": [ - "6350:10:25", - "6361:4:25" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3813, - "src": "6350:15:25" - }, - "referencedDeclaration": 3813, - "src": "6350:15:25", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "visibility": "internal" - } - ], - "src": "6349:24:25" - }, - "scope": 2871, - "src": "6211:163:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2839, - "nodeType": "StructuredDocumentation", - "src": "6380:351:25", - "text": " @notice Gets the amount of thawed tokens for a given provision.\n @param serviceProvider The address of the service provider.\n @param verifier The address of the verifier.\n @param owner The owner of the thaw requests. Use either the service provider or delegator address.\n @return The amount of thawed tokens." - }, - "functionSelector": "9054e343", - "id": 2850, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getThawedTokens", - "nameLocation": "6745:15:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2841, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "6769:15:25", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "6761:23:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2840, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6761:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2843, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "6794:8:25", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "6786:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2842, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6786:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2845, - "mutability": "mutable", - "name": "owner", - "nameLocation": "6812:5:25", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "6804:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2844, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6804:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6760:58:25" - }, - "returnParameters": { - "id": 2849, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2848, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2850, - "src": "6842:7:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2847, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6842:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6841:9:25" - }, - "scope": 2871, - "src": "6736:115:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2851, - "nodeType": "StructuredDocumentation", - "src": "6857:83:25", - "text": " @notice Gets the maximum allowed thawing period for a provision." - }, - "functionSelector": "39514ad2", - "id": 2856, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getMaxThawingPeriod", - "nameLocation": "6954:19:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2852, - "nodeType": "ParameterList", - "parameters": [], - "src": "6973:2:25" - }, - "returnParameters": { - "id": 2855, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2854, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2856, - "src": "6999:6:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2853, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6999:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "6998:8:25" - }, - "scope": 2871, - "src": "6945:62:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2857, - "nodeType": "StructuredDocumentation", - "src": "7013:208:25", - "text": " @notice Return true if the verifier is an allowed locked verifier.\n @param verifier Address of the verifier\n @return True if verifier is allowed locked verifier, false otherwise" - }, - "functionSelector": "ae4fe67a", - "id": 2864, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isAllowedLockedVerifier", - "nameLocation": "7235:23:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2860, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2859, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "7267:8:25", - "nodeType": "VariableDeclaration", - "scope": 2864, - "src": "7259:16:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2858, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7259:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "7258:18:25" - }, - "returnParameters": { - "id": 2863, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2862, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2864, - "src": "7300:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2861, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7300:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "7299:6:25" - }, - "scope": 2871, - "src": "7226:80:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2865, - "nodeType": "StructuredDocumentation", - "src": "7312:90:25", - "text": " @notice Return true if delegation slashing is enabled, false otherwise." - }, - "functionSelector": "fc54fb27", - "id": 2870, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isDelegationSlashingEnabled", - "nameLocation": "7416:27:25", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2866, - "nodeType": "ParameterList", - "parameters": [], - "src": "7443:2:25" - }, - "returnParameters": { - "id": 2869, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2868, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2870, - "src": "7469:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2867, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7469:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "7468:6:25" - }, - "scope": 2871, - "src": "7407:68:25", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 2872, - "src": "582:6895:25", - "usedErrors": [], - "usedEvents": [ - 2711 - ] - } - ], - "src": "46:7432:25" - }, - "id": 25 - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol", - "exportedSymbols": { - "IHorizonStakingExtension": [ - 3022 - ], - "IRewardsIssuer": [ - 314 - ] - }, - "id": 3023, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2873, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:26" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol", - "file": "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol", - "id": 2875, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3023, - "sourceUnit": 315, - "src": "71:95:26", - "symbolAliases": [ - { - "foreign": { - "id": 2874, - "name": "IRewardsIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "80:14:26", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 2877, - "name": "IRewardsIssuer", - "nameLocations": [ - "337:14:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 314, - "src": "337:14:26" - }, - "id": 2878, - "nodeType": "InheritanceSpecifier", - "src": "337:14:26" - } - ], - "canonicalName": "IHorizonStakingExtension", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 2876, - "nodeType": "StructuredDocumentation", - "src": "168:130:26", - "text": " @title Interface for {HorizonStakingExtension} contract.\n @notice Provides functions for managing legacy allocations." - }, - "fullyImplemented": false, - "id": 3022, - "linearizedBaseContracts": [ - 3022, - 314 - ], - "name": "IHorizonStakingExtension", - "nameLocation": "309:24:26", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "IHorizonStakingExtension.Allocation", - "documentation": { - "id": 2879, - "nodeType": "StructuredDocumentation", - "src": "358:194:26", - "text": " @dev Allocate GRT tokens for the purpose of serving queries of a subgraph deployment\n An allocation is created in the allocate() function and closed in closeAllocation()" - }, - "id": 2898, - "members": [ - { - "constant": false, - "id": 2881, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "593:7:26", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "585:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2880, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "585:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2883, - "mutability": "mutable", - "name": "subgraphDeploymentID", - "nameLocation": "618:20:26", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "610:28:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2882, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "610:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2885, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "656:6:26", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "648:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2884, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "648:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2887, - "mutability": "mutable", - "name": "createdAtEpoch", - "nameLocation": "724:14:26", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "716:22:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2886, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "716:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2889, - "mutability": "mutable", - "name": "closedAtEpoch", - "nameLocation": "785:13:26", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "777:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2888, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "777:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2891, - "mutability": "mutable", - "name": "collectedFees", - "nameLocation": "844:13:26", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "836:21:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2890, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "836:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2893, - "mutability": "mutable", - "name": "__DEPRECATED_effectiveAllocation", - "nameLocation": "912:32:26", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "904:40:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2892, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "904:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2895, - "mutability": "mutable", - "name": "accRewardsPerAllocatedToken", - "nameLocation": "1005:27:26", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "997:35:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2894, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "997:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2897, - "mutability": "mutable", - "name": "distributedRebates", - "nameLocation": "1083:18:26", - "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "1075:26:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2896, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1075:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Allocation", - "nameLocation": "564:10:26", - "nodeType": "StructDefinition", - "scope": 3022, - "src": "557:595:26", - "visibility": "public" - }, - { - "canonicalName": "IHorizonStakingExtension.AllocationState", - "documentation": { - "id": 2899, - "nodeType": "StructuredDocumentation", - "src": "1158:202:26", - "text": " @dev Possible states an allocation can be.\n States:\n - Null = indexer == address(0)\n - Active = not Null && tokens > 0\n - Closed = Active && closedAtEpoch != 0" - }, - "id": 2903, - "members": [ - { - "id": 2900, - "name": "Null", - "nameLocation": "1396:4:26", - "nodeType": "EnumValue", - "src": "1396:4:26" - }, - { - "id": 2901, - "name": "Active", - "nameLocation": "1410:6:26", - "nodeType": "EnumValue", - "src": "1410:6:26" - }, - { - "id": 2902, - "name": "Closed", - "nameLocation": "1426:6:26", - "nodeType": "EnumValue", - "src": "1426:6:26" - } - ], - "name": "AllocationState", - "nameLocation": "1370:15:26", - "nodeType": "EnumDefinition", - "src": "1365:73:26" - }, - { - "anonymous": false, - "documentation": { - "id": 2904, - "nodeType": "StructuredDocumentation", - "src": "1444:330:26", - "text": " @dev Emitted when `indexer` close an allocation in `epoch` for `allocationID`.\n An amount of `tokens` get unallocated from `subgraphDeploymentID`.\n This event also emits the POI (proof of indexing) submitted by the indexer.\n `isPublic` is true if the sender was someone other than the indexer." - }, - "eventSelector": "f6725dd105a6fc88bb79a6e4627f128577186c567a17c94818d201c2a4ce1403", - "id": 2922, - "name": "AllocationClosed", - "nameLocation": "1785:16:26", - "nodeType": "EventDefinition", - "parameters": { - "id": 2921, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2906, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "1827:7:26", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1811:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2905, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1811:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2908, - "indexed": true, - "mutability": "mutable", - "name": "subgraphDeploymentID", - "nameLocation": "1860:20:26", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1844:36:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2907, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1844:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2910, - "indexed": false, - "mutability": "mutable", - "name": "epoch", - "nameLocation": "1898:5:26", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1890:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2909, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1890:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2912, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1921:6:26", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1913:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2911, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1913:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2914, - "indexed": true, - "mutability": "mutable", - "name": "allocationID", - "nameLocation": "1953:12:26", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1937:28:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1937:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2916, - "indexed": false, - "mutability": "mutable", - "name": "sender", - "nameLocation": "1983:6:26", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1975:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2915, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1975:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2918, - "indexed": false, - "mutability": "mutable", - "name": "poi", - "nameLocation": "2007:3:26", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "1999:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2917, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1999:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2920, - "indexed": false, - "mutability": "mutable", - "name": "isPublic", - "nameLocation": "2025:8:26", - "nodeType": "VariableDeclaration", - "scope": 2922, - "src": "2020:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2919, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2020:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1801:238:26" - }, - "src": "1779:261:26" - }, - { - "anonymous": false, - "documentation": { - "id": 2923, - "nodeType": "StructuredDocumentation", - "src": "2046:508:26", - "text": " @dev Emitted when `indexer` collects a rebate on `subgraphDeploymentID` for `allocationID`.\n `epoch` is the protocol epoch the rebate was collected on\n The rebate is for `tokens` amount which are being provided by `assetHolder`; `queryFees`\n is the amount up for rebate after `curationFees` are distributed and `protocolTax` is burnt.\n `queryRebates` is the amount distributed to the `indexer` with `delegationFees` collected\n and sent to the delegation pool." - }, - "eventSelector": "f5ded07502b6feba4c13b19a0c6646efd4b4119f439bcbd49076e4f0ed1eec4b", - "id": 2947, - "name": "RebateCollected", - "nameLocation": "2565:15:26", - "nodeType": "EventDefinition", - "parameters": { - "id": 2946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2925, - "indexed": false, - "mutability": "mutable", - "name": "assetHolder", - "nameLocation": "2598:11:26", - "nodeType": "VariableDeclaration", - "scope": 2947, - "src": "2590:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2590:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2927, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "2635:7:26", - "nodeType": "VariableDeclaration", - "scope": 2947, - "src": "2619:23:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2926, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2619:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2929, - "indexed": true, - "mutability": "mutable", - "name": "subgraphDeploymentID", - "nameLocation": "2668:20:26", - "nodeType": "VariableDeclaration", - "scope": 2947, - "src": "2652:36:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2928, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2652:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2931, - "indexed": true, - "mutability": "mutable", - "name": "allocationID", - "nameLocation": "2714:12:26", - "nodeType": "VariableDeclaration", - "scope": 2947, - "src": "2698:28:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2930, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2698:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2933, - "indexed": false, - "mutability": "mutable", - "name": "epoch", - "nameLocation": "2744:5:26", - "nodeType": "VariableDeclaration", - "scope": 2947, - "src": "2736:13:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2736:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2935, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2767:6:26", - "nodeType": "VariableDeclaration", - "scope": 2947, - "src": "2759:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2934, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2759:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2937, - "indexed": false, - "mutability": "mutable", - "name": "protocolTax", - "nameLocation": "2791:11:26", - "nodeType": "VariableDeclaration", - "scope": 2947, - "src": "2783:19:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2936, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2783:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2939, - "indexed": false, - "mutability": "mutable", - "name": "curationFees", - "nameLocation": "2820:12:26", - "nodeType": "VariableDeclaration", - "scope": 2947, - "src": "2812:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2938, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2812:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2941, - "indexed": false, - "mutability": "mutable", - "name": "queryFees", - "nameLocation": "2850:9:26", - "nodeType": "VariableDeclaration", - "scope": 2947, - "src": "2842:17:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2940, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2842:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2943, - "indexed": false, - "mutability": "mutable", - "name": "queryRebates", - "nameLocation": "2877:12:26", - "nodeType": "VariableDeclaration", - "scope": 2947, - "src": "2869:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2942, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2869:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2945, - "indexed": false, - "mutability": "mutable", - "name": "delegationRewards", - "nameLocation": "2907:17:26", - "nodeType": "VariableDeclaration", - "scope": 2947, - "src": "2899:25:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2944, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2899:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2580:350:26" - }, - "src": "2559:372:26" - }, - { - "documentation": { - "id": 2948, - "nodeType": "StructuredDocumentation", - "src": "2937:381:26", - "text": " @notice Close an allocation and free the staked tokens.\n To be eligible for rewards a proof of indexing must be presented.\n Presenting a bad proof is subject to slashable condition.\n To opt out of rewards set _poi to 0x0\n @param allocationID The allocation identifier\n @param poi Proof of indexing submitted for the allocated period" - }, - "functionSelector": "44c32a61", - "id": 2955, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "closeAllocation", - "nameLocation": "3332:15:26", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2950, - "mutability": "mutable", - "name": "allocationID", - "nameLocation": "3356:12:26", - "nodeType": "VariableDeclaration", - "scope": 2955, - "src": "3348:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2949, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3348:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2952, - "mutability": "mutable", - "name": "poi", - "nameLocation": "3378:3:26", - "nodeType": "VariableDeclaration", - "scope": 2955, - "src": "3370:11:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2951, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3370:7:26", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3347:35:26" - }, - "returnParameters": { - "id": 2954, - "nodeType": "ParameterList", - "parameters": [], - "src": "3391:0:26" - }, - "scope": 3022, - "src": "3323:69:26", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2956, - "nodeType": "StructuredDocumentation", - "src": "3398:539:26", - "text": " @notice Collect query fees from state channels and assign them to an allocation.\n Funds received are only accepted from a valid sender.\n @dev To avoid reverting on the withdrawal from channel flow this function will:\n 1) Accept calls with zero tokens.\n 2) Accept calls after an allocation passed the dispute period, in that case, all\n the received tokens are burned.\n @param tokens Amount of tokens to collect\n @param allocationID Allocation where the tokens will be assigned" - }, - "functionSelector": "8d3c100a", - "id": 2963, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "collect", - "nameLocation": "3951:7:26", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2958, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "3967:6:26", - "nodeType": "VariableDeclaration", - "scope": 2963, - "src": "3959:14:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2957, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3959:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "mutability": "mutable", - "name": "allocationID", - "nameLocation": "3983:12:26", - "nodeType": "VariableDeclaration", - "scope": 2963, - "src": "3975:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3975:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3958:38:26" - }, - "returnParameters": { - "id": 2962, - "nodeType": "ParameterList", - "parameters": [], - "src": "4005:0:26" - }, - "scope": 3022, - "src": "3942:64:26", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2964, - "nodeType": "StructuredDocumentation", - "src": "4012:238:26", - "text": " @notice Return true if operator is allowed for indexer.\n @param operator Address of the operator\n @param indexer Address of the indexer\n @return True if operator is allowed for indexer, false otherwise" - }, - "functionSelector": "b6363cf2", - "id": 2973, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isOperator", - "nameLocation": "4264:10:26", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2966, - "mutability": "mutable", - "name": "operator", - "nameLocation": "4283:8:26", - "nodeType": "VariableDeclaration", - "scope": 2973, - "src": "4275:16:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2965, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4275:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2968, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "4301:7:26", - "nodeType": "VariableDeclaration", - "scope": 2973, - "src": "4293:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2967, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4293:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4274:35:26" - }, - "returnParameters": { - "id": 2972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2971, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2973, - "src": "4333:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2970, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4333:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "4332:6:26" - }, - "scope": 3022, - "src": "4255:84:26", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2974, - "nodeType": "StructuredDocumentation", - "src": "4345:169:26", - "text": " @notice Getter that returns if an indexer has any stake.\n @param indexer Address of the indexer\n @return True if indexer has staked tokens" - }, - "functionSelector": "e73e14bf", - "id": 2981, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "hasStake", - "nameLocation": "4528:8:26", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2976, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "4545:7:26", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "4537:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2975, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4537:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4536:17:26" - }, - "returnParameters": { - "id": 2980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2979, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2981, - "src": "4577:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2978, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4577:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "4576:6:26" - }, - "scope": 3022, - "src": "4519:64:26", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2982, - "nodeType": "StructuredDocumentation", - "src": "4589:179:26", - "text": " @notice Get the total amount of tokens staked by the indexer.\n @param indexer Address of the indexer\n @return Amount of tokens staked by the indexer" - }, - "functionSelector": "1787e69f", - "id": 2989, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getIndexerStakedTokens", - "nameLocation": "4782:22:26", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2985, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2984, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "4813:7:26", - "nodeType": "VariableDeclaration", - "scope": 2989, - "src": "4805:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4805:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4804:17:26" - }, - "returnParameters": { - "id": 2988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2987, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2989, - "src": "4845:7:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4845:7:26", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4844:9:26" - }, - "scope": 3022, - "src": "4773:81:26", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2990, - "nodeType": "StructuredDocumentation", - "src": "4860:151:26", - "text": " @notice Return the allocation by ID.\n @param allocationID Address used as allocation identifier\n @return Allocation data" - }, - "functionSelector": "0e022923", - "id": 2998, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAllocation", - "nameLocation": "5025:13:26", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2993, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2992, - "mutability": "mutable", - "name": "allocationID", - "nameLocation": "5047:12:26", - "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "5039:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2991, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5039:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5038:22:26" - }, - "returnParameters": { - "id": 2997, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2996, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "5084:17:26", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Allocation_$2898_memory_ptr", - "typeString": "struct IHorizonStakingExtension.Allocation" - }, - "typeName": { - "id": 2995, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 2994, - "name": "Allocation", - "nameLocations": [ - "5084:10:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2898, - "src": "5084:10:26" - }, - "referencedDeclaration": 2898, - "src": "5084:10:26", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Allocation_$2898_storage_ptr", - "typeString": "struct IHorizonStakingExtension.Allocation" - } - }, - "visibility": "internal" - } - ], - "src": "5083:19:26" - }, - "scope": 3022, - "src": "5016:87:26", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 2999, - "nodeType": "StructuredDocumentation", - "src": "5109:186:26", - "text": " @notice Return the current state of an allocation\n @param allocationID Allocation identifier\n @return AllocationState enum with the state of the allocation" - }, - "functionSelector": "98c657dc", - "id": 3007, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAllocationState", - "nameLocation": "5309:18:26", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3001, - "mutability": "mutable", - "name": "allocationID", - "nameLocation": "5336:12:26", - "nodeType": "VariableDeclaration", - "scope": 3007, - "src": "5328:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3000, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5328:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5327:22:26" - }, - "returnParameters": { - "id": 3006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3005, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3007, - "src": "5373:15:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_AllocationState_$2903", - "typeString": "enum IHorizonStakingExtension.AllocationState" - }, - "typeName": { - "id": 3004, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3003, - "name": "AllocationState", - "nameLocations": [ - "5373:15:26" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2903, - "src": "5373:15:26" - }, - "referencedDeclaration": 2903, - "src": "5373:15:26", - "typeDescriptions": { - "typeIdentifier": "t_enum$_AllocationState_$2903", - "typeString": "enum IHorizonStakingExtension.AllocationState" - } - }, - "visibility": "internal" - } - ], - "src": "5372:17:26" - }, - "scope": 3022, - "src": "5300:90:26", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3008, - "nodeType": "StructuredDocumentation", - "src": "5396:190:26", - "text": " @notice Return if allocationID is used.\n @param allocationID Address used as signer by the indexer for an allocation\n @return True if allocationID already used" - }, - "functionSelector": "f1d60d66", - "id": 3015, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isAllocation", - "nameLocation": "5600:12:26", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3010, - "mutability": "mutable", - "name": "allocationID", - "nameLocation": "5621:12:26", - "nodeType": "VariableDeclaration", - "scope": 3015, - "src": "5613:20:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3009, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5613:7:26", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5612:22:26" - }, - "returnParameters": { - "id": 3014, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3013, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3015, - "src": "5658:4:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3012, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5658:4:26", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "5657:6:26" - }, - "scope": 3022, - "src": "5591:73:26", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3016, - "nodeType": "StructuredDocumentation", - "src": "5670:103:26", - "text": " @notice Return the time in blocks to unstake\n @return Thawing period in blocks" - }, - "functionSelector": "c0641994", - "id": 3021, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "__DEPRECATED_getThawingPeriod", - "nameLocation": "5840:29:26", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3017, - "nodeType": "ParameterList", - "parameters": [], - "src": "5869:2:26" - }, - "returnParameters": { - "id": 3020, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3019, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3021, - "src": "5895:6:26", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3018, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "5895:6:26", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "5894:8:26" - }, - "scope": 3022, - "src": "5831:72:26", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 3023, - "src": "299:5606:26", - "usedErrors": [], - "usedEvents": [ - 2922, - 2947 - ] - } - ], - "src": "46:5860:26" - }, - "id": 26 - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol", - "exportedSymbols": { - "IGraphPayments": [ - 2211 - ], - "IHorizonStakingMain": [ - 3695 - ] - }, - "id": 3696, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3024, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:27" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "file": "../../interfaces/IGraphPayments.sol", - "id": 3026, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 3696, - "sourceUnit": 2212, - "src": "71:69:27", - "symbolAliases": [ - { - "foreign": { - "id": 3025, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "80:14:27", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IHorizonStakingMain", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 3027, - "nodeType": "StructuredDocumentation", - "src": "142:604:27", - "text": " @title Inferface for the {HorizonStaking} contract.\n @notice Provides functions for managing stake, provisions, delegations, and slashing.\n @dev Note that this interface only includes the functions implemented by {HorizonStaking} contract,\n and not those implemented by {HorizonStakingExtension}.\n Do not use this interface to interface with the {HorizonStaking} contract, use {IHorizonStaking} for\n the complete interface.\n @dev Most functions operate over {HorizonStaking} provisions. To uniquely identify a provision\n functions take `serviceProvider` and `verifier` addresses." - }, - "fullyImplemented": false, - "id": 3695, - "linearizedBaseContracts": [ - 3695 - ], - "name": "IHorizonStakingMain", - "nameLocation": "757:19:27", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 3028, - "nodeType": "StructuredDocumentation", - "src": "811:284:27", - "text": " @notice Emitted when a service provider unstakes tokens during the transition period.\n @param serviceProvider The address of the service provider\n @param tokens The amount of tokens unstaked\n @param until The block number until the stake is locked" - }, - "eventSelector": "a5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01", - "id": 3036, - "name": "StakeLocked", - "nameLocation": "1106:11:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3035, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3030, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1134:15:27", - "nodeType": "VariableDeclaration", - "scope": 3036, - "src": "1118:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3029, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1118:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3032, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1159:6:27", - "nodeType": "VariableDeclaration", - "scope": 3036, - "src": "1151:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3031, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1151:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3034, - "indexed": false, - "mutability": "mutable", - "name": "until", - "nameLocation": "1175:5:27", - "nodeType": "VariableDeclaration", - "scope": 3036, - "src": "1167:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3033, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1167:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1117:64:27" - }, - "src": "1100:82:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3037, - "nodeType": "StructuredDocumentation", - "src": "1188:223:27", - "text": " @notice Emitted when a service provider withdraws tokens during the transition period.\n @param serviceProvider The address of the service provider\n @param tokens The amount of tokens withdrawn" - }, - "eventSelector": "8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc", - "id": 3043, - "name": "StakeWithdrawn", - "nameLocation": "1422:14:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3042, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3039, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1453:15:27", - "nodeType": "VariableDeclaration", - "scope": 3043, - "src": "1437:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3038, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1437:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3041, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "1478:6:27", - "nodeType": "VariableDeclaration", - "scope": 3043, - "src": "1470:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3040, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1470:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1436:49:27" - }, - "src": "1416:70:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3044, - "nodeType": "StructuredDocumentation", - "src": "1524:537:27", - "text": " @notice Emitted when a service provider provisions staked tokens to a verifier.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param tokens The amount of tokens provisioned\n @param maxVerifierCut The maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves when slashing\n @param thawingPeriod The period in seconds that the tokens will be thawing before they can be removed from the provision" - }, - "eventSelector": "88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc25", - "id": 3056, - "name": "ProvisionCreated", - "nameLocation": "2072:16:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3055, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3046, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "2114:15:27", - "nodeType": "VariableDeclaration", - "scope": 3056, - "src": "2098:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2098:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3048, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2155:8:27", - "nodeType": "VariableDeclaration", - "scope": 3056, - "src": "2139:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3047, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2139:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3050, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2181:6:27", - "nodeType": "VariableDeclaration", - "scope": 3056, - "src": "2173:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3049, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2173:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3052, - "indexed": false, - "mutability": "mutable", - "name": "maxVerifierCut", - "nameLocation": "2204:14:27", - "nodeType": "VariableDeclaration", - "scope": 3056, - "src": "2197:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3051, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2197:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3054, - "indexed": false, - "mutability": "mutable", - "name": "thawingPeriod", - "nameLocation": "2235:13:27", - "nodeType": "VariableDeclaration", - "scope": 3056, - "src": "2228:20:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3053, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2228:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "2088:166:27" - }, - "src": "2066:189:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3057, - "nodeType": "StructuredDocumentation", - "src": "2261:274:27", - "text": " @notice Emitted whenever staked tokens are added to an existing provision\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param tokens The amount of tokens added to the provision" - }, - "eventSelector": "eaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc234745", - "id": 3065, - "name": "ProvisionIncreased", - "nameLocation": "2546:18:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3059, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "2581:15:27", - "nodeType": "VariableDeclaration", - "scope": 3065, - "src": "2565:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2565:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2614:8:27", - "nodeType": "VariableDeclaration", - "scope": 3065, - "src": "2598:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3060, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2598:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3063, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2632:6:27", - "nodeType": "VariableDeclaration", - "scope": 3065, - "src": "2624:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2624:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2564:75:27" - }, - "src": "2540:100:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3066, - "nodeType": "StructuredDocumentation", - "src": "2646:255:27", - "text": " @notice Emitted when a service provider thaws tokens from a provision.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param tokens The amount of tokens thawed" - }, - "eventSelector": "3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa", - "id": 3074, - "name": "ProvisionThawed", - "nameLocation": "2912:15:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3073, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3068, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "2944:15:27", - "nodeType": "VariableDeclaration", - "scope": 3074, - "src": "2928:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3067, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2928:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3070, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "2977:8:27", - "nodeType": "VariableDeclaration", - "scope": 3074, - "src": "2961:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2961:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3072, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2995:6:27", - "nodeType": "VariableDeclaration", - "scope": 3074, - "src": "2987:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2987:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2927:75:27" - }, - "src": "2906:97:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3075, - "nodeType": "StructuredDocumentation", - "src": "3009:258:27", - "text": " @notice Emitted when a service provider removes tokens from a provision.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param tokens The amount of tokens removed" - }, - "eventSelector": "9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d", - "id": 3083, - "name": "TokensDeprovisioned", - "nameLocation": "3278:19:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3082, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3077, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3314:15:27", - "nodeType": "VariableDeclaration", - "scope": 3083, - "src": "3298:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3076, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3298:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3079, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "3347:8:27", - "nodeType": "VariableDeclaration", - "scope": 3083, - "src": "3331:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3078, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3331:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "3365:6:27", - "nodeType": "VariableDeclaration", - "scope": 3083, - "src": "3357:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3080, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3357:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3297:75:27" - }, - "src": "3272:101:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3084, - "nodeType": "StructuredDocumentation", - "src": "3379:512:27", - "text": " @notice Emitted when a service provider stages a provision parameter update.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param maxVerifierCut The proposed maximum cut, expressed in PPM of the slashed amount, that a verifier can take for\n themselves when slashing\n @param thawingPeriod The proposed period in seconds that the tokens will be thawing before they can be removed from\n the provision" - }, - "eventSelector": "e89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba", - "id": 3094, - "name": "ProvisionParametersStaged", - "nameLocation": "3902:25:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3093, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3086, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "3953:15:27", - "nodeType": "VariableDeclaration", - "scope": 3094, - "src": "3937:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3937:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3088, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "3994:8:27", - "nodeType": "VariableDeclaration", - "scope": 3094, - "src": "3978:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3978:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3090, - "indexed": false, - "mutability": "mutable", - "name": "maxVerifierCut", - "nameLocation": "4019:14:27", - "nodeType": "VariableDeclaration", - "scope": 3094, - "src": "4012:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3089, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4012:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3092, - "indexed": false, - "mutability": "mutable", - "name": "thawingPeriod", - "nameLocation": "4050:13:27", - "nodeType": "VariableDeclaration", - "scope": 3094, - "src": "4043:20:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3091, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4043:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3927:142:27" - }, - "src": "3896:174:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3095, - "nodeType": "StructuredDocumentation", - "src": "4076:503:27", - "text": " @notice Emitted when a service provider accepts a staged provision parameter update.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param maxVerifierCut The new maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves\n when slashing\n @param thawingPeriod The new period in seconds that the tokens will be thawing before they can be removed from the provision" - }, - "eventSelector": "a4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c6", - "id": 3105, - "name": "ProvisionParametersSet", - "nameLocation": "4590:22:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3104, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3097, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "4638:15:27", - "nodeType": "VariableDeclaration", - "scope": 3105, - "src": "4622:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3096, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4622:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3099, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "4679:8:27", - "nodeType": "VariableDeclaration", - "scope": 3105, - "src": "4663:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3098, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4663:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3101, - "indexed": false, - "mutability": "mutable", - "name": "maxVerifierCut", - "nameLocation": "4704:14:27", - "nodeType": "VariableDeclaration", - "scope": 3105, - "src": "4697:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3100, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4697:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3103, - "indexed": false, - "mutability": "mutable", - "name": "thawingPeriod", - "nameLocation": "4735:13:27", - "nodeType": "VariableDeclaration", - "scope": 3105, - "src": "4728:20:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3102, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4728:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "4612:142:27" - }, - "src": "4584:171:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3106, - "nodeType": "StructuredDocumentation", - "src": "4761:349:27", - "text": " @dev Emitted when an operator is allowed or denied by a service provider for a particular verifier\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param operator The address of the operator\n @param allowed Whether the operator is allowed or denied" - }, - "eventSelector": "aa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f", - "id": 3116, - "name": "OperatorSet", - "nameLocation": "5121:11:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3108, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "5158:15:27", - "nodeType": "VariableDeclaration", - "scope": 3116, - "src": "5142:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5142:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3110, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "5199:8:27", - "nodeType": "VariableDeclaration", - "scope": 3116, - "src": "5183:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3109, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5183:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3112, - "indexed": true, - "mutability": "mutable", - "name": "operator", - "nameLocation": "5233:8:27", - "nodeType": "VariableDeclaration", - "scope": 3116, - "src": "5217:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5217:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3114, - "indexed": false, - "mutability": "mutable", - "name": "allowed", - "nameLocation": "5256:7:27", - "nodeType": "VariableDeclaration", - "scope": 3116, - "src": "5251:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3113, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5251:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "5132:137:27" - }, - "src": "5115:155:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3117, - "nodeType": "StructuredDocumentation", - "src": "5307:305:27", - "text": " @notice Emitted when a provision is slashed by a verifier.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param tokens The amount of tokens slashed (note this only represents service provider's slashed stake)" - }, - "eventSelector": "e7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3", - "id": 3125, - "name": "ProvisionSlashed", - "nameLocation": "5623:16:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3124, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3119, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "5656:15:27", - "nodeType": "VariableDeclaration", - "scope": 3125, - "src": "5640:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3118, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5640:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3121, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "5689:8:27", - "nodeType": "VariableDeclaration", - "scope": 3125, - "src": "5673:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3120, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5673:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3123, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "5707:6:27", - "nodeType": "VariableDeclaration", - "scope": 3125, - "src": "5699:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5699:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5639:75:27" - }, - "src": "5617:98:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3126, - "nodeType": "StructuredDocumentation", - "src": "5721:310:27", - "text": " @notice Emitted when a delegation pool is slashed by a verifier.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param tokens The amount of tokens slashed (note this only represents delegation pool's slashed stake)" - }, - "eventSelector": "c5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b771", - "id": 3134, - "name": "DelegationSlashed", - "nameLocation": "6042:17:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3128, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "6076:15:27", - "nodeType": "VariableDeclaration", - "scope": 3134, - "src": "6060:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3127, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6060:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3130, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "6109:8:27", - "nodeType": "VariableDeclaration", - "scope": 3134, - "src": "6093:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3129, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6093:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3132, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "6127:6:27", - "nodeType": "VariableDeclaration", - "scope": 3134, - "src": "6119:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6119:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6059:75:27" - }, - "src": "6036:99:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3135, - "nodeType": "StructuredDocumentation", - "src": "6141:441:27", - "text": " @notice Emitted when a delegation pool would have been slashed by a verifier, but the slashing was skipped\n because delegation slashing global parameter is not enabled.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param tokens The amount of tokens that would have been slashed (note this only represents delegation pool's slashed stake)" - }, - "eventSelector": "dce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b24", - "id": 3143, - "name": "DelegationSlashingSkipped", - "nameLocation": "6593:25:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3137, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "6635:15:27", - "nodeType": "VariableDeclaration", - "scope": 3143, - "src": "6619:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6619:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3139, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "6668:8:27", - "nodeType": "VariableDeclaration", - "scope": 3143, - "src": "6652:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6652:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3141, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "6686:6:27", - "nodeType": "VariableDeclaration", - "scope": 3143, - "src": "6678:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3140, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6678:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6618:75:27" - }, - "src": "6587:107:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3144, - "nodeType": "StructuredDocumentation", - "src": "6700:357:27", - "text": " @notice Emitted when the verifier cut is sent to the verifier after slashing a provision.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param destination The address where the verifier cut is sent\n @param tokens The amount of tokens sent to the verifier" - }, - "eventSelector": "95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d582", - "id": 3154, - "name": "VerifierTokensSent", - "nameLocation": "7068:18:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3146, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "7112:15:27", - "nodeType": "VariableDeclaration", - "scope": 3154, - "src": "7096:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3145, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7096:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3148, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "7153:8:27", - "nodeType": "VariableDeclaration", - "scope": 3154, - "src": "7137:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3147, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7137:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3150, - "indexed": true, - "mutability": "mutable", - "name": "destination", - "nameLocation": "7187:11:27", - "nodeType": "VariableDeclaration", - "scope": 3154, - "src": "7171:27:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7171:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3152, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "7216:6:27", - "nodeType": "VariableDeclaration", - "scope": 3154, - "src": "7208:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3151, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7208:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7086:142:27" - }, - "src": "7062:167:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3155, - "nodeType": "StructuredDocumentation", - "src": "7268:298:27", - "text": " @notice Emitted when tokens are delegated to a provision.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param delegator The address of the delegator\n @param tokens The amount of tokens delegated" - }, - "eventSelector": "eaefa9a428d7aa0b99b7ac8aec4885d6304a78cc8d6a78a6c99dd29e9693cdf4", - "id": 3165, - "name": "TokensDelegated", - "nameLocation": "7577:15:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3157, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "7618:15:27", - "nodeType": "VariableDeclaration", - "scope": 3165, - "src": "7602:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7602:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3159, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "7659:8:27", - "nodeType": "VariableDeclaration", - "scope": 3165, - "src": "7643:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7643:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3161, - "indexed": true, - "mutability": "mutable", - "name": "delegator", - "nameLocation": "7693:9:27", - "nodeType": "VariableDeclaration", - "scope": 3165, - "src": "7677:25:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7677:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3163, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "7720:6:27", - "nodeType": "VariableDeclaration", - "scope": 3165, - "src": "7712:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7712:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7592:140:27" - }, - "src": "7571:162:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3166, - "nodeType": "StructuredDocumentation", - "src": "7739:343:27", - "text": " @notice Emitted when a delegator undelegates tokens from a provision and starts\n thawing them.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param delegator The address of the delegator\n @param tokens The amount of tokens undelegated" - }, - "eventSelector": "50d19209821f5d69c0884b007c6ba9ffde612c0cff5dd3234d0c6baf2c4556aa", - "id": 3176, - "name": "TokensUndelegated", - "nameLocation": "8093:17:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3168, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "8136:15:27", - "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "8120:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8120:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3170, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "8177:8:27", - "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "8161:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8161:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3172, - "indexed": true, - "mutability": "mutable", - "name": "delegator", - "nameLocation": "8211:9:27", - "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "8195:25:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3171, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8195:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3174, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "8238:6:27", - "nodeType": "VariableDeclaration", - "scope": 3176, - "src": "8230:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8230:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8110:140:27" - }, - "src": "8087:164:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3177, - "nodeType": "StructuredDocumentation", - "src": "8257:322:27", - "text": " @notice Emitted when a delegator withdraws tokens from a provision after thawing.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param delegator The address of the delegator\n @param tokens The amount of tokens withdrawn" - }, - "eventSelector": "305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e", - "id": 3187, - "name": "DelegatedTokensWithdrawn", - "nameLocation": "8590:24:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3179, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "8640:15:27", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "8624:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8624:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3181, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "8681:8:27", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "8665:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3180, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8665:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3183, - "indexed": true, - "mutability": "mutable", - "name": "delegator", - "nameLocation": "8715:9:27", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "8699:25:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3182, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8699:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3185, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "8742:6:27", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "8734:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8734:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8614:140:27" - }, - "src": "8584:171:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3188, - "nodeType": "StructuredDocumentation", - "src": "8761:257:27", - "text": " @notice Emitted when tokens are added to a delegation pool's reserve.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param tokens The amount of tokens withdrawn" - }, - "eventSelector": "673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a1511530", - "id": 3196, - "name": "TokensToDelegationPoolAdded", - "nameLocation": "9029:27:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3190, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "9073:15:27", - "nodeType": "VariableDeclaration", - "scope": 3196, - "src": "9057:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3189, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9057:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3192, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "9106:8:27", - "nodeType": "VariableDeclaration", - "scope": 3196, - "src": "9090:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3191, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9090:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3194, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "9124:6:27", - "nodeType": "VariableDeclaration", - "scope": 3196, - "src": "9116:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9116:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9056:75:27" - }, - "src": "9023:109:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3197, - "nodeType": "StructuredDocumentation", - "src": "9138:365:27", - "text": " @notice Emitted when a service provider sets delegation fee cuts for a verifier.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param paymentType The payment type for which the fee cut is set, as defined in {IGraphPayments}\n @param feeCut The fee cut set, in PPM" - }, - "eventSelector": "3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c5220", - "id": 3208, - "name": "DelegationFeeCutSet", - "nameLocation": "9514:19:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3207, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3199, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "9559:15:27", - "nodeType": "VariableDeclaration", - "scope": 3208, - "src": "9543:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3198, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9543:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3201, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "9600:8:27", - "nodeType": "VariableDeclaration", - "scope": 3208, - "src": "9584:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3200, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9584:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3204, - "indexed": true, - "mutability": "mutable", - "name": "paymentType", - "nameLocation": "9654:11:27", - "nodeType": "VariableDeclaration", - "scope": 3208, - "src": "9618:47:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "typeName": { - "id": 3203, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3202, - "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "9618:14:27", - "9633:12:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2166, - "src": "9618:27:27" - }, - "referencedDeclaration": 2166, - "src": "9618:27:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3206, - "indexed": false, - "mutability": "mutable", - "name": "feeCut", - "nameLocation": "9683:6:27", - "nodeType": "VariableDeclaration", - "scope": 3208, - "src": "9675:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3205, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9675:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9533:162:27" - }, - "src": "9508:188:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3209, - "nodeType": "StructuredDocumentation", - "src": "9732:535:27", - "text": " @notice Emitted when a thaw request is created.\n @dev Can be emitted by the service provider when thawing stake or by the delegator when undelegating.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param owner The address of the owner of the thaw request.\n @param shares The amount of shares being thawed\n @param thawingUntil The timestamp until the stake is thawed\n @param thawRequestId The ID of the thaw request" - }, - "eventSelector": "434422e55cc9ab3bcca23cbf515724bbad83af8dd645832a1abd3db5e641dea5", - "id": 3223, - "name": "ThawRequestCreated", - "nameLocation": "10278:18:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3222, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3211, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "10322:15:27", - "nodeType": "VariableDeclaration", - "scope": 3223, - "src": "10306:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3210, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3213, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "10363:8:27", - "nodeType": "VariableDeclaration", - "scope": 3223, - "src": "10347:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10347:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3215, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "10397:5:27", - "nodeType": "VariableDeclaration", - "scope": 3223, - "src": "10381:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3214, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10381:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3217, - "indexed": false, - "mutability": "mutable", - "name": "shares", - "nameLocation": "10420:6:27", - "nodeType": "VariableDeclaration", - "scope": 3223, - "src": "10412:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10412:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3219, - "indexed": false, - "mutability": "mutable", - "name": "thawingUntil", - "nameLocation": "10443:12:27", - "nodeType": "VariableDeclaration", - "scope": 3223, - "src": "10436:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3218, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "10436:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3221, - "indexed": false, - "mutability": "mutable", - "name": "thawRequestId", - "nameLocation": "10473:13:27", - "nodeType": "VariableDeclaration", - "scope": 3223, - "src": "10465:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3220, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10465:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "10296:196:27" - }, - "src": "10272:221:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3224, - "nodeType": "StructuredDocumentation", - "src": "10499:418:27", - "text": " @notice Emitted when a thaw request is fulfilled, meaning the stake is released.\n @param thawRequestId The ID of the thaw request\n @param tokens The amount of tokens being released\n @param shares The amount of shares being released\n @param thawingUntil The timestamp until the stake has thawed\n @param valid Whether the thaw request was valid at the time of fulfillment" - }, - "eventSelector": "be7f1ad13b07d1f0e9574e97c844204d5433e4ab98133a1f0ce257764a6abeb7", - "id": 3236, - "name": "ThawRequestFulfilled", - "nameLocation": "10928:20:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3235, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3226, - "indexed": true, - "mutability": "mutable", - "name": "thawRequestId", - "nameLocation": "10974:13:27", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "10958:29:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3225, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10958:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3228, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "11005:6:27", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "10997:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10997:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3230, - "indexed": false, - "mutability": "mutable", - "name": "shares", - "nameLocation": "11029:6:27", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "11021:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3229, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11021:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3232, - "indexed": false, - "mutability": "mutable", - "name": "thawingUntil", - "nameLocation": "11052:12:27", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "11045:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3231, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "11045:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3234, - "indexed": false, - "mutability": "mutable", - "name": "valid", - "nameLocation": "11079:5:27", - "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "11074:10:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3233, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11074:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "10948:142:27" - }, - "src": "10922:169:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3237, - "nodeType": "StructuredDocumentation", - "src": "11097:400:27", - "text": " @notice Emitted when a series of thaw requests are fulfilled.\n @param serviceProvider The address of the service provider\n @param verifier The address of the verifier\n @param owner The address of the owner of the thaw requests\n @param thawRequestsFulfilled The number of thaw requests fulfilled\n @param tokens The total amount of tokens being released" - }, - "eventSelector": "9de822a9c144d03cad4a18bc322e9a3d91ffa99463d22e5c25da2a41d4c354d5", - "id": 3249, - "name": "ThawRequestsFulfilled", - "nameLocation": "11508:21:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3239, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "11555:15:27", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "11539:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3238, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11539:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3241, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "11596:8:27", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "11580:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3240, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11580:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3243, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "11630:5:27", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "11614:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11614:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3245, - "indexed": false, - "mutability": "mutable", - "name": "thawRequestsFulfilled", - "nameLocation": "11653:21:27", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "11645:29:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11645:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3247, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "11692:6:27", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "11684:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3246, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11684:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11529:175:27" - }, - "src": "11502:203:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3250, - "nodeType": "StructuredDocumentation", - "src": "11744:166:27", - "text": " @notice Emitted when the global maximum thawing period allowed for provisions is set.\n @param maxThawingPeriod The new maximum thawing period" - }, - "eventSelector": "e8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f", - "id": 3254, - "name": "MaxThawingPeriodSet", - "nameLocation": "11921:19:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3252, - "indexed": false, - "mutability": "mutable", - "name": "maxThawingPeriod", - "nameLocation": "11948:16:27", - "nodeType": "VariableDeclaration", - "scope": 3254, - "src": "11941:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3251, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "11941:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "11940:25:27" - }, - "src": "11915:51:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3255, - "nodeType": "StructuredDocumentation", - "src": "11972:228:27", - "text": " @notice Emitted when a verifier is allowed or disallowed to be used for locked provisions.\n @param verifier The address of the verifier\n @param allowed Whether the verifier is allowed or disallowed" - }, - "eventSelector": "4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb", - "id": 3261, - "name": "AllowedLockedVerifierSet", - "nameLocation": "12211:24:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3260, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3257, - "indexed": true, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "12252:8:27", - "nodeType": "VariableDeclaration", - "scope": 3261, - "src": "12236:24:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3256, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12236:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3259, - "indexed": false, - "mutability": "mutable", - "name": "allowed", - "nameLocation": "12267:7:27", - "nodeType": "VariableDeclaration", - "scope": 3261, - "src": "12262:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3258, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12262:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "12235:40:27" - }, - "src": "12205:71:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3262, - "nodeType": "StructuredDocumentation", - "src": "12282:145:27", - "text": " @notice Emitted when the legacy global thawing period is set to zero.\n @dev This marks the end of the transition period." - }, - "eventSelector": "93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d109", - "id": 3264, - "name": "ThawingPeriodCleared", - "nameLocation": "12438:20:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3263, - "nodeType": "ParameterList", - "parameters": [], - "src": "12458:2:27" - }, - "src": "12432:29:27" - }, - { - "anonymous": false, - "documentation": { - "id": 3265, - "nodeType": "StructuredDocumentation", - "src": "12467:157:27", - "text": " @notice Emitted when the delegation slashing global flag is set.\n @param enabled Whether delegation slashing is enabled or disabled." - }, - "eventSelector": "78bd9090b1ff40fc9c2d6056a25fb880530a766f5b0595d77f3cf33fe189c194", - "id": 3269, - "name": "DelegationSlashingEnabled", - "nameLocation": "12635:25:27", - "nodeType": "EventDefinition", - "parameters": { - "id": 3268, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3267, - "indexed": false, - "mutability": "mutable", - "name": "enabled", - "nameLocation": "12666:7:27", - "nodeType": "VariableDeclaration", - "scope": 3269, - "src": "12661:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3266, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12661:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "12660:14:27" - }, - "src": "12629:46:27" - }, - { - "documentation": { - "id": 3270, - "nodeType": "StructuredDocumentation", - "src": "12707:84:27", - "text": " @notice Thrown when operating a zero token amount is not allowed." - }, - "errorSelector": "14549cb6", - "id": 3272, - "name": "HorizonStakingInvalidZeroTokens", - "nameLocation": "12802:31:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3271, - "nodeType": "ParameterList", - "parameters": [], - "src": "12833:2:27" - }, - "src": "12796:40:27" - }, - { - "documentation": { - "id": 3273, - "nodeType": "StructuredDocumentation", - "src": "12842:207:27", - "text": " @notice Thrown when a minimum token amount is required to operate but it's not met.\n @param tokens The actual token amount\n @param minRequired The minimum required token amount" - }, - "errorSelector": "b0f57356", - "id": 3279, - "name": "HorizonStakingInsufficientTokens", - "nameLocation": "13060:32:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3275, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "13101:6:27", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "13093:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3274, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13093:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3277, - "mutability": "mutable", - "name": "minRequired", - "nameLocation": "13117:11:27", - "nodeType": "VariableDeclaration", - "scope": 3279, - "src": "13109:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13109:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13092:37:27" - }, - "src": "13054:76:27" - }, - { - "documentation": { - "id": 3280, - "nodeType": "StructuredDocumentation", - "src": "13136:201:27", - "text": " @notice Thrown when the amount of tokens exceeds the maximum allowed to operate.\n @param tokens The actual token amount\n @param maxTokens The maximum allowed token amount" - }, - "errorSelector": "bd45355c", - "id": 3286, - "name": "HorizonStakingTooManyTokens", - "nameLocation": "13348:27:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3282, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "13384:6:27", - "nodeType": "VariableDeclaration", - "scope": 3286, - "src": "13376:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3281, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13376:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3284, - "mutability": "mutable", - "name": "maxTokens", - "nameLocation": "13400:9:27", - "nodeType": "VariableDeclaration", - "scope": 3286, - "src": "13392:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3283, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13392:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13375:35:27" - }, - "src": "13342:69:27" - }, - { - "documentation": { - "id": 3287, - "nodeType": "StructuredDocumentation", - "src": "13449:201:27", - "text": " @notice Thrown when attempting to operate with a provision that does not exist.\n @param serviceProvider The service provider address\n @param verifier The verifier address" - }, - "errorSelector": "6159d41a", - "id": 3293, - "name": "HorizonStakingInvalidProvision", - "nameLocation": "13661:30:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3292, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3289, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "13700:15:27", - "nodeType": "VariableDeclaration", - "scope": 3293, - "src": "13692:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3288, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13692:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3291, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "13725:8:27", - "nodeType": "VariableDeclaration", - "scope": 3293, - "src": "13717:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3290, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13717:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "13691:43:27" - }, - "src": "13655:80:27" - }, - { - "documentation": { - "id": 3294, - "nodeType": "StructuredDocumentation", - "src": "13741:237:27", - "text": " @notice Thrown when the caller is not authorized to operate on a provision.\n @param caller The caller address\n @param serviceProvider The service provider address\n @param verifier The verifier address" - }, - "errorSelector": "c76b97b0", - "id": 3302, - "name": "HorizonStakingNotAuthorized", - "nameLocation": "13989:27:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3301, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3296, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "14025:15:27", - "nodeType": "VariableDeclaration", - "scope": 3302, - "src": "14017:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3295, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14017:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3298, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "14050:8:27", - "nodeType": "VariableDeclaration", - "scope": 3302, - "src": "14042:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3297, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14042:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3300, - "mutability": "mutable", - "name": "caller", - "nameLocation": "14068:6:27", - "nodeType": "VariableDeclaration", - "scope": 3302, - "src": "14060:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3299, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14060:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "14016:59:27" - }, - "src": "13983:93:27" - }, - { - "documentation": { - "id": 3303, - "nodeType": "StructuredDocumentation", - "src": "14082:163:27", - "text": " @notice Thrown when attempting to create a provision with an invalid maximum verifier cut.\n @param maxVerifierCut The maximum verifier cut" - }, - "errorSelector": "29bff5f5", - "id": 3307, - "name": "HorizonStakingInvalidMaxVerifierCut", - "nameLocation": "14256:35:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3306, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3305, - "mutability": "mutable", - "name": "maxVerifierCut", - "nameLocation": "14299:14:27", - "nodeType": "VariableDeclaration", - "scope": 3307, - "src": "14292:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3304, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "14292:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "14291:23:27" - }, - "src": "14250:65:27" - }, - { - "documentation": { - "id": 3308, - "nodeType": "StructuredDocumentation", - "src": "14321:217:27", - "text": " @notice Thrown when attempting to create a provision with an invalid thawing period.\n @param thawingPeriod The thawing period\n @param maxThawingPeriod The maximum `thawingPeriod` allowed" - }, - "errorSelector": "ee5602e1", - "id": 3314, - "name": "HorizonStakingInvalidThawingPeriod", - "nameLocation": "14549:34:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3313, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3310, - "mutability": "mutable", - "name": "thawingPeriod", - "nameLocation": "14591:13:27", - "nodeType": "VariableDeclaration", - "scope": 3314, - "src": "14584:20:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3309, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "14584:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3312, - "mutability": "mutable", - "name": "maxThawingPeriod", - "nameLocation": "14613:16:27", - "nodeType": "VariableDeclaration", - "scope": 3314, - "src": "14606:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3311, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "14606:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "14583:47:27" - }, - "src": "14543:88:27" - }, - { - "documentation": { - "id": 3315, - "nodeType": "StructuredDocumentation", - "src": "14637:120:27", - "text": " @notice Thrown when attempting to create a provision for a data service that already has a provision." - }, - "errorSelector": "56a8581a", - "id": 3317, - "name": "HorizonStakingProvisionAlreadyExists", - "nameLocation": "14768:36:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [], - "src": "14804:2:27" - }, - "src": "14762:45:27" - }, - { - "documentation": { - "id": 3318, - "nodeType": "StructuredDocumentation", - "src": "14841:202:27", - "text": " @notice Thrown when the service provider has insufficient idle stake to operate.\n @param tokens The actual token amount\n @param minTokens The minimum required token amount" - }, - "errorSelector": "ccaf28a9", - "id": 3324, - "name": "HorizonStakingInsufficientIdleStake", - "nameLocation": "15054:35:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3323, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3320, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "15098:6:27", - "nodeType": "VariableDeclaration", - "scope": 3324, - "src": "15090:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3319, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15090:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3322, - "mutability": "mutable", - "name": "minTokens", - "nameLocation": "15114:9:27", - "nodeType": "VariableDeclaration", - "scope": 3324, - "src": "15106:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3321, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15106:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "15089:35:27" - }, - "src": "15048:77:27" - }, - { - "documentation": { - "id": 3325, - "nodeType": "StructuredDocumentation", - "src": "15131:265:27", - "text": " @notice Thrown during the transition period when the service provider has insufficient stake to\n cover their existing legacy allocations.\n @param tokens The actual token amount\n @param minTokens The minimum required token amount" - }, - "errorSelector": "5dd9b9c7", - "id": 3331, - "name": "HorizonStakingInsufficientStakeForLegacyAllocations", - "nameLocation": "15407:51:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3330, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3327, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "15467:6:27", - "nodeType": "VariableDeclaration", - "scope": 3331, - "src": "15459:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3326, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15459:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3329, - "mutability": "mutable", - "name": "minTokens", - "nameLocation": "15483:9:27", - "nodeType": "VariableDeclaration", - "scope": 3331, - "src": "15475:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3328, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15475:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "15458:35:27" - }, - "src": "15401:93:27" - }, - { - "documentation": { - "id": 3332, - "nodeType": "StructuredDocumentation", - "src": "15533:199:27", - "text": " @notice Thrown when delegation shares obtained are below the expected amount.\n @param shares The actual share amount\n @param minShares The minimum required share amount" - }, - "errorSelector": "5d88e8d1", - "id": 3338, - "name": "HorizonStakingSlippageProtection", - "nameLocation": "15743:32:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3337, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3334, - "mutability": "mutable", - "name": "shares", - "nameLocation": "15784:6:27", - "nodeType": "VariableDeclaration", - "scope": 3338, - "src": "15776:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15776:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3336, - "mutability": "mutable", - "name": "minShares", - "nameLocation": "15800:9:27", - "nodeType": "VariableDeclaration", - "scope": 3338, - "src": "15792:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15792:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "15775:35:27" - }, - "src": "15737:74:27" - }, - { - "documentation": { - "id": 3339, - "nodeType": "StructuredDocumentation", - "src": "15817:84:27", - "text": " @notice Thrown when operating a zero share amount is not allowed." - }, - "errorSelector": "7318ad99", - "id": 3341, - "name": "HorizonStakingInvalidZeroShares", - "nameLocation": "15912:31:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3340, - "nodeType": "ParameterList", - "parameters": [], - "src": "15943:2:27" - }, - "src": "15906:40:27" - }, - { - "documentation": { - "id": 3342, - "nodeType": "StructuredDocumentation", - "src": "15952:205:27", - "text": " @notice Thrown when a minimum share amount is required to operate but it's not met.\n @param shares The actual share amount\n @param minShares The minimum required share amount" - }, - "errorSelector": "ab997935", - "id": 3348, - "name": "HorizonStakingInsufficientShares", - "nameLocation": "16168:32:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3347, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3344, - "mutability": "mutable", - "name": "shares", - "nameLocation": "16209:6:27", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "16201:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3343, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16201:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3346, - "mutability": "mutable", - "name": "minShares", - "nameLocation": "16225:9:27", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "16217:17:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3345, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16217:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "16200:35:27" - }, - "src": "16162:74:27" - }, - { - "documentation": { - "id": 3349, - "nodeType": "StructuredDocumentation", - "src": "16242:211:27", - "text": " @notice Thrown when as a result of slashing delegation pool has no tokens but has shares.\n @param serviceProvider The service provider address\n @param verifier The verifier address" - }, - "errorSelector": "cc276f78", - "id": 3355, - "name": "HorizonStakingInvalidDelegationPoolState", - "nameLocation": "16464:40:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3351, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "16513:15:27", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "16505:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16505:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3353, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "16538:8:27", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "16530:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16530:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "16504:43:27" - }, - "src": "16458:90:27" - }, - { - "documentation": { - "id": 3356, - "nodeType": "StructuredDocumentation", - "src": "16554:207:27", - "text": " @notice Thrown when attempting to operate with a delegation pool that does not exist.\n @param serviceProvider The service provider address\n @param verifier The verifier address" - }, - "errorSelector": "b6a70b3b", - "id": 3362, - "name": "HorizonStakingInvalidDelegationPool", - "nameLocation": "16772:35:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3358, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "16816:15:27", - "nodeType": "VariableDeclaration", - "scope": 3362, - "src": "16808:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3357, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16808:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3360, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "16841:8:27", - "nodeType": "VariableDeclaration", - "scope": 3362, - "src": "16833:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3359, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16833:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "16807:43:27" - }, - "src": "16766:85:27" - }, - { - "documentation": { - "id": 3363, - "nodeType": "StructuredDocumentation", - "src": "16857:108:27", - "text": " @notice Thrown when attempting to undelegate with a beneficiary that is the zero address." - }, - "errorSelector": "f6ed23b4", - "id": 3365, - "name": "HorizonStakingInvalidBeneficiaryZeroAddress", - "nameLocation": "16976:43:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3364, - "nodeType": "ParameterList", - "parameters": [], - "src": "17019:2:27" - }, - "src": "16970:52:27" - }, - { - "documentation": { - "id": 3366, - "nodeType": "StructuredDocumentation", - "src": "17028:113:27", - "text": " @notice Thrown when attempting to redelegate with a serivce provider that is the zero address." - }, - "errorSelector": "88d1f59c", - "id": 3368, - "name": "HorizonStakingInvalidServiceProviderZeroAddress", - "nameLocation": "17152:47:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3367, - "nodeType": "ParameterList", - "parameters": [], - "src": "17199:2:27" - }, - "src": "17146:56:27" - }, - { - "documentation": { - "id": 3369, - "nodeType": "StructuredDocumentation", - "src": "17208:105:27", - "text": " @notice Thrown when attempting to redelegate with a verifier that is the zero address." - }, - "errorSelector": "a9626059", - "id": 3371, - "name": "HorizonStakingInvalidVerifierZeroAddress", - "nameLocation": "17324:40:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3370, - "nodeType": "ParameterList", - "parameters": [], - "src": "17364:2:27" - }, - "src": "17318:49:27" - }, - { - "errorSelector": "3f199628", - "id": 3373, - "name": "HorizonStakingNothingThawing", - "nameLocation": "17415:28:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3372, - "nodeType": "ParameterList", - "parameters": [], - "src": "17443:2:27" - }, - "src": "17409:37:27" - }, - { - "errorSelector": "66570a56", - "id": 3375, - "name": "HorizonStakingTooManyThawRequests", - "nameLocation": "17457:33:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3374, - "nodeType": "ParameterList", - "parameters": [], - "src": "17490:2:27" - }, - "src": "17451:42:27" - }, - { - "documentation": { - "id": 3376, - "nodeType": "StructuredDocumentation", - "src": "17525:329:27", - "text": " @notice Thrown during the transition period when attempting to withdraw tokens that are still thawing.\n @dev Note this thawing refers to the global thawing period applied to legacy allocated tokens,\n it does not refer to thaw requests.\n @param until The block number until the stake is locked" - }, - "errorSelector": "e91178d8", - "id": 3380, - "name": "HorizonStakingStillThawing", - "nameLocation": "17865:26:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3378, - "mutability": "mutable", - "name": "until", - "nameLocation": "17900:5:27", - "nodeType": "VariableDeclaration", - "scope": 3380, - "src": "17892:13:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17892:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "17891:15:27" - }, - "src": "17859:48:27" - }, - { - "documentation": { - "id": 3381, - "nodeType": "StructuredDocumentation", - "src": "17913:167:27", - "text": " @notice Thrown when a service provider attempts to operate on verifiers that are not allowed.\n @dev Only applies to stake from locked wallets." - }, - "errorSelector": "00a483dc", - "id": 3385, - "name": "HorizonStakingVerifierNotAllowed", - "nameLocation": "18091:32:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3384, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3383, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "18132:8:27", - "nodeType": "VariableDeclaration", - "scope": 3385, - "src": "18124:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3382, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18124:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "18123:18:27" - }, - "src": "18085:57:27" - }, - { - "documentation": { - "id": 3386, - "nodeType": "StructuredDocumentation", - "src": "18148:103:27", - "text": " @notice Thrown when a service provider attempts to change their own operator access." - }, - "errorSelector": "01230653", - "id": 3388, - "name": "HorizonStakingCallerIsServiceProvider", - "nameLocation": "18262:37:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3387, - "nodeType": "ParameterList", - "parameters": [], - "src": "18299:2:27" - }, - "src": "18256:46:27" - }, - { - "documentation": { - "id": 3389, - "nodeType": "StructuredDocumentation", - "src": "18308:125:27", - "text": " @notice Thrown when trying to set a delegation fee cut that is not valid.\n @param feeCut The fee cut" - }, - "errorSelector": "54125404", - "id": 3393, - "name": "HorizonStakingInvalidDelegationFeeCut", - "nameLocation": "18444:37:27", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3392, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3391, - "mutability": "mutable", - "name": "feeCut", - "nameLocation": "18490:6:27", - "nodeType": "VariableDeclaration", - "scope": 3393, - "src": "18482:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3390, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18482:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "18481:16:27" - }, - "src": "18438:60:27" - }, - { - "documentation": { - "id": 3394, - "nodeType": "StructuredDocumentation", - "src": "18528:366:27", - "text": " @notice Deposit tokens on the staking contract.\n @dev Pulls tokens from the caller.\n Requirements:\n - `_tokens` cannot be zero.\n - Caller must have previously approved this contract to pull tokens from their balance.\n Emits a {StakeDeposited} event.\n @param tokens Amount of tokens to stake" - }, - "functionSelector": "a694fc3a", - "id": 3399, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "stake", - "nameLocation": "18908:5:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3397, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3396, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "18922:6:27", - "nodeType": "VariableDeclaration", - "scope": 3399, - "src": "18914:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3395, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18914:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "18913:16:27" - }, - "returnParameters": { - "id": 3398, - "nodeType": "ParameterList", - "parameters": [], - "src": "18938:0:27" - }, - "scope": 3695, - "src": "18899:40:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3400, - "nodeType": "StructuredDocumentation", - "src": "18945:469:27", - "text": " @notice Deposit tokens on the service provider stake, on behalf of the service provider.\n @dev Pulls tokens from the caller.\n Requirements:\n - `_tokens` cannot be zero.\n - Caller must have previously approved this contract to pull tokens from their balance.\n Emits a {StakeDeposited} event.\n @param serviceProvider Address of the service provider\n @param tokens Amount of tokens to stake" - }, - "functionSelector": "a2a31722", - "id": 3407, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "stakeTo", - "nameLocation": "19428:7:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3402, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "19444:15:27", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "19436:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3401, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19436:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3404, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "19469:6:27", - "nodeType": "VariableDeclaration", - "scope": 3407, - "src": "19461:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3403, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19461:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "19435:41:27" - }, - "returnParameters": { - "id": 3406, - "nodeType": "ParameterList", - "parameters": [], - "src": "19485:0:27" - }, - "scope": 3695, - "src": "19419:67:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3408, - "nodeType": "StructuredDocumentation", - "src": "19586:624:27", - "text": " @notice Deposit tokens on the service provider stake, on behalf of the service provider,\n provisioned to a specific verifier.\n @dev Requirements:\n - The `serviceProvider` must have previously provisioned stake to `verifier`.\n - `_tokens` cannot be zero.\n - Caller must have previously approved this contract to pull tokens from their balance.\n Emits {StakeDeposited} and {ProvisionIncreased} events.\n @param serviceProvider Address of the service provider\n @param verifier Address of the verifier\n @param tokens Amount of tokens to stake" - }, - "functionSelector": "74612092", - "id": 3417, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "stakeToProvision", - "nameLocation": "20224:16:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3415, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3410, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "20249:15:27", - "nodeType": "VariableDeclaration", - "scope": 3417, - "src": "20241:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3409, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20241:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3412, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "20274:8:27", - "nodeType": "VariableDeclaration", - "scope": 3417, - "src": "20266:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3411, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20266:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3414, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "20292:6:27", - "nodeType": "VariableDeclaration", - "scope": 3417, - "src": "20284:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20284:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "20240:59:27" - }, - "returnParameters": { - "id": 3416, - "nodeType": "ParameterList", - "parameters": [], - "src": "20308:0:27" - }, - "scope": 3695, - "src": "20215:94:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3418, - "nodeType": "StructuredDocumentation", - "src": "20315:685:27", - "text": " @notice Move idle stake back to the owner's account.\n Stake is removed from the protocol:\n - During the transition period it's locked for a period of time before it can be withdrawn\n by calling {withdraw}.\n - After the transition period it's immediately withdrawn.\n @dev Requirements:\n - `_tokens` cannot be zero.\n - `_serviceProvider` must have enough idle stake to cover the staking amount and any\n legacy allocation.\n Emits a {StakeLocked} event during the transition period.\n Emits a {StakeWithdrawn} event after the transition period.\n @param tokens Amount of tokens to unstake" - }, - "functionSelector": "2e17de78", - "id": 3423, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "unstake", - "nameLocation": "21014:7:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3420, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "21030:6:27", - "nodeType": "VariableDeclaration", - "scope": 3423, - "src": "21022:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3419, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21022:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "21021:16:27" - }, - "returnParameters": { - "id": 3422, - "nodeType": "ParameterList", - "parameters": [], - "src": "21046:0:27" - }, - "scope": 3695, - "src": "21005:42:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3424, - "nodeType": "StructuredDocumentation", - "src": "21053:314:27", - "text": " @notice Withdraw service provider tokens once the thawing period (initiated by {unstake}) has passed.\n All thawed tokens are withdrawn.\n @dev This is only needed during the transition period while we still have\n a global lock. After that, unstake() will automatically withdraw." - }, - "functionSelector": "3ccfd60b", - "id": 3427, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nameLocation": "21381:8:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3425, - "nodeType": "ParameterList", - "parameters": [], - "src": "21389:2:27" - }, - "returnParameters": { - "id": 3426, - "nodeType": "ParameterList", - "parameters": [], - "src": "21400:0:27" - }, - "scope": 3695, - "src": "21372:29:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3428, - "nodeType": "StructuredDocumentation", - "src": "21407:1242:27", - "text": " @notice Provision stake to a verifier. The tokens will be locked with a thawing period\n and will be slashable by the verifier. This is the main mechanism to provision stake to a data\n service, where the data service is the verifier.\n This function can be called by the service provider or by an operator authorized by the provider\n for this specific verifier.\n @dev Requirements:\n - `tokens` cannot be zero.\n - The `serviceProvider` must have enough idle stake to cover the tokens to provision.\n - `maxVerifierCut` must be a valid PPM.\n - `thawingPeriod` must be less than or equal to `_maxThawingPeriod`.\n Emits a {ProvisionCreated} event.\n @param serviceProvider The service provider address\n @param verifier The verifier address for which the tokens are provisioned (who will be able to slash the tokens)\n @param tokens The amount of tokens that will be locked and slashable\n @param maxVerifierCut The maximum cut, expressed in PPM, that a verifier can transfer instead of burning when slashing\n @param thawingPeriod The period in seconds that the tokens will be thawing before they can be removed from the provision" - }, - "functionSelector": "010167e5", - "id": 3441, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "provision", - "nameLocation": "22663:9:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3439, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3430, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "22690:15:27", - "nodeType": "VariableDeclaration", - "scope": 3441, - "src": "22682:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3429, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22682:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3432, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "22723:8:27", - "nodeType": "VariableDeclaration", - "scope": 3441, - "src": "22715:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3431, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22715:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3434, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "22749:6:27", - "nodeType": "VariableDeclaration", - "scope": 3441, - "src": "22741:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3433, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22741:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3436, - "mutability": "mutable", - "name": "maxVerifierCut", - "nameLocation": "22772:14:27", - "nodeType": "VariableDeclaration", - "scope": 3441, - "src": "22765:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3435, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "22765:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3438, - "mutability": "mutable", - "name": "thawingPeriod", - "nameLocation": "22803:13:27", - "nodeType": "VariableDeclaration", - "scope": 3441, - "src": "22796:20:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3437, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "22796:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "22672:150:27" - }, - "returnParameters": { - "id": 3440, - "nodeType": "ParameterList", - "parameters": [], - "src": "22831:0:27" - }, - "scope": 3695, - "src": "22654:178:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3442, - "nodeType": "StructuredDocumentation", - "src": "22838:564:27", - "text": " @notice Adds tokens from the service provider's idle stake to a provision\n @dev\n Requirements:\n - The `serviceProvider` must have previously provisioned stake to `verifier`.\n - `tokens` cannot be zero.\n - The `serviceProvider` must have enough idle stake to cover the tokens to add.\n Emits a {ProvisionIncreased} event.\n @param serviceProvider The service provider address\n @param verifier The verifier address\n @param tokens The amount of tokens to add to the provision" - }, - "functionSelector": "fecc9cc1", - "id": 3451, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "addToProvision", - "nameLocation": "23416:14:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3444, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "23439:15:27", - "nodeType": "VariableDeclaration", - "scope": 3451, - "src": "23431:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3443, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23431:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3446, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "23464:8:27", - "nodeType": "VariableDeclaration", - "scope": 3451, - "src": "23456:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3445, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23456:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3448, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "23482:6:27", - "nodeType": "VariableDeclaration", - "scope": 3451, - "src": "23474:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3447, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23474:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23430:59:27" - }, - "returnParameters": { - "id": 3450, - "nodeType": "ParameterList", - "parameters": [], - "src": "23498:0:27" - }, - "scope": 3695, - "src": "23407:92:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3452, - "nodeType": "StructuredDocumentation", - "src": "23505:929:27", - "text": " @notice Start thawing tokens to remove them from a provision.\n This function can be called by the service provider or by an operator authorized by the provider\n for this specific verifier.\n Note that removing tokens from a provision is a two step process:\n - First the tokens are thawed using this function.\n - Then after the thawing period, the tokens are removed from the provision using {deprovision}\n or {reprovision}.\n @dev Requirements:\n - The provision must have enough tokens available to thaw.\n - `tokens` cannot be zero.\n Emits {ProvisionThawed} and {ThawRequestCreated} events.\n @param serviceProvider The service provider address\n @param verifier The verifier address for which the tokens are provisioned\n @param tokens The amount of tokens to thaw\n @return The ID of the thaw request" - }, - "functionSelector": "f93f1cd0", - "id": 3463, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "thaw", - "nameLocation": "24448:4:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3459, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3454, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "24461:15:27", - "nodeType": "VariableDeclaration", - "scope": 3463, - "src": "24453:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3453, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24453:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3456, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "24486:8:27", - "nodeType": "VariableDeclaration", - "scope": 3463, - "src": "24478:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3455, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24478:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3458, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "24504:6:27", - "nodeType": "VariableDeclaration", - "scope": 3463, - "src": "24496:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24496:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "24452:59:27" - }, - "returnParameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3461, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3463, - "src": "24530:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3460, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "24530:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "24529:9:27" - }, - "scope": 3695, - "src": "24439:100:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3464, - "nodeType": "StructuredDocumentation", - "src": "24545:727:27", - "text": " @notice Remove tokens from a provision and move them back to the service provider's idle stake.\n @dev The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw\n requests in the event that fulfilling all of them results in a gas limit error.\n Requirements:\n - Must have previously initiated a thaw request using {thaw}.\n Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {TokensDeprovisioned} events.\n @param serviceProvider The service provider address\n @param verifier The verifier address\n @param nThawRequests The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests." - }, - "functionSelector": "21195373", - "id": 3473, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "deprovision", - "nameLocation": "25286:11:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3471, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3466, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "25306:15:27", - "nodeType": "VariableDeclaration", - "scope": 3473, - "src": "25298:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3465, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25298:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3468, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "25331:8:27", - "nodeType": "VariableDeclaration", - "scope": 3473, - "src": "25323:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3467, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25323:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3470, - "mutability": "mutable", - "name": "nThawRequests", - "nameLocation": "25349:13:27", - "nodeType": "VariableDeclaration", - "scope": 3473, - "src": "25341:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3469, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25341:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "25297:66:27" - }, - "returnParameters": { - "id": 3472, - "nodeType": "ParameterList", - "parameters": [], - "src": "25372:0:27" - }, - "scope": 3695, - "src": "25277:96:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3474, - "nodeType": "StructuredDocumentation", - "src": "25379:1032:27", - "text": " @notice Move already thawed stake from one provision into another provision\n This function can be called by the service provider or by an operator authorized by the provider\n for the two corresponding verifiers.\n @dev Requirements:\n - Must have previously initiated a thaw request using {thaw}.\n - `tokens` cannot be zero.\n - The `serviceProvider` must have previously provisioned stake to `newVerifier`.\n - The `serviceProvider` must have enough idle stake to cover the tokens to add.\n Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled}, {TokensDeprovisioned} and {ProvisionIncreased}\n events.\n @param serviceProvider The service provider address\n @param oldVerifier The verifier address for which the tokens are currently provisioned\n @param newVerifier The verifier address for which the tokens will be provisioned\n @param nThawRequests The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests." - }, - "functionSelector": "ba7fb0b4", - "id": 3485, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "reprovision", - "nameLocation": "26425:11:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3483, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3476, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "26454:15:27", - "nodeType": "VariableDeclaration", - "scope": 3485, - "src": "26446:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3475, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26446:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3478, - "mutability": "mutable", - "name": "oldVerifier", - "nameLocation": "26487:11:27", - "nodeType": "VariableDeclaration", - "scope": 3485, - "src": "26479:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3477, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26479:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3480, - "mutability": "mutable", - "name": "newVerifier", - "nameLocation": "26516:11:27", - "nodeType": "VariableDeclaration", - "scope": 3485, - "src": "26508:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3479, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26508:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3482, - "mutability": "mutable", - "name": "nThawRequests", - "nameLocation": "26545:13:27", - "nodeType": "VariableDeclaration", - "scope": 3485, - "src": "26537:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3481, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26537:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "26436:128:27" - }, - "returnParameters": { - "id": 3484, - "nodeType": "ParameterList", - "parameters": [], - "src": "26573:0:27" - }, - "scope": 3695, - "src": "26416:158:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3486, - "nodeType": "StructuredDocumentation", - "src": "26580:810:27", - "text": " @notice Stages a provision parameter update. Note that the change is not effective until the verifier calls\n {acceptProvisionParameters}.\n @dev This two step update process prevents the service provider from changing the parameters\n without the verifier's consent.\n Emits a {ProvisionParametersStaged} event if at least one of the parameters changed.\n @param serviceProvider The service provider address\n @param verifier The verifier address\n @param maxVerifierCut The proposed maximum cut, expressed in PPM of the slashed amount, that a verifier can take for\n themselves when slashing\n @param thawingPeriod The proposed period in seconds that the tokens will be thawing before they can be removed from\n the provision" - }, - "functionSelector": "81e21b56", - "id": 3497, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setProvisionParameters", - "nameLocation": "27404:22:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3488, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "27444:15:27", - "nodeType": "VariableDeclaration", - "scope": 3497, - "src": "27436:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27436:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3490, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "27477:8:27", - "nodeType": "VariableDeclaration", - "scope": 3497, - "src": "27469:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3489, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27469:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3492, - "mutability": "mutable", - "name": "maxVerifierCut", - "nameLocation": "27502:14:27", - "nodeType": "VariableDeclaration", - "scope": 3497, - "src": "27495:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3491, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "27495:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3494, - "mutability": "mutable", - "name": "thawingPeriod", - "nameLocation": "27533:13:27", - "nodeType": "VariableDeclaration", - "scope": 3497, - "src": "27526:20:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3493, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "27526:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "27426:126:27" - }, - "returnParameters": { - "id": 3496, - "nodeType": "ParameterList", - "parameters": [], - "src": "27561:0:27" - }, - "scope": 3695, - "src": "27395:167:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3498, - "nodeType": "StructuredDocumentation", - "src": "27568:257:27", - "text": " @notice Accepts a staged provision parameter update.\n @dev Only the provision's verifier can call this function.\n Emits a {ProvisionParametersSet} event.\n @param serviceProvider The service provider address" - }, - "functionSelector": "3a78b732", - "id": 3503, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "acceptProvisionParameters", - "nameLocation": "27839:25:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3500, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "27873:15:27", - "nodeType": "VariableDeclaration", - "scope": 3503, - "src": "27865:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3499, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27865:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "27864:25:27" - }, - "returnParameters": { - "id": 3502, - "nodeType": "ParameterList", - "parameters": [], - "src": "27898:0:27" - }, - "scope": 3695, - "src": "27830:69:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3504, - "nodeType": "StructuredDocumentation", - "src": "27905:547:27", - "text": " @notice Delegate tokens to a provision.\n @dev Requirements:\n - `tokens` cannot be zero.\n - Caller must have previously approved this contract to pull tokens from their balance.\n - The provision must exist.\n Emits a {TokensDelegated} event.\n @param serviceProvider The service provider address\n @param verifier The verifier address\n @param tokens The amount of tokens to delegate\n @param minSharesOut The minimum amount of shares to accept, slippage protection." - }, - "functionSelector": "6230001a", - "id": 3515, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "delegate", - "nameLocation": "28466:8:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3506, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "28483:15:27", - "nodeType": "VariableDeclaration", - "scope": 3515, - "src": "28475:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3505, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28475:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3508, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "28508:8:27", - "nodeType": "VariableDeclaration", - "scope": 3515, - "src": "28500:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3507, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28500:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3510, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "28526:6:27", - "nodeType": "VariableDeclaration", - "scope": 3515, - "src": "28518:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3509, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28518:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3512, - "mutability": "mutable", - "name": "minSharesOut", - "nameLocation": "28542:12:27", - "nodeType": "VariableDeclaration", - "scope": 3515, - "src": "28534:20:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3511, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28534:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "28474:81:27" - }, - "returnParameters": { - "id": 3514, - "nodeType": "ParameterList", - "parameters": [], - "src": "28564:0:27" - }, - "scope": 3695, - "src": "28457:108:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3516, - "nodeType": "StructuredDocumentation", - "src": "28571:632:27", - "text": " @notice Add tokens to a delegation pool without issuing shares.\n Used by data services to pay delegation fees/rewards.\n Delegators SHOULD NOT call this function.\n @dev Requirements:\n - `tokens` cannot be zero.\n - Caller must have previously approved this contract to pull tokens from their balance.\n Emits a {TokensToDelegationPoolAdded} event.\n @param serviceProvider The service provider address\n @param verifier The verifier address for which the tokens are provisioned\n @param tokens The amount of tokens to add to the delegation pool" - }, - "functionSelector": "ca94b0e9", - "id": 3525, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "addToDelegationPool", - "nameLocation": "29217:19:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3518, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "29245:15:27", - "nodeType": "VariableDeclaration", - "scope": 3525, - "src": "29237:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29237:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3520, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "29270:8:27", - "nodeType": "VariableDeclaration", - "scope": 3525, - "src": "29262:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3519, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29262:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3522, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "29288:6:27", - "nodeType": "VariableDeclaration", - "scope": 3525, - "src": "29280:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29280:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "29236:59:27" - }, - "returnParameters": { - "id": 3524, - "nodeType": "ParameterList", - "parameters": [], - "src": "29304:0:27" - }, - "scope": 3695, - "src": "29208:97:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3526, - "nodeType": "StructuredDocumentation", - "src": "29311:673:27", - "text": " @notice Undelegate tokens from a provision and start thawing them.\n Note that undelegating tokens from a provision is a two step process:\n - First the tokens are thawed using this function.\n - Then after the thawing period, the tokens are removed from the provision using {withdrawDelegated}.\n Requirements:\n - `shares` cannot be zero.\n Emits a {TokensUndelegated} and {ThawRequestCreated} event.\n @param serviceProvider The service provider address\n @param verifier The verifier address\n @param shares The amount of shares to undelegate\n @return The ID of the thaw request" - }, - "functionSelector": "a02b9426", - "id": 3537, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "undelegate", - "nameLocation": "29998:10:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3528, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "30017:15:27", - "nodeType": "VariableDeclaration", - "scope": 3537, - "src": "30009:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30009:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3530, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "30042:8:27", - "nodeType": "VariableDeclaration", - "scope": 3537, - "src": "30034:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3529, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30034:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3532, - "mutability": "mutable", - "name": "shares", - "nameLocation": "30060:6:27", - "nodeType": "VariableDeclaration", - "scope": 3537, - "src": "30052:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3531, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30052:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "30008:59:27" - }, - "returnParameters": { - "id": 3536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3535, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3537, - "src": "30086:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3534, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "30086:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "30085:9:27" - }, - "scope": 3695, - "src": "29989:106:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3538, - "nodeType": "StructuredDocumentation", - "src": "30101:904:27", - "text": " @notice Undelegate tokens from a provision and start thawing them.\n The tokens will be withdrawable by the `beneficiary` after the thawing period.\n Note that undelegating tokens from a provision is a two step process:\n - First the tokens are thawed using this function.\n - Then after the thawing period, the tokens are removed from the provision using {withdrawDelegated}.\n Requirements:\n - `shares` cannot be zero.\n - `beneficiary` cannot be the zero address.\n Emits a {TokensUndelegated} and {ThawRequestCreated} event.\n @param serviceProvider The service provider address\n @param verifier The verifier address\n @param shares The amount of shares to undelegate\n @param beneficiary The address where the tokens will be withdrawn after thawing\n @return The ID of the thaw request" - }, - "functionSelector": "162ea5ed", - "id": 3551, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "undelegate", - "nameLocation": "31019:10:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3540, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "31047:15:27", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "31039:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3539, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "31039:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3542, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "31080:8:27", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "31072:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3541, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "31072:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3544, - "mutability": "mutable", - "name": "shares", - "nameLocation": "31106:6:27", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "31098:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3543, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31098:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3546, - "mutability": "mutable", - "name": "beneficiary", - "nameLocation": "31130:11:27", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "31122:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3545, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "31122:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "31029:118:27" - }, - "returnParameters": { - "id": 3550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3549, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3551, - "src": "31166:7:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3548, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "31166:7:27", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "31165:9:27" - }, - "scope": 3695, - "src": "31010:165:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3552, - "nodeType": "StructuredDocumentation", - "src": "31181:878:27", - "text": " @notice Withdraw undelegated tokens from a provision after thawing.\n @dev The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw\n requests in the event that fulfilling all of them results in a gas limit error.\n @dev If the delegation pool was completely slashed before withdrawing, calling this function will fulfill\n the thaw requests with an amount equal to zero.\n Requirements:\n - Must have previously initiated a thaw request using {undelegate}.\n Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {DelegatedTokensWithdrawn} events.\n @param serviceProvider The service provider address\n @param verifier The verifier address\n @param nThawRequests The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests." - }, - "functionSelector": "3993d849", - "id": 3561, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdrawDelegated", - "nameLocation": "32073:17:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3559, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3554, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "32099:15:27", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "32091:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3553, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32091:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3556, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "32124:8:27", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "32116:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3555, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32116:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3558, - "mutability": "mutable", - "name": "nThawRequests", - "nameLocation": "32142:13:27", - "nodeType": "VariableDeclaration", - "scope": 3561, - "src": "32134:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3557, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32134:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "32090:66:27" - }, - "returnParameters": { - "id": 3560, - "nodeType": "ParameterList", - "parameters": [], - "src": "32165:0:27" - }, - "scope": 3695, - "src": "32064:102:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3562, - "nodeType": "StructuredDocumentation", - "src": "32172:1169:27", - "text": " @notice Re-delegate undelegated tokens from a provision after thawing to a `newServiceProvider` and `newVerifier`.\n @dev The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw\n requests in the event that fulfilling all of them results in a gas limit error.\n Requirements:\n - Must have previously initiated a thaw request using {undelegate}.\n - `newServiceProvider` and `newVerifier` must not be the zero address.\n - `newServiceProvider` must have previously provisioned stake to `newVerifier`.\n Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {DelegatedTokensWithdrawn} events.\n @param oldServiceProvider The old service provider address\n @param oldVerifier The old verifier address\n @param newServiceProvider The address of a new service provider\n @param newVerifier The address of a new verifier\n @param minSharesForNewProvider The minimum amount of shares to accept for the new service provider\n @param nThawRequests The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests." - }, - "functionSelector": "f64b3598", - "id": 3577, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "redelegate", - "nameLocation": "33355:10:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3575, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "mutability": "mutable", - "name": "oldServiceProvider", - "nameLocation": "33383:18:27", - "nodeType": "VariableDeclaration", - "scope": 3577, - "src": "33375:26:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33375:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3566, - "mutability": "mutable", - "name": "oldVerifier", - "nameLocation": "33419:11:27", - "nodeType": "VariableDeclaration", - "scope": 3577, - "src": "33411:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33411:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3568, - "mutability": "mutable", - "name": "newServiceProvider", - "nameLocation": "33448:18:27", - "nodeType": "VariableDeclaration", - "scope": 3577, - "src": "33440:26:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3567, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33440:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3570, - "mutability": "mutable", - "name": "newVerifier", - "nameLocation": "33484:11:27", - "nodeType": "VariableDeclaration", - "scope": 3577, - "src": "33476:19:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3569, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33476:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3572, - "mutability": "mutable", - "name": "minSharesForNewProvider", - "nameLocation": "33513:23:27", - "nodeType": "VariableDeclaration", - "scope": 3577, - "src": "33505:31:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3571, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33505:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3574, - "mutability": "mutable", - "name": "nThawRequests", - "nameLocation": "33554:13:27", - "nodeType": "VariableDeclaration", - "scope": 3577, - "src": "33546:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3573, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33546:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "33365:208:27" - }, - "returnParameters": { - "id": 3576, - "nodeType": "ParameterList", - "parameters": [], - "src": "33582:0:27" - }, - "scope": 3695, - "src": "33346:237:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3578, - "nodeType": "StructuredDocumentation", - "src": "33589:389:27", - "text": " @notice Set the fee cut for a verifier on a specific payment type.\n @dev Emits a {DelegationFeeCutSet} event.\n @param serviceProvider The service provider address\n @param verifier The verifier address\n @param paymentType The payment type for which the fee cut is set, as defined in {IGraphPayments}\n @param feeCut The fee cut to set, in PPM" - }, - "functionSelector": "42c51693", - "id": 3590, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setDelegationFeeCut", - "nameLocation": "33992:19:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3580, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "34029:15:27", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "34021:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3579, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34021:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3582, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "34062:8:27", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "34054:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34054:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3585, - "mutability": "mutable", - "name": "paymentType", - "nameLocation": "34108:11:27", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "34080:39:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "typeName": { - "id": 3584, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3583, - "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "34080:14:27", - "34095:12:27" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2166, - "src": "34080:27:27" - }, - "referencedDeclaration": 2166, - "src": "34080:27:27", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3587, - "mutability": "mutable", - "name": "feeCut", - "nameLocation": "34137:6:27", - "nodeType": "VariableDeclaration", - "scope": 3590, - "src": "34129:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3586, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34129:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "34011:138:27" - }, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [], - "src": "34158:0:27" - }, - "scope": 3695, - "src": "33983:176:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3591, - "nodeType": "StructuredDocumentation", - "src": "34165:410:27", - "text": " @notice Delegate tokens to the subgraph data service provision.\n This function is for backwards compatibility with the legacy staking contract.\n It only allows delegating to the subgraph data service and DOES NOT have slippage protection.\n @dev See {delegate}.\n @param serviceProvider The service provider address\n @param tokens The amount of tokens to delegate" - }, - "functionSelector": "026e402b", - "id": 3598, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "delegate", - "nameLocation": "34589:8:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3596, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3593, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "34606:15:27", - "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "34598:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3592, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34598:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3595, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "34631:6:27", - "nodeType": "VariableDeclaration", - "scope": 3598, - "src": "34623:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3594, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34623:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "34597:41:27" - }, - "returnParameters": { - "id": 3597, - "nodeType": "ParameterList", - "parameters": [], - "src": "34647:0:27" - }, - "scope": 3695, - "src": "34580:68:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3599, - "nodeType": "StructuredDocumentation", - "src": "34654:407:27", - "text": " @notice Undelegate tokens from the subgraph data service provision and start thawing them.\n This function is for backwards compatibility with the legacy staking contract.\n It only allows undelegating from the subgraph data service.\n @dev See {undelegate}.\n @param serviceProvider The service provider address\n @param shares The amount of shares to undelegate" - }, - "functionSelector": "4d99dd16", - "id": 3606, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "undelegate", - "nameLocation": "35075:10:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3604, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3601, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "35094:15:27", - "nodeType": "VariableDeclaration", - "scope": 3606, - "src": "35086:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3600, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35086:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3603, - "mutability": "mutable", - "name": "shares", - "nameLocation": "35119:6:27", - "nodeType": "VariableDeclaration", - "scope": 3606, - "src": "35111:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3602, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35111:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "35085:41:27" - }, - "returnParameters": { - "id": 3605, - "nodeType": "ParameterList", - "parameters": [], - "src": "35135:0:27" - }, - "scope": 3695, - "src": "35066:70:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3607, - "nodeType": "StructuredDocumentation", - "src": "35142:546:27", - "text": " @notice Withdraw undelegated tokens from the subgraph data service provision after thawing.\n This function is for backwards compatibility with the legacy staking contract.\n It only allows withdrawing from the subgraph data service and DOES NOT have slippage protection in\n case the caller opts for re-delegating.\n @dev See {delegate}.\n @param serviceProvider The service provider address\n @param newServiceProvider The address of a new service provider, if the delegator wants to re-delegate" - }, - "functionSelector": "51a60b02", - "id": 3614, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdrawDelegated", - "nameLocation": "35702:17:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3612, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3609, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "35728:15:27", - "nodeType": "VariableDeclaration", - "scope": 3614, - "src": "35720:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35720:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3611, - "mutability": "mutable", - "name": "newServiceProvider", - "nameLocation": "35753:18:27", - "nodeType": "VariableDeclaration", - "scope": 3614, - "src": "35745:26:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3610, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35745:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "35719:53:27" - }, - "returnParameters": { - "id": 3613, - "nodeType": "ParameterList", - "parameters": [], - "src": "35781:0:27" - }, - "scope": 3695, - "src": "35693:89:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3615, - "nodeType": "StructuredDocumentation", - "src": "35788:1190:27", - "text": " @notice Slash a service provider. This can only be called by a verifier to which\n the provider has provisioned stake, and up to the amount of tokens they have provisioned.\n If the service provider's stake is not enough, the associated delegation pool might be slashed\n depending on the value of the global delegation slashing flag.\n Part of the slashed tokens are sent to the `verifierDestination` as a reward.\n @dev Requirements:\n - `tokens` must be less than or equal to the amount of tokens provisioned by the service provider.\n - `tokensVerifier` must be less than the provision's tokens times the provision's maximum verifier cut.\n Emits a {ProvisionSlashed} and {VerifierTokensSent} events.\n Emits a {DelegationSlashed} or {DelegationSlashingSkipped} event depending on the global delegation slashing\n flag.\n @param serviceProvider The service provider to slash\n @param tokens The amount of tokens to slash\n @param tokensVerifier The amount of tokens to transfer instead of burning\n @param verifierDestination The address to transfer the verifier cut to" - }, - "functionSelector": "e76fede6", - "id": 3626, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "slash", - "nameLocation": "36992:5:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3617, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "37015:15:27", - "nodeType": "VariableDeclaration", - "scope": 3626, - "src": "37007:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3616, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "37007:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3619, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "37048:6:27", - "nodeType": "VariableDeclaration", - "scope": 3626, - "src": "37040:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3618, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "37040:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3621, - "mutability": "mutable", - "name": "tokensVerifier", - "nameLocation": "37072:14:27", - "nodeType": "VariableDeclaration", - "scope": 3626, - "src": "37064:22:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3620, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "37064:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3623, - "mutability": "mutable", - "name": "verifierDestination", - "nameLocation": "37104:19:27", - "nodeType": "VariableDeclaration", - "scope": 3626, - "src": "37096:27:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "37096:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "36997:132:27" - }, - "returnParameters": { - "id": 3625, - "nodeType": "ParameterList", - "parameters": [], - "src": "37138:0:27" - }, - "scope": 3695, - "src": "36983:156:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3627, - "nodeType": "StructuredDocumentation", - "src": "37145:769:27", - "text": " @notice Provision stake to a verifier using locked tokens (i.e. from GraphTokenLockWallets).\n @dev See {provision}.\n Additional requirements:\n - The `verifier` must be allowed to be used for locked provisions.\n @param serviceProvider The service provider address\n @param verifier The verifier address for which the tokens are provisioned (who will be able to slash the tokens)\n @param tokens The amount of tokens that will be locked and slashable\n @param maxVerifierCut The maximum cut, expressed in PPM, that a verifier can transfer instead of burning when slashing\n @param thawingPeriod The period in seconds that the tokens will be thawing before they can be removed from the provision" - }, - "functionSelector": "82d66cb8", - "id": 3640, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "provisionLocked", - "nameLocation": "37928:15:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3629, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "37961:15:27", - "nodeType": "VariableDeclaration", - "scope": 3640, - "src": "37953:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3628, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "37953:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3631, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "37994:8:27", - "nodeType": "VariableDeclaration", - "scope": 3640, - "src": "37986:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3630, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "37986:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3633, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "38020:6:27", - "nodeType": "VariableDeclaration", - "scope": 3640, - "src": "38012:14:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3632, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "38012:7:27", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3635, - "mutability": "mutable", - "name": "maxVerifierCut", - "nameLocation": "38043:14:27", - "nodeType": "VariableDeclaration", - "scope": 3640, - "src": "38036:21:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3634, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "38036:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3637, - "mutability": "mutable", - "name": "thawingPeriod", - "nameLocation": "38074:13:27", - "nodeType": "VariableDeclaration", - "scope": 3640, - "src": "38067:20:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3636, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "38067:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "37943:150:27" - }, - "returnParameters": { - "id": 3639, - "nodeType": "ParameterList", - "parameters": [], - "src": "38102:0:27" - }, - "scope": 3695, - "src": "37919:184:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3641, - "nodeType": "StructuredDocumentation", - "src": "38109:474:27", - "text": " @notice Authorize or unauthorize an address to be an operator for the caller on a verifier.\n @dev See {setOperator}.\n Additional requirements:\n - The `verifier` must be allowed to be used for locked provisions.\n @param verifier The verifier / data service on which they'll be allowed to operate\n @param operator Address to authorize or unauthorize\n @param allowed Whether the operator is authorized or not" - }, - "functionSelector": "ad4d35b5", - "id": 3650, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setOperatorLocked", - "nameLocation": "38597:17:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3648, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3643, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "38623:8:27", - "nodeType": "VariableDeclaration", - "scope": 3650, - "src": "38615:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3642, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "38615:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3645, - "mutability": "mutable", - "name": "operator", - "nameLocation": "38641:8:27", - "nodeType": "VariableDeclaration", - "scope": 3650, - "src": "38633:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3644, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "38633:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3647, - "mutability": "mutable", - "name": "allowed", - "nameLocation": "38656:7:27", - "nodeType": "VariableDeclaration", - "scope": 3650, - "src": "38651:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3646, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "38651:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "38614:50:27" - }, - "returnParameters": { - "id": 3649, - "nodeType": "ParameterList", - "parameters": [], - "src": "38673:0:27" - }, - "scope": 3695, - "src": "38588:86:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3651, - "nodeType": "StructuredDocumentation", - "src": "38680:449:27", - "text": " @notice Sets a verifier as a globally allowed verifier for locked provisions.\n @dev This function can only be called by the contract governor, it's used to maintain\n a whitelist of verifiers that do not allow the stake from a locked wallet to escape the lock.\n @dev Emits a {AllowedLockedVerifierSet} event.\n @param verifier The verifier address\n @param allowed Whether the verifier is allowed or not" - }, - "functionSelector": "4ca7ac22", - "id": 3658, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setAllowedLockedVerifier", - "nameLocation": "39143:24:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3656, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3653, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "39176:8:27", - "nodeType": "VariableDeclaration", - "scope": 3658, - "src": "39168:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "39168:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3655, - "mutability": "mutable", - "name": "allowed", - "nameLocation": "39191:7:27", - "nodeType": "VariableDeclaration", - "scope": 3658, - "src": "39186:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3654, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "39186:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "39167:32:27" - }, - "returnParameters": { - "id": 3657, - "nodeType": "ParameterList", - "parameters": [], - "src": "39208:0:27" - }, - "scope": 3695, - "src": "39134:75:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3659, - "nodeType": "StructuredDocumentation", - "src": "39215:146:27", - "text": " @notice Set the global delegation slashing flag to true.\n @dev This function can only be called by the contract governor." - }, - "functionSelector": "ef58bd67", - "id": 3662, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setDelegationSlashingEnabled", - "nameLocation": "39375:28:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3660, - "nodeType": "ParameterList", - "parameters": [], - "src": "39403:2:27" - }, - "returnParameters": { - "id": 3661, - "nodeType": "ParameterList", - "parameters": [], - "src": "39414:0:27" - }, - "scope": 3695, - "src": "39366:49:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3663, - "nodeType": "StructuredDocumentation", - "src": "39421:293:27", - "text": " @notice Clear the legacy global thawing period.\n This signifies the end of the transition period, after which no legacy allocations should be left.\n @dev This function can only be called by the contract governor.\n @dev Emits a {ThawingPeriodCleared} event." - }, - "functionSelector": "e473522a", - "id": 3666, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "clearThawingPeriod", - "nameLocation": "39728:18:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3664, - "nodeType": "ParameterList", - "parameters": [], - "src": "39746:2:27" - }, - "returnParameters": { - "id": 3665, - "nodeType": "ParameterList", - "parameters": [], - "src": "39757:0:27" - }, - "scope": 3695, - "src": "39719:39:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3667, - "nodeType": "StructuredDocumentation", - "src": "39764:163:27", - "text": " @notice Sets the global maximum thawing period allowed for provisions.\n @param maxThawingPeriod The new maximum thawing period, in seconds" - }, - "functionSelector": "259bc435", - "id": 3672, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setMaxThawingPeriod", - "nameLocation": "39941:19:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3669, - "mutability": "mutable", - "name": "maxThawingPeriod", - "nameLocation": "39968:16:27", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "39961:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3668, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "39961:6:27", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "39960:25:27" - }, - "returnParameters": { - "id": 3671, - "nodeType": "ParameterList", - "parameters": [], - "src": "39994:0:27" - }, - "scope": 3695, - "src": "39932:63:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3673, - "nodeType": "StructuredDocumentation", - "src": "40001:368:27", - "text": " @notice Authorize or unauthorize an address to be an operator for the caller on a data service.\n @dev Emits a {OperatorSet} event.\n @param verifier The verifier / data service on which they'll be allowed to operate\n @param operator Address to authorize or unauthorize\n @param allowed Whether the operator is authorized or not" - }, - "functionSelector": "bc735d90", - "id": 3682, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setOperator", - "nameLocation": "40383:11:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3680, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3675, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "40403:8:27", - "nodeType": "VariableDeclaration", - "scope": 3682, - "src": "40395:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "40395:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3677, - "mutability": "mutable", - "name": "operator", - "nameLocation": "40421:8:27", - "nodeType": "VariableDeclaration", - "scope": 3682, - "src": "40413:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "40413:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3679, - "mutability": "mutable", - "name": "allowed", - "nameLocation": "40436:7:27", - "nodeType": "VariableDeclaration", - "scope": 3682, - "src": "40431:12:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3678, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "40431:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "40394:50:27" - }, - "returnParameters": { - "id": 3681, - "nodeType": "ParameterList", - "parameters": [], - "src": "40453:0:27" - }, - "scope": 3695, - "src": "40374:80:27", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 3683, - "nodeType": "StructuredDocumentation", - "src": "40460:402:27", - "text": " @notice Check if an operator is authorized for the caller on a specific verifier / data service.\n @param serviceProvider The service provider on behalf of whom they're claiming to act\n @param verifier The verifier / data service on which they're claiming to act\n @param operator The address to check for auth\n @return Whether the operator is authorized or not" - }, - "functionSelector": "7c145cc7", - "id": 3694, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isAuthorized", - "nameLocation": "40876:12:27", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3690, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3685, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "40897:15:27", - "nodeType": "VariableDeclaration", - "scope": 3694, - "src": "40889:23:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3684, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "40889:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3687, - "mutability": "mutable", - "name": "verifier", - "nameLocation": "40922:8:27", - "nodeType": "VariableDeclaration", - "scope": 3694, - "src": "40914:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3686, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "40914:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3689, - "mutability": "mutable", - "name": "operator", - "nameLocation": "40940:8:27", - "nodeType": "VariableDeclaration", - "scope": 3694, - "src": "40932:16:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3688, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "40932:7:27", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "40888:61:27" - }, - "returnParameters": { - "id": 3693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3692, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3694, - "src": "40973:4:27", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3691, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "40973:4:27", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "40972:6:27" - }, - "scope": 3695, - "src": "40867:112:27", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 3696, - "src": "747:40234:27", - "usedErrors": [ - 3272, - 3279, - 3286, - 3293, - 3302, - 3307, - 3314, - 3317, - 3324, - 3331, - 3338, - 3341, - 3348, - 3355, - 3362, - 3365, - 3368, - 3371, - 3373, - 3375, - 3380, - 3385, - 3388, - 3393 - ], - "usedEvents": [ - 3036, - 3043, - 3056, - 3065, - 3074, - 3083, - 3094, - 3105, - 3116, - 3125, - 3134, - 3143, - 3154, - 3165, - 3176, - 3187, - 3196, - 3208, - 3223, - 3236, - 3249, - 3254, - 3261, - 3264, - 3269 - ] - } - ], - "src": "46:40936:27" - }, - "id": 27 - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", - "exportedSymbols": { - "IHorizonStakingTypes": [ - 3796 - ] - }, - "id": 3797, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3697, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:28" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IHorizonStakingTypes", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 3698, - "nodeType": "StructuredDocumentation", - "src": "155:412:28", - "text": " @title Defines the data types used in the Horizon staking contract\n @dev In order to preserve storage compatibility some data structures keep deprecated fields.\n These structures have then two representations, an internal one used by the contract storage and a public one.\n Getter functions should retrieve internal representations, remove deprecated fields and return the public representation." - }, - "fullyImplemented": true, - "id": 3796, - "linearizedBaseContracts": [ - 3796 - ], - "name": "IHorizonStakingTypes", - "nameLocation": "578:20:28", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "IHorizonStakingTypes.Provision", - "documentation": { - "id": 3699, - "nodeType": "StructuredDocumentation", - "src": "605:180:28", - "text": " @notice Represents stake assigned to a specific verifier/data service.\n Provisioned stake is locked and can be used as economic security by a data service." - }, - "id": 3718, - "members": [ - { - "constant": false, - "id": 3701, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "913:6:28", - "nodeType": "VariableDeclaration", - "scope": 3718, - "src": "905:14:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3700, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "905:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3703, - "mutability": "mutable", - "name": "tokensThawing", - "nameLocation": "1031:13:28", - "nodeType": "VariableDeclaration", - "scope": 3718, - "src": "1023:21:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3702, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1023:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3705, - "mutability": "mutable", - "name": "sharesThawing", - "nameLocation": "1112:13:28", - "nodeType": "VariableDeclaration", - "scope": 3718, - "src": "1104:21:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3704, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1104:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3707, - "mutability": "mutable", - "name": "maxVerifierCut", - "nameLocation": "1266:14:28", - "nodeType": "VariableDeclaration", - "scope": 3718, - "src": "1259:21:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3706, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1259:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3709, - "mutability": "mutable", - "name": "thawingPeriod", - "nameLocation": "1366:13:28", - "nodeType": "VariableDeclaration", - "scope": 3718, - "src": "1359:20:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3708, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1359:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3711, - "mutability": "mutable", - "name": "createdAt", - "nameLocation": "1448:9:28", - "nodeType": "VariableDeclaration", - "scope": 3718, - "src": "1441:16:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3710, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1441:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3713, - "mutability": "mutable", - "name": "maxVerifierCutPending", - "nameLocation": "1575:21:28", - "nodeType": "VariableDeclaration", - "scope": 3718, - "src": "1568:28:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3712, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1568:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3715, - "mutability": "mutable", - "name": "thawingPeriodPending", - "nameLocation": "1713:20:28", - "nodeType": "VariableDeclaration", - "scope": 3718, - "src": "1706:27:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3714, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1706:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3717, - "mutability": "mutable", - "name": "thawingNonce", - "nameLocation": "1843:12:28", - "nodeType": "VariableDeclaration", - "scope": 3718, - "src": "1835:20:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3716, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1835:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Provision", - "nameLocation": "797:9:28", - "nodeType": "StructDefinition", - "scope": 3796, - "src": "790:1072:28", - "visibility": "public" - }, - { - "canonicalName": "IHorizonStakingTypes.ServiceProvider", - "documentation": { - "id": 3719, - "nodeType": "StructuredDocumentation", - "src": "1868:151:28", - "text": " @notice Public representation of a service provider.\n @dev See {ServiceProviderInternal} for the actual storage representation" - }, - "id": 3724, - "members": [ - { - "constant": false, - "id": 3721, - "mutability": "mutable", - "name": "tokensStaked", - "nameLocation": "2176:12:28", - "nodeType": "VariableDeclaration", - "scope": 3724, - "src": "2168:20:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3720, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2168:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3723, - "mutability": "mutable", - "name": "tokensProvisioned", - "nameLocation": "2291:17:28", - "nodeType": "VariableDeclaration", - "scope": 3724, - "src": "2283:25:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3722, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2283:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ServiceProvider", - "nameLocation": "2031:15:28", - "nodeType": "StructDefinition", - "scope": 3796, - "src": "2024:291:28", - "visibility": "public" - }, - { - "canonicalName": "IHorizonStakingTypes.ServiceProviderInternal", - "documentation": { - "id": 3725, - "nodeType": "StructuredDocumentation", - "src": "2321:176:28", - "text": " @notice Internal representation of a service provider.\n @dev It contains deprecated fields from the `Indexer` struct to maintain storage compatibility." - }, - "id": 3736, - "members": [ - { - "constant": false, - "id": 3727, - "mutability": "mutable", - "name": "tokensStaked", - "nameLocation": "2662:12:28", - "nodeType": "VariableDeclaration", - "scope": 3736, - "src": "2654:20:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3726, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2654:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3729, - "mutability": "mutable", - "name": "__DEPRECATED_tokensAllocated", - "nameLocation": "2743:28:28", - "nodeType": "VariableDeclaration", - "scope": 3736, - "src": "2735:36:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3728, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2735:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3731, - "mutability": "mutable", - "name": "__DEPRECATED_tokensLocked", - "nameLocation": "2917:25:28", - "nodeType": "VariableDeclaration", - "scope": 3736, - "src": "2909:33:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2909:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3733, - "mutability": "mutable", - "name": "__DEPRECATED_tokensLockedUntil", - "nameLocation": "3026:30:28", - "nodeType": "VariableDeclaration", - "scope": 3736, - "src": "3018:38:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3732, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3018:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3735, - "mutability": "mutable", - "name": "tokensProvisioned", - "nameLocation": "3159:17:28", - "nodeType": "VariableDeclaration", - "scope": 3736, - "src": "3151:25:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3734, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3151:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ServiceProviderInternal", - "nameLocation": "2509:23:28", - "nodeType": "StructDefinition", - "scope": 3796, - "src": "2502:681:28", - "visibility": "public" - }, - { - "canonicalName": "IHorizonStakingTypes.DelegationPool", - "documentation": { - "id": 3737, - "nodeType": "StructuredDocumentation", - "src": "3189:149:28", - "text": " @notice Public representation of a delegation pool.\n @dev See {DelegationPoolInternal} for the actual storage representation" - }, - "id": 3748, - "members": [ - { - "constant": false, - "id": 3739, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "3424:6:28", - "nodeType": "VariableDeclaration", - "scope": 3748, - "src": "3416:14:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3738, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3416:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3741, - "mutability": "mutable", - "name": "shares", - "nameLocation": "3491:6:28", - "nodeType": "VariableDeclaration", - "scope": 3748, - "src": "3483:14:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3483:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3743, - "mutability": "mutable", - "name": "tokensThawing", - "nameLocation": "3553:13:28", - "nodeType": "VariableDeclaration", - "scope": 3748, - "src": "3545:21:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3742, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3545:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3745, - "mutability": "mutable", - "name": "sharesThawing", - "nameLocation": "3634:13:28", - "nodeType": "VariableDeclaration", - "scope": 3748, - "src": "3626:21:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3744, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3626:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3747, - "mutability": "mutable", - "name": "thawingNonce", - "nameLocation": "3757:12:28", - "nodeType": "VariableDeclaration", - "scope": 3748, - "src": "3749:20:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3746, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3749:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "DelegationPool", - "nameLocation": "3350:14:28", - "nodeType": "StructDefinition", - "scope": 3796, - "src": "3343:433:28", - "visibility": "public" - }, - { - "canonicalName": "IHorizonStakingTypes.DelegationPoolInternal", - "documentation": { - "id": 3749, - "nodeType": "StructuredDocumentation", - "src": "3782:213:28", - "text": " @notice Internal representation of a delegation pool.\n @dev It contains deprecated fields from the previous version of the `DelegationPool` struct\n to maintain storage compatibility." - }, - "id": 3773, - "members": [ - { - "constant": false, - "id": 3751, - "mutability": "mutable", - "name": "__DEPRECATED_cooldownBlocks", - "nameLocation": "4147:27:28", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "4140:34:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3750, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4140:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3753, - "mutability": "mutable", - "name": "__DEPRECATED_indexingRewardCut", - "nameLocation": "4279:30:28", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "4272:37:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3752, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4272:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3755, - "mutability": "mutable", - "name": "__DEPRECATED_queryFeeCut", - "nameLocation": "4408:24:28", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "4401:31:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 3754, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4401:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3757, - "mutability": "mutable", - "name": "__DEPRECATED_updatedAtBlock", - "nameLocation": "4529:27:28", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "4521:35:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3756, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4521:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3759, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "4615:6:28", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "4607:14:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3758, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4607:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3761, - "mutability": "mutable", - "name": "shares", - "nameLocation": "4682:6:28", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "4674:14:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3760, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4674:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3766, - "mutability": "mutable", - "name": "delegators", - "nameLocation": "4801:10:28", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "4741:70:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DelegationInternal_$3785_storage_$", - "typeString": "mapping(address => struct IHorizonStakingTypes.DelegationInternal)" - }, - "typeName": { - "id": 3765, - "keyName": "delegator", - "keyNameLocation": "4757:9:28", - "keyType": { - "id": 3762, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4749:7:28", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "4741:59:28", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DelegationInternal_$3785_storage_$", - "typeString": "mapping(address => struct IHorizonStakingTypes.DelegationInternal)" - }, - "valueName": "delegation", - "valueNameLocation": "4789:10:28", - "valueType": { - "id": 3764, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3763, - "name": "DelegationInternal", - "nameLocations": [ - "4770:18:28" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3785, - "src": "4770:18:28" - }, - "referencedDeclaration": 3785, - "src": "4770:18:28", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DelegationInternal_$3785_storage_ptr", - "typeString": "struct IHorizonStakingTypes.DelegationInternal" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3768, - "mutability": "mutable", - "name": "tokensThawing", - "nameLocation": "4867:13:28", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "4859:21:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3767, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4859:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3770, - "mutability": "mutable", - "name": "sharesThawing", - "nameLocation": "4948:13:28", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "4940:21:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4940:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3772, - "mutability": "mutable", - "name": "thawingNonce", - "nameLocation": "5071:12:28", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "5063:20:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5063:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "DelegationPoolInternal", - "nameLocation": "4007:22:28", - "nodeType": "StructDefinition", - "scope": 3796, - "src": "4000:1090:28", - "visibility": "public" - }, - { - "canonicalName": "IHorizonStakingTypes.Delegation", - "documentation": { - "id": 3774, - "nodeType": "StructuredDocumentation", - "src": "5096:146:28", - "text": " @notice Public representation of delegation details.\n @dev See {DelegationInternal} for the actual storage representation" - }, - "id": 3777, - "members": [ - { - "constant": false, - "id": 3776, - "mutability": "mutable", - "name": "shares", - "nameLocation": "5283:6:28", - "nodeType": "VariableDeclaration", - "scope": 3777, - "src": "5275:14:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5275:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Delegation", - "nameLocation": "5254:10:28", - "nodeType": "StructDefinition", - "scope": 3796, - "src": "5247:92:28", - "visibility": "public" - }, - { - "canonicalName": "IHorizonStakingTypes.DelegationInternal", - "documentation": { - "id": 3778, - "nodeType": "StructuredDocumentation", - "src": "5345:210:28", - "text": " @notice Internal representation of delegation details.\n @dev It contains deprecated fields from the previous version of the `Delegation` struct\n to maintain storage compatibility." - }, - "id": 3785, - "members": [ - { - "constant": false, - "id": 3780, - "mutability": "mutable", - "name": "shares", - "nameLocation": "5657:6:28", - "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "5649:14:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3779, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5649:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3782, - "mutability": "mutable", - "name": "__DEPRECATED_tokensLocked", - "nameLocation": "5736:25:28", - "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "5728:33:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5728:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3784, - "mutability": "mutable", - "name": "__DEPRECATED_tokensLockedUntil", - "nameLocation": "5845:30:28", - "nodeType": "VariableDeclaration", - "scope": 3785, - "src": "5837:38:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3783, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5837:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "DelegationInternal", - "nameLocation": "5567:18:28", - "nodeType": "StructDefinition", - "scope": 3796, - "src": "5560:322:28", - "visibility": "public" - }, - { - "canonicalName": "IHorizonStakingTypes.ThawRequest", - "documentation": { - "id": 3786, - "nodeType": "StructuredDocumentation", - "src": "5888:185:28", - "text": " @notice Details of a stake thawing operation.\n @dev ThawRequests are stored in linked lists by service provider/delegator,\n ordered by creation timestamp." - }, - "id": 3795, - "members": [ - { - "constant": false, - "id": 3788, - "mutability": "mutable", - "name": "shares", - "nameLocation": "6172:6:28", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "6164:14:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3787, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6164:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3790, - "mutability": "mutable", - "name": "thawingUntil", - "nameLocation": "6276:12:28", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "6269:19:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3789, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6269:6:28", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3792, - "mutability": "mutable", - "name": "next", - "nameLocation": "6364:4:28", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "6356:12:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3791, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6356:7:28", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3794, - "mutability": "mutable", - "name": "thawingNonce", - "nameLocation": "6442:12:28", - "nodeType": "VariableDeclaration", - "scope": 3795, - "src": "6434:20:28", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3793, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6434:7:28", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "ThawRequest", - "nameLocation": "6085:11:28", - "nodeType": "StructDefinition", - "scope": 3796, - "src": "6078:383:28", - "visibility": "public" - } - ], - "scope": 3797, - "src": "568:5895:28", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "46:6418:28" - }, - "id": 28 - }, - "@graphprotocol/horizon/contracts/libraries/LinkedList.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/LinkedList.sol", - "exportedSymbols": { - "LinkedList": [ - 4087 - ] - }, - "id": 4088, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3798, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:29" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "LinkedList", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3799, - "nodeType": "StructuredDocumentation", - "src": "71:574:29", - "text": " @title LinkedList library\n @notice A library to manage singly linked lists.\n The library makes no assumptions about the contents of the items, the only\n requirements on the items are:\n - they must be represented by a unique bytes32 id\n - the id of the item must not be bytes32(0)\n - each item must have a reference to the next item in the list\n - the list cannot have more than `MAX_ITEMS` items\n A contract using this library must store:\n - a LinkedList.List to keep track of the list metadata\n - a mapping from bytes32 to the item data" - }, - "fullyImplemented": true, - "id": 4087, - "linearizedBaseContracts": [ - 4087 - ], - "name": "LinkedList", - "nameLocation": "654:10:29", - "nodeType": "ContractDefinition", - "nodes": [ - { - "global": false, - "id": 3803, - "libraryName": { - "id": 3800, - "name": "LinkedList", - "nameLocations": [ - "677:10:29" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4087, - "src": "677:10:29" - }, - "nodeType": "UsingForDirective", - "src": "671:26:29", - "typeName": { - "id": 3802, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3801, - "name": "List", - "nameLocations": [ - "692:4:29" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3813, - "src": "692:4:29" - }, - "referencedDeclaration": 3813, - "src": "692:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - } - } - }, - { - "canonicalName": "LinkedList.List", - "documentation": { - "id": 3804, - "nodeType": "StructuredDocumentation", - "src": "703:36:29", - "text": "@notice Represents a linked list" - }, - "id": 3813, - "members": [ - { - "constant": false, - "id": 3806, - "mutability": "mutable", - "name": "head", - "nameLocation": "806:4:29", - "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "798:12:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3805, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "798:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3808, - "mutability": "mutable", - "name": "tail", - "nameLocation": "860:4:29", - "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "852:12:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3807, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "852:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3810, - "mutability": "mutable", - "name": "nonce", - "nameLocation": "954:5:29", - "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "946:13:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3809, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "946:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3812, - "mutability": "mutable", - "name": "count", - "nameLocation": "1020:5:29", - "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "1012:13:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3811, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1012:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "List", - "nameLocation": "751:4:29", - "nodeType": "StructDefinition", - "scope": 4087, - "src": "744:288:29", - "visibility": "public" - }, - { - "constant": true, - "documentation": { - "id": 3814, - "nodeType": "StructuredDocumentation", - "src": "1038:32:29", - "text": "@notice Empty bytes constant" - }, - "id": 3820, - "mutability": "constant", - "name": "NULL_BYTES", - "nameLocation": "1099:10:29", - "nodeType": "VariableDeclaration", - "scope": 4087, - "src": "1075:46:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3815, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1075:5:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": { - "arguments": [ - { - "hexValue": "", - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1118:2:29", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 3817, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1112:5:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 3816, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1112:5:29", - "typeDescriptions": {} - } - }, - "id": 3819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1112:9:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "documentation": { - "id": 3821, - "nodeType": "StructuredDocumentation", - "src": "1128:55:29", - "text": "@notice Maximum amount of items allowed in the list" - }, - "id": 3824, - "mutability": "constant", - "name": "MAX_ITEMS", - "nameLocation": "1214:9:29", - "nodeType": "VariableDeclaration", - "scope": 4087, - "src": "1188:44:29", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3822, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1188:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31305f303030", - "id": 3823, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1226:6:29", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10_000" - }, - "visibility": "internal" - }, - { - "documentation": { - "id": 3825, - "nodeType": "StructuredDocumentation", - "src": "1239:82:29", - "text": " @notice Thrown when trying to remove an item from an empty list" - }, - "errorSelector": "ddaf8f21", - "id": 3827, - "name": "LinkedListEmptyList", - "nameLocation": "1332:19:29", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3826, - "nodeType": "ParameterList", - "parameters": [], - "src": "1351:2:29" - }, - "src": "1326:28:29" - }, - { - "documentation": { - "id": 3828, - "nodeType": "StructuredDocumentation", - "src": "1360:118:29", - "text": " @notice Thrown when trying to add an item to a list that has reached the maximum number of elements" - }, - "errorSelector": "ea315ac0", - "id": 3830, - "name": "LinkedListMaxElementsExceeded", - "nameLocation": "1489:29:29", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3829, - "nodeType": "ParameterList", - "parameters": [], - "src": "1518:2:29" - }, - "src": "1483:38:29" - }, - { - "documentation": { - "id": 3831, - "nodeType": "StructuredDocumentation", - "src": "1527:99:29", - "text": " @notice Thrown when trying to traverse a list with more iterations than elements" - }, - "errorSelector": "9482373a", - "id": 3833, - "name": "LinkedListInvalidIterations", - "nameLocation": "1637:27:29", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3832, - "nodeType": "ParameterList", - "parameters": [], - "src": "1664:2:29" - }, - "src": "1631:36:29" - }, - { - "documentation": { - "id": 3834, - "nodeType": "StructuredDocumentation", - "src": "1673:88:29", - "text": " @notice Thrown when trying to add an item with id equal to bytes32(0)" - }, - "errorSelector": "8f4a893d", - "id": 3836, - "name": "LinkedListInvalidZeroId", - "nameLocation": "1772:23:29", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 3835, - "nodeType": "ParameterList", - "parameters": [], - "src": "1795:2:29" - }, - "src": "1766:32:29" - }, - { - "body": { - "id": 3894, - "nodeType": "Block", - "src": "2314:262:29", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3846, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3840, - "src": "2332:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3847, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2337:5:29", - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3812, - "src": "2332:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 3848, - "name": "MAX_ITEMS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3824, - "src": "2345:9:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2332:22:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3850, - "name": "LinkedListMaxElementsExceeded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "2356:29:29", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2356:31:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 3845, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2324:7:29", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 3852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2324:64:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3853, - "nodeType": "ExpressionStatement", - "src": "2324:64:29" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3855, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3842, - "src": "2406:2:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 3858, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2420:1:29", - "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": 3857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2412:7:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 3856, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2412:7:29", - "typeDescriptions": {} - } - }, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2412:10:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2406:16:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3861, - "name": "LinkedListInvalidZeroId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3836, - "src": "2424:23:29", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2424:25:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 3854, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2398:7:29", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 3863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2398:52:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3864, - "nodeType": "ExpressionStatement", - "src": "2398:52:29" - }, - { - "expression": { - "id": 3869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 3865, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3840, - "src": "2460:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3867, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2465:4:29", - "memberName": "tail", - "nodeType": "MemberAccess", - "referencedDeclaration": 3808, - "src": "2460:9:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 3868, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3842, - "src": "2472:2:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2460:14:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3870, - "nodeType": "ExpressionStatement", - "src": "2460:14:29" - }, - { - "expression": { - "id": 3875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 3871, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3840, - "src": "2484:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3873, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2489:5:29", - "memberName": "nonce", - "nodeType": "MemberAccess", - "referencedDeclaration": 3810, - "src": "2484:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 3874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2498:1:29", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2484:15:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3876, - "nodeType": "ExpressionStatement", - "src": "2484:15:29" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3877, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3840, - "src": "2513:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3878, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2518:5:29", - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3812, - "src": "2513:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2527:1:29", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2513:15:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3887, - "nodeType": "IfStatement", - "src": "2509:35:29", - "trueBody": { - "expression": { - "id": 3885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 3881, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3840, - "src": "2530:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3883, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2535:4:29", - "memberName": "head", - "nodeType": "MemberAccess", - "referencedDeclaration": 3806, - "src": "2530:9:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 3884, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3842, - "src": "2542:2:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2530:14:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3886, - "nodeType": "ExpressionStatement", - "src": "2530:14:29" - } - }, - { - "expression": { - "id": 3892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 3888, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3840, - "src": "2554:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3890, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2559:5:29", - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3812, - "src": "2554:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 3891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2568:1:29", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2554:15:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3893, - "nodeType": "ExpressionStatement", - "src": "2554:15:29" - } - ] - }, - "documentation": { - "id": 3837, - "nodeType": "StructuredDocumentation", - "src": "1804:448:29", - "text": " @notice Adds an item to the list.\n The item is added to the end of the list.\n @dev Note that this function will not take care of linking the\n old tail to the new item. The caller should take care of this.\n It will also not ensure id uniqueness.\n @dev There is a maximum number of elements that can be added to the list.\n @param self The list metadata\n @param id The id of the item to add" - }, - "id": 3895, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTail", - "nameLocation": "2266:7:29", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3843, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3840, - "mutability": "mutable", - "name": "self", - "nameLocation": "2287:4:29", - "nodeType": "VariableDeclaration", - "scope": 3895, - "src": "2274:17:29", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "id": 3839, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3838, - "name": "List", - "nameLocations": [ - "2274:4:29" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3813, - "src": "2274:4:29" - }, - "referencedDeclaration": 3813, - "src": "2274:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3842, - "mutability": "mutable", - "name": "id", - "nameLocation": "2301:2:29", - "nodeType": "VariableDeclaration", - "scope": 3895, - "src": "2293:10:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3841, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2293:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2273:31:29" - }, - "returnParameters": { - "id": 3844, - "nodeType": "ParameterList", - "parameters": [], - "src": "2314:0:29" - }, - "scope": 4087, - "src": "2257:319:29", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3968, - "nodeType": "Block", - "src": "3232:279:29", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3919, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3899, - "src": "3250:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3920, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3255:5:29", - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3812, - "src": "3250:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 3921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3263:1:29", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3250:14:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3923, - "name": "LinkedListEmptyList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3827, - "src": "3266:19:29", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 3924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3266:21:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 3918, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3242:7:29", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3242:46:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3926, - "nodeType": "ExpressionStatement", - "src": "3242:46:29" - }, - { - "assignments": [ - 3928 - ], - "declarations": [ - { - "constant": false, - "id": 3928, - "mutability": "mutable", - "name": "nextItem", - "nameLocation": "3306:8:29", - "nodeType": "VariableDeclaration", - "scope": 3968, - "src": "3298:16:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3927, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3298:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 3933, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 3930, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3899, - "src": "3329:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3931, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3334:4:29", - "memberName": "head", - "nodeType": "MemberAccess", - "referencedDeclaration": 3806, - "src": "3329:9:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3929, - "name": "getNextItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3907, - "src": "3317:11:29", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - } - }, - "id": 3932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3317:22:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3298:41:29" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 3935, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3899, - "src": "3360:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3936, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3365:4:29", - "memberName": "head", - "nodeType": "MemberAccess", - "referencedDeclaration": 3806, - "src": "3360:9:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3934, - "name": "deleteItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3913, - "src": "3349:10:29", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 3937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3349:21:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3938, - "nodeType": "ExpressionStatement", - "src": "3349:21:29" - }, - { - "expression": { - "id": 3943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 3939, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3899, - "src": "3380:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3941, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3385:5:29", - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3812, - "src": "3380:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "hexValue": "31", - "id": 3942, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3394:1:29", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3380:15:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3944, - "nodeType": "ExpressionStatement", - "src": "3380:15:29" - }, - { - "expression": { - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 3945, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3899, - "src": "3405:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3947, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3410:4:29", - "memberName": "head", - "nodeType": "MemberAccess", - "referencedDeclaration": 3806, - "src": "3405:9:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 3948, - "name": "nextItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3928, - "src": "3417:8:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "3405:20:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "3405:20:29" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3951, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3899, - "src": "3439:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3952, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3444:5:29", - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3812, - "src": "3439:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 3953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3453:1:29", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3439:15:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3964, - "nodeType": "IfStatement", - "src": "3435:43:29", - "trueBody": { - "expression": { - "id": 3962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 3955, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3899, - "src": "3456:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3957, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3461:4:29", - "memberName": "tail", - "nodeType": "MemberAccess", - "referencedDeclaration": 3808, - "src": "3456:9:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "hexValue": "30", - "id": 3960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3476:1:29", - "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": 3959, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3468:7:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 3958, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3468:7:29", - "typeDescriptions": {} - } - }, - "id": 3961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3468:10:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "3456:22:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3963, - "nodeType": "ExpressionStatement", - "src": "3456:22:29" - } - }, - { - "expression": { - "expression": { - "id": 3965, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3899, - "src": "3495:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 3966, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3500:4:29", - "memberName": "head", - "nodeType": "MemberAccess", - "referencedDeclaration": 3806, - "src": "3495:9:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3917, - "id": 3967, - "nodeType": "Return", - "src": "3488:16:29" - } - ] - }, - "documentation": { - "id": 3896, - "nodeType": "StructuredDocumentation", - "src": "2582:465:29", - "text": " @notice Removes an item from the list.\n The item is removed from the beginning of the list.\n @param self The list metadata\n @param getNextItem A function to get the next item in the list. It should take\n the id of the current item and return the id of the next item.\n @param deleteItem A function to delete an item. This should delete the item from\n the contract storage. It takes the id of the item to delete." - }, - "id": 3969, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeHead", - "nameLocation": "3061:10:29", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3914, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3899, - "mutability": "mutable", - "name": "self", - "nameLocation": "3094:4:29", - "nodeType": "VariableDeclaration", - "scope": 3969, - "src": "3081:17:29", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "id": 3898, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3897, - "name": "List", - "nameLocations": [ - "3081:4:29" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3813, - "src": "3081:4:29" - }, - "referencedDeclaration": 3813, - "src": "3081:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3907, - "mutability": "mutable", - "name": "getNextItem", - "nameLocation": "3149:11:29", - "nodeType": "VariableDeclaration", - "scope": 3969, - "src": "3108:52:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - }, - "typeName": { - "id": 3906, - "nodeType": "FunctionTypeName", - "parameterTypes": { - "id": 3902, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3901, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3906, - "src": "3117:7:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3900, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3117:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3116:9:29" - }, - "returnParameterTypes": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3904, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3906, - "src": "3140:7:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3903, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3140:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3139:9:29" - }, - "src": "3108:52:29", - "stateMutability": "view", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - }, - "visibility": "internal" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3913, - "mutability": "mutable", - "name": "deleteItem", - "nameLocation": "3188:10:29", - "nodeType": "VariableDeclaration", - "scope": 3969, - "src": "3170:28:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - }, - "typeName": { - "id": 3912, - "nodeType": "FunctionTypeName", - "parameterTypes": { - "id": 3910, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3909, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3912, - "src": "3179:7:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3908, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3179:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3178:9:29" - }, - "returnParameterTypes": { - "id": 3911, - "nodeType": "ParameterList", - "parameters": [], - "src": "3188:0:29" - }, - "src": "3170:28:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - }, - "visibility": "internal" - }, - "visibility": "internal" - } - ], - "src": "3071:133:29" - }, - "returnParameters": { - "id": 3917, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3916, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3969, - "src": "3223:7:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3915, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3223:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3222:9:29" - }, - "scope": 4087, - "src": "3052:459:29", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4085, - "nodeType": "Block", - "src": "4818:606:29", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4011, - "name": "iterations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4003, - "src": "4836:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "expression": { - "id": 4012, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3973, - "src": "4850:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 4013, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4855:5:29", - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3812, - "src": "4850:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4836:24:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4015, - "name": "LinkedListInvalidIterations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3833, - "src": "4862:27:29", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 4016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4862:29:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 4010, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4828:7:29", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 4017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4828:64:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4018, - "nodeType": "ExpressionStatement", - "src": "4828:64:29" - }, - { - "assignments": [ - 4020 - ], - "declarations": [ - { - "constant": false, - "id": 4020, - "mutability": "mutable", - "name": "itemCount", - "nameLocation": "4911:9:29", - "nodeType": "VariableDeclaration", - "scope": 4085, - "src": "4903:17:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4019, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4903:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 4022, - "initialValue": { - "hexValue": "30", - "id": 4021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4923:1:29", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4903:21:29" - }, - { - "expression": { - "id": 4032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4023, - "name": "iterations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4003, - "src": "4934:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "condition": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4024, - "name": "iterations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4003, - "src": "4948:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4025, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4962:1:29", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4948:15:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 4027, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4947:17:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 4030, - "name": "iterations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4003, - "src": "4980:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "4947:43:29", - "trueExpression": { - "expression": { - "id": 4028, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3973, - "src": "4967:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 4029, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4972:5:29", - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3812, - "src": "4967:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4934:56:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4033, - "nodeType": "ExpressionStatement", - "src": "4934:56:29" - }, - { - "assignments": [ - 4035 - ], - "declarations": [ - { - "constant": false, - "id": 4035, - "mutability": "mutable", - "name": "cursor", - "nameLocation": "5009:6:29", - "nodeType": "VariableDeclaration", - "scope": 4085, - "src": "5001:14:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5001:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 4038, - "initialValue": { - "expression": { - "id": 4036, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3973, - "src": "5018:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 4037, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5023:4:29", - "memberName": "head", - "nodeType": "MemberAccess", - "referencedDeclaration": 3806, - "src": "5018:9:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5001:26:29" - }, - { - "body": { - "id": 4079, - "nodeType": "Block", - "src": "5085:288:29", - "statements": [ - { - "assignments": [ - 4050, - 4052 - ], - "declarations": [ - { - "constant": false, - "id": 4050, - "mutability": "mutable", - "name": "shouldBreak", - "nameLocation": "5105:11:29", - "nodeType": "VariableDeclaration", - "scope": 4079, - "src": "5100:16:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4049, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5100:4:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4052, - "mutability": "mutable", - "name": "acc_", - "nameLocation": "5131:4:29", - "nodeType": "VariableDeclaration", - "scope": 4079, - "src": "5118:17:29", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4051, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5118:5:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 4057, - "initialValue": { - "arguments": [ - { - "id": 4054, - "name": "cursor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4035, - "src": "5151:6:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 4055, - "name": "processInitAcc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4001, - "src": "5159:14:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4053, - "name": "processItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3993, - "src": "5139:11:29", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes32,bytes memory) returns (bool,bytes memory)" - } - }, - "id": 4056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5139:35:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5099:75:29" - }, - { - "condition": { - "id": 4058, - "name": "shouldBreak", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4050, - "src": "5193:11:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4060, - "nodeType": "IfStatement", - "src": "5189:22:29", - "trueBody": { - "id": 4059, - "nodeType": "Break", - "src": "5206:5:29" - } - }, - { - "expression": { - "id": 4063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4061, - "name": "processInitAcc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4001, - "src": "5226:14:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 4062, - "name": "acc_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4052, - "src": "5243:4:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "5226:21:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4064, - "nodeType": "ExpressionStatement", - "src": "5226:21:29" - }, - { - "expression": { - "id": 4071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4065, - "name": "cursor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4035, - "src": "5261:6:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 4068, - "name": "getNextItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3981, - "src": "5286:11:29", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - } - }, - { - "id": 4069, - "name": "deleteItem", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3999, - "src": "5299:10:29", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - }, - { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - ], - "expression": { - "id": 4066, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3973, - "src": "5270:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List storage pointer" - } - }, - "id": 4067, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5275:10:29", - "memberName": "removeHead", - "nodeType": "MemberAccess", - "referencedDeclaration": 3969, - "src": "5270:15:29", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$3813_storage_ptr_$_t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$_$_t_function_internal_nonpayable$_t_bytes32_$returns$__$_$returns$_t_bytes32_$attached_to$_t_struct$_List_$3813_storage_ptr_$", - "typeString": "function (struct LinkedList.List storage pointer,function (bytes32) view returns (bytes32),function (bytes32)) returns (bytes32)" - } - }, - "id": 4070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5270:40:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "5261:49:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 4072, - "nodeType": "ExpressionStatement", - "src": "5261:49:29" - }, - { - "expression": { - "id": 4074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "5325:12:29", - "subExpression": { - "id": 4073, - "name": "iterations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4003, - "src": "5325:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4075, - "nodeType": "ExpressionStatement", - "src": "5325:12:29" - }, - { - "expression": { - "id": 4077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5351:11:29", - "subExpression": { - "id": 4076, - "name": "itemCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "5351:9:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4078, - "nodeType": "ExpressionStatement", - "src": "5351:11:29" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 4044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4039, - "name": "cursor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4035, - "src": "5045:6:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 4042, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5063:1:29", - "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": 4041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5055:7:29", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 4040, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5055:7:29", - "typeDescriptions": {} - } - }, - "id": 4043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5055:10:29", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "5045:20:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4045, - "name": "iterations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4003, - "src": "5069:10:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 4046, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5082:1:29", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5069:14:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5045:38:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4080, - "nodeType": "WhileStatement", - "src": "5038:335:29" - }, - { - "expression": { - "components": [ - { - "id": 4081, - "name": "itemCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "5391:9:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4082, - "name": "processInitAcc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4001, - "src": "5402:14:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "id": 4083, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5390:27:29", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bytes_memory_ptr_$", - "typeString": "tuple(uint256,bytes memory)" - } - }, - "functionReturnParameters": 4009, - "id": 4084, - "nodeType": "Return", - "src": "5383:34:29" - } - ] - }, - "documentation": { - "id": 3970, - "nodeType": "StructuredDocumentation", - "src": "3517:957:29", - "text": " @notice Traverses the list and processes each item.\n It deletes the processed items from both the list and the storage mapping.\n @param self The list metadata\n @param getNextItem A function to get the next item in the list. It should take\n the id of the current item and return the id of the next item.\n @param processItem A function to process an item. The function should take the id of the item\n and an accumulator, and return:\n - a boolean indicating whether the traversal should stop\n - an accumulator to pass data between iterations\n @param deleteItem A function to delete an item. This should delete the item from\n the contract storage. It takes the id of the item to delete.\n @param processInitAcc The initial accumulator data\n @param iterations The maximum number of iterations to perform. If 0, the traversal will continue\n until the end of the list." - }, - "id": 4086, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "traverse", - "nameLocation": "4488:8:29", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4004, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3973, - "mutability": "mutable", - "name": "self", - "nameLocation": "4519:4:29", - "nodeType": "VariableDeclaration", - "scope": 4086, - "src": "4506:17:29", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "id": 3972, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 3971, - "name": "List", - "nameLocations": [ - "4506:4:29" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3813, - "src": "4506:4:29" - }, - "referencedDeclaration": 3813, - "src": "4506:4:29", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$3813_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3981, - "mutability": "mutable", - "name": "getNextItem", - "nameLocation": "4574:11:29", - "nodeType": "VariableDeclaration", - "scope": 4086, - "src": "4533:52:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - }, - "typeName": { - "id": 3980, - "nodeType": "FunctionTypeName", - "parameterTypes": { - "id": 3976, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3975, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3980, - "src": "4542:7:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3974, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4542:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4541:9:29" - }, - "returnParameterTypes": { - "id": 3979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3978, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3980, - "src": "4565:7:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3977, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4565:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4564:9:29" - }, - "src": "4533:52:29", - "stateMutability": "view", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - }, - "visibility": "internal" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3993, - "mutability": "mutable", - "name": "processItem", - "nameLocation": "4656:11:29", - "nodeType": "VariableDeclaration", - "scope": 4086, - "src": "4595:72:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes32,bytes) returns (bool,bytes)" - }, - "typeName": { - "id": 3992, - "nodeType": "FunctionTypeName", - "parameterTypes": { - "id": 3986, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3983, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3992, - "src": "4604:7:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3982, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4604:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3985, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3992, - "src": "4613:12:29", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3984, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4613:5:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4603:23:29" - }, - "returnParameterTypes": { - "id": 3991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3988, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3992, - "src": "4636:4:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3987, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4636:4:29", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3990, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3992, - "src": "4642:12:29", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3989, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4642:5:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4635:20:29" - }, - "src": "4595:72:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes32,bytes) returns (bool,bytes)" - }, - "visibility": "internal" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3999, - "mutability": "mutable", - "name": "deleteItem", - "nameLocation": "4695:10:29", - "nodeType": "VariableDeclaration", - "scope": 4086, - "src": "4677:28:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - }, - "typeName": { - "id": 3998, - "nodeType": "FunctionTypeName", - "parameterTypes": { - "id": 3996, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3995, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3998, - "src": "4686:7:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3994, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4686:7:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4685:9:29" - }, - "returnParameterTypes": { - "id": 3997, - "nodeType": "ParameterList", - "parameters": [], - "src": "4695:0:29" - }, - "src": "4677:28:29", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - }, - "visibility": "internal" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4001, - "mutability": "mutable", - "name": "processInitAcc", - "nameLocation": "4728:14:29", - "nodeType": "VariableDeclaration", - "scope": 4086, - "src": "4715:27:29", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4000, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4715:5:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4003, - "mutability": "mutable", - "name": "iterations", - "nameLocation": "4760:10:29", - "nodeType": "VariableDeclaration", - "scope": 4086, - "src": "4752:18:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4002, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4752:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4496:280:29" - }, - "returnParameters": { - "id": 4009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4006, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4086, - "src": "4795:7:29", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4005, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4795:7:29", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4008, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4086, - "src": "4804:12:29", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4007, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4804:5:29", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4794:23:29" - }, - "scope": 4087, - "src": "4479:945:29", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 4088, - "src": "646:4780:29", - "usedErrors": [ - 3827, - 3830, - 3833, - 3836 - ], - "usedEvents": [] - } - ], - "src": "46:5381:29" - }, - "id": 29 - }, - "@graphprotocol/horizon/contracts/libraries/MathUtils.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/MathUtils.sol", - "exportedSymbols": { - "MathUtils": [ - 4168 - ] - }, - "id": 4169, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4089, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:30" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "MathUtils", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 4090, - "nodeType": "StructuredDocumentation", - "src": "71:99:30", - "text": " @title MathUtils Library\n @notice A collection of functions to perform math operations" - }, - "fullyImplemented": true, - "id": 4168, - "linearizedBaseContracts": [ - 4168 - ], - "name": "MathUtils", - "nameLocation": "179:9:30", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 4127, - "nodeType": "Block", - "src": "880:113:30", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4104, - "name": "valueA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "899:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4105, - "name": "weightA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4095, - "src": "908:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "899:16:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4107, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "898:18:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4108, - "name": "valueB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4097, - "src": "920:6:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4109, - "name": "weightB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4099, - "src": "929:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "920:16:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4111, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "919:18:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "898:39:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4113, - "name": "weightA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4095, - "src": "941:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 4114, - "name": "weightB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4099, - "src": "951:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "941:17:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 4116, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "961:1:30", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "941:21:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4118, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "940:23:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "898:65:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4120, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "897:67:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4121, - "name": "weightA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4095, - "src": "968:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 4122, - "name": "weightB", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4099, - "src": "978:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "968:17:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4124, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "967:19:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "897:89:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4103, - "id": 4126, - "nodeType": "Return", - "src": "890:96:30" - } - ] - }, - "documentation": { - "id": 4091, - "nodeType": "StructuredDocumentation", - "src": "195:509:30", - "text": " @dev Calculates the weighted average of two values pondering each of these\n values based on configured weights. The contribution of each value N is\n weightN/(weightA + weightB). The calculation rounds up to ensure the result\n is always greater than the smallest of the two values.\n @param valueA The amount for value A\n @param weightA The weight to use for value A\n @param valueB The amount for value B\n @param weightB The weight to use for value B" - }, - "id": 4128, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "weightedAverageRoundingUp", - "nameLocation": "718:25:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4100, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4093, - "mutability": "mutable", - "name": "valueA", - "nameLocation": "761:6:30", - "nodeType": "VariableDeclaration", - "scope": 4128, - "src": "753:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4092, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "753:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4095, - "mutability": "mutable", - "name": "weightA", - "nameLocation": "785:7:30", - "nodeType": "VariableDeclaration", - "scope": 4128, - "src": "777:15:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4094, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "777:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4097, - "mutability": "mutable", - "name": "valueB", - "nameLocation": "810:6:30", - "nodeType": "VariableDeclaration", - "scope": 4128, - "src": "802:14:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4096, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "802:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4099, - "mutability": "mutable", - "name": "weightB", - "nameLocation": "834:7:30", - "nodeType": "VariableDeclaration", - "scope": 4128, - "src": "826:15:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4098, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "826:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "743:104:30" - }, - "returnParameters": { - "id": 4103, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4102, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4128, - "src": "871:7:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4101, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "871:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "870:9:30" - }, - "scope": 4168, - "src": "709:284:30", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4145, - "nodeType": "Block", - "src": "1130:38:30", - "statements": [ - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4138, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4131, - "src": "1147:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 4139, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4133, - "src": "1152:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1147:6:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 4142, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4133, - "src": "1160:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "1147:14:30", - "trueExpression": { - "id": 4141, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4131, - "src": "1156:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4137, - "id": 4144, - "nodeType": "Return", - "src": "1140:21:30" - } - ] - }, - "documentation": { - "id": 4129, - "nodeType": "StructuredDocumentation", - "src": "999:59:30", - "text": " @dev Returns the minimum of two numbers." - }, - "id": 4146, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "min", - "nameLocation": "1072:3:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4131, - "mutability": "mutable", - "name": "x", - "nameLocation": "1084:1:30", - "nodeType": "VariableDeclaration", - "scope": 4146, - "src": "1076:9:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1076:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4133, - "mutability": "mutable", - "name": "y", - "nameLocation": "1095:1:30", - "nodeType": "VariableDeclaration", - "scope": 4146, - "src": "1087:9:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4132, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1087:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1075:22:30" - }, - "returnParameters": { - "id": 4137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4136, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4146, - "src": "1121:7:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1121:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1120:9:30" - }, - "scope": 4168, - "src": "1063:105:30", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4166, - "nodeType": "Block", - "src": "1340:43:30", - "statements": [ - { - "expression": { - "condition": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4156, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4149, - "src": "1358:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 4157, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "1362:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1358:5:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 4159, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1357:7:30", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "hexValue": "30", - "id": 4163, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1375:1:30", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 4164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "1357:19:30", - "trueExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4160, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4149, - "src": "1367:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 4161, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "1371:1:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1367:5:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4155, - "id": 4165, - "nodeType": "Return", - "src": "1350:26:30" - } - ] - }, - "documentation": { - "id": 4147, - "nodeType": "StructuredDocumentation", - "src": "1174:87:30", - "text": " @dev Returns the difference between two numbers or zero if negative." - }, - "id": 4167, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "diffOrZero", - "nameLocation": "1275:10:30", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4149, - "mutability": "mutable", - "name": "x", - "nameLocation": "1294:1:30", - "nodeType": "VariableDeclaration", - "scope": 4167, - "src": "1286:9:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1286:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4151, - "mutability": "mutable", - "name": "y", - "nameLocation": "1305:1:30", - "nodeType": "VariableDeclaration", - "scope": 4167, - "src": "1297:9:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4150, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1297:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1285:22:30" - }, - "returnParameters": { - "id": 4155, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4154, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4167, - "src": "1331:7:30", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4153, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1331:7:30", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1330:9:30" - }, - "scope": 4168, - "src": "1266:117:30", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 4169, - "src": "171:1214:30", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "46:1340:30" - }, - "id": 30 - }, - "@graphprotocol/horizon/contracts/libraries/PPMMath.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", - "exportedSymbols": { - "PPMMath": [ - 4262 - ] - }, - "id": 4263, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4170, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:31" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "PPMMath", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 4171, - "nodeType": "StructuredDocumentation", - "src": "70:118:31", - "text": " @title PPMMath library\n @notice A library for handling calculations with parts per million (PPM) amounts." - }, - "fullyImplemented": true, - "id": 4262, - "linearizedBaseContracts": [ - 4262 - ], - "name": "PPMMath", - "nameLocation": "197:7:31", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "documentation": { - "id": 4172, - "nodeType": "StructuredDocumentation", - "src": "211:60:31", - "text": "@notice Maximum value (100%) in parts per million (PPM)." - }, - "id": 4175, - "mutability": "constant", - "name": "MAX_PPM", - "nameLocation": "302:7:31", - "nodeType": "VariableDeclaration", - "scope": 4262, - "src": "276:45:31", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "276:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "315f3030305f303030", - "id": 4174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "312:9:31", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1_000_000" - }, - "visibility": "internal" - }, - { - "documentation": { - "id": 4176, - "nodeType": "StructuredDocumentation", - "src": "328:133:31", - "text": " @notice Thrown when a value is expected to be in PPM but is not.\n @param value The value that is not in PPM." - }, - "errorSelector": "3dc311df", - "id": 4180, - "name": "PPMMathInvalidPPM", - "nameLocation": "472:17:31", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 4179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4178, - "mutability": "mutable", - "name": "value", - "nameLocation": "498:5:31", - "nodeType": "VariableDeclaration", - "scope": 4180, - "src": "490:13:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "490:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "489:15:31" - }, - "src": "466:39:31" - }, - { - "documentation": { - "id": 4181, - "nodeType": "StructuredDocumentation", - "src": "511:189:31", - "text": " @notice Thrown when no value in a multiplication is in PPM.\n @param a The first value in the multiplication.\n @param b The second value in the multiplication." - }, - "errorSelector": "ed17e1d6", - "id": 4187, - "name": "PPMMathInvalidMulPPM", - "nameLocation": "711:20:31", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 4186, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4183, - "mutability": "mutable", - "name": "a", - "nameLocation": "740:1:31", - "nodeType": "VariableDeclaration", - "scope": 4187, - "src": "732:9:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4182, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "732:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4185, - "mutability": "mutable", - "name": "b", - "nameLocation": "751:1:31", - "nodeType": "VariableDeclaration", - "scope": 4187, - "src": "743:9:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "743:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "731:22:31" - }, - "src": "705:49:31" - }, - { - "body": { - "id": 4218, - "nodeType": "Block", - "src": "1029:118:31", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 4199, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4190, - "src": "1058:1:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4198, - "name": "isValidPPM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4261, - "src": "1047:10:31", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 4200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1047:13:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "arguments": [ - { - "id": 4202, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "1075:1:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4201, - "name": "isValidPPM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4261, - "src": "1064:10:31", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 4203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1064:13:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1047:30:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 4206, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4190, - "src": "1100:1:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 4207, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "1103:1:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4205, - "name": "PPMMathInvalidMulPPM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4187, - "src": "1079:20:31", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 4208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1079:26:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 4197, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1039:7:31", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 4209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1039:67:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4210, - "nodeType": "ExpressionStatement", - "src": "1039:67:31" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4211, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4190, - "src": "1124:1:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 4212, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "1128:1:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1124:5:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4214, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1123:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 4215, - "name": "MAX_PPM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4175, - "src": "1133:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1123:17:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4196, - "id": 4217, - "nodeType": "Return", - "src": "1116:24:31" - } - ] - }, - "documentation": { - "id": 4188, - "nodeType": "StructuredDocumentation", - "src": "760:194:31", - "text": " @notice Multiplies two values, one of which must be in PPM.\n @param a The first value.\n @param b The second value.\n @return The result of the multiplication." - }, - "id": 4219, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mulPPM", - "nameLocation": "968:6:31", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4193, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4190, - "mutability": "mutable", - "name": "a", - "nameLocation": "983:1:31", - "nodeType": "VariableDeclaration", - "scope": 4219, - "src": "975:9:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4189, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "975:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4192, - "mutability": "mutable", - "name": "b", - "nameLocation": "994:1:31", - "nodeType": "VariableDeclaration", - "scope": 4219, - "src": "986:9:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "986:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "974:22:31" - }, - "returnParameters": { - "id": 4196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4195, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4219, - "src": "1020:7:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4194, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1020:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1019:9:31" - }, - "scope": 4262, - "src": "959:188:31", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4247, - "nodeType": "Block", - "src": "1476:104:31", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 4231, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4224, - "src": "1505:1:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4230, - "name": "isValidPPM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4261, - "src": "1494:10:31", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 4232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1494:13:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 4234, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4224, - "src": "1527:1:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4233, - "name": "PPMMathInvalidPPM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4180, - "src": "1509:17:31", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256) pure returns (error)" - } - }, - "id": 4235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1509:20:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 4229, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1486:7:31", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 4236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1486:44:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4237, - "nodeType": "ExpressionStatement", - "src": "1486:44:31" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4238, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4222, - "src": "1547:1:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "arguments": [ - { - "id": 4240, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4222, - "src": "1558:1:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4241, - "name": "MAX_PPM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4175, - "src": "1561:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 4242, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4224, - "src": "1571:1:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1561:11:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4239, - "name": "mulPPM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4219, - "src": "1551:6:31", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 4244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1551:22:31", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1547:26:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4228, - "id": 4246, - "nodeType": "Return", - "src": "1540:33:31" - } - ] - }, - "documentation": { - "id": 4220, - "nodeType": "StructuredDocumentation", - "src": "1153:241:31", - "text": " @notice Multiplies two values, the second one must be in PPM, and rounds up the result.\n @dev requirements:\n - The second value must be in PPM.\n @param a The first value.\n @param b The second value." - }, - "id": 4248, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mulPPMRoundUp", - "nameLocation": "1408:13:31", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4225, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4222, - "mutability": "mutable", - "name": "a", - "nameLocation": "1430:1:31", - "nodeType": "VariableDeclaration", - "scope": 4248, - "src": "1422:9:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1422:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4224, - "mutability": "mutable", - "name": "b", - "nameLocation": "1441:1:31", - "nodeType": "VariableDeclaration", - "scope": 4248, - "src": "1433:9:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4223, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1433:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1421:22:31" - }, - "returnParameters": { - "id": 4228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4227, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4248, - "src": "1467:7:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1467:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1466:9:31" - }, - "scope": 4262, - "src": "1399:181:31", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4260, - "nodeType": "Block", - "src": "1806:40:31", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4256, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4251, - "src": "1823:5:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 4257, - "name": "MAX_PPM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4175, - "src": "1832:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1823:16:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4255, - "id": 4259, - "nodeType": "Return", - "src": "1816:23:31" - } - ] - }, - "documentation": { - "id": 4249, - "nodeType": "StructuredDocumentation", - "src": "1586:151:31", - "text": " @notice Checks if a value is in PPM.\n @dev A valid PPM value is between 0 and MAX_PPM.\n @param value The value to check." - }, - "id": 4261, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isValidPPM", - "nameLocation": "1751:10:31", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4251, - "mutability": "mutable", - "name": "value", - "nameLocation": "1770:5:31", - "nodeType": "VariableDeclaration", - "scope": 4261, - "src": "1762:13:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1762:7:31", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1761:15:31" - }, - "returnParameters": { - "id": 4255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4254, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4261, - "src": "1800:4:31", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4253, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1800:4:31", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1799:6:31" - }, - "scope": 4262, - "src": "1742:104:31", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 4263, - "src": "189:1659:31", - "usedErrors": [ - 4180, - 4187 - ], - "usedEvents": [] - } - ], - "src": "45:1804:31" - }, - "id": 31 - }, - "@graphprotocol/horizon/contracts/libraries/UintRange.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/UintRange.sol", - "exportedSymbols": { - "UintRange": [ - 4290 - ] - }, - "id": 4291, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4264, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:32" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "UintRange", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 4265, - "nodeType": "StructuredDocumentation", - "src": "70:101:32", - "text": " @title UintRange library\n @notice A library for handling range checks on uint256 values." - }, - "fullyImplemented": true, - "id": 4290, - "linearizedBaseContracts": [ - 4290 - ], - "name": "UintRange", - "nameLocation": "180:9:32", - "nodeType": "ContractDefinition", - "nodes": [ - { - "global": false, - "id": 4268, - "libraryName": { - "id": 4266, - "name": "UintRange", - "nameLocations": [ - "202:9:32" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4290, - "src": "202:9:32" - }, - "nodeType": "UsingForDirective", - "src": "196:28:32", - "typeName": { - "id": 4267, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "216:7:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "body": { - "id": 4288, - "nodeType": "Block", - "src": "540:52:32", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4280, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4271, - "src": "557:5:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 4281, - "name": "min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4273, - "src": "566:3:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "557:12:32", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4283, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4271, - "src": "573:5:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 4284, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4275, - "src": "582:3:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "573:12:32", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "557:28:32", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4279, - "id": 4287, - "nodeType": "Return", - "src": "550:35:32" - } - ] - }, - "documentation": { - "id": 4269, - "nodeType": "StructuredDocumentation", - "src": "230:216:32", - "text": " @notice Checks if a value is in the range [`min`, `max`].\n @param value The value to check.\n @param min The minimum value of the range.\n @param max The maximum value of the range." - }, - "id": 4289, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isInRange", - "nameLocation": "460:9:32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4271, - "mutability": "mutable", - "name": "value", - "nameLocation": "478:5:32", - "nodeType": "VariableDeclaration", - "scope": 4289, - "src": "470:13:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4270, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "470:7:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4273, - "mutability": "mutable", - "name": "min", - "nameLocation": "493:3:32", - "nodeType": "VariableDeclaration", - "scope": 4289, - "src": "485:11:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4272, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "485:7:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4275, - "mutability": "mutable", - "name": "max", - "nameLocation": "506:3:32", - "nodeType": "VariableDeclaration", - "scope": 4289, - "src": "498:11:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4274, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "498:7:32", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "469:41:32" - }, - "returnParameters": { - "id": 4279, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4278, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4289, - "src": "534:4:32", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4277, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "534:4:32", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "533:6:32" - }, - "scope": 4290, - "src": "451:141:32", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 4291, - "src": "172:422:32", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "45:550:32" - }, - "id": 32 - }, - "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol": { - "ast": { - "absolutePath": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", - "exportedSymbols": { - "GraphDirectory": [ - 4653 - ], - "IController": [ - 279 - ], - "ICuration": [ - 165 - ], - "IEpochManager": [ - 220 - ], - "IGraphPayments": [ - 2211 - ], - "IGraphProxyAdmin": [ - 2215 - ], - "IGraphToken": [ - 518 - ], - "IHorizonStaking": [ - 2235 - ], - "IPaymentsEscrow": [ - 2514 - ], - "IRewardsManager": [ - 438 - ], - "ITokenGateway": [ - 41 - ] - }, - "id": 4654, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4292, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:33" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", - "file": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", - "id": 4294, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4654, - "sourceUnit": 519, - "src": "71:87:33", - "symbolAliases": [ - { - "foreign": { - "id": 4293, - "name": "IGraphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "80:11:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", - "file": "../interfaces/IHorizonStaking.sol", - "id": 4296, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4654, - "sourceUnit": 2236, - "src": "159:68:33", - "symbolAliases": [ - { - "foreign": { - "id": 4295, - "name": "IHorizonStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2235, - "src": "168:15:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "file": "../interfaces/IGraphPayments.sol", - "id": 4298, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4654, - "sourceUnit": 2212, - "src": "228:66:33", - "symbolAliases": [ - { - "foreign": { - "id": 4297, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "237:14:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol", - "file": "../interfaces/IPaymentsEscrow.sol", - "id": 4300, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4654, - "sourceUnit": 2515, - "src": "295:68:33", - "symbolAliases": [ - { - "foreign": { - "id": 4299, - "name": "IPaymentsEscrow", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2514, - "src": "304:15:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/governance/IController.sol", - "file": "@graphprotocol/contracts/contracts/governance/IController.sol", - "id": 4302, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4654, - "sourceUnit": 280, - "src": "365:92:33", - "symbolAliases": [ - { - "foreign": { - "id": 4301, - "name": "IController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "374:11:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol", - "file": "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol", - "id": 4304, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4654, - "sourceUnit": 221, - "src": "458:92:33", - "symbolAliases": [ - { - "foreign": { - "id": 4303, - "name": "IEpochManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "467:13:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol", - "file": "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol", - "id": 4306, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4654, - "sourceUnit": 439, - "src": "551:97:33", - "symbolAliases": [ - { - "foreign": { - "id": 4305, - "name": "IRewardsManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "560:15:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol", - "file": "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol", - "id": 4308, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4654, - "sourceUnit": 42, - "src": "649:94:33", - "symbolAliases": [ - { - "foreign": { - "id": 4307, - "name": "ITokenGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "658:13:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol", - "file": "../interfaces/IGraphProxyAdmin.sol", - "id": 4310, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4654, - "sourceUnit": 2216, - "src": "744:70:33", - "symbolAliases": [ - { - "foreign": { - "id": 4309, - "name": "IGraphProxyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2215, - "src": "753:16:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/curation/ICuration.sol", - "file": "@graphprotocol/contracts/contracts/curation/ICuration.sol", - "id": 4312, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4654, - "sourceUnit": 166, - "src": "816:86:33", - "symbolAliases": [ - { - "foreign": { - "id": 4311, - "name": "ICuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 165, - "src": "825:9:33", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "GraphDirectory", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 4313, - "nodeType": "StructuredDocumentation", - "src": "904:315:33", - "text": " @title GraphDirectory contract\n @notice This contract is meant to be inherited by other contracts that\n need to keep track of the addresses in Graph Horizon contracts.\n It fetches the addresses from the Controller supplied during construction,\n and uses immutable variables to minimize gas costs." - }, - "fullyImplemented": true, - "id": 4653, - "linearizedBaseContracts": [ - 4653 - ], - "name": "GraphDirectory", - "nameLocation": "1238:14:33", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "documentation": { - "id": 4314, - "nodeType": "StructuredDocumentation", - "src": "1297:44:33", - "text": "@notice The Graph Token contract address" - }, - "id": 4317, - "mutability": "immutable", - "name": "GRAPH_TOKEN", - "nameLocation": "1376:11:33", - "nodeType": "VariableDeclaration", - "scope": 4653, - "src": "1346:41:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - }, - "typeName": { - "id": 4316, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4315, - "name": "IGraphToken", - "nameLocations": [ - "1346:11:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 518, - "src": "1346:11:33" - }, - "referencedDeclaration": 518, - "src": "1346:11:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 4318, - "nodeType": "StructuredDocumentation", - "src": "1394:48:33", - "text": "@notice The Horizon Staking contract address" - }, - "id": 4321, - "mutability": "immutable", - "name": "GRAPH_STAKING", - "nameLocation": "1481:13:33", - "nodeType": "VariableDeclaration", - "scope": 4653, - "src": "1447:47:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - }, - "typeName": { - "id": 4320, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4319, - "name": "IHorizonStaking", - "nameLocations": [ - "1447:15:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2235, - "src": "1447:15:33" - }, - "referencedDeclaration": 2235, - "src": "1447:15:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 4322, - "nodeType": "StructuredDocumentation", - "src": "1501:47:33", - "text": "@notice The Graph Payments contract address" - }, - "id": 4325, - "mutability": "immutable", - "name": "GRAPH_PAYMENTS", - "nameLocation": "1586:14:33", - "nodeType": "VariableDeclaration", - "scope": 4653, - "src": "1553:47:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphPayments_$2211", - "typeString": "contract IGraphPayments" - }, - "typeName": { - "id": 4324, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4323, - "name": "IGraphPayments", - "nameLocations": [ - "1553:14:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2211, - "src": "1553:14:33" - }, - "referencedDeclaration": 2211, - "src": "1553:14:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphPayments_$2211", - "typeString": "contract IGraphPayments" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 4326, - "nodeType": "StructuredDocumentation", - "src": "1607:48:33", - "text": "@notice The Payments Escrow contract address" - }, - "id": 4329, - "mutability": "immutable", - "name": "GRAPH_PAYMENTS_ESCROW", - "nameLocation": "1694:21:33", - "nodeType": "VariableDeclaration", - "scope": 4653, - "src": "1660:55:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPaymentsEscrow_$2514", - "typeString": "contract IPaymentsEscrow" - }, - "typeName": { - "id": 4328, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4327, - "name": "IPaymentsEscrow", - "nameLocations": [ - "1660:15:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2514, - "src": "1660:15:33" - }, - "referencedDeclaration": 2514, - "src": "1660:15:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPaymentsEscrow_$2514", - "typeString": "contract IPaymentsEscrow" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 4330, - "nodeType": "StructuredDocumentation", - "src": "1762:49:33", - "text": "@notice The Graph Controller contract address" - }, - "id": 4333, - "mutability": "immutable", - "name": "GRAPH_CONTROLLER", - "nameLocation": "1846:16:33", - "nodeType": "VariableDeclaration", - "scope": 4653, - "src": "1816:46:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IController_$279", - "typeString": "contract IController" - }, - "typeName": { - "id": 4332, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4331, - "name": "IController", - "nameLocations": [ - "1816:11:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 279, - "src": "1816:11:33" - }, - "referencedDeclaration": 279, - "src": "1816:11:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IController_$279", - "typeString": "contract IController" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 4334, - "nodeType": "StructuredDocumentation", - "src": "1869:46:33", - "text": "@notice The Epoch Manager contract address" - }, - "id": 4337, - "mutability": "immutable", - "name": "GRAPH_EPOCH_MANAGER", - "nameLocation": "1952:19:33", - "nodeType": "VariableDeclaration", - "scope": 4653, - "src": "1920:51:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEpochManager_$220", - "typeString": "contract IEpochManager" - }, - "typeName": { - "id": 4336, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4335, - "name": "IEpochManager", - "nameLocations": [ - "1920:13:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 220, - "src": "1920:13:33" - }, - "referencedDeclaration": 220, - "src": "1920:13:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEpochManager_$220", - "typeString": "contract IEpochManager" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 4338, - "nodeType": "StructuredDocumentation", - "src": "1978:48:33", - "text": "@notice The Rewards Manager contract address" - }, - "id": 4341, - "mutability": "immutable", - "name": "GRAPH_REWARDS_MANAGER", - "nameLocation": "2065:21:33", - "nodeType": "VariableDeclaration", - "scope": 4653, - "src": "2031:55:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - }, - "typeName": { - "id": 4340, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4339, - "name": "IRewardsManager", - "nameLocations": [ - "2031:15:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 438, - "src": "2031:15:33" - }, - "referencedDeclaration": 438, - "src": "2031:15:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 4342, - "nodeType": "StructuredDocumentation", - "src": "2093:46:33", - "text": "@notice The Token Gateway contract address" - }, - "id": 4345, - "mutability": "immutable", - "name": "GRAPH_TOKEN_GATEWAY", - "nameLocation": "2176:19:33", - "nodeType": "VariableDeclaration", - "scope": 4653, - "src": "2144:51:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenGateway_$41", - "typeString": "contract ITokenGateway" - }, - "typeName": { - "id": 4344, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4343, - "name": "ITokenGateway", - "nameLocations": [ - "2144:13:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 41, - "src": "2144:13:33" - }, - "referencedDeclaration": 41, - "src": "2144:13:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenGateway_$41", - "typeString": "contract ITokenGateway" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 4346, - "nodeType": "StructuredDocumentation", - "src": "2202:50:33", - "text": "@notice The Graph Proxy Admin contract address" - }, - "id": 4349, - "mutability": "immutable", - "name": "GRAPH_PROXY_ADMIN", - "nameLocation": "2292:17:33", - "nodeType": "VariableDeclaration", - "scope": 4653, - "src": "2257:52:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2215", - "typeString": "contract IGraphProxyAdmin" - }, - "typeName": { - "id": 4348, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4347, - "name": "IGraphProxyAdmin", - "nameLocations": [ - "2257:16:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2215, - "src": "2257:16:33" - }, - "referencedDeclaration": 2215, - "src": "2257:16:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2215", - "typeString": "contract IGraphProxyAdmin" - } - }, - "visibility": "private" - }, - { - "constant": false, - "id": 4352, - "mutability": "immutable", - "name": "GRAPH_CURATION", - "nameLocation": "2527:14:33", - "nodeType": "VariableDeclaration", - "scope": 4653, - "src": "2499:42:33", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - }, - "typeName": { - "id": 4351, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4350, - "name": "ICuration", - "nameLocations": [ - "2499:9:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 165, - "src": "2499:9:33" - }, - "referencedDeclaration": 165, - "src": "2499:9:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": { - "id": 4353, - "nodeType": "StructuredDocumentation", - "src": "2548:722:33", - "text": " @notice Emitted when the GraphDirectory is initialized\n @param graphToken The Graph Token contract address\n @param graphStaking The Horizon Staking contract address\n @param graphPayments The Graph Payments contract address\n @param graphEscrow The Payments Escrow contract address\n @param graphController The Graph Controller contract address\n @param graphEpochManager The Epoch Manager contract address\n @param graphRewardsManager The Rewards Manager contract address\n @param graphTokenGateway The Token Gateway contract address\n @param graphProxyAdmin The Graph Proxy Admin contract address\n @param graphCuration The Curation contract address" - }, - "eventSelector": "ef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43", - "id": 4375, - "name": "GraphDirectoryInitialized", - "nameLocation": "3281:25:33", - "nodeType": "EventDefinition", - "parameters": { - "id": 4374, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4355, - "indexed": true, - "mutability": "mutable", - "name": "graphToken", - "nameLocation": "3332:10:33", - "nodeType": "VariableDeclaration", - "scope": 4375, - "src": "3316:26:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3316:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4357, - "indexed": true, - "mutability": "mutable", - "name": "graphStaking", - "nameLocation": "3368:12:33", - "nodeType": "VariableDeclaration", - "scope": 4375, - "src": "3352:28:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4356, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3352:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4359, - "indexed": false, - "mutability": "mutable", - "name": "graphPayments", - "nameLocation": "3398:13:33", - "nodeType": "VariableDeclaration", - "scope": 4375, - "src": "3390:21:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4358, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3390:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4361, - "indexed": false, - "mutability": "mutable", - "name": "graphEscrow", - "nameLocation": "3429:11:33", - "nodeType": "VariableDeclaration", - "scope": 4375, - "src": "3421:19:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4360, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3421:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4363, - "indexed": true, - "mutability": "mutable", - "name": "graphController", - "nameLocation": "3466:15:33", - "nodeType": "VariableDeclaration", - "scope": 4375, - "src": "3450:31:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4362, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3450:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4365, - "indexed": false, - "mutability": "mutable", - "name": "graphEpochManager", - "nameLocation": "3499:17:33", - "nodeType": "VariableDeclaration", - "scope": 4375, - "src": "3491:25:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4364, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3491:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4367, - "indexed": false, - "mutability": "mutable", - "name": "graphRewardsManager", - "nameLocation": "3534:19:33", - "nodeType": "VariableDeclaration", - "scope": 4375, - "src": "3526:27:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4366, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3526:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4369, - "indexed": false, - "mutability": "mutable", - "name": "graphTokenGateway", - "nameLocation": "3571:17:33", - "nodeType": "VariableDeclaration", - "scope": 4375, - "src": "3563:25:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4368, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3563:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4371, - "indexed": false, - "mutability": "mutable", - "name": "graphProxyAdmin", - "nameLocation": "3606:15:33", - "nodeType": "VariableDeclaration", - "scope": 4375, - "src": "3598:23:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4370, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3598:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4373, - "indexed": false, - "mutability": "mutable", - "name": "graphCuration", - "nameLocation": "3639:13:33", - "nodeType": "VariableDeclaration", - "scope": 4375, - "src": "3631:21:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4372, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3631:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3306:352:33" - }, - "src": "3275:384:33" - }, - { - "documentation": { - "id": 4376, - "nodeType": "StructuredDocumentation", - "src": "3665:230:33", - "text": " @notice Thrown when either the controller is the zero address or a contract address is not found\n on the controller\n @param contractName The name of the contract that was not found, or the controller" - }, - "errorSelector": "431eb5ba", - "id": 4380, - "name": "GraphDirectoryInvalidZeroAddress", - "nameLocation": "3906:32:33", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 4379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4378, - "mutability": "mutable", - "name": "contractName", - "nameLocation": "3945:12:33", - "nodeType": "VariableDeclaration", - "scope": 4380, - "src": "3939:18:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4377, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3939:5:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3938:20:33" - }, - "src": "3900:59:33" - }, - { - "body": { - "id": 4519, - "nodeType": "Block", - "src": "4277:1382:33", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4387, - "name": "controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4383, - "src": "4295:10:33", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 4390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4317:1:33", - "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": 4389, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4309:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4388, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4309:7:33", - "typeDescriptions": {} - } - }, - "id": 4391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4309:10:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4295:24:33", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "hexValue": "436f6e74726f6c6c6572", - "id": 4394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4354:12:33", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a", - "typeString": "literal_string \"Controller\"" - }, - "value": "Controller" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a", - "typeString": "literal_string \"Controller\"" - } - ], - "id": 4393, - "name": "GraphDirectoryInvalidZeroAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "4321:32:33", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes_memory_ptr_$returns$_t_error_$", - "typeString": "function (bytes memory) pure returns (error)" - } - }, - "id": 4395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4321:46:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 4386, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4287:7:33", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 4396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4287:81:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4397, - "nodeType": "ExpressionStatement", - "src": "4287:81:33" - }, - { - "expression": { - "id": 4402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4398, - "name": "GRAPH_CONTROLLER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4333, - "src": "4379:16:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IController_$279", - "typeString": "contract IController" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 4400, - "name": "controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4383, - "src": "4410:10:33", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4399, - "name": "IController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4398:11:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IController_$279_$", - "typeString": "type(contract IController)" - } - }, - "id": 4401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4398:23:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IController_$279", - "typeString": "contract IController" - } - }, - "src": "4379:42:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IController_$279", - "typeString": "contract IController" - } - }, - "id": 4403, - "nodeType": "ExpressionStatement", - "src": "4379:42:33" - }, - { - "expression": { - "id": 4410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4404, - "name": "GRAPH_TOKEN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4317, - "src": "4431:11:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "4772617068546f6b656e", - "id": 4407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4484:12:33", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247", - "typeString": "literal_string \"GraphToken\"" - }, - "value": "GraphToken" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247", - "typeString": "literal_string \"GraphToken\"" - } - ], - "id": 4406, - "name": "_getContractFromController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4652, - "src": "4457:26:33", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) view returns (address)" - } - }, - "id": 4408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4457:40:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4405, - "name": "IGraphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "4445:11:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGraphToken_$518_$", - "typeString": "type(contract IGraphToken)" - } - }, - "id": 4409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4445:53:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "src": "4431:67:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 4411, - "nodeType": "ExpressionStatement", - "src": "4431:67:33" - }, - { - "expression": { - "id": 4418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4412, - "name": "GRAPH_STAKING", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4321, - "src": "4508:13:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "5374616b696e67", - "id": 4415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4567:9:33", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034", - "typeString": "literal_string \"Staking\"" - }, - "value": "Staking" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034", - "typeString": "literal_string \"Staking\"" - } - ], - "id": 4414, - "name": "_getContractFromController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4652, - "src": "4540:26:33", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) view returns (address)" - } - }, - "id": 4416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4540:37:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4413, - "name": "IHorizonStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2235, - "src": "4524:15:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "type(contract IHorizonStaking)" - } - }, - "id": 4417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4524:54:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "src": "4508:70:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 4419, - "nodeType": "ExpressionStatement", - "src": "4508:70:33" - }, - { - "expression": { - "id": 4426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4420, - "name": "GRAPH_PAYMENTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4325, - "src": "4588:14:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphPayments_$2211", - "typeString": "contract IGraphPayments" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "47726170685061796d656e7473", - "id": 4423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4647:15:33", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_88cae14a9889b95b4cfd9472fc7dcbca2da791846a1e314bac9c1f8a234cbf9f", - "typeString": "literal_string \"GraphPayments\"" - }, - "value": "GraphPayments" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_88cae14a9889b95b4cfd9472fc7dcbca2da791846a1e314bac9c1f8a234cbf9f", - "typeString": "literal_string \"GraphPayments\"" - } - ], - "id": 4422, - "name": "_getContractFromController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4652, - "src": "4620:26:33", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) view returns (address)" - } - }, - "id": 4424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4620:43:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4421, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "4605:14:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGraphPayments_$2211_$", - "typeString": "type(contract IGraphPayments)" - } - }, - "id": 4425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4605:59:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphPayments_$2211", - "typeString": "contract IGraphPayments" - } - }, - "src": "4588:76:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphPayments_$2211", - "typeString": "contract IGraphPayments" - } - }, - "id": 4427, - "nodeType": "ExpressionStatement", - "src": "4588:76:33" - }, - { - "expression": { - "id": 4434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4428, - "name": "GRAPH_PAYMENTS_ESCROW", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4329, - "src": "4674:21:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPaymentsEscrow_$2514", - "typeString": "contract IPaymentsEscrow" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "5061796d656e7473457363726f77", - "id": 4431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4741:16:33", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_628f67391f8b955553cabfadbf5f1b6a31d2a2d0fea175f5594af9d40b0bedc9", - "typeString": "literal_string \"PaymentsEscrow\"" - }, - "value": "PaymentsEscrow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_628f67391f8b955553cabfadbf5f1b6a31d2a2d0fea175f5594af9d40b0bedc9", - "typeString": "literal_string \"PaymentsEscrow\"" - } - ], - "id": 4430, - "name": "_getContractFromController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4652, - "src": "4714:26:33", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) view returns (address)" - } - }, - "id": 4432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4714:44:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4429, - "name": "IPaymentsEscrow", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2514, - "src": "4698:15:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPaymentsEscrow_$2514_$", - "typeString": "type(contract IPaymentsEscrow)" - } - }, - "id": 4433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4698:61:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPaymentsEscrow_$2514", - "typeString": "contract IPaymentsEscrow" - } - }, - "src": "4674:85:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPaymentsEscrow_$2514", - "typeString": "contract IPaymentsEscrow" - } - }, - "id": 4435, - "nodeType": "ExpressionStatement", - "src": "4674:85:33" - }, - { - "expression": { - "id": 4442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4436, - "name": "GRAPH_EPOCH_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4337, - "src": "4769:19:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEpochManager_$220", - "typeString": "contract IEpochManager" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "45706f63684d616e61676572", - "id": 4439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4832:14:33", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063", - "typeString": "literal_string \"EpochManager\"" - }, - "value": "EpochManager" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063", - "typeString": "literal_string \"EpochManager\"" - } - ], - "id": 4438, - "name": "_getContractFromController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4652, - "src": "4805:26:33", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) view returns (address)" - } - }, - "id": 4440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4805:42:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4437, - "name": "IEpochManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 220, - "src": "4791:13:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IEpochManager_$220_$", - "typeString": "type(contract IEpochManager)" - } - }, - "id": 4441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4791:57:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEpochManager_$220", - "typeString": "contract IEpochManager" - } - }, - "src": "4769:79:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEpochManager_$220", - "typeString": "contract IEpochManager" - } - }, - "id": 4443, - "nodeType": "ExpressionStatement", - "src": "4769:79:33" - }, - { - "expression": { - "id": 4450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4444, - "name": "GRAPH_REWARDS_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4341, - "src": "4858:21:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "526577617264734d616e61676572", - "id": 4447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4925:16:33", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c53180761", - "typeString": "literal_string \"RewardsManager\"" - }, - "value": "RewardsManager" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c53180761", - "typeString": "literal_string \"RewardsManager\"" - } - ], - "id": 4446, - "name": "_getContractFromController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4652, - "src": "4898:26:33", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) view returns (address)" - } - }, - "id": 4448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4898:44:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4445, - "name": "IRewardsManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 438, - "src": "4882:15:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IRewardsManager_$438_$", - "typeString": "type(contract IRewardsManager)" - } - }, - "id": 4449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4882:61:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "src": "4858:85:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "id": 4451, - "nodeType": "ExpressionStatement", - "src": "4858:85:33" - }, - { - "expression": { - "id": 4458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4452, - "name": "GRAPH_TOKEN_GATEWAY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4345, - "src": "4953:19:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenGateway_$41", - "typeString": "contract ITokenGateway" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "4772617068546f6b656e47617465776179", - "id": 4455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5016:19:33", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0", - "typeString": "literal_string \"GraphTokenGateway\"" - }, - "value": "GraphTokenGateway" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_d362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0", - "typeString": "literal_string \"GraphTokenGateway\"" - } - ], - "id": 4454, - "name": "_getContractFromController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4652, - "src": "4989:26:33", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) view returns (address)" - } - }, - "id": 4456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4989:47:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4453, - "name": "ITokenGateway", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "4975:13:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ITokenGateway_$41_$", - "typeString": "type(contract ITokenGateway)" - } - }, - "id": 4457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4975:62:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenGateway_$41", - "typeString": "contract ITokenGateway" - } - }, - "src": "4953:84:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenGateway_$41", - "typeString": "contract ITokenGateway" - } - }, - "id": 4459, - "nodeType": "ExpressionStatement", - "src": "4953:84:33" - }, - { - "expression": { - "id": 4466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4460, - "name": "GRAPH_PROXY_ADMIN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4349, - "src": "5047:17:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2215", - "typeString": "contract IGraphProxyAdmin" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "477261706850726f787941646d696e", - "id": 4463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5111:17:33", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed734418922426bf2cc8783754bd80fc4d441a4dbe994549aee8a2f03136fcdb", - "typeString": "literal_string \"GraphProxyAdmin\"" - }, - "value": "GraphProxyAdmin" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_ed734418922426bf2cc8783754bd80fc4d441a4dbe994549aee8a2f03136fcdb", - "typeString": "literal_string \"GraphProxyAdmin\"" - } - ], - "id": 4462, - "name": "_getContractFromController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4652, - "src": "5084:26:33", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) view returns (address)" - } - }, - "id": 4464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5084:45:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4461, - "name": "IGraphProxyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2215, - "src": "5067:16:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGraphProxyAdmin_$2215_$", - "typeString": "type(contract IGraphProxyAdmin)" - } - }, - "id": 4465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5067:63:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2215", - "typeString": "contract IGraphProxyAdmin" - } - }, - "src": "5047:83:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2215", - "typeString": "contract IGraphProxyAdmin" - } - }, - "id": 4467, - "nodeType": "ExpressionStatement", - "src": "5047:83:33" - }, - { - "expression": { - "id": 4474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 4468, - "name": "GRAPH_CURATION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4352, - "src": "5140:14:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "4375726174696f6e", - "id": 4471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5194:10:33", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f", - "typeString": "literal_string \"Curation\"" - }, - "value": "Curation" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_e6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f", - "typeString": "literal_string \"Curation\"" - } - ], - "id": 4470, - "name": "_getContractFromController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4652, - "src": "5167:26:33", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) view returns (address)" - } - }, - "id": 4472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5167:38:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4469, - "name": "ICuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 165, - "src": "5157:9:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ICuration_$165_$", - "typeString": "type(contract ICuration)" - } - }, - "id": 4473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5157:49:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "src": "5140:66:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "id": 4475, - "nodeType": "ExpressionStatement", - "src": "5140:66:33" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [ - { - "id": 4479, - "name": "GRAPH_TOKEN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4317, - "src": "5269:11:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - ], - "id": 4478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5261:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4477, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5261:7:33", - "typeDescriptions": {} - } - }, - "id": 4480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5261:20:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 4483, - "name": "GRAPH_STAKING", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4321, - "src": "5303:13:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - ], - "id": 4482, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5295:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4481, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5295:7:33", - "typeDescriptions": {} - } - }, - "id": 4484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5295:22:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 4487, - "name": "GRAPH_PAYMENTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4325, - "src": "5339:14:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphPayments_$2211", - "typeString": "contract IGraphPayments" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IGraphPayments_$2211", - "typeString": "contract IGraphPayments" - } - ], - "id": 4486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5331:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5331:7:33", - "typeDescriptions": {} - } - }, - "id": 4488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5331:23:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 4491, - "name": "GRAPH_PAYMENTS_ESCROW", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4329, - "src": "5376:21:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPaymentsEscrow_$2514", - "typeString": "contract IPaymentsEscrow" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IPaymentsEscrow_$2514", - "typeString": "contract IPaymentsEscrow" - } - ], - "id": 4490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5368:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4489, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5368:7:33", - "typeDescriptions": {} - } - }, - "id": 4492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5368:30:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 4495, - "name": "GRAPH_CONTROLLER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4333, - "src": "5420:16:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IController_$279", - "typeString": "contract IController" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IController_$279", - "typeString": "contract IController" - } - ], - "id": 4494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5412:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5412:7:33", - "typeDescriptions": {} - } - }, - "id": 4496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5412:25:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 4499, - "name": "GRAPH_EPOCH_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4337, - "src": "5459:19:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEpochManager_$220", - "typeString": "contract IEpochManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IEpochManager_$220", - "typeString": "contract IEpochManager" - } - ], - "id": 4498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5451:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4497, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5451:7:33", - "typeDescriptions": {} - } - }, - "id": 4500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5451:28:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 4503, - "name": "GRAPH_REWARDS_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4341, - "src": "5501:21:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - ], - "id": 4502, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5493:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4501, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5493:7:33", - "typeDescriptions": {} - } - }, - "id": 4504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5493:30:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 4507, - "name": "GRAPH_TOKEN_GATEWAY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4345, - "src": "5545:19:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenGateway_$41", - "typeString": "contract ITokenGateway" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ITokenGateway_$41", - "typeString": "contract ITokenGateway" - } - ], - "id": 4506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5537:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4505, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5537:7:33", - "typeDescriptions": {} - } - }, - "id": 4508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5537:28:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 4511, - "name": "GRAPH_PROXY_ADMIN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4349, - "src": "5587:17:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2215", - "typeString": "contract IGraphProxyAdmin" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2215", - "typeString": "contract IGraphProxyAdmin" - } - ], - "id": 4510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5579:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4509, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5579:7:33", - "typeDescriptions": {} - } - }, - "id": 4512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5579:26:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 4515, - "name": "GRAPH_CURATION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4352, - "src": "5627:14:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - ], - "id": 4514, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5619:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5619:7:33", - "typeDescriptions": {} - } - }, - "id": 4516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5619:23:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4476, - "name": "GraphDirectoryInitialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4375, - "src": "5222:25:33", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address,address,address,address,address,address,address,address)" - } - }, - "id": 4517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5222:430:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4518, - "nodeType": "EmitStatement", - "src": "5217:435:33" - } - ] - }, - "documentation": { - "id": 4381, - "nodeType": "StructuredDocumentation", - "src": "3965:275:33", - "text": " @notice Constructor for the GraphDirectory contract\n @dev Requirements:\n - `controller` cannot be zero address\n Emits a {GraphDirectoryInitialized} event\n @param controller The address of the Graph Controller contract." - }, - "id": 4520, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4384, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4383, - "mutability": "mutable", - "name": "controller", - "nameLocation": "4265:10:33", - "nodeType": "VariableDeclaration", - "scope": 4520, - "src": "4257:18:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4382, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4257:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4256:20:33" - }, - "returnParameters": { - "id": 4385, - "nodeType": "ParameterList", - "parameters": [], - "src": "4277:0:33" - }, - "scope": 4653, - "src": "4245:1414:33", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4529, - "nodeType": "Block", - "src": "5784:35:33", - "statements": [ - { - "expression": { - "id": 4527, - "name": "GRAPH_TOKEN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4317, - "src": "5801:11:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "functionReturnParameters": 4526, - "id": 4528, - "nodeType": "Return", - "src": "5794:18:33" - } - ] - }, - "documentation": { - "id": 4521, - "nodeType": "StructuredDocumentation", - "src": "5665:55:33", - "text": " @notice Get the Graph Token contract" - }, - "id": 4530, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_graphToken", - "nameLocation": "5734:11:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4522, - "nodeType": "ParameterList", - "parameters": [], - "src": "5745:2:33" - }, - "returnParameters": { - "id": 4526, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4525, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4530, - "src": "5771:11:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - }, - "typeName": { - "id": 4524, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4523, - "name": "IGraphToken", - "nameLocations": [ - "5771:11:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 518, - "src": "5771:11:33" - }, - "referencedDeclaration": 518, - "src": "5771:11:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "visibility": "internal" - } - ], - "src": "5770:13:33" - }, - "scope": 4653, - "src": "5725:94:33", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4539, - "nodeType": "Block", - "src": "5954:37:33", - "statements": [ - { - "expression": { - "id": 4537, - "name": "GRAPH_STAKING", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4321, - "src": "5971:13:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "functionReturnParameters": 4536, - "id": 4538, - "nodeType": "Return", - "src": "5964:20:33" - } - ] - }, - "documentation": { - "id": 4531, - "nodeType": "StructuredDocumentation", - "src": "5825:59:33", - "text": " @notice Get the Horizon Staking contract" - }, - "id": 4540, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_graphStaking", - "nameLocation": "5898:13:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4532, - "nodeType": "ParameterList", - "parameters": [], - "src": "5911:2:33" - }, - "returnParameters": { - "id": 4536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4535, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4540, - "src": "5937:15:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - }, - "typeName": { - "id": 4534, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4533, - "name": "IHorizonStaking", - "nameLocations": [ - "5937:15:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2235, - "src": "5937:15:33" - }, - "referencedDeclaration": 2235, - "src": "5937:15:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "visibility": "internal" - } - ], - "src": "5936:17:33" - }, - "scope": 4653, - "src": "5889:102:33", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4549, - "nodeType": "Block", - "src": "6125:38:33", - "statements": [ - { - "expression": { - "id": 4547, - "name": "GRAPH_PAYMENTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4325, - "src": "6142:14:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphPayments_$2211", - "typeString": "contract IGraphPayments" - } - }, - "functionReturnParameters": 4546, - "id": 4548, - "nodeType": "Return", - "src": "6135:21:33" - } - ] - }, - "documentation": { - "id": 4541, - "nodeType": "StructuredDocumentation", - "src": "5997:58:33", - "text": " @notice Get the Graph Payments contract" - }, - "id": 4550, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_graphPayments", - "nameLocation": "6069:14:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4542, - "nodeType": "ParameterList", - "parameters": [], - "src": "6083:2:33" - }, - "returnParameters": { - "id": 4546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4545, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4550, - "src": "6109:14:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphPayments_$2211", - "typeString": "contract IGraphPayments" - }, - "typeName": { - "id": 4544, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4543, - "name": "IGraphPayments", - "nameLocations": [ - "6109:14:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2211, - "src": "6109:14:33" - }, - "referencedDeclaration": 2211, - "src": "6109:14:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphPayments_$2211", - "typeString": "contract IGraphPayments" - } - }, - "visibility": "internal" - } - ], - "src": "6108:16:33" - }, - "scope": 4653, - "src": "6060:103:33", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4559, - "nodeType": "Block", - "src": "6305:45:33", - "statements": [ - { - "expression": { - "id": 4557, - "name": "GRAPH_PAYMENTS_ESCROW", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4329, - "src": "6322:21:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPaymentsEscrow_$2514", - "typeString": "contract IPaymentsEscrow" - } - }, - "functionReturnParameters": 4556, - "id": 4558, - "nodeType": "Return", - "src": "6315:28:33" - } - ] - }, - "documentation": { - "id": 4551, - "nodeType": "StructuredDocumentation", - "src": "6169:59:33", - "text": " @notice Get the Payments Escrow contract" - }, - "id": 4560, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_graphPaymentsEscrow", - "nameLocation": "6242:20:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4552, - "nodeType": "ParameterList", - "parameters": [], - "src": "6262:2:33" - }, - "returnParameters": { - "id": 4556, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4555, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4560, - "src": "6288:15:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPaymentsEscrow_$2514", - "typeString": "contract IPaymentsEscrow" - }, - "typeName": { - "id": 4554, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4553, - "name": "IPaymentsEscrow", - "nameLocations": [ - "6288:15:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2514, - "src": "6288:15:33" - }, - "referencedDeclaration": 2514, - "src": "6288:15:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IPaymentsEscrow_$2514", - "typeString": "contract IPaymentsEscrow" - } - }, - "visibility": "internal" - } - ], - "src": "6287:17:33" - }, - "scope": 4653, - "src": "6233:117:33", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4569, - "nodeType": "Block", - "src": "6485:40:33", - "statements": [ - { - "expression": { - "id": 4567, - "name": "GRAPH_CONTROLLER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4333, - "src": "6502:16:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IController_$279", - "typeString": "contract IController" - } - }, - "functionReturnParameters": 4566, - "id": 4568, - "nodeType": "Return", - "src": "6495:23:33" - } - ] - }, - "documentation": { - "id": 4561, - "nodeType": "StructuredDocumentation", - "src": "6356:60:33", - "text": " @notice Get the Graph Controller contract" - }, - "id": 4570, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_graphController", - "nameLocation": "6430:16:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4562, - "nodeType": "ParameterList", - "parameters": [], - "src": "6446:2:33" - }, - "returnParameters": { - "id": 4566, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4565, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4570, - "src": "6472:11:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IController_$279", - "typeString": "contract IController" - }, - "typeName": { - "id": 4564, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4563, - "name": "IController", - "nameLocations": [ - "6472:11:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 279, - "src": "6472:11:33" - }, - "referencedDeclaration": 279, - "src": "6472:11:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IController_$279", - "typeString": "contract IController" - } - }, - "visibility": "internal" - } - ], - "src": "6471:13:33" - }, - "scope": 4653, - "src": "6421:104:33", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4579, - "nodeType": "Block", - "src": "6661:43:33", - "statements": [ - { - "expression": { - "id": 4577, - "name": "GRAPH_EPOCH_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4337, - "src": "6678:19:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEpochManager_$220", - "typeString": "contract IEpochManager" - } - }, - "functionReturnParameters": 4576, - "id": 4578, - "nodeType": "Return", - "src": "6671:26:33" - } - ] - }, - "documentation": { - "id": 4571, - "nodeType": "StructuredDocumentation", - "src": "6531:57:33", - "text": " @notice Get the Epoch Manager contract" - }, - "id": 4580, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_graphEpochManager", - "nameLocation": "6602:18:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4572, - "nodeType": "ParameterList", - "parameters": [], - "src": "6620:2:33" - }, - "returnParameters": { - "id": 4576, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4575, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4580, - "src": "6646:13:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEpochManager_$220", - "typeString": "contract IEpochManager" - }, - "typeName": { - "id": 4574, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4573, - "name": "IEpochManager", - "nameLocations": [ - "6646:13:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 220, - "src": "6646:13:33" - }, - "referencedDeclaration": 220, - "src": "6646:13:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEpochManager_$220", - "typeString": "contract IEpochManager" - } - }, - "visibility": "internal" - } - ], - "src": "6645:15:33" - }, - "scope": 4653, - "src": "6593:111:33", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4589, - "nodeType": "Block", - "src": "6846:45:33", - "statements": [ - { - "expression": { - "id": 4587, - "name": "GRAPH_REWARDS_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4341, - "src": "6863:21:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "functionReturnParameters": 4586, - "id": 4588, - "nodeType": "Return", - "src": "6856:28:33" - } - ] - }, - "documentation": { - "id": 4581, - "nodeType": "StructuredDocumentation", - "src": "6710:59:33", - "text": " @notice Get the Rewards Manager contract" - }, - "id": 4590, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_graphRewardsManager", - "nameLocation": "6783:20:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4582, - "nodeType": "ParameterList", - "parameters": [], - "src": "6803:2:33" - }, - "returnParameters": { - "id": 4586, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4585, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4590, - "src": "6829:15:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - }, - "typeName": { - "id": 4584, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4583, - "name": "IRewardsManager", - "nameLocations": [ - "6829:15:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 438, - "src": "6829:15:33" - }, - "referencedDeclaration": 438, - "src": "6829:15:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "visibility": "internal" - } - ], - "src": "6828:17:33" - }, - "scope": 4653, - "src": "6774:117:33", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4599, - "nodeType": "Block", - "src": "7033:43:33", - "statements": [ - { - "expression": { - "id": 4597, - "name": "GRAPH_TOKEN_GATEWAY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4345, - "src": "7050:19:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenGateway_$41", - "typeString": "contract ITokenGateway" - } - }, - "functionReturnParameters": 4596, - "id": 4598, - "nodeType": "Return", - "src": "7043:26:33" - } - ] - }, - "documentation": { - "id": 4591, - "nodeType": "StructuredDocumentation", - "src": "6897:63:33", - "text": " @notice Get the Graph Token Gateway contract" - }, - "id": 4600, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_graphTokenGateway", - "nameLocation": "6974:18:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4592, - "nodeType": "ParameterList", - "parameters": [], - "src": "6992:2:33" - }, - "returnParameters": { - "id": 4596, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4595, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4600, - "src": "7018:13:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenGateway_$41", - "typeString": "contract ITokenGateway" - }, - "typeName": { - "id": 4594, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4593, - "name": "ITokenGateway", - "nameLocations": [ - "7018:13:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 41, - "src": "7018:13:33" - }, - "referencedDeclaration": 41, - "src": "7018:13:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenGateway_$41", - "typeString": "contract ITokenGateway" - } - }, - "visibility": "internal" - } - ], - "src": "7017:15:33" - }, - "scope": 4653, - "src": "6965:111:33", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4609, - "nodeType": "Block", - "src": "7217:41:33", - "statements": [ - { - "expression": { - "id": 4607, - "name": "GRAPH_PROXY_ADMIN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4349, - "src": "7234:17:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2215", - "typeString": "contract IGraphProxyAdmin" - } - }, - "functionReturnParameters": 4606, - "id": 4608, - "nodeType": "Return", - "src": "7227:24:33" - } - ] - }, - "documentation": { - "id": 4601, - "nodeType": "StructuredDocumentation", - "src": "7082:61:33", - "text": " @notice Get the Graph Proxy Admin contract" - }, - "id": 4610, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_graphProxyAdmin", - "nameLocation": "7157:16:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4602, - "nodeType": "ParameterList", - "parameters": [], - "src": "7173:2:33" - }, - "returnParameters": { - "id": 4606, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4605, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4610, - "src": "7199:16:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2215", - "typeString": "contract IGraphProxyAdmin" - }, - "typeName": { - "id": 4604, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4603, - "name": "IGraphProxyAdmin", - "nameLocations": [ - "7199:16:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2215, - "src": "7199:16:33" - }, - "referencedDeclaration": 2215, - "src": "7199:16:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphProxyAdmin_$2215", - "typeString": "contract IGraphProxyAdmin" - } - }, - "visibility": "internal" - } - ], - "src": "7198:18:33" - }, - "scope": 4653, - "src": "7148:110:33", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4619, - "nodeType": "Block", - "src": "7381:38:33", - "statements": [ - { - "expression": { - "id": 4617, - "name": "GRAPH_CURATION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4352, - "src": "7398:14:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "functionReturnParameters": 4616, - "id": 4618, - "nodeType": "Return", - "src": "7391:21:33" - } - ] - }, - "documentation": { - "id": 4611, - "nodeType": "StructuredDocumentation", - "src": "7264:52:33", - "text": " @notice Get the Curation contract" - }, - "id": 4620, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_graphCuration", - "nameLocation": "7330:14:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4612, - "nodeType": "ParameterList", - "parameters": [], - "src": "7344:2:33" - }, - "returnParameters": { - "id": 4616, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4615, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4620, - "src": "7370:9:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - }, - "typeName": { - "id": 4614, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4613, - "name": "ICuration", - "nameLocations": [ - "7370:9:33" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 165, - "src": "7370:9:33" - }, - "referencedDeclaration": 165, - "src": "7370:9:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "visibility": "internal" - } - ], - "src": "7369:11:33" - }, - "scope": 4653, - "src": "7321:98:33", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4651, - "nodeType": "Block", - "src": "7768:231:33", - "statements": [ - { - "assignments": [ - 4629 - ], - "declarations": [ - { - "constant": false, - "id": 4629, - "mutability": "mutable", - "name": "contractAddress", - "nameLocation": "7786:15:33", - "nodeType": "VariableDeclaration", - "scope": 4651, - "src": "7778:23:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4628, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7778:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 4636, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 4633, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4623, - "src": "7848:13:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4632, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "7838:9:33", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 4634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7838:24:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 4630, - "name": "GRAPH_CONTROLLER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4333, - "src": "7804:16:33", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IController_$279", - "typeString": "contract IController" - } - }, - "id": 4631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7821:16:33", - "memberName": "getContractProxy", - "nodeType": "MemberAccess", - "referencedDeclaration": 253, - "src": "7804:33:33", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32) view external returns (address)" - } - }, - "id": 4635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7804:59:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7778:85:33" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4638, - "name": "contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4629, - "src": "7881:15:33", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 4641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7908:1:33", - "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": 4640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7900:7:33", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4639, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7900:7:33", - "typeDescriptions": {} - } - }, - "id": 4642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7900:10:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7881:29:33", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 4645, - "name": "_contractName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4623, - "src": "7945:13:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 4644, - "name": "GraphDirectoryInvalidZeroAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "7912:32:33", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes_memory_ptr_$returns$_t_error_$", - "typeString": "function (bytes memory) pure returns (error)" - } - }, - "id": 4646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7912:47:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 4637, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7873:7:33", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 4647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7873:87:33", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4648, - "nodeType": "ExpressionStatement", - "src": "7873:87:33" - }, - { - "expression": { - "id": 4649, - "name": "contractAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4629, - "src": "7977:15:33", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 4627, - "id": 4650, - "nodeType": "Return", - "src": "7970:22:33" - } - ] - }, - "documentation": { - "id": 4621, - "nodeType": "StructuredDocumentation", - "src": "7425:243:33", - "text": " @notice Get a contract address from the controller\n @dev Requirements:\n - The `_contractName` must be registered in the controller\n @param _contractName The name of the contract to fetch from the controller" - }, - "id": 4652, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getContractFromController", - "nameLocation": "7682:26:33", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4623, - "mutability": "mutable", - "name": "_contractName", - "nameLocation": "7722:13:33", - "nodeType": "VariableDeclaration", - "scope": 4652, - "src": "7709:26:33", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4622, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7709:5:33", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "7708:28:33" - }, - "returnParameters": { - "id": 4627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4626, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4652, - "src": "7759:7:33", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4625, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7759:7:33", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "7758:9:33" - }, - "scope": 4653, - "src": "7673:326:33", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "scope": 4654, - "src": "1220:6781:33", - "usedErrors": [ - 4380 - ], - "usedEvents": [ - 4375 - ] - } - ], - "src": "46:7956:33" - }, - "id": 33 - }, - "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", - "exportedSymbols": { - "ContextUpgradeable": [ - 5148 - ], - "Initializable": [ - 5102 - ], - "OwnableUpgradeable": [ - 4848 - ] - }, - "id": 4849, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4655, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "102:24:34" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", - "file": "../utils/ContextUpgradeable.sol", - "id": 4657, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4849, - "sourceUnit": 5149, - "src": "128:67:34", - "symbolAliases": [ - { - "foreign": { - "id": 4656, - "name": "ContextUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5148, - "src": "136:18:34", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "../proxy/utils/Initializable.sol", - "id": 4659, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 4849, - "sourceUnit": 5103, - "src": "196:63:34", - "symbolAliases": [ - { - "foreign": { - "id": 4658, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5102, - "src": "204:13:34", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 4661, - "name": "Initializable", - "nameLocations": [ - "789:13:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5102, - "src": "789:13:34" - }, - "id": 4662, - "nodeType": "InheritanceSpecifier", - "src": "789:13:34" - }, - { - "baseName": { - "id": 4663, - "name": "ContextUpgradeable", - "nameLocations": [ - "804:18:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5148, - "src": "804:18:34" - }, - "id": 4664, - "nodeType": "InheritanceSpecifier", - "src": "804:18:34" - } - ], - "canonicalName": "OwnableUpgradeable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 4660, - "nodeType": "StructuredDocumentation", - "src": "261:487:34", - "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." - }, - "fullyImplemented": true, - "id": 4848, - "linearizedBaseContracts": [ - 4848, - 5148, - 5102 - ], - "name": "OwnableUpgradeable", - "nameLocation": "767:18:34", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "OwnableUpgradeable.OwnableStorage", - "documentation": { - "id": 4665, - "nodeType": "StructuredDocumentation", - "src": "829:65:34", - "text": "@custom:storage-location erc7201:openzeppelin.storage.Ownable" - }, - "id": 4668, - "members": [ - { - "constant": false, - "id": 4667, - "mutability": "mutable", - "name": "_owner", - "nameLocation": "939:6:34", - "nodeType": "VariableDeclaration", - "scope": 4668, - "src": "931:14:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4666, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "931:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "name": "OwnableStorage", - "nameLocation": "906:14:34", - "nodeType": "StructDefinition", - "scope": 4848, - "src": "899:53:34", - "visibility": "public" - }, - { - "constant": true, - "id": 4671, - "mutability": "constant", - "name": "OwnableStorageLocation", - "nameLocation": "1094:22:34", - "nodeType": "VariableDeclaration", - "scope": 4848, - "src": "1069:116:34", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4669, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1069:7:34", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "307839303136643039643732643430666461653266643863656163366236323334633737303632313466643339633163643165363039613035323863313939333030", - "id": 4670, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1119:66:34", - "typeDescriptions": { - "typeIdentifier": "t_rational_65173360639460082030725920392146925864023520599682862633725751242436743107328_by_1", - "typeString": "int_const 6517...(69 digits omitted)...7328" - }, - "value": "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" - }, - "visibility": "private" - }, - { - "body": { - "id": 4678, - "nodeType": "Block", - "src": "1270:81:34", - "statements": [ - { - "AST": { - "nativeSrc": "1289:56:34", - "nodeType": "YulBlock", - "src": "1289:56:34", - "statements": [ - { - "nativeSrc": "1303:32:34", - "nodeType": "YulAssignment", - "src": "1303:32:34", - "value": { - "name": "OwnableStorageLocation", - "nativeSrc": "1313:22:34", - "nodeType": "YulIdentifier", - "src": "1313:22:34" - }, - "variableNames": [ - { - "name": "$.slot", - "nativeSrc": "1303:6:34", - "nodeType": "YulIdentifier", - "src": "1303:6:34" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 4675, - "isOffset": false, - "isSlot": true, - "src": "1303:6:34", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 4671, - "isOffset": false, - "isSlot": false, - "src": "1313:22:34", - "valueSize": 1 - } - ], - "id": 4677, - "nodeType": "InlineAssembly", - "src": "1280:65:34" - } - ] - }, - "id": 4679, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getOwnableStorage", - "nameLocation": "1201:18:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4672, - "nodeType": "ParameterList", - "parameters": [], - "src": "1219:2:34" - }, - "returnParameters": { - "id": 4676, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4675, - "mutability": "mutable", - "name": "$", - "nameLocation": "1267:1:34", - "nodeType": "VariableDeclaration", - "scope": 4679, - "src": "1244:24:34", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OwnableStorage_$4668_storage_ptr", - "typeString": "struct OwnableUpgradeable.OwnableStorage" - }, - "typeName": { - "id": 4674, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4673, - "name": "OwnableStorage", - "nameLocations": [ - "1244:14:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4668, - "src": "1244:14:34" - }, - "referencedDeclaration": 4668, - "src": "1244:14:34", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OwnableStorage_$4668_storage_ptr", - "typeString": "struct OwnableUpgradeable.OwnableStorage" - } - }, - "visibility": "internal" - } - ], - "src": "1243:26:34" - }, - "scope": 4848, - "src": "1192:159:34", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "documentation": { - "id": 4680, - "nodeType": "StructuredDocumentation", - "src": "1357:85:34", - "text": " @dev The caller account is not authorized to perform an operation." - }, - "errorSelector": "118cdaa7", - "id": 4684, - "name": "OwnableUnauthorizedAccount", - "nameLocation": "1453:26:34", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 4683, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4682, - "mutability": "mutable", - "name": "account", - "nameLocation": "1488:7:34", - "nodeType": "VariableDeclaration", - "scope": 4684, - "src": "1480:15:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1480:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1479:17:34" - }, - "src": "1447:50:34" - }, - { - "documentation": { - "id": 4685, - "nodeType": "StructuredDocumentation", - "src": "1503:82:34", - "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" - }, - "errorSelector": "1e4fbdf7", - "id": 4689, - "name": "OwnableInvalidOwner", - "nameLocation": "1596:19:34", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 4688, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4687, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1624:5:34", - "nodeType": "VariableDeclaration", - "scope": 4689, - "src": "1616:13:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4686, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1616:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1615:15:34" - }, - "src": "1590:41:34" - }, - { - "anonymous": false, - "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "id": 4695, - "name": "OwnershipTransferred", - "nameLocation": "1643:20:34", - "nodeType": "EventDefinition", - "parameters": { - "id": 4694, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4691, - "indexed": true, - "mutability": "mutable", - "name": "previousOwner", - "nameLocation": "1680:13:34", - "nodeType": "VariableDeclaration", - "scope": 4695, - "src": "1664:29:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4690, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1664:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4693, - "indexed": true, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "1711:8:34", - "nodeType": "VariableDeclaration", - "scope": 4695, - "src": "1695:24:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4692, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1695:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1663:57:34" - }, - "src": "1637:84:34" - }, - { - "body": { - "id": 4707, - "nodeType": "Block", - "src": "1919:55:34", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 4704, - "name": "initialOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4698, - "src": "1954:12:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4703, - "name": "__Ownable_init_unchained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4735, - "src": "1929:24:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1929:38:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4706, - "nodeType": "ExpressionStatement", - "src": "1929:38:34" - } - ] - }, - "documentation": { - "id": 4696, - "nodeType": "StructuredDocumentation", - "src": "1727:115:34", - "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." - }, - "id": 4708, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 4701, - "kind": "modifierInvocation", - "modifierName": { - "id": 4700, - "name": "onlyInitializing", - "nameLocations": [ - "1902:16:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "1902:16:34" - }, - "nodeType": "ModifierInvocation", - "src": "1902:16:34" - } - ], - "name": "__Ownable_init", - "nameLocation": "1856:14:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4699, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4698, - "mutability": "mutable", - "name": "initialOwner", - "nameLocation": "1879:12:34", - "nodeType": "VariableDeclaration", - "scope": 4708, - "src": "1871:20:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4697, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1871:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1870:22:34" - }, - "returnParameters": { - "id": 4702, - "nodeType": "ParameterList", - "parameters": [], - "src": "1919:0:34" - }, - "scope": 4848, - "src": "1847:127:34", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4734, - "nodeType": "Block", - "src": "2062:153:34", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4715, - "name": "initialOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4710, - "src": "2076:12:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 4718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2100:1:34", - "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": 4717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2092:7:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4716, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2092:7:34", - "typeDescriptions": {} - } - }, - "id": 4719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2092:10:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2076:26:34", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4729, - "nodeType": "IfStatement", - "src": "2072:95:34", - "trueBody": { - "id": 4728, - "nodeType": "Block", - "src": "2104:63:34", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 4724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2153:1:34", - "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": 4723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2145:7:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4722, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2145:7:34", - "typeDescriptions": {} - } - }, - "id": 4725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2145:10:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4721, - "name": "OwnableInvalidOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4689, - "src": "2125:19:34", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 4726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2125:31:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 4727, - "nodeType": "RevertStatement", - "src": "2118:38:34" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 4731, - "name": "initialOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4710, - "src": "2195:12:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4730, - "name": "_transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4847, - "src": "2176:18:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2176:32:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4733, - "nodeType": "ExpressionStatement", - "src": "2176:32:34" - } - ] - }, - "id": 4735, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 4713, - "kind": "modifierInvocation", - "modifierName": { - "id": 4712, - "name": "onlyInitializing", - "nameLocations": [ - "2045:16:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "2045:16:34" - }, - "nodeType": "ModifierInvocation", - "src": "2045:16:34" - } - ], - "name": "__Ownable_init_unchained", - "nameLocation": "1989:24:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4711, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4710, - "mutability": "mutable", - "name": "initialOwner", - "nameLocation": "2022:12:34", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "2014:20:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4709, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2014:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2013:22:34" - }, - "returnParameters": { - "id": 4714, - "nodeType": "ParameterList", - "parameters": [], - "src": "2062:0:34" - }, - "scope": 4848, - "src": "1980:235:34", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4742, - "nodeType": "Block", - "src": "2324:41:34", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4738, - "name": "_checkOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4776, - "src": "2334:11:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 4739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2334:13:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4740, - "nodeType": "ExpressionStatement", - "src": "2334:13:34" - }, - { - "id": 4741, - "nodeType": "PlaceholderStatement", - "src": "2357:1:34" - } - ] - }, - "documentation": { - "id": 4736, - "nodeType": "StructuredDocumentation", - "src": "2221:77:34", - "text": " @dev Throws if called by any account other than the owner." - }, - "id": 4743, - "name": "onlyOwner", - "nameLocation": "2312:9:34", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 4737, - "nodeType": "ParameterList", - "parameters": [], - "src": "2321:2:34" - }, - "src": "2303:62:34", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4758, - "nodeType": "Block", - "src": "2496:89:34", - "statements": [ - { - "assignments": [ - 4751 - ], - "declarations": [ - { - "constant": false, - "id": 4751, - "mutability": "mutable", - "name": "$", - "nameLocation": "2529:1:34", - "nodeType": "VariableDeclaration", - "scope": 4758, - "src": "2506:24:34", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OwnableStorage_$4668_storage_ptr", - "typeString": "struct OwnableUpgradeable.OwnableStorage" - }, - "typeName": { - "id": 4750, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4749, - "name": "OwnableStorage", - "nameLocations": [ - "2506:14:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4668, - "src": "2506:14:34" - }, - "referencedDeclaration": 4668, - "src": "2506:14:34", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OwnableStorage_$4668_storage_ptr", - "typeString": "struct OwnableUpgradeable.OwnableStorage" - } - }, - "visibility": "internal" - } - ], - "id": 4754, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4752, - "name": "_getOwnableStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4679, - "src": "2533:18:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$4668_storage_ptr_$", - "typeString": "function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)" - } - }, - "id": 4753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2533:20:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_OwnableStorage_$4668_storage_ptr", - "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2506:47:34" - }, - { - "expression": { - "expression": { - "id": 4755, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4751, - "src": "2570:1:34", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OwnableStorage_$4668_storage_ptr", - "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" - } - }, - "id": 4756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2572:6:34", - "memberName": "_owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 4667, - "src": "2570:8:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 4748, - "id": 4757, - "nodeType": "Return", - "src": "2563:15:34" - } - ] - }, - "documentation": { - "id": 4744, - "nodeType": "StructuredDocumentation", - "src": "2371:65:34", - "text": " @dev Returns the address of the current owner." - }, - "functionSelector": "8da5cb5b", - "id": 4759, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "owner", - "nameLocation": "2450:5:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4745, - "nodeType": "ParameterList", - "parameters": [], - "src": "2455:2:34" - }, - "returnParameters": { - "id": 4748, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4747, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 4759, - "src": "2487:7:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4746, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2487:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2486:9:34" - }, - "scope": 4848, - "src": "2441:144:34", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 4775, - "nodeType": "Block", - "src": "2703:117:34", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4763, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4759, - "src": "2717:5:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 4764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2717:7:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4765, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5130, - "src": "2728:10:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 4766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2728:12:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2717:23:34", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4774, - "nodeType": "IfStatement", - "src": "2713:101:34", - "trueBody": { - "id": 4773, - "nodeType": "Block", - "src": "2742:72:34", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4769, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5130, - "src": "2790:10:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 4770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2790:12:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4768, - "name": "OwnableUnauthorizedAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4684, - "src": "2763:26:34", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 4771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2763:40:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 4772, - "nodeType": "RevertStatement", - "src": "2756:47:34" - } - ] - } - } - ] - }, - "documentation": { - "id": 4760, - "nodeType": "StructuredDocumentation", - "src": "2591:62:34", - "text": " @dev Throws if the sender is not the owner." - }, - "id": 4776, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkOwner", - "nameLocation": "2667:11:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4761, - "nodeType": "ParameterList", - "parameters": [], - "src": "2678:2:34" - }, - "returnParameters": { - "id": 4762, - "nodeType": "ParameterList", - "parameters": [], - "src": "2703:0:34" - }, - "scope": 4848, - "src": "2658:162:34", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 4789, - "nodeType": "Block", - "src": "3209:47:34", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 4785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3246:1:34", - "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": 4784, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3238:7:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4783, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3238:7:34", - "typeDescriptions": {} - } - }, - "id": 4786, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3238:10:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4782, - "name": "_transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4847, - "src": "3219:18:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3219:30:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4788, - "nodeType": "ExpressionStatement", - "src": "3219:30:34" - } - ] - }, - "documentation": { - "id": 4777, - "nodeType": "StructuredDocumentation", - "src": "2826:324:34", - "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." - }, - "functionSelector": "715018a6", - "id": 4790, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 4780, - "kind": "modifierInvocation", - "modifierName": { - "id": 4779, - "name": "onlyOwner", - "nameLocations": [ - "3199:9:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "3199:9:34" - }, - "nodeType": "ModifierInvocation", - "src": "3199:9:34" - } - ], - "name": "renounceOwnership", - "nameLocation": "3164:17:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4778, - "nodeType": "ParameterList", - "parameters": [], - "src": "3181:2:34" - }, - "returnParameters": { - "id": 4781, - "nodeType": "ParameterList", - "parameters": [], - "src": "3209:0:34" - }, - "scope": 4848, - "src": "3155:101:34", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 4817, - "nodeType": "Block", - "src": "3475:145:34", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 4803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4798, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4793, - "src": "3489:8:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 4801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3509:1:34", - "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": 4800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3501:7:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4799, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3501:7:34", - "typeDescriptions": {} - } - }, - "id": 4802, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3501:10:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3489:22:34", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4812, - "nodeType": "IfStatement", - "src": "3485:91:34", - "trueBody": { - "id": 4811, - "nodeType": "Block", - "src": "3513:63:34", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 4807, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3562:1:34", - "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": 4806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3554:7:34", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4805, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3554:7:34", - "typeDescriptions": {} - } - }, - "id": 4808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3554:10:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4804, - "name": "OwnableInvalidOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4689, - "src": "3534:19:34", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 4809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3534:31:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 4810, - "nodeType": "RevertStatement", - "src": "3527:38:34" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 4814, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4793, - "src": "3604:8:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4813, - "name": "_transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4847, - "src": "3585:18:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3585:28:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4816, - "nodeType": "ExpressionStatement", - "src": "3585:28:34" - } - ] - }, - "documentation": { - "id": 4791, - "nodeType": "StructuredDocumentation", - "src": "3262:138:34", - "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." - }, - "functionSelector": "f2fde38b", - "id": 4818, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 4796, - "kind": "modifierInvocation", - "modifierName": { - "id": 4795, - "name": "onlyOwner", - "nameLocations": [ - "3465:9:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "3465:9:34" - }, - "nodeType": "ModifierInvocation", - "src": "3465:9:34" - } - ], - "name": "transferOwnership", - "nameLocation": "3414:17:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4793, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "3440:8:34", - "nodeType": "VariableDeclaration", - "scope": 4818, - "src": "3432:16:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4792, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3432:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3431:18:34" - }, - "returnParameters": { - "id": 4797, - "nodeType": "ParameterList", - "parameters": [], - "src": "3475:0:34" - }, - "scope": 4848, - "src": "3405:215:34", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 4846, - "nodeType": "Block", - "src": "3837:185:34", - "statements": [ - { - "assignments": [ - 4826 - ], - "declarations": [ - { - "constant": false, - "id": 4826, - "mutability": "mutable", - "name": "$", - "nameLocation": "3870:1:34", - "nodeType": "VariableDeclaration", - "scope": 4846, - "src": "3847:24:34", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OwnableStorage_$4668_storage_ptr", - "typeString": "struct OwnableUpgradeable.OwnableStorage" - }, - "typeName": { - "id": 4825, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4824, - "name": "OwnableStorage", - "nameLocations": [ - "3847:14:34" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4668, - "src": "3847:14:34" - }, - "referencedDeclaration": 4668, - "src": "3847:14:34", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OwnableStorage_$4668_storage_ptr", - "typeString": "struct OwnableUpgradeable.OwnableStorage" - } - }, - "visibility": "internal" - } - ], - "id": 4829, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4827, - "name": "_getOwnableStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4679, - "src": "3874:18:34", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$4668_storage_ptr_$", - "typeString": "function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)" - } - }, - "id": 4828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3874:20:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_OwnableStorage_$4668_storage_ptr", - "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3847:47:34" - }, - { - "assignments": [ - 4831 - ], - "declarations": [ - { - "constant": false, - "id": 4831, - "mutability": "mutable", - "name": "oldOwner", - "nameLocation": "3912:8:34", - "nodeType": "VariableDeclaration", - "scope": 4846, - "src": "3904:16:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4830, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3904:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 4834, - "initialValue": { - "expression": { - "id": 4832, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4826, - "src": "3923:1:34", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OwnableStorage_$4668_storage_ptr", - "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" - } - }, - "id": 4833, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3925:6:34", - "memberName": "_owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 4667, - "src": "3923:8:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3904:27:34" - }, - { - "expression": { - "id": 4839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 4835, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4826, - "src": "3941:1:34", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OwnableStorage_$4668_storage_ptr", - "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" - } - }, - "id": 4837, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3943:6:34", - "memberName": "_owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 4667, - "src": "3941:8:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 4838, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4821, - "src": "3952:8:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3941:19:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4840, - "nodeType": "ExpressionStatement", - "src": "3941:19:34" - }, - { - "eventCall": { - "arguments": [ - { - "id": 4842, - "name": "oldOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4831, - "src": "3996:8:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 4843, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4821, - "src": "4006:8:34", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4841, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4695, - "src": "3975:20:34", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 4844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3975:40:34", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4845, - "nodeType": "EmitStatement", - "src": "3970:45:34" - } - ] - }, - "documentation": { - "id": 4819, - "nodeType": "StructuredDocumentation", - "src": "3626:143:34", - "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." - }, - "id": 4847, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transferOwnership", - "nameLocation": "3783:18:34", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4822, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4821, - "mutability": "mutable", - "name": "newOwner", - "nameLocation": "3810:8:34", - "nodeType": "VariableDeclaration", - "scope": 4847, - "src": "3802:16:34", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4820, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3802:7:34", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3801:18:34" - }, - "returnParameters": { - "id": 4823, - "nodeType": "ParameterList", - "parameters": [], - "src": "3837:0:34" - }, - "scope": 4848, - "src": "3774:248:34", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 4849, - "src": "749:3275:34", - "usedErrors": [ - 4684, - 4689, - 4865, - 4868 - ], - "usedEvents": [ - 4695, - 4873 - ] - } - ], - "src": "102:3923:34" - }, - "id": 34 - }, - "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "exportedSymbols": { - "Initializable": [ - 5102 - ] - }, - "id": 5103, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4850, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "113:24:35" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "Initializable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 4851, - "nodeType": "StructuredDocumentation", - "src": "139:2209:35", - "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ====" - }, - "fullyImplemented": true, - "id": 5102, - "linearizedBaseContracts": [ - 5102 - ], - "name": "Initializable", - "nameLocation": "2367:13:35", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Initializable.InitializableStorage", - "documentation": { - "id": 4852, - "nodeType": "StructuredDocumentation", - "src": "2387:293:35", - "text": " @dev Storage of the initializable contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:openzeppelin.storage.Initializable" - }, - "id": 4859, - "members": [ - { - "constant": false, - "id": 4855, - "mutability": "mutable", - "name": "_initialized", - "nameLocation": "2820:12:35", - "nodeType": "VariableDeclaration", - "scope": 4859, - "src": "2813:19:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 4854, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2813:6:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 4858, - "mutability": "mutable", - "name": "_initializing", - "nameLocation": "2955:13:35", - "nodeType": "VariableDeclaration", - "scope": 4859, - "src": "2950:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4857, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2950:4:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "name": "InitializableStorage", - "nameLocation": "2692:20:35", - "nodeType": "StructDefinition", - "scope": 5102, - "src": "2685:290:35", - "visibility": "public" - }, - { - "constant": true, - "id": 4862, - "mutability": "constant", - "name": "INITIALIZABLE_STORAGE", - "nameLocation": "3123:21:35", - "nodeType": "VariableDeclaration", - "scope": 5102, - "src": "3098:115:35", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 4860, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3098:7:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030", - "id": 4861, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3147:66:35", - "typeDescriptions": { - "typeIdentifier": "t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1", - "typeString": "int_const 1089...(70 digits omitted)...9600" - }, - "value": "0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00" - }, - "visibility": "private" - }, - { - "documentation": { - "id": 4863, - "nodeType": "StructuredDocumentation", - "src": "3220:60:35", - "text": " @dev The contract is already initialized." - }, - "errorSelector": "f92ee8a9", - "id": 4865, - "name": "InvalidInitialization", - "nameLocation": "3291:21:35", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 4864, - "nodeType": "ParameterList", - "parameters": [], - "src": "3312:2:35" - }, - "src": "3285:30:35" - }, - { - "documentation": { - "id": 4866, - "nodeType": "StructuredDocumentation", - "src": "3321:57:35", - "text": " @dev The contract is not initializing." - }, - "errorSelector": "d7e6bcf8", - "id": 4868, - "name": "NotInitializing", - "nameLocation": "3389:15:35", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 4867, - "nodeType": "ParameterList", - "parameters": [], - "src": "3404:2:35" - }, - "src": "3383:24:35" - }, - { - "anonymous": false, - "documentation": { - "id": 4869, - "nodeType": "StructuredDocumentation", - "src": "3413:90:35", - "text": " @dev Triggered when the contract has been initialized or reinitialized." - }, - "eventSelector": "c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2", - "id": 4873, - "name": "Initialized", - "nameLocation": "3514:11:35", - "nodeType": "EventDefinition", - "parameters": { - "id": 4872, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4871, - "indexed": false, - "mutability": "mutable", - "name": "version", - "nameLocation": "3533:7:35", - "nodeType": "VariableDeclaration", - "scope": 4873, - "src": "3526:14:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 4870, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3526:6:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "3525:16:35" - }, - "src": "3508:34:35" - }, - { - "body": { - "id": 4955, - "nodeType": "Block", - "src": "4092:1081:35", - "statements": [ - { - "assignments": [ - 4878 - ], - "declarations": [ - { - "constant": false, - "id": 4878, - "mutability": "mutable", - "name": "$", - "nameLocation": "4187:1:35", - "nodeType": "VariableDeclaration", - "scope": 4955, - "src": "4158:30:35", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage" - }, - "typeName": { - "id": 4877, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4876, - "name": "InitializableStorage", - "nameLocations": [ - "4158:20:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4859, - "src": "4158:20:35" - }, - "referencedDeclaration": 4859, - "src": "4158:20:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage" - } - }, - "visibility": "internal" - } - ], - "id": 4881, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4879, - "name": "_getInitializableStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5101, - "src": "4191:24:35", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4859_storage_ptr_$", - "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" - } - }, - "id": 4880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4191:26:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4158:59:35" - }, - { - "assignments": [ - 4883 - ], - "declarations": [ - { - "constant": false, - "id": 4883, - "mutability": "mutable", - "name": "isTopLevelCall", - "nameLocation": "4284:14:35", - "nodeType": "VariableDeclaration", - "scope": 4955, - "src": "4279:19:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4882, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4279:4:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 4887, - "initialValue": { - "id": 4886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4301:16:35", - "subExpression": { - "expression": { - "id": 4884, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4878, - "src": "4302:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 4885, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4304:13:35", - "memberName": "_initializing", - "nodeType": "MemberAccess", - "referencedDeclaration": 4858, - "src": "4302:15:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4279:38:35" - }, - { - "assignments": [ - 4889 - ], - "declarations": [ - { - "constant": false, - "id": 4889, - "mutability": "mutable", - "name": "initialized", - "nameLocation": "4334:11:35", - "nodeType": "VariableDeclaration", - "scope": 4955, - "src": "4327:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 4888, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4327:6:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "id": 4892, - "initialValue": { - "expression": { - "id": 4890, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4878, - "src": "4348:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 4891, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4350:12:35", - "memberName": "_initialized", - "nodeType": "MemberAccess", - "referencedDeclaration": 4855, - "src": "4348:14:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4327:35:35" - }, - { - "assignments": [ - 4894 - ], - "declarations": [ - { - "constant": false, - "id": 4894, - "mutability": "mutable", - "name": "initialSetup", - "nameLocation": "4711:12:35", - "nodeType": "VariableDeclaration", - "scope": 4955, - "src": "4706:17:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4893, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4706:4:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 4900, - "initialValue": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 4897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4895, - "name": "initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4889, - "src": "4726:11:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4896, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4741:1:35", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4726:16:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "id": 4898, - "name": "isTopLevelCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4883, - "src": "4746:14:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4726:34:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4706:54:35" - }, - { - "assignments": [ - 4902 - ], - "declarations": [ - { - "constant": false, - "id": 4902, - "mutability": "mutable", - "name": "construction", - "nameLocation": "4775:12:35", - "nodeType": "VariableDeclaration", - "scope": 4955, - "src": "4770:17:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4901, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4770:4:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 4915, - "initialValue": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 4905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4903, - "name": "initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4889, - "src": "4790:11:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "31", - "id": 4904, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4805:1:35", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4790:16:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "arguments": [ - { - "id": 4908, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "4818:4:35", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$5102", - "typeString": "contract Initializable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Initializable_$5102", - "typeString": "contract Initializable" - } - ], - "id": 4907, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4810:7:35", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 4906, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4810:7:35", - "typeDescriptions": {} - } - }, - "id": 4909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4810:13:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4824:4:35", - "memberName": "code", - "nodeType": "MemberAccess", - "src": "4810:18:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 4911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4829:6:35", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4810:25:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 4912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4839:1:35", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4810:30:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4790:50:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4770:70:35" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 4917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4855:13:35", - "subExpression": { - "id": 4916, - "name": "initialSetup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4894, - "src": "4856:12:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "id": 4919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4872:13:35", - "subExpression": { - "id": 4918, - "name": "construction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4902, - "src": "4873:12:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4855:30:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4925, - "nodeType": "IfStatement", - "src": "4851:91:35", - "trueBody": { - "id": 4924, - "nodeType": "Block", - "src": "4887:55:35", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4921, - "name": "InvalidInitialization", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4865, - "src": "4908:21:35", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 4922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4908:23:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 4923, - "nodeType": "RevertStatement", - "src": "4901:30:35" - } - ] - } - }, - { - "expression": { - "id": 4930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 4926, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4878, - "src": "4951:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 4928, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "4953:12:35", - "memberName": "_initialized", - "nodeType": "MemberAccess", - "referencedDeclaration": 4855, - "src": "4951:14:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "31", - "id": 4929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4968:1:35", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4951:18:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 4931, - "nodeType": "ExpressionStatement", - "src": "4951:18:35" - }, - { - "condition": { - "id": 4932, - "name": "isTopLevelCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4883, - "src": "4983:14:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4940, - "nodeType": "IfStatement", - "src": "4979:67:35", - "trueBody": { - "id": 4939, - "nodeType": "Block", - "src": "4999:47:35", - "statements": [ - { - "expression": { - "id": 4937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 4933, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4878, - "src": "5013:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 4935, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "5015:13:35", - "memberName": "_initializing", - "nodeType": "MemberAccess", - "referencedDeclaration": 4858, - "src": "5013:15:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 4936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5031:4:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5013:22:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4938, - "nodeType": "ExpressionStatement", - "src": "5013:22:35" - } - ] - } - }, - { - "id": 4941, - "nodeType": "PlaceholderStatement", - "src": "5055:1:35" - }, - { - "condition": { - "id": 4942, - "name": "isTopLevelCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4883, - "src": "5070:14:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4954, - "nodeType": "IfStatement", - "src": "5066:101:35", - "trueBody": { - "id": 4953, - "nodeType": "Block", - "src": "5086:81:35", - "statements": [ - { - "expression": { - "id": 4947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 4943, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4878, - "src": "5100:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 4945, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "5102:13:35", - "memberName": "_initializing", - "nodeType": "MemberAccess", - "referencedDeclaration": 4858, - "src": "5100:15:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 4946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5118:5:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "5100:23:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4948, - "nodeType": "ExpressionStatement", - "src": "5100:23:35" - }, - { - "eventCall": { - "arguments": [ - { - "hexValue": "31", - "id": 4950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5154:1:35", - "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": 4949, - "name": "Initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4873, - "src": "5142:11:35", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 4951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5142:14:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4952, - "nodeType": "EmitStatement", - "src": "5137:19:35" - } - ] - } - } - ] - }, - "documentation": { - "id": 4874, - "nodeType": "StructuredDocumentation", - "src": "3548:516:35", - "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n production.\n Emits an {Initialized} event." - }, - "id": 4956, - "name": "initializer", - "nameLocation": "4078:11:35", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 4875, - "nodeType": "ParameterList", - "parameters": [], - "src": "4089:2:35" - }, - "src": "4069:1104:35", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5002, - "nodeType": "Block", - "src": "6291:392:35", - "statements": [ - { - "assignments": [ - 4963 - ], - "declarations": [ - { - "constant": false, - "id": 4963, - "mutability": "mutable", - "name": "$", - "nameLocation": "6386:1:35", - "nodeType": "VariableDeclaration", - "scope": 5002, - "src": "6357:30:35", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage" - }, - "typeName": { - "id": 4962, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 4961, - "name": "InitializableStorage", - "nameLocations": [ - "6357:20:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4859, - "src": "6357:20:35" - }, - "referencedDeclaration": 4859, - "src": "6357:20:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage" - } - }, - "visibility": "internal" - } - ], - "id": 4966, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4964, - "name": "_getInitializableStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5101, - "src": "6390:24:35", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4859_storage_ptr_$", - "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" - } - }, - "id": 4965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6390:26:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6357:59:35" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 4967, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4963, - "src": "6431:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 4968, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6433:13:35", - "memberName": "_initializing", - "nodeType": "MemberAccess", - "referencedDeclaration": 4858, - "src": "6431:15:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 4972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 4969, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4963, - "src": "6450:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 4970, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6452:12:35", - "memberName": "_initialized", - "nodeType": "MemberAccess", - "referencedDeclaration": 4855, - "src": "6450:14:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 4971, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4959, - "src": "6468:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "6450:25:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6431:44:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4978, - "nodeType": "IfStatement", - "src": "6427:105:35", - "trueBody": { - "id": 4977, - "nodeType": "Block", - "src": "6477:55:35", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4974, - "name": "InvalidInitialization", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4865, - "src": "6498:21:35", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 4975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6498:23:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 4976, - "nodeType": "RevertStatement", - "src": "6491:30:35" - } - ] - } - }, - { - "expression": { - "id": 4983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 4979, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4963, - "src": "6541:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 4981, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "6543:12:35", - "memberName": "_initialized", - "nodeType": "MemberAccess", - "referencedDeclaration": 4855, - "src": "6541:14:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 4982, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4959, - "src": "6558:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "6541:24:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 4984, - "nodeType": "ExpressionStatement", - "src": "6541:24:35" - }, - { - "expression": { - "id": 4989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 4985, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4963, - "src": "6575:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 4987, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "6577:13:35", - "memberName": "_initializing", - "nodeType": "MemberAccess", - "referencedDeclaration": 4858, - "src": "6575:15:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 4988, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6593:4:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "6575:22:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4990, - "nodeType": "ExpressionStatement", - "src": "6575:22:35" - }, - { - "id": 4991, - "nodeType": "PlaceholderStatement", - "src": "6607:1:35" - }, - { - "expression": { - "id": 4996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 4992, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4963, - "src": "6618:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 4994, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "6620:13:35", - "memberName": "_initializing", - "nodeType": "MemberAccess", - "referencedDeclaration": 4858, - "src": "6618:15:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 4995, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6636:5:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "6618:23:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4997, - "nodeType": "ExpressionStatement", - "src": "6618:23:35" - }, - { - "eventCall": { - "arguments": [ - { - "id": 4999, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4959, - "src": "6668:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 4998, - "name": "Initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4873, - "src": "6656:11:35", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 5000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6656:20:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5001, - "nodeType": "EmitStatement", - "src": "6651:25:35" - } - ] - }, - "documentation": { - "id": 4957, - "nodeType": "StructuredDocumentation", - "src": "5179:1068:35", - "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n Emits an {Initialized} event." - }, - "id": 5003, - "name": "reinitializer", - "nameLocation": "6261:13:35", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 4960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4959, - "mutability": "mutable", - "name": "version", - "nameLocation": "6282:7:35", - "nodeType": "VariableDeclaration", - "scope": 5003, - "src": "6275:14:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 4958, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6275:6:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "6274:16:35" - }, - "src": "6252:431:35", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5010, - "nodeType": "Block", - "src": "6921:48:35", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5006, - "name": "_checkInitializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5024, - "src": "6931:18:35", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 5007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6931:20:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5008, - "nodeType": "ExpressionStatement", - "src": "6931:20:35" - }, - { - "id": 5009, - "nodeType": "PlaceholderStatement", - "src": "6961:1:35" - } - ] - }, - "documentation": { - "id": 5004, - "nodeType": "StructuredDocumentation", - "src": "6689:199:35", - "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly." - }, - "id": 5011, - "name": "onlyInitializing", - "nameLocation": "6902:16:35", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5005, - "nodeType": "ParameterList", - "parameters": [], - "src": "6918:2:35" - }, - "src": "6893:76:35", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5023, - "nodeType": "Block", - "src": "7136:89:35", - "statements": [ - { - "condition": { - "id": 5017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7150:18:35", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5015, - "name": "_isInitializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5092, - "src": "7151:15:35", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 5016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7151:17:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5022, - "nodeType": "IfStatement", - "src": "7146:73:35", - "trueBody": { - "id": 5021, - "nodeType": "Block", - "src": "7170:49:35", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5018, - "name": "NotInitializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4868, - "src": "7191:15:35", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 5019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7191:17:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5020, - "nodeType": "RevertStatement", - "src": "7184:24:35" - } - ] - } - } - ] - }, - "documentation": { - "id": 5012, - "nodeType": "StructuredDocumentation", - "src": "6975:104:35", - "text": " @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}." - }, - "id": 5024, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_checkInitializing", - "nameLocation": "7093:18:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5013, - "nodeType": "ParameterList", - "parameters": [], - "src": "7111:2:35" - }, - "returnParameters": { - "id": 5014, - "nodeType": "ParameterList", - "parameters": [], - "src": "7136:0:35" - }, - "scope": 5102, - "src": "7084:141:35", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 5069, - "nodeType": "Block", - "src": "7760:373:35", - "statements": [ - { - "assignments": [ - 5030 - ], - "declarations": [ - { - "constant": false, - "id": 5030, - "mutability": "mutable", - "name": "$", - "nameLocation": "7855:1:35", - "nodeType": "VariableDeclaration", - "scope": 5069, - "src": "7826:30:35", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage" - }, - "typeName": { - "id": 5029, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5028, - "name": "InitializableStorage", - "nameLocations": [ - "7826:20:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4859, - "src": "7826:20:35" - }, - "referencedDeclaration": 4859, - "src": "7826:20:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage" - } - }, - "visibility": "internal" - } - ], - "id": 5033, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5031, - "name": "_getInitializableStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5101, - "src": "7859:24:35", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4859_storage_ptr_$", - "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" - } - }, - "id": 5032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7859:26:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7826:59:35" - }, - { - "condition": { - "expression": { - "id": 5034, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5030, - "src": "7900:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 5035, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7902:13:35", - "memberName": "_initializing", - "nodeType": "MemberAccess", - "referencedDeclaration": 4858, - "src": "7900:15:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5040, - "nodeType": "IfStatement", - "src": "7896:76:35", - "trueBody": { - "id": 5039, - "nodeType": "Block", - "src": "7917:55:35", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5036, - "name": "InvalidInitialization", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4865, - "src": "7938:21:35", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 5037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7938:23:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5038, - "nodeType": "RevertStatement", - "src": "7931:30:35" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 5048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 5041, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5030, - "src": "7985:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 5042, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7987:12:35", - "memberName": "_initialized", - "nodeType": "MemberAccess", - "referencedDeclaration": 4855, - "src": "7985:14:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 5045, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8008:6:35", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 5044, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "8008:6:35", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - } - ], - "id": 5043, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "8003:4:35", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5046, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8003:12:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint64", - "typeString": "type(uint64)" - } - }, - "id": 5047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8016:3:35", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "8003:16:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "7985:34:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5068, - "nodeType": "IfStatement", - "src": "7981:146:35", - "trueBody": { - "id": 5067, - "nodeType": "Block", - "src": "8021:106:35", - "statements": [ - { - "expression": { - "id": 5057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 5049, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5030, - "src": "8035:1:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 5051, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "8037:12:35", - "memberName": "_initialized", - "nodeType": "MemberAccess", - "referencedDeclaration": 4855, - "src": "8035:14:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "arguments": [ - { - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8057:6:35", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 5053, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "8057:6:35", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - } - ], - "id": 5052, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "8052:4:35", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8052:12:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint64", - "typeString": "type(uint64)" - } - }, - "id": 5056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8065:3:35", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "8052:16:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "8035:33:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 5058, - "nodeType": "ExpressionStatement", - "src": "8035:33:35" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 5062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8104:6:35", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 5061, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "8104:6:35", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - } - ], - "id": 5060, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "8099:4:35", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 5063, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8099:12:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint64", - "typeString": "type(uint64)" - } - }, - "id": 5064, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8112:3:35", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "8099:16:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 5059, - "name": "Initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4873, - "src": "8087:11:35", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 5065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8087:29:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5066, - "nodeType": "EmitStatement", - "src": "8082:34:35" - } - ] - } - } - ] - }, - "documentation": { - "id": 5025, - "nodeType": "StructuredDocumentation", - "src": "7231:475:35", - "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed." - }, - "id": 5070, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_disableInitializers", - "nameLocation": "7720:20:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5026, - "nodeType": "ParameterList", - "parameters": [], - "src": "7740:2:35" - }, - "returnParameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "7760:0:35" - }, - "scope": 5102, - "src": "7711:422:35", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 5080, - "nodeType": "Block", - "src": "8308:63:35", - "statements": [ - { - "expression": { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5076, - "name": "_getInitializableStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5101, - "src": "8325:24:35", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4859_storage_ptr_$", - "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" - } - }, - "id": 5077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8325:26:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 5078, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8352:12:35", - "memberName": "_initialized", - "nodeType": "MemberAccess", - "referencedDeclaration": 4855, - "src": "8325:39:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 5075, - "id": 5079, - "nodeType": "Return", - "src": "8318:46:35" - } - ] - }, - "documentation": { - "id": 5071, - "nodeType": "StructuredDocumentation", - "src": "8139:99:35", - "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." - }, - "id": 5081, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getInitializedVersion", - "nameLocation": "8252:22:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5072, - "nodeType": "ParameterList", - "parameters": [], - "src": "8274:2:35" - }, - "returnParameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5074, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5081, - "src": "8300:6:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 5073, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "8300:6:35", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "8299:8:35" - }, - "scope": 5102, - "src": "8243:128:35", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5091, - "nodeType": "Block", - "src": "8543:64:35", - "statements": [ - { - "expression": { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5087, - "name": "_getInitializableStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5101, - "src": "8560:24:35", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4859_storage_ptr_$", - "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" - } - }, - "id": 5088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8560:26:35", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage storage pointer" - } - }, - "id": 5089, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8587:13:35", - "memberName": "_initializing", - "nodeType": "MemberAccess", - "referencedDeclaration": 4858, - "src": "8560:40:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5086, - "id": 5090, - "nodeType": "Return", - "src": "8553:47:35" - } - ] - }, - "documentation": { - "id": 5082, - "nodeType": "StructuredDocumentation", - "src": "8377:105:35", - "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." - }, - "id": 5092, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isInitializing", - "nameLocation": "8496:15:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5083, - "nodeType": "ParameterList", - "parameters": [], - "src": "8511:2:35" - }, - "returnParameters": { - "id": 5086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5085, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5092, - "src": "8537:4:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5084, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8537:4:35", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "8536:6:35" - }, - "scope": 5102, - "src": "8487:120:35", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5100, - "nodeType": "Block", - "src": "8827:80:35", - "statements": [ - { - "AST": { - "nativeSrc": "8846:55:35", - "nodeType": "YulBlock", - "src": "8846:55:35", - "statements": [ - { - "nativeSrc": "8860:31:35", - "nodeType": "YulAssignment", - "src": "8860:31:35", - "value": { - "name": "INITIALIZABLE_STORAGE", - "nativeSrc": "8870:21:35", - "nodeType": "YulIdentifier", - "src": "8870:21:35" - }, - "variableNames": [ - { - "name": "$.slot", - "nativeSrc": "8860:6:35", - "nodeType": "YulIdentifier", - "src": "8860:6:35" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 5097, - "isOffset": false, - "isSlot": true, - "src": "8860:6:35", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 4862, - "isOffset": false, - "isSlot": false, - "src": "8870:21:35", - "valueSize": 1 - } - ], - "id": 5099, - "nodeType": "InlineAssembly", - "src": "8837:64:35" - } - ] - }, - "documentation": { - "id": 5093, - "nodeType": "StructuredDocumentation", - "src": "8613:67:35", - "text": " @dev Returns a pointer to the storage namespace." - }, - "id": 5101, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getInitializableStorage", - "nameLocation": "8746:24:35", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5094, - "nodeType": "ParameterList", - "parameters": [], - "src": "8770:2:35" - }, - "returnParameters": { - "id": 5098, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5097, - "mutability": "mutable", - "name": "$", - "nameLocation": "8824:1:35", - "nodeType": "VariableDeclaration", - "scope": 5101, - "src": "8795:30:35", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage" - }, - "typeName": { - "id": 5096, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5095, - "name": "InitializableStorage", - "nameLocations": [ - "8795:20:35" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4859, - "src": "8795:20:35" - }, - "referencedDeclaration": 4859, - "src": "8795:20:35", - "typeDescriptions": { - "typeIdentifier": "t_struct$_InitializableStorage_$4859_storage_ptr", - "typeString": "struct Initializable.InitializableStorage" - } - }, - "visibility": "internal" - } - ], - "src": "8794:32:35" - }, - "scope": 5102, - "src": "8737:170:35", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "scope": 5103, - "src": "2349:6560:35", - "usedErrors": [ - 4865, - 4868 - ], - "usedEvents": [ - 4873 - ] - } - ], - "src": "113:8797:35" - }, - "id": 35 - }, - "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", - "exportedSymbols": { - "ContextUpgradeable": [ - 5148 - ], - "Initializable": [ - 5102 - ] - }, - "id": 5149, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 5104, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "101:24:36" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "../proxy/utils/Initializable.sol", - "id": 5106, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5149, - "sourceUnit": 5103, - "src": "126:63:36", - "symbolAliases": [ - { - "foreign": { - "id": 5105, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5102, - "src": "134:13:36", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 5108, - "name": "Initializable", - "nameLocations": [ - "728:13:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5102, - "src": "728:13:36" - }, - "id": 5109, - "nodeType": "InheritanceSpecifier", - "src": "728:13:36" - } - ], - "canonicalName": "ContextUpgradeable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 5107, - "nodeType": "StructuredDocumentation", - "src": "191:496:36", - "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." - }, - "fullyImplemented": true, - "id": 5148, - "linearizedBaseContracts": [ - 5148, - 5102 - ], - "name": "ContextUpgradeable", - "nameLocation": "706:18:36", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5114, - "nodeType": "Block", - "src": "800:7:36", - "statements": [] - }, - "id": 5115, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5112, - "kind": "modifierInvocation", - "modifierName": { - "id": 5111, - "name": "onlyInitializing", - "nameLocations": [ - "783:16:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "783:16:36" - }, - "nodeType": "ModifierInvocation", - "src": "783:16:36" - } - ], - "name": "__Context_init", - "nameLocation": "757:14:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5110, - "nodeType": "ParameterList", - "parameters": [], - "src": "771:2:36" - }, - "returnParameters": { - "id": 5113, - "nodeType": "ParameterList", - "parameters": [], - "src": "800:0:36" - }, - "scope": 5148, - "src": "748:59:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5120, - "nodeType": "Block", - "src": "875:7:36", - "statements": [] - }, - "id": 5121, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5118, - "kind": "modifierInvocation", - "modifierName": { - "id": 5117, - "name": "onlyInitializing", - "nameLocations": [ - "858:16:36" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "858:16:36" - }, - "nodeType": "ModifierInvocation", - "src": "858:16:36" - } - ], - "name": "__Context_init_unchained", - "nameLocation": "822:24:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [], - "src": "846:2:36" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [], - "src": "875:0:36" - }, - "scope": 5148, - "src": "813:69:36", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5129, - "nodeType": "Block", - "src": "949:34:36", - "statements": [ - { - "expression": { - "expression": { - "id": 5126, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "966:3:36", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "970:6:36", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "966:10:36", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5125, - "id": 5128, - "nodeType": "Return", - "src": "959:17:36" - } - ] - }, - "id": 5130, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgSender", - "nameLocation": "896:10:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5122, - "nodeType": "ParameterList", - "parameters": [], - "src": "906:2:36" - }, - "returnParameters": { - "id": 5125, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5124, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5130, - "src": "940:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5123, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "940:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "939:9:36" - }, - "scope": 5148, - "src": "887:96:36", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 5138, - "nodeType": "Block", - "src": "1056:32:36", - "statements": [ - { - "expression": { - "expression": { - "id": 5135, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1073:3:36", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1077:4:36", - "memberName": "data", - "nodeType": "MemberAccess", - "src": "1073:8:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "functionReturnParameters": 5134, - "id": 5137, - "nodeType": "Return", - "src": "1066:15:36" - } - ] - }, - "id": 5139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgData", - "nameLocation": "998:8:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5131, - "nodeType": "ParameterList", - "parameters": [], - "src": "1006:2:36" - }, - "returnParameters": { - "id": 5134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5133, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5139, - "src": "1040:14:36", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5132, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1040:5:36", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "1039:16:36" - }, - "scope": 5148, - "src": "989:99:36", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 5146, - "nodeType": "Block", - "src": "1166:25:36", - "statements": [ - { - "expression": { - "hexValue": "30", - "id": 5144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1183:1:36", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 5143, - "id": 5145, - "nodeType": "Return", - "src": "1176:8:36" - } - ] - }, - "id": 5147, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_contextSuffixLength", - "nameLocation": "1103:20:36", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [], - "src": "1123:2:36" - }, - "returnParameters": { - "id": 5143, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5142, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5147, - "src": "1157:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1157:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1156:9:36" - }, - "scope": 5148, - "src": "1094:97:36", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 5149, - "src": "688:505:36", - "usedErrors": [ - 4865, - 4868 - ], - "usedEvents": [ - 4873 - ] - } - ], - "src": "101:1093:36" - }, - "id": 36 - }, - "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol", - "exportedSymbols": { - "Address": [ - 6127 - ], - "ContextUpgradeable": [ - 5148 - ], - "Initializable": [ - 5102 - ], - "MulticallUpgradeable": [ - 5251 - ] - }, - "id": 5252, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 5150, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "103:24:37" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Address.sol", - "file": "@openzeppelin/contracts/utils/Address.sol", - "id": 5152, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5252, - "sourceUnit": 6128, - "src": "129:66:37", - "symbolAliases": [ - { - "foreign": { - "id": 5151, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6127, - "src": "137:7:37", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", - "file": "./ContextUpgradeable.sol", - "id": 5154, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5252, - "sourceUnit": 5149, - "src": "196:60:37", - "symbolAliases": [ - { - "foreign": { - "id": 5153, - "name": "ContextUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5148, - "src": "204:18:37", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "../proxy/utils/Initializable.sol", - "id": 5156, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5252, - "sourceUnit": 5103, - "src": "257:63:37", - "symbolAliases": [ - { - "foreign": { - "id": 5155, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5102, - "src": "265:13:37", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 5158, - "name": "Initializable", - "nameLocations": [ - "1162:13:37" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5102, - "src": "1162:13:37" - }, - "id": 5159, - "nodeType": "InheritanceSpecifier", - "src": "1162:13:37" - }, - { - "baseName": { - "id": 5160, - "name": "ContextUpgradeable", - "nameLocations": [ - "1177:18:37" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5148, - "src": "1177:18:37" - }, - "id": 5161, - "nodeType": "InheritanceSpecifier", - "src": "1177:18:37" - } - ], - "canonicalName": "MulticallUpgradeable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 5157, - "nodeType": "StructuredDocumentation", - "src": "322:797:37", - "text": " @dev Provides a function to batch together multiple calls in a single external call.\n Consider any assumption about calldata validation performed by the sender may be violated if it's not especially\n careful about sending transactions invoking {multicall}. For example, a relay address that filters function\n selectors won't filter calls nested within a {multicall} operation.\n NOTE: Since 5.0.1 and 4.9.4, this contract identifies non-canonical contexts (i.e. `msg.sender` is not {_msgSender}).\n If a non-canonical context is identified, the following self `delegatecall` appends the last bytes of `msg.data`\n to the subcall. This makes it safe to use with {ERC2771Context}. Contexts that don't affect the resolution of\n {_msgSender} are not propagated to subcalls." - }, - "fullyImplemented": true, - "id": 5251, - "linearizedBaseContracts": [ - 5251, - 5148, - 5102 - ], - "name": "MulticallUpgradeable", - "nameLocation": "1138:20:37", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5166, - "nodeType": "Block", - "src": "1256:7:37", - "statements": [] - }, - "id": 5167, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5164, - "kind": "modifierInvocation", - "modifierName": { - "id": 5163, - "name": "onlyInitializing", - "nameLocations": [ - "1239:16:37" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "1239:16:37" - }, - "nodeType": "ModifierInvocation", - "src": "1239:16:37" - } - ], - "name": "__Multicall_init", - "nameLocation": "1211:16:37", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5162, - "nodeType": "ParameterList", - "parameters": [], - "src": "1227:2:37" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "1256:0:37" - }, - "scope": 5251, - "src": "1202:61:37", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5172, - "nodeType": "Block", - "src": "1333:7:37", - "statements": [] - }, - "id": 5173, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5170, - "kind": "modifierInvocation", - "modifierName": { - "id": 5169, - "name": "onlyInitializing", - "nameLocations": [ - "1316:16:37" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "1316:16:37" - }, - "nodeType": "ModifierInvocation", - "src": "1316:16:37" - } - ], - "name": "__Multicall_init_unchained", - "nameLocation": "1278:26:37", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5168, - "nodeType": "ParameterList", - "parameters": [], - "src": "1304:2:37" - }, - "returnParameters": { - "id": 5171, - "nodeType": "ParameterList", - "parameters": [], - "src": "1333:0:37" - }, - "scope": 5251, - "src": "1269:71:37", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5249, - "nodeType": "Block", - "src": "1594:392:37", - "statements": [ - { - "assignments": [ - 5184 - ], - "declarations": [ - { - "constant": false, - "id": 5184, - "mutability": "mutable", - "name": "context", - "nameLocation": "1617:7:37", - "nodeType": "VariableDeclaration", - "scope": 5249, - "src": "1604:20:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5183, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1604:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 5204, - "initialValue": { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 5185, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1627:3:37", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1631:6:37", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1627:10:37", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5187, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5130, - "src": "1641:10:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 5188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1641:12:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1627:26:37", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "baseExpression": { - "expression": { - "id": 5194, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1695:3:37", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1699:4:37", - "memberName": "data", - "nodeType": "MemberAccess", - "src": "1695:8:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 5202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexRangeAccess", - "src": "1695:51:37", - "startExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 5196, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1704:3:37", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1708:4:37", - "memberName": "data", - "nodeType": "MemberAccess", - "src": "1704:8:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 5198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1713:6:37", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1704:15:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5199, - "name": "_contextSuffixLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5147, - "src": "1722:20:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 5200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1722:22:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1704:40:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr_slice", - "typeString": "bytes calldata slice" - } - }, - "id": 5203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "1627:119:37", - "trueExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 5192, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1678:1:37", - "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": 5191, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1668:9:37", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 5190, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1672:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1668:12:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1604:142:37" - }, - { - "expression": { - "id": 5212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 5205, - "name": "results", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5181, - "src": "1757:7:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 5209, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5177, - "src": "1779:4:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - "id": 5210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1784:6:37", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1779:11:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1767:11:37", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory[] memory)" - }, - "typeName": { - "baseType": { - "id": 5206, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1771:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 5207, - "nodeType": "ArrayTypeName", - "src": "1771:7:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - } - }, - "id": 5211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1767:24:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "src": "1757:34:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "id": 5213, - "nodeType": "ExpressionStatement", - "src": "1757:34:37" - }, - { - "body": { - "id": 5245, - "nodeType": "Block", - "src": "1843:113:37", - "statements": [ - { - "expression": { - "id": 5243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 5225, - "name": "results", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5181, - "src": "1857:7:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "id": 5227, - "indexExpression": { - "id": 5226, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5215, - "src": "1865:1:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1857:10:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "id": 5232, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1907:4:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MulticallUpgradeable_$5251", - "typeString": "contract MulticallUpgradeable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_MulticallUpgradeable_$5251", - "typeString": "contract MulticallUpgradeable" - } - ], - "id": 5231, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1899:7:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5230, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1899:7:37", - "typeDescriptions": {} - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1899:13:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "baseExpression": { - "id": 5237, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5177, - "src": "1927:4:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - "id": 5239, - "indexExpression": { - "id": 5238, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5215, - "src": "1932:1:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1927:7:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "id": 5240, - "name": "context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5184, - "src": "1936:7:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1914:5:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 5234, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1914:5:37", - "typeDescriptions": {} - } - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1920:6:37", - "memberName": "concat", - "nodeType": "MemberAccess", - "src": "1914:12:37", - "typeDescriptions": { - "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 5241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1914:30:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 5228, - "name": "Address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6127, - "src": "1870:7:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Address_$6127_$", - "typeString": "type(library Address)" - } - }, - "id": 5229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1878:20:37", - "memberName": "functionDelegateCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 6046, - "src": "1870:28:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory) returns (bytes memory)" - } - }, - "id": 5242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1870:75:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "1857:88:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 5244, - "nodeType": "ExpressionStatement", - "src": "1857:88:37" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5218, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5215, - "src": "1821:1:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 5219, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5177, - "src": "1825:4:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes calldata[] calldata" - } - }, - "id": 5220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1830:6:37", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "1825:11:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1821:15:37", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5246, - "initializationExpression": { - "assignments": [ - 5215 - ], - "declarations": [ - { - "constant": false, - "id": 5215, - "mutability": "mutable", - "name": "i", - "nameLocation": "1814:1:37", - "nodeType": "VariableDeclaration", - "scope": 5246, - "src": "1806:9:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5214, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1806:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 5217, - "initialValue": { - "hexValue": "30", - "id": 5216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1818:1:37", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1806:13:37" - }, - "isSimpleCounterLoop": true, - "loopExpression": { - "expression": { - "id": 5223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1838:3:37", - "subExpression": { - "id": 5222, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5215, - "src": "1838:1:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5224, - "nodeType": "ExpressionStatement", - "src": "1838:3:37" - }, - "nodeType": "ForStatement", - "src": "1801:155:37" - }, - { - "expression": { - "id": 5247, - "name": "results", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5181, - "src": "1972:7:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes memory[] memory" - } - }, - "functionReturnParameters": 5182, - "id": 5248, - "nodeType": "Return", - "src": "1965:14:37" - } - ] - }, - "documentation": { - "id": 5174, - "nodeType": "StructuredDocumentation", - "src": "1345:152:37", - "text": " @dev Receives and executes a batch of function calls on this contract.\n @custom:oz-upgrades-unsafe-allow-reachable delegatecall" - }, - "functionSelector": "ac9650d8", - "id": 5250, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "multicall", - "nameLocation": "1511:9:37", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5178, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "mutability": "mutable", - "name": "data", - "nameLocation": "1538:4:37", - "nodeType": "VariableDeclaration", - "scope": 5250, - "src": "1521:21:37", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 5175, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1521:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 5176, - "nodeType": "ArrayTypeName", - "src": "1521:7:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - } - ], - "src": "1520:23:37" - }, - "returnParameters": { - "id": 5182, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5181, - "mutability": "mutable", - "name": "results", - "nameLocation": "1585:7:37", - "nodeType": "VariableDeclaration", - "scope": 5250, - "src": "1570:22:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr", - "typeString": "bytes[]" - }, - "typeName": { - "baseType": { - "id": 5179, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1570:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "id": 5180, - "nodeType": "ArrayTypeName", - "src": "1570:7:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", - "typeString": "bytes[]" - } - }, - "visibility": "internal" - } - ], - "src": "1569:24:37" - }, - "scope": 5251, - "src": "1502:484:37", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "external" - } - ], - "scope": 5252, - "src": "1120:868:37", - "usedErrors": [ - 4865, - 4868, - 5887, - 5890 - ], - "usedEvents": [ - 4873 - ] - } - ], - "src": "103:1886:37" - }, - "id": 37 - }, - "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol", - "exportedSymbols": { - "ContextUpgradeable": [ - 5148 - ], - "Initializable": [ - 5102 - ], - "PausableUpgradeable": [ - 5427 - ] - }, - "id": 5428, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 5253, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "102:24:38" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", - "file": "../utils/ContextUpgradeable.sol", - "id": 5255, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5428, - "sourceUnit": 5149, - "src": "128:67:38", - "symbolAliases": [ - { - "foreign": { - "id": 5254, - "name": "ContextUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5148, - "src": "136:18:38", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "../proxy/utils/Initializable.sol", - "id": 5257, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5428, - "sourceUnit": 5103, - "src": "196:63:38", - "symbolAliases": [ - { - "foreign": { - "id": 5256, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5102, - "src": "204:13:38", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 5259, - "name": "Initializable", - "nameLocations": [ - "742:13:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5102, - "src": "742:13:38" - }, - "id": 5260, - "nodeType": "InheritanceSpecifier", - "src": "742:13:38" - }, - { - "baseName": { - "id": 5261, - "name": "ContextUpgradeable", - "nameLocations": [ - "757:18:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5148, - "src": "757:18:38" - }, - "id": 5262, - "nodeType": "InheritanceSpecifier", - "src": "757:18:38" - } - ], - "canonicalName": "PausableUpgradeable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 5258, - "nodeType": "StructuredDocumentation", - "src": "261:439:38", - "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." - }, - "fullyImplemented": true, - "id": 5427, - "linearizedBaseContracts": [ - 5427, - 5148, - 5102 - ], - "name": "PausableUpgradeable", - "nameLocation": "719:19:38", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "PausableUpgradeable.PausableStorage", - "documentation": { - "id": 5263, - "nodeType": "StructuredDocumentation", - "src": "782:66:38", - "text": "@custom:storage-location erc7201:openzeppelin.storage.Pausable" - }, - "id": 5266, - "members": [ - { - "constant": false, - "id": 5265, - "mutability": "mutable", - "name": "_paused", - "nameLocation": "891:7:38", - "nodeType": "VariableDeclaration", - "scope": 5266, - "src": "886:12:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5264, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "886:4:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "name": "PausableStorage", - "nameLocation": "860:15:38", - "nodeType": "StructDefinition", - "scope": 5427, - "src": "853:52:38", - "visibility": "public" - }, - { - "constant": true, - "id": 5269, - "mutability": "constant", - "name": "PausableStorageLocation", - "nameLocation": "1048:23:38", - "nodeType": "VariableDeclaration", - "scope": 5427, - "src": "1023:117:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5267, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1023:7:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "307863643565643135633665313837653737653961656538383138346332316634663231383261623538323763623362376530376662656463643633663033333030", - "id": 5268, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1074:66:38", - "typeDescriptions": { - "typeIdentifier": "t_rational_92891662540554778686986514950364265630913525426840345632122912437671245656832_by_1", - "typeString": "int_const 9289...(69 digits omitted)...6832" - }, - "value": "0xcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300" - }, - "visibility": "private" - }, - { - "body": { - "id": 5276, - "nodeType": "Block", - "src": "1227:82:38", - "statements": [ - { - "AST": { - "nativeSrc": "1246:57:38", - "nodeType": "YulBlock", - "src": "1246:57:38", - "statements": [ - { - "nativeSrc": "1260:33:38", - "nodeType": "YulAssignment", - "src": "1260:33:38", - "value": { - "name": "PausableStorageLocation", - "nativeSrc": "1270:23:38", - "nodeType": "YulIdentifier", - "src": "1270:23:38" - }, - "variableNames": [ - { - "name": "$.slot", - "nativeSrc": "1260:6:38", - "nodeType": "YulIdentifier", - "src": "1260:6:38" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 5273, - "isOffset": false, - "isSlot": true, - "src": "1260:6:38", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 5269, - "isOffset": false, - "isSlot": false, - "src": "1270:23:38", - "valueSize": 1 - } - ], - "id": 5275, - "nodeType": "InlineAssembly", - "src": "1237:66:38" - } - ] - }, - "id": 5277, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getPausableStorage", - "nameLocation": "1156:19:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [], - "src": "1175:2:38" - }, - "returnParameters": { - "id": 5274, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5273, - "mutability": "mutable", - "name": "$", - "nameLocation": "1224:1:38", - "nodeType": "VariableDeclaration", - "scope": 5277, - "src": "1200:25:38", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage" - }, - "typeName": { - "id": 5272, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5271, - "name": "PausableStorage", - "nameLocations": [ - "1200:15:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5266, - "src": "1200:15:38" - }, - "referencedDeclaration": 5266, - "src": "1200:15:38", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage" - } - }, - "visibility": "internal" - } - ], - "src": "1199:27:38" - }, - "scope": 5427, - "src": "1147:162:38", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": { - "id": 5278, - "nodeType": "StructuredDocumentation", - "src": "1315:73:38", - "text": " @dev Emitted when the pause is triggered by `account`." - }, - "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258", - "id": 5282, - "name": "Paused", - "nameLocation": "1399:6:38", - "nodeType": "EventDefinition", - "parameters": { - "id": 5281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5280, - "indexed": false, - "mutability": "mutable", - "name": "account", - "nameLocation": "1414:7:38", - "nodeType": "VariableDeclaration", - "scope": 5282, - "src": "1406:15:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5279, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1406:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1405:17:38" - }, - "src": "1393:30:38" - }, - { - "anonymous": false, - "documentation": { - "id": 5283, - "nodeType": "StructuredDocumentation", - "src": "1429:70:38", - "text": " @dev Emitted when the pause is lifted by `account`." - }, - "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa", - "id": 5287, - "name": "Unpaused", - "nameLocation": "1510:8:38", - "nodeType": "EventDefinition", - "parameters": { - "id": 5286, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5285, - "indexed": false, - "mutability": "mutable", - "name": "account", - "nameLocation": "1527:7:38", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "1519:15:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1519:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1518:17:38" - }, - "src": "1504:32:38" - }, - { - "documentation": { - "id": 5288, - "nodeType": "StructuredDocumentation", - "src": "1542:76:38", - "text": " @dev The operation failed because the contract is paused." - }, - "errorSelector": "d93c0665", - "id": 5290, - "name": "EnforcedPause", - "nameLocation": "1629:13:38", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5289, - "nodeType": "ParameterList", - "parameters": [], - "src": "1642:2:38" - }, - "src": "1623:22:38" - }, - { - "documentation": { - "id": 5291, - "nodeType": "StructuredDocumentation", - "src": "1651:80:38", - "text": " @dev The operation failed because the contract is not paused." - }, - "errorSelector": "8dfc202b", - "id": 5293, - "name": "ExpectedPause", - "nameLocation": "1742:13:38", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5292, - "nodeType": "ParameterList", - "parameters": [], - "src": "1755:2:38" - }, - "src": "1736:22:38" - }, - { - "body": { - "id": 5302, - "nodeType": "Block", - "src": "1889:44:38", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5299, - "name": "__Pausable_init_unchained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5321, - "src": "1899:25:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 5300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1899:27:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5301, - "nodeType": "ExpressionStatement", - "src": "1899:27:38" - } - ] - }, - "documentation": { - "id": 5294, - "nodeType": "StructuredDocumentation", - "src": "1764:67:38", - "text": " @dev Initializes the contract in unpaused state." - }, - "id": 5303, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5297, - "kind": "modifierInvocation", - "modifierName": { - "id": 5296, - "name": "onlyInitializing", - "nameLocations": [ - "1872:16:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "1872:16:38" - }, - "nodeType": "ModifierInvocation", - "src": "1872:16:38" - } - ], - "name": "__Pausable_init", - "nameLocation": "1845:15:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5295, - "nodeType": "ParameterList", - "parameters": [], - "src": "1860:2:38" - }, - "returnParameters": { - "id": 5298, - "nodeType": "ParameterList", - "parameters": [], - "src": "1889:0:38" - }, - "scope": 5427, - "src": "1836:97:38", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5320, - "nodeType": "Block", - "src": "2002:93:38", - "statements": [ - { - "assignments": [ - 5310 - ], - "declarations": [ - { - "constant": false, - "id": 5310, - "mutability": "mutable", - "name": "$", - "nameLocation": "2036:1:38", - "nodeType": "VariableDeclaration", - "scope": 5320, - "src": "2012:25:38", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage" - }, - "typeName": { - "id": 5309, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5308, - "name": "PausableStorage", - "nameLocations": [ - "2012:15:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5266, - "src": "2012:15:38" - }, - "referencedDeclaration": 5266, - "src": "2012:15:38", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage" - } - }, - "visibility": "internal" - } - ], - "id": 5313, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5311, - "name": "_getPausableStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5277, - "src": "2040:19:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$5266_storage_ptr_$", - "typeString": "function () pure returns (struct PausableUpgradeable.PausableStorage storage pointer)" - } - }, - "id": 5312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2040:21:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2012:49:38" - }, - { - "expression": { - "id": 5318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 5314, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5310, - "src": "2071:1:38", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" - } - }, - "id": 5316, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "2073:7:38", - "memberName": "_paused", - "nodeType": "MemberAccess", - "referencedDeclaration": 5265, - "src": "2071:9:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 5317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2083:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2071:17:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5319, - "nodeType": "ExpressionStatement", - "src": "2071:17:38" - } - ] - }, - "id": 5321, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5306, - "kind": "modifierInvocation", - "modifierName": { - "id": 5305, - "name": "onlyInitializing", - "nameLocations": [ - "1985:16:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "1985:16:38" - }, - "nodeType": "ModifierInvocation", - "src": "1985:16:38" - } - ], - "name": "__Pausable_init_unchained", - "nameLocation": "1948:25:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5304, - "nodeType": "ParameterList", - "parameters": [], - "src": "1973:2:38" - }, - "returnParameters": { - "id": 5307, - "nodeType": "ParameterList", - "parameters": [], - "src": "2002:0:38" - }, - "scope": 5427, - "src": "1939:156:38", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5328, - "nodeType": "Block", - "src": "2306:47:38", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5324, - "name": "_requireNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5365, - "src": "2316:17:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2316:19:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5326, - "nodeType": "ExpressionStatement", - "src": "2316:19:38" - }, - { - "id": 5327, - "nodeType": "PlaceholderStatement", - "src": "2345:1:38" - } - ] - }, - "documentation": { - "id": 5322, - "nodeType": "StructuredDocumentation", - "src": "2101:175:38", - "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." - }, - "id": 5329, - "name": "whenNotPaused", - "nameLocation": "2290:13:38", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5323, - "nodeType": "ParameterList", - "parameters": [], - "src": "2303:2:38" - }, - "src": "2281:72:38", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5336, - "nodeType": "Block", - "src": "2553:44:38", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5332, - "name": "_requirePaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "2563:14:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$__$", - "typeString": "function () view" - } - }, - "id": 5333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2563:16:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5334, - "nodeType": "ExpressionStatement", - "src": "2563:16:38" - }, - { - "id": 5335, - "nodeType": "PlaceholderStatement", - "src": "2589:1:38" - } - ] - }, - "documentation": { - "id": 5330, - "nodeType": "StructuredDocumentation", - "src": "2359:167:38", - "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." - }, - "id": 5337, - "name": "whenPaused", - "nameLocation": "2540:10:38", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5331, - "nodeType": "ParameterList", - "parameters": [], - "src": "2550:2:38" - }, - "src": "2531:66:38", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5352, - "nodeType": "Block", - "src": "2745:92:38", - "statements": [ - { - "assignments": [ - 5345 - ], - "declarations": [ - { - "constant": false, - "id": 5345, - "mutability": "mutable", - "name": "$", - "nameLocation": "2779:1:38", - "nodeType": "VariableDeclaration", - "scope": 5352, - "src": "2755:25:38", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage" - }, - "typeName": { - "id": 5344, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5343, - "name": "PausableStorage", - "nameLocations": [ - "2755:15:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5266, - "src": "2755:15:38" - }, - "referencedDeclaration": 5266, - "src": "2755:15:38", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage" - } - }, - "visibility": "internal" - } - ], - "id": 5348, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5346, - "name": "_getPausableStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5277, - "src": "2783:19:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$5266_storage_ptr_$", - "typeString": "function () pure returns (struct PausableUpgradeable.PausableStorage storage pointer)" - } - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2783:21:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2755:49:38" - }, - { - "expression": { - "expression": { - "id": 5349, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5345, - "src": "2821:1:38", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" - } - }, - "id": 5350, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2823:7:38", - "memberName": "_paused", - "nodeType": "MemberAccess", - "referencedDeclaration": 5265, - "src": "2821:9:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5342, - "id": 5351, - "nodeType": "Return", - "src": "2814:16:38" - } - ] - }, - "documentation": { - "id": 5338, - "nodeType": "StructuredDocumentation", - "src": "2603:84:38", - "text": " @dev Returns true if the contract is paused, and false otherwise." - }, - "functionSelector": "5c975abb", - "id": 5353, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "paused", - "nameLocation": "2701:6:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5339, - "nodeType": "ParameterList", - "parameters": [], - "src": "2707:2:38" - }, - "returnParameters": { - "id": 5342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5341, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5353, - "src": "2739:4:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5340, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2739:4:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2738:6:38" - }, - "scope": 5427, - "src": "2692:145:38", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 5364, - "nodeType": "Block", - "src": "2956:77:38", - "statements": [ - { - "condition": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5357, - "name": "paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5353, - "src": "2970:6:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2970:8:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5363, - "nodeType": "IfStatement", - "src": "2966:61:38", - "trueBody": { - "id": 5362, - "nodeType": "Block", - "src": "2980:47:38", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5359, - "name": "EnforcedPause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5290, - "src": "3001:13:38", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3001:15:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5361, - "nodeType": "RevertStatement", - "src": "2994:22:38" - } - ] - } - } - ] - }, - "documentation": { - "id": 5354, - "nodeType": "StructuredDocumentation", - "src": "2843:57:38", - "text": " @dev Throws if the contract is paused." - }, - "id": 5365, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_requireNotPaused", - "nameLocation": "2914:17:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5355, - "nodeType": "ParameterList", - "parameters": [], - "src": "2931:2:38" - }, - "returnParameters": { - "id": 5356, - "nodeType": "ParameterList", - "parameters": [], - "src": "2956:0:38" - }, - "scope": 5427, - "src": "2905:128:38", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 5377, - "nodeType": "Block", - "src": "3153:78:38", - "statements": [ - { - "condition": { - "id": 5371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3167:9:38", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5369, - "name": "paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5353, - "src": "3168:6:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 5370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3168:8:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5376, - "nodeType": "IfStatement", - "src": "3163:62:38", - "trueBody": { - "id": 5375, - "nodeType": "Block", - "src": "3178:47:38", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5372, - "name": "ExpectedPause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5293, - "src": "3199:13:38", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3199:15:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5374, - "nodeType": "RevertStatement", - "src": "3192:22:38" - } - ] - } - } - ] - }, - "documentation": { - "id": 5366, - "nodeType": "StructuredDocumentation", - "src": "3039:61:38", - "text": " @dev Throws if the contract is not paused." - }, - "id": 5378, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_requirePaused", - "nameLocation": "3114:14:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5367, - "nodeType": "ParameterList", - "parameters": [], - "src": "3128:2:38" - }, - "returnParameters": { - "id": 5368, - "nodeType": "ParameterList", - "parameters": [], - "src": "3153:0:38" - }, - "scope": 5427, - "src": "3105:126:38", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 5401, - "nodeType": "Block", - "src": "3415:127:38", - "statements": [ - { - "assignments": [ - 5386 - ], - "declarations": [ - { - "constant": false, - "id": 5386, - "mutability": "mutable", - "name": "$", - "nameLocation": "3449:1:38", - "nodeType": "VariableDeclaration", - "scope": 5401, - "src": "3425:25:38", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage" - }, - "typeName": { - "id": 5385, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5384, - "name": "PausableStorage", - "nameLocations": [ - "3425:15:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5266, - "src": "3425:15:38" - }, - "referencedDeclaration": 5266, - "src": "3425:15:38", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage" - } - }, - "visibility": "internal" - } - ], - "id": 5389, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5387, - "name": "_getPausableStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5277, - "src": "3453:19:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$5266_storage_ptr_$", - "typeString": "function () pure returns (struct PausableUpgradeable.PausableStorage storage pointer)" - } - }, - "id": 5388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3453:21:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3425:49:38" - }, - { - "expression": { - "id": 5394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 5390, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5386, - "src": "3484:1:38", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" - } - }, - "id": 5392, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3486:7:38", - "memberName": "_paused", - "nodeType": "MemberAccess", - "referencedDeclaration": 5265, - "src": "3484:9:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 5393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3496:4:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3484:16:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5395, - "nodeType": "ExpressionStatement", - "src": "3484:16:38" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5397, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5130, - "src": "3522:10:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3522:12:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5396, - "name": "Paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "3515:6:38", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3515:20:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5400, - "nodeType": "EmitStatement", - "src": "3510:25:38" - } - ] - }, - "documentation": { - "id": 5379, - "nodeType": "StructuredDocumentation", - "src": "3237:124:38", - "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." - }, - "id": 5402, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5382, - "kind": "modifierInvocation", - "modifierName": { - "id": 5381, - "name": "whenNotPaused", - "nameLocations": [ - "3401:13:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5329, - "src": "3401:13:38" - }, - "nodeType": "ModifierInvocation", - "src": "3401:13:38" - } - ], - "name": "_pause", - "nameLocation": "3375:6:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5380, - "nodeType": "ParameterList", - "parameters": [], - "src": "3381:2:38" - }, - "returnParameters": { - "id": 5383, - "nodeType": "ParameterList", - "parameters": [], - "src": "3415:0:38" - }, - "scope": 5427, - "src": "3366:176:38", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 5425, - "nodeType": "Block", - "src": "3722:130:38", - "statements": [ - { - "assignments": [ - 5410 - ], - "declarations": [ - { - "constant": false, - "id": 5410, - "mutability": "mutable", - "name": "$", - "nameLocation": "3756:1:38", - "nodeType": "VariableDeclaration", - "scope": 5425, - "src": "3732:25:38", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage" - }, - "typeName": { - "id": 5409, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5408, - "name": "PausableStorage", - "nameLocations": [ - "3732:15:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5266, - "src": "3732:15:38" - }, - "referencedDeclaration": 5266, - "src": "3732:15:38", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage" - } - }, - "visibility": "internal" - } - ], - "id": 5413, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5411, - "name": "_getPausableStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5277, - "src": "3760:19:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PausableStorage_$5266_storage_ptr_$", - "typeString": "function () pure returns (struct PausableUpgradeable.PausableStorage storage pointer)" - } - }, - "id": 5412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3760:21:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3732:49:38" - }, - { - "expression": { - "id": 5418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 5414, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5410, - "src": "3791:1:38", - "typeDescriptions": { - "typeIdentifier": "t_struct$_PausableStorage_$5266_storage_ptr", - "typeString": "struct PausableUpgradeable.PausableStorage storage pointer" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3793:7:38", - "memberName": "_paused", - "nodeType": "MemberAccess", - "referencedDeclaration": 5265, - "src": "3791:9:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "66616c7365", - "id": 5417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3803:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "3791:17:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5419, - "nodeType": "ExpressionStatement", - "src": "3791:17:38" - }, - { - "eventCall": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5421, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5130, - "src": "3832:10:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 5422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3832:12:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5420, - "name": "Unpaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "3823:8:38", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 5423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3823:22:38", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5424, - "nodeType": "EmitStatement", - "src": "3818:27:38" - } - ] - }, - "documentation": { - "id": 5403, - "nodeType": "StructuredDocumentation", - "src": "3548:121:38", - "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." - }, - "id": 5426, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5406, - "kind": "modifierInvocation", - "modifierName": { - "id": 5405, - "name": "whenPaused", - "nameLocations": [ - "3711:10:38" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5337, - "src": "3711:10:38" - }, - "nodeType": "ModifierInvocation", - "src": "3711:10:38" - } - ], - "name": "_unpause", - "nameLocation": "3683:8:38", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5404, - "nodeType": "ParameterList", - "parameters": [], - "src": "3691:2:38" - }, - "returnParameters": { - "id": 5407, - "nodeType": "ParameterList", - "parameters": [], - "src": "3722:0:38" - }, - "scope": 5427, - "src": "3674:178:38", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 5428, - "src": "701:3153:38", - "usedErrors": [ - 4865, - 4868, - 5290, - 5293 - ], - "usedEvents": [ - 4873, - 5282, - 5287 - ] - } - ], - "src": "102:3753:38" - }, - "id": 38 - }, - "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol", - "exportedSymbols": { - "EIP712Upgradeable": [ - 5771 - ], - "IERC5267": [ - 5796 - ], - "Initializable": [ - 5102 - ], - "MessageHashUtils": [ - 6804 - ] - }, - "id": 5772, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 5429, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "113:24:39" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", - "file": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", - "id": 5431, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5772, - "sourceUnit": 6805, - "src": "139:97:39", - "symbolAliases": [ - { - "foreign": { - "id": 5430, - "name": "MessageHashUtils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6804, - "src": "147:16:39", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/interfaces/IERC5267.sol", - "file": "@openzeppelin/contracts/interfaces/IERC5267.sol", - "id": 5433, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5772, - "sourceUnit": 5797, - "src": "237:73:39", - "symbolAliases": [ - { - "foreign": { - "id": 5432, - "name": "IERC5267", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5796, - "src": "245:8:39", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "../../proxy/utils/Initializable.sol", - "id": 5435, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 5772, - "sourceUnit": 5103, - "src": "311:66:39", - "symbolAliases": [ - { - "foreign": { - "id": 5434, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5102, - "src": "319:13:39", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 5437, - "name": "Initializable", - "nameLocations": [ - "1998:13:39" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5102, - "src": "1998:13:39" - }, - "id": 5438, - "nodeType": "InheritanceSpecifier", - "src": "1998:13:39" - }, - { - "baseName": { - "id": 5439, - "name": "IERC5267", - "nameLocations": [ - "2013:8:39" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5796, - "src": "2013:8:39" - }, - "id": 5440, - "nodeType": "InheritanceSpecifier", - "src": "2013:8:39" - } - ], - "canonicalName": "EIP712Upgradeable", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 5436, - "nodeType": "StructuredDocumentation", - "src": "379:1579:39", - "text": " @dev https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.\n The encoding scheme specified in the EIP requires a domain separator and a hash of the typed structured data, whose\n encoding is very generic and therefore its implementation in Solidity is not feasible, thus this contract\n does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in order to\n produce the hash of their typed data using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain\n separator of the implementation contract. This will cause the {_domainSeparatorV4} function to always rebuild the\n separator from the immutable values, which is cheaper than accessing a cached version in cold storage." - }, - "fullyImplemented": true, - "id": 5771, - "linearizedBaseContracts": [ - 5771, - 5796, - 5102 - ], - "name": "EIP712Upgradeable", - "nameLocation": "1977:17:39", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5445, - "mutability": "constant", - "name": "TYPE_HASH", - "nameLocation": "2053:9:39", - "nodeType": "VariableDeclaration", - "scope": 5771, - "src": "2028:140:39", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5441, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2028:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", - "id": 5443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2083:84:39", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", - "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" - }, - "value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", - "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" - } - ], - "id": 5442, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "2073:9:39", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 5444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2073:95:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "private" - }, - { - "canonicalName": "EIP712Upgradeable.EIP712Storage", - "documentation": { - "id": 5446, - "nodeType": "StructuredDocumentation", - "src": "2175:64:39", - "text": "@custom:storage-location erc7201:openzeppelin.storage.EIP712" - }, - "id": 5457, - "members": [ - { - "constant": false, - "id": 5449, - "mutability": "mutable", - "name": "_hashedName", - "nameLocation": "2332:11:39", - "nodeType": "VariableDeclaration", - "scope": 5457, - "src": "2324:19:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5448, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2324:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5452, - "mutability": "mutable", - "name": "_hashedVersion", - "nameLocation": "2413:14:39", - "nodeType": "VariableDeclaration", - "scope": 5457, - "src": "2405:22:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5451, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2405:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5454, - "mutability": "mutable", - "name": "_name", - "nameLocation": "2445:5:39", - "nodeType": "VariableDeclaration", - "scope": 5457, - "src": "2438:12:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5453, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2438:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5456, - "mutability": "mutable", - "name": "_version", - "nameLocation": "2467:8:39", - "nodeType": "VariableDeclaration", - "scope": 5457, - "src": "2460:15:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5455, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2460:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "EIP712Storage", - "nameLocation": "2251:13:39", - "nodeType": "StructDefinition", - "scope": 5771, - "src": "2244:238:39", - "visibility": "public" - }, - { - "constant": true, - "id": 5460, - "mutability": "constant", - "name": "EIP712StorageLocation", - "nameLocation": "2623:21:39", - "nodeType": "VariableDeclaration", - "scope": 5771, - "src": "2598:115:39", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5458, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2598:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "307861313661343664393432363163373531376363386666383966363163306365393335393865336338343938303130313164656536343961366135353764313030", - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2647:66:39", - "typeDescriptions": { - "typeIdentifier": "t_rational_73010143390315934406010559831118728393600729754696197287367516085911467577600_by_1", - "typeString": "int_const 7301...(69 digits omitted)...7600" - }, - "value": "0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100" - }, - "visibility": "private" - }, - { - "body": { - "id": 5467, - "nodeType": "Block", - "src": "2796:80:39", - "statements": [ - { - "AST": { - "nativeSrc": "2815:55:39", - "nodeType": "YulBlock", - "src": "2815:55:39", - "statements": [ - { - "nativeSrc": "2829:31:39", - "nodeType": "YulAssignment", - "src": "2829:31:39", - "value": { - "name": "EIP712StorageLocation", - "nativeSrc": "2839:21:39", - "nodeType": "YulIdentifier", - "src": "2839:21:39" - }, - "variableNames": [ - { - "name": "$.slot", - "nativeSrc": "2829:6:39", - "nodeType": "YulIdentifier", - "src": "2829:6:39" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 5464, - "isOffset": false, - "isSlot": true, - "src": "2829:6:39", - "suffix": "slot", - "valueSize": 1 - }, - { - "declaration": 5460, - "isOffset": false, - "isSlot": false, - "src": "2839:21:39", - "valueSize": 1 - } - ], - "id": 5466, - "nodeType": "InlineAssembly", - "src": "2806:64:39" - } - ] - }, - "id": 5468, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getEIP712Storage", - "nameLocation": "2729:17:39", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5461, - "nodeType": "ParameterList", - "parameters": [], - "src": "2746:2:39" - }, - "returnParameters": { - "id": 5465, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5464, - "mutability": "mutable", - "name": "$", - "nameLocation": "2793:1:39", - "nodeType": "VariableDeclaration", - "scope": 5468, - "src": "2771:23:39", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - }, - "typeName": { - "id": 5463, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5462, - "name": "EIP712Storage", - "nameLocations": [ - "2771:13:39" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5457, - "src": "2771:13:39" - }, - "referencedDeclaration": 5457, - "src": "2771:13:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - } - }, - "visibility": "internal" - } - ], - "src": "2770:25:39" - }, - "scope": 5771, - "src": "2720:156:39", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 5483, - "nodeType": "Block", - "src": "3538:55:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 5479, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5471, - "src": "3572:4:39", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 5480, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5473, - "src": "3578:7:39", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 5478, - "name": "__EIP712_init_unchained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5524, - "src": "3548:23:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory,string memory)" - } - }, - "id": 5481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3548:38:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5482, - "nodeType": "ExpressionStatement", - "src": "3548:38:39" - } - ] - }, - "documentation": { - "id": 5469, - "nodeType": "StructuredDocumentation", - "src": "2882:559:39", - "text": " @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]." - }, - "id": 5484, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5476, - "kind": "modifierInvocation", - "modifierName": { - "id": 5475, - "name": "onlyInitializing", - "nameLocations": [ - "3521:16:39" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "3521:16:39" - }, - "nodeType": "ModifierInvocation", - "src": "3521:16:39" - } - ], - "name": "__EIP712_init", - "nameLocation": "3455:13:39", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5474, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5471, - "mutability": "mutable", - "name": "name", - "nameLocation": "3483:4:39", - "nodeType": "VariableDeclaration", - "scope": 5484, - "src": "3469:18:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5470, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3469:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5473, - "mutability": "mutable", - "name": "version", - "nameLocation": "3503:7:39", - "nodeType": "VariableDeclaration", - "scope": 5484, - "src": "3489:21:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5472, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3489:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "3468:43:39" - }, - "returnParameters": { - "id": 5477, - "nodeType": "ParameterList", - "parameters": [], - "src": "3538:0:39" - }, - "scope": 5771, - "src": "3446:147:39", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5523, - "nodeType": "Block", - "src": "3701:228:39", - "statements": [ - { - "assignments": [ - 5495 - ], - "declarations": [ - { - "constant": false, - "id": 5495, - "mutability": "mutable", - "name": "$", - "nameLocation": "3733:1:39", - "nodeType": "VariableDeclaration", - "scope": 5523, - "src": "3711:23:39", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - }, - "typeName": { - "id": 5494, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5493, - "name": "EIP712Storage", - "nameLocations": [ - "3711:13:39" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5457, - "src": "3711:13:39" - }, - "referencedDeclaration": 5457, - "src": "3711:13:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - } - }, - "visibility": "internal" - } - ], - "id": 5498, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5496, - "name": "_getEIP712Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5468, - "src": "3737:17:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5457_storage_ptr_$", - "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" - } - }, - "id": 5497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3737:19:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3711:45:39" - }, - { - "expression": { - "id": 5503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 5499, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5495, - "src": "3766:1:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "id": 5501, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3768:5:39", - "memberName": "_name", - "nodeType": "MemberAccess", - "referencedDeclaration": 5454, - "src": "3766:7:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 5502, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5486, - "src": "3776:4:39", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "3766:14:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 5504, - "nodeType": "ExpressionStatement", - "src": "3766:14:39" - }, - { - "expression": { - "id": 5509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 5505, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5495, - "src": "3790:1:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "id": 5507, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3792:8:39", - "memberName": "_version", - "nodeType": "MemberAccess", - "referencedDeclaration": 5456, - "src": "3790:10:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 5508, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5488, - "src": "3803:7:39", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "3790:20:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 5510, - "nodeType": "ExpressionStatement", - "src": "3790:20:39" - }, - { - "expression": { - "id": 5515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 5511, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5495, - "src": "3875:1:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "id": 5513, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3877:11:39", - "memberName": "_hashedName", - "nodeType": "MemberAccess", - "referencedDeclaration": 5449, - "src": "3875:13:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 5514, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3891:1:39", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3875:17:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 5516, - "nodeType": "ExpressionStatement", - "src": "3875:17:39" - }, - { - "expression": { - "id": 5521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 5517, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5495, - "src": "3902:1:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "id": 5519, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3904:14:39", - "memberName": "_hashedVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 5452, - "src": "3902:16:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 5520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3921:1:39", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3902:20:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 5522, - "nodeType": "ExpressionStatement", - "src": "3902:20:39" - } - ] - }, - "id": 5524, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 5491, - "kind": "modifierInvocation", - "modifierName": { - "id": 5490, - "name": "onlyInitializing", - "nameLocations": [ - "3684:16:39" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "3684:16:39" - }, - "nodeType": "ModifierInvocation", - "src": "3684:16:39" - } - ], - "name": "__EIP712_init_unchained", - "nameLocation": "3608:23:39", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5489, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5486, - "mutability": "mutable", - "name": "name", - "nameLocation": "3646:4:39", - "nodeType": "VariableDeclaration", - "scope": 5524, - "src": "3632:18:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5485, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3632:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5488, - "mutability": "mutable", - "name": "version", - "nameLocation": "3666:7:39", - "nodeType": "VariableDeclaration", - "scope": 5524, - "src": "3652:21:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5487, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3652:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "3631:43:39" - }, - "returnParameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [], - "src": "3701:0:39" - }, - "scope": 5771, - "src": "3599:330:39", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5533, - "nodeType": "Block", - "src": "4077:47:39", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5530, - "name": "_buildDomainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5557, - "src": "4094:21:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", - "typeString": "function () view returns (bytes32)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4094:23:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 5529, - "id": 5532, - "nodeType": "Return", - "src": "4087:30:39" - } - ] - }, - "documentation": { - "id": 5525, - "nodeType": "StructuredDocumentation", - "src": "3935:75:39", - "text": " @dev Returns the domain separator for the current chain." - }, - "id": 5534, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_domainSeparatorV4", - "nameLocation": "4024:18:39", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5526, - "nodeType": "ParameterList", - "parameters": [], - "src": "4042:2:39" - }, - "returnParameters": { - "id": 5529, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5528, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5534, - "src": "4068:7:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5527, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4068:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4067:9:39" - }, - "scope": 5771, - "src": "4015:109:39", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5556, - "nodeType": "Block", - "src": "4194:127:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 5542, - "name": "TYPE_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5445, - "src": "4232:9:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5543, - "name": "_EIP712NameHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5718, - "src": "4243:15:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", - "typeString": "function () view returns (bytes32)" - } - }, - "id": 5544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4243:17:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5545, - "name": "_EIP712VersionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "4262:18:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", - "typeString": "function () view returns (bytes32)" - } - }, - "id": 5546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4262:20:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 5547, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "4284:5:39", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4290:7:39", - "memberName": "chainid", - "nodeType": "MemberAccess", - "src": "4284:13:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 5551, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "4307:4:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EIP712Upgradeable_$5771", - "typeString": "contract EIP712Upgradeable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_EIP712Upgradeable_$5771", - "typeString": "contract EIP712Upgradeable" - } - ], - "id": 5550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4299:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5549, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4299:7:39", - "typeDescriptions": {} - } - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4299:13:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 5540, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "4221:3:39", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 5541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4225:6:39", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "4221:10:39", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 5553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4221:92:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5539, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "4211:9:39", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 5554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4211:103:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 5538, - "id": 5555, - "nodeType": "Return", - "src": "4204:110:39" - } - ] - }, - "id": 5557, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_buildDomainSeparator", - "nameLocation": "4139:21:39", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5535, - "nodeType": "ParameterList", - "parameters": [], - "src": "4160:2:39" - }, - "returnParameters": { - "id": 5538, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5557, - "src": "4185:7:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5536, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4185:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4184:9:39" - }, - "scope": 5771, - "src": "4130:191:39", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 5572, - "nodeType": "Block", - "src": "5032:90:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5567, - "name": "_domainSeparatorV4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5534, - "src": "5082:18:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", - "typeString": "function () view returns (bytes32)" - } - }, - "id": 5568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5082:20:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 5569, - "name": "structHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5560, - "src": "5104:10:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 5565, - "name": "MessageHashUtils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6804, - "src": "5049:16:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_MessageHashUtils_$6804_$", - "typeString": "type(library MessageHashUtils)" - } - }, - "id": 5566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5066:15:39", - "memberName": "toTypedDataHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 6803, - "src": "5049:32:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,bytes32) pure returns (bytes32)" - } - }, - "id": 5570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5049:66:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 5564, - "id": 5571, - "nodeType": "Return", - "src": "5042:73:39" - } - ] - }, - "documentation": { - "id": 5558, - "nodeType": "StructuredDocumentation", - "src": "4327:614:39", - "text": " @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n keccak256(\"Mail(address to,string contents)\"),\n mailTo,\n keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```" - }, - "id": 5573, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_hashTypedDataV4", - "nameLocation": "4955:16:39", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5560, - "mutability": "mutable", - "name": "structHash", - "nameLocation": "4980:10:39", - "nodeType": "VariableDeclaration", - "scope": 5573, - "src": "4972:18:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5559, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4972:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4971:20:39" - }, - "returnParameters": { - "id": 5564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5563, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5573, - "src": "5023:7:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5562, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5023:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5022:9:39" - }, - "scope": 5771, - "src": "4946:176:39", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "baseFunctions": [ - 5795 - ], - "body": { - "id": 5633, - "nodeType": "Block", - "src": "5501:575:39", - "statements": [ - { - "assignments": [ - 5594 - ], - "declarations": [ - { - "constant": false, - "id": 5594, - "mutability": "mutable", - "name": "$", - "nameLocation": "5533:1:39", - "nodeType": "VariableDeclaration", - "scope": 5633, - "src": "5511:23:39", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - }, - "typeName": { - "id": 5593, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5592, - "name": "EIP712Storage", - "nameLocations": [ - "5511:13:39" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5457, - "src": "5511:13:39" - }, - "referencedDeclaration": 5457, - "src": "5511:13:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - } - }, - "visibility": "internal" - } - ], - "id": 5597, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5595, - "name": "_getEIP712Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5468, - "src": "5537:17:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5457_storage_ptr_$", - "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" - } - }, - "id": 5596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5537:19:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5511:45:39" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 5602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 5599, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5594, - "src": "5777:1:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "id": 5600, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5779:11:39", - "memberName": "_hashedName", - "nodeType": "MemberAccess", - "referencedDeclaration": 5449, - "src": "5777:13:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 5601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5794:1:39", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5777:18:39", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 5603, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5594, - "src": "5799:1:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "id": 5604, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5801:14:39", - "memberName": "_hashedVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 5452, - "src": "5799:16:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 5605, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5819:1:39", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5799:21:39", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5777:43:39", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4549503731323a20556e696e697469616c697a6564", - "id": 5608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5822:23:39", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade", - "typeString": "literal_string \"EIP712: Uninitialized\"" - }, - "value": "EIP712: Uninitialized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade", - "typeString": "literal_string \"EIP712: Uninitialized\"" - } - ], - "id": 5598, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5769:7:39", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 5609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5769:77:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5610, - "nodeType": "ExpressionStatement", - "src": "5769:77:39" - }, - { - "expression": { - "components": [ - { - "hexValue": "0f", - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "hexString", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5878:7:39", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c", - "typeString": "literal_string hex\"0f\"" - }, - "value": "\u000f" - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5612, - "name": "_EIP712Name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5650, - "src": "5908:11:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view returns (string memory)" - } - }, - "id": 5613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5908:13:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5614, - "name": "_EIP712Version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5666, - "src": "5935:14:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view returns (string memory)" - } - }, - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5935:16:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "expression": { - "id": 5616, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "5965:5:39", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5971:7:39", - "memberName": "chainid", - "nodeType": "MemberAccess", - "src": "5965:13:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 5620, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "6000:4:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EIP712Upgradeable_$5771", - "typeString": "contract EIP712Upgradeable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_EIP712Upgradeable_$5771", - "typeString": "contract EIP712Upgradeable" - } - ], - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5992:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5618, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5992:7:39", - "typeDescriptions": {} - } - }, - "id": 5621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5992:13:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 5624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6027:1:39", - "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": 5623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6019:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 5622, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6019:7:39", - "typeDescriptions": {} - } - }, - "id": 5625, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6019:10:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 5629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6057:1:39", - "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": 5628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "6043:13:39", - "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": 5626, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6047:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5627, - "nodeType": "ArrayTypeName", - "src": "6047:9:39", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 5630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6043:16:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "id": 5631, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5864:205:39", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "tuple(literal_string hex\"0f\",string memory,string memory,uint256,address,bytes32,uint256[] memory)" - } - }, - "functionReturnParameters": 5591, - "id": 5632, - "nodeType": "Return", - "src": "5857:212:39" - } - ] - }, - "documentation": { - "id": 5574, - "nodeType": "StructuredDocumentation", - "src": "5128:40:39", - "text": " @dev See {IERC-5267}." - }, - "functionSelector": "84b0196e", - "id": 5634, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "eip712Domain", - "nameLocation": "5182:12:39", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5575, - "nodeType": "ParameterList", - "parameters": [], - "src": "5194:2:39" - }, - "returnParameters": { - "id": 5591, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5577, - "mutability": "mutable", - "name": "fields", - "nameLocation": "5278:6:39", - "nodeType": "VariableDeclaration", - "scope": 5634, - "src": "5271:13:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "typeName": { - "id": 5576, - "name": "bytes1", - "nodeType": "ElementaryTypeName", - "src": "5271:6:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5579, - "mutability": "mutable", - "name": "name", - "nameLocation": "5312:4:39", - "nodeType": "VariableDeclaration", - "scope": 5634, - "src": "5298:18:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5578, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5298:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5581, - "mutability": "mutable", - "name": "version", - "nameLocation": "5344:7:39", - "nodeType": "VariableDeclaration", - "scope": 5634, - "src": "5330:21:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5580, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5330:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5583, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "5373:7:39", - "nodeType": "VariableDeclaration", - "scope": 5634, - "src": "5365:15:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5365:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5585, - "mutability": "mutable", - "name": "verifyingContract", - "nameLocation": "5402:17:39", - "nodeType": "VariableDeclaration", - "scope": 5634, - "src": "5394:25:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5394:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5587, - "mutability": "mutable", - "name": "salt", - "nameLocation": "5441:4:39", - "nodeType": "VariableDeclaration", - "scope": 5634, - "src": "5433:12:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5586, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5433:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5590, - "mutability": "mutable", - "name": "extensions", - "nameLocation": "5476:10:39", - "nodeType": "VariableDeclaration", - "scope": 5634, - "src": "5459:27:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 5588, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5459:7:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5589, - "nodeType": "ArrayTypeName", - "src": "5459:9:39", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "5257:239:39" - }, - "scope": 5771, - "src": "5173:903:39", - "stateMutability": "view", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 5649, - "nodeType": "Block", - "src": "6369:86:39", - "statements": [ - { - "assignments": [ - 5642 - ], - "declarations": [ - { - "constant": false, - "id": 5642, - "mutability": "mutable", - "name": "$", - "nameLocation": "6401:1:39", - "nodeType": "VariableDeclaration", - "scope": 5649, - "src": "6379:23:39", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - }, - "typeName": { - "id": 5641, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5640, - "name": "EIP712Storage", - "nameLocations": [ - "6379:13:39" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5457, - "src": "6379:13:39" - }, - "referencedDeclaration": 5457, - "src": "6379:13:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - } - }, - "visibility": "internal" - } - ], - "id": 5645, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5643, - "name": "_getEIP712Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5468, - "src": "6405:17:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5457_storage_ptr_$", - "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" - } - }, - "id": 5644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6405:19:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6379:45:39" - }, - { - "expression": { - "expression": { - "id": 5646, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5642, - "src": "6441:1:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "id": 5647, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6443:5:39", - "memberName": "_name", - "nodeType": "MemberAccess", - "referencedDeclaration": 5454, - "src": "6441:7:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 5639, - "id": 5648, - "nodeType": "Return", - "src": "6434:14:39" - } - ] - }, - "documentation": { - "id": 5635, - "nodeType": "StructuredDocumentation", - "src": "6082:213:39", - "text": " @dev The name parameter for the EIP712 domain.\n NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n are a concern." - }, - "id": 5650, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_EIP712Name", - "nameLocation": "6309:11:39", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5636, - "nodeType": "ParameterList", - "parameters": [], - "src": "6320:2:39" - }, - "returnParameters": { - "id": 5639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5638, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5650, - "src": "6354:13:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5637, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6354:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "6353:15:39" - }, - "scope": 5771, - "src": "6300:155:39", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 5665, - "nodeType": "Block", - "src": "6754:89:39", - "statements": [ - { - "assignments": [ - 5658 - ], - "declarations": [ - { - "constant": false, - "id": 5658, - "mutability": "mutable", - "name": "$", - "nameLocation": "6786:1:39", - "nodeType": "VariableDeclaration", - "scope": 5665, - "src": "6764:23:39", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - }, - "typeName": { - "id": 5657, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5656, - "name": "EIP712Storage", - "nameLocations": [ - "6764:13:39" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5457, - "src": "6764:13:39" - }, - "referencedDeclaration": 5457, - "src": "6764:13:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - } - }, - "visibility": "internal" - } - ], - "id": 5661, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5659, - "name": "_getEIP712Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5468, - "src": "6790:17:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5457_storage_ptr_$", - "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" - } - }, - "id": 5660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6790:19:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6764:45:39" - }, - { - "expression": { - "expression": { - "id": 5662, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5658, - "src": "6826:1:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "id": 5663, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6828:8:39", - "memberName": "_version", - "nodeType": "MemberAccess", - "referencedDeclaration": 5456, - "src": "6826:10:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 5655, - "id": 5664, - "nodeType": "Return", - "src": "6819:17:39" - } - ] - }, - "documentation": { - "id": 5651, - "nodeType": "StructuredDocumentation", - "src": "6461:216:39", - "text": " @dev The version parameter for the EIP712 domain.\n NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n are a concern." - }, - "id": 5666, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_EIP712Version", - "nameLocation": "6691:14:39", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5652, - "nodeType": "ParameterList", - "parameters": [], - "src": "6705:2:39" - }, - "returnParameters": { - "id": 5655, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5654, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5666, - "src": "6739:13:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5653, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6739:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "6738:15:39" - }, - "scope": 5771, - "src": "6682:161:39", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 5717, - "nodeType": "Block", - "src": "7117:628:39", - "statements": [ - { - "assignments": [ - 5674 - ], - "declarations": [ - { - "constant": false, - "id": 5674, - "mutability": "mutable", - "name": "$", - "nameLocation": "7149:1:39", - "nodeType": "VariableDeclaration", - "scope": 5717, - "src": "7127:23:39", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - }, - "typeName": { - "id": 5673, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5672, - "name": "EIP712Storage", - "nameLocations": [ - "7127:13:39" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5457, - "src": "7127:13:39" - }, - "referencedDeclaration": 5457, - "src": "7127:13:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - } - }, - "visibility": "internal" - } - ], - "id": 5677, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5675, - "name": "_getEIP712Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5468, - "src": "7153:17:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5457_storage_ptr_$", - "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" - } - }, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7153:19:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7127:45:39" - }, - { - "assignments": [ - 5679 - ], - "declarations": [ - { - "constant": false, - "id": 5679, - "mutability": "mutable", - "name": "name", - "nameLocation": "7196:4:39", - "nodeType": "VariableDeclaration", - "scope": 5717, - "src": "7182:18:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5678, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7182:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "id": 5682, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5680, - "name": "_EIP712Name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5650, - "src": "7203:11:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view returns (string memory)" - } - }, - "id": 5681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7203:13:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7182:34:39" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 5685, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5679, - "src": "7236:4:39", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7230:5:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 5683, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7230:5:39", - "typeDescriptions": {} - } - }, - "id": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7230:11:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7242:6:39", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "7230:18:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 5688, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7251:1:39", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7230:22:39", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5715, - "nodeType": "Block", - "src": "7314:425:39", - "statements": [ - { - "assignments": [ - 5699 - ], - "declarations": [ - { - "constant": false, - "id": 5699, - "mutability": "mutable", - "name": "hashedName", - "nameLocation": "7559:10:39", - "nodeType": "VariableDeclaration", - "scope": 5715, - "src": "7551:18:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5698, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7551:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 5702, - "initialValue": { - "expression": { - "id": 5700, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5674, - "src": "7572:1:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "id": 5701, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7574:11:39", - "memberName": "_hashedName", - "nodeType": "MemberAccess", - "referencedDeclaration": 5449, - "src": "7572:13:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7551:34:39" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 5705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5703, - "name": "hashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "7603:10:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 5704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7617:1:39", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7603:15:39", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5713, - "nodeType": "Block", - "src": "7676:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "hexValue": "", - "id": 5710, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7711:2:39", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5709, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "7701:9:39", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7701:13:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 5671, - "id": 5712, - "nodeType": "Return", - "src": "7694:20:39" - } - ] - }, - "id": 5714, - "nodeType": "IfStatement", - "src": "7599:130:39", - "trueBody": { - "id": 5708, - "nodeType": "Block", - "src": "7620:50:39", - "statements": [ - { - "expression": { - "id": 5706, - "name": "hashedName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "7645:10:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 5671, - "id": 5707, - "nodeType": "Return", - "src": "7638:17:39" - } - ] - } - } - ] - }, - "id": 5716, - "nodeType": "IfStatement", - "src": "7226:513:39", - "trueBody": { - "id": 5697, - "nodeType": "Block", - "src": "7254:54:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 5693, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5679, - "src": "7291:4:39", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 5692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7285:5:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 5691, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7285:5:39", - "typeDescriptions": {} - } - }, - "id": 5694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7285:11:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5690, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "7275:9:39", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 5695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7275:22:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 5671, - "id": 5696, - "nodeType": "Return", - "src": "7268:29:39" - } - ] - } - } - ] - }, - "documentation": { - "id": 5667, - "nodeType": "StructuredDocumentation", - "src": "6849:204:39", - "text": " @dev The hash of the name parameter for the EIP712 domain.\n NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Name` instead." - }, - "id": 5718, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_EIP712NameHash", - "nameLocation": "7067:15:39", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5668, - "nodeType": "ParameterList", - "parameters": [], - "src": "7082:2:39" - }, - "returnParameters": { - "id": 5671, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5670, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5718, - "src": "7108:7:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5669, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7108:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "7107:9:39" - }, - "scope": 5771, - "src": "7058:687:39", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5769, - "nodeType": "Block", - "src": "8028:661:39", - "statements": [ - { - "assignments": [ - 5726 - ], - "declarations": [ - { - "constant": false, - "id": 5726, - "mutability": "mutable", - "name": "$", - "nameLocation": "8060:1:39", - "nodeType": "VariableDeclaration", - "scope": 5769, - "src": "8038:23:39", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - }, - "typeName": { - "id": 5725, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 5724, - "name": "EIP712Storage", - "nameLocations": [ - "8038:13:39" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5457, - "src": "8038:13:39" - }, - "referencedDeclaration": 5457, - "src": "8038:13:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage" - } - }, - "visibility": "internal" - } - ], - "id": 5729, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5727, - "name": "_getEIP712Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5468, - "src": "8064:17:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5457_storage_ptr_$", - "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" - } - }, - "id": 5728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8064:19:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8038:45:39" - }, - { - "assignments": [ - 5731 - ], - "declarations": [ - { - "constant": false, - "id": 5731, - "mutability": "mutable", - "name": "version", - "nameLocation": "8107:7:39", - "nodeType": "VariableDeclaration", - "scope": 5769, - "src": "8093:21:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5730, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8093:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "id": 5734, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5732, - "name": "_EIP712Version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5666, - "src": "8117:14:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view returns (string memory)" - } - }, - "id": 5733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8117:16:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8093:40:39" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 5737, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "8153:7:39", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 5736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8147:5:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 5735, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8147:5:39", - "typeDescriptions": {} - } - }, - "id": 5738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8147:14:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8162:6:39", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "8147:21:39", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8171:1:39", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8147:25:39", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5767, - "nodeType": "Block", - "src": "8237:446:39", - "statements": [ - { - "assignments": [ - 5751 - ], - "declarations": [ - { - "constant": false, - "id": 5751, - "mutability": "mutable", - "name": "hashedVersion", - "nameLocation": "8491:13:39", - "nodeType": "VariableDeclaration", - "scope": 5767, - "src": "8483:21:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5750, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8483:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 5754, - "initialValue": { - "expression": { - "id": 5752, - "name": "$", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5726, - "src": "8507:1:39", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EIP712Storage_$5457_storage_ptr", - "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" - } - }, - "id": 5753, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8509:14:39", - "memberName": "_hashedVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 5452, - "src": "8507:16:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8483:40:39" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 5757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 5755, - "name": "hashedVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5751, - "src": "8541:13:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 5756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8558:1:39", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8541:18:39", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5765, - "nodeType": "Block", - "src": "8620:53:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "hexValue": "", - "id": 5762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8655:2:39", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5761, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "8645:9:39", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 5763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8645:13:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 5723, - "id": 5764, - "nodeType": "Return", - "src": "8638:20:39" - } - ] - }, - "id": 5766, - "nodeType": "IfStatement", - "src": "8537:136:39", - "trueBody": { - "id": 5760, - "nodeType": "Block", - "src": "8561:53:39", - "statements": [ - { - "expression": { - "id": 5758, - "name": "hashedVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5751, - "src": "8586:13:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 5723, - "id": 5759, - "nodeType": "Return", - "src": "8579:20:39" - } - ] - } - } - ] - }, - "id": 5768, - "nodeType": "IfStatement", - "src": "8143:540:39", - "trueBody": { - "id": 5749, - "nodeType": "Block", - "src": "8174:57:39", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 5745, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "8211:7:39", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 5744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8205:5:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 5743, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8205:5:39", - "typeDescriptions": {} - } - }, - "id": 5746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8205:14:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5742, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "8195:9:39", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 5747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8195:25:39", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 5723, - "id": 5748, - "nodeType": "Return", - "src": "8188:32:39" - } - ] - } - } - ] - }, - "documentation": { - "id": 5719, - "nodeType": "StructuredDocumentation", - "src": "7751:210:39", - "text": " @dev The hash of the version parameter for the EIP712 domain.\n NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Version` instead." - }, - "id": 5770, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_EIP712VersionHash", - "nameLocation": "7975:18:39", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5720, - "nodeType": "ParameterList", - "parameters": [], - "src": "7993:2:39" - }, - "returnParameters": { - "id": 5723, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5722, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5770, - "src": "8019:7:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5721, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8019:7:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "8018:9:39" - }, - "scope": 5771, - "src": "7966:723:39", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 5772, - "src": "1959:6732:39", - "usedErrors": [ - 4865, - 4868 - ], - "usedEvents": [ - 4873, - 5776 - ] - } - ], - "src": "113:8579:39" - }, - "id": 39 - }, - "@openzeppelin/contracts/interfaces/IERC5267.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/interfaces/IERC5267.sol", - "exportedSymbols": { - "IERC5267": [ - 5796 - ] - }, - "id": 5797, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 5773, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "107:24:40" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IERC5267", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "id": 5796, - "linearizedBaseContracts": [ - 5796 - ], - "name": "IERC5267", - "nameLocation": "143:8:40", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 5774, - "nodeType": "StructuredDocumentation", - "src": "158:84:40", - "text": " @dev MAY be emitted to signal that the domain could have changed." - }, - "eventSelector": "0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31", - "id": 5776, - "name": "EIP712DomainChanged", - "nameLocation": "253:19:40", - "nodeType": "EventDefinition", - "parameters": { - "id": 5775, - "nodeType": "ParameterList", - "parameters": [], - "src": "272:2:40" - }, - "src": "247:28:40" - }, - { - "documentation": { - "id": 5777, - "nodeType": "StructuredDocumentation", - "src": "281:140:40", - "text": " @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n signature." - }, - "functionSelector": "84b0196e", - "id": 5795, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "eip712Domain", - "nameLocation": "435:12:40", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5778, - "nodeType": "ParameterList", - "parameters": [], - "src": "447:2:40" - }, - "returnParameters": { - "id": 5794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5780, - "mutability": "mutable", - "name": "fields", - "nameLocation": "517:6:40", - "nodeType": "VariableDeclaration", - "scope": 5795, - "src": "510:13:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - "typeName": { - "id": 5779, - "name": "bytes1", - "nodeType": "ElementaryTypeName", - "src": "510:6:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5782, - "mutability": "mutable", - "name": "name", - "nameLocation": "551:4:40", - "nodeType": "VariableDeclaration", - "scope": 5795, - "src": "537:18:40", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5781, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "537:6:40", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5784, - "mutability": "mutable", - "name": "version", - "nameLocation": "583:7:40", - "nodeType": "VariableDeclaration", - "scope": 5795, - "src": "569:21:40", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5783, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "569:6:40", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5786, - "mutability": "mutable", - "name": "chainId", - "nameLocation": "612:7:40", - "nodeType": "VariableDeclaration", - "scope": 5795, - "src": "604:15:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5785, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "604:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5788, - "mutability": "mutable", - "name": "verifyingContract", - "nameLocation": "641:17:40", - "nodeType": "VariableDeclaration", - "scope": 5795, - "src": "633:25:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5787, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "633:7:40", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5790, - "mutability": "mutable", - "name": "salt", - "nameLocation": "680:4:40", - "nodeType": "VariableDeclaration", - "scope": 5795, - "src": "672:12:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 5789, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "672:7:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5793, - "mutability": "mutable", - "name": "extensions", - "nameLocation": "715:10:40", - "nodeType": "VariableDeclaration", - "scope": 5795, - "src": "698:27:40", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 5791, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "698:7:40", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5792, - "nodeType": "ArrayTypeName", - "src": "698:9:40", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "496:239:40" - }, - "scope": 5796, - "src": "426:310:40", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 5797, - "src": "133:605:40", - "usedErrors": [], - "usedEvents": [ - 5776 - ] - } - ], - "src": "107:632:40" - }, - "id": 40 - }, - "@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "exportedSymbols": { - "IERC20": [ - 5874 - ] - }, - "id": 5875, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 5798, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "106:24:41" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IERC20", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 5799, - "nodeType": "StructuredDocumentation", - "src": "132:70:41", - "text": " @dev Interface of the ERC20 standard as defined in the EIP." - }, - "fullyImplemented": false, - "id": 5874, - "linearizedBaseContracts": [ - 5874 - ], - "name": "IERC20", - "nameLocation": "213:6:41", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 5800, - "nodeType": "StructuredDocumentation", - "src": "226:158:41", - "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." - }, - "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "id": 5808, - "name": "Transfer", - "nameLocation": "395:8:41", - "nodeType": "EventDefinition", - "parameters": { - "id": 5807, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5802, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nameLocation": "420:4:41", - "nodeType": "VariableDeclaration", - "scope": 5808, - "src": "404:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5801, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "404:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5804, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nameLocation": "442:2:41", - "nodeType": "VariableDeclaration", - "scope": 5808, - "src": "426:18:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5803, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "426:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5806, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nameLocation": "454:5:41", - "nodeType": "VariableDeclaration", - "scope": 5808, - "src": "446:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5805, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "446:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "403:57:41" - }, - "src": "389:72:41" - }, - { - "anonymous": false, - "documentation": { - "id": 5809, - "nodeType": "StructuredDocumentation", - "src": "467:148:41", - "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." - }, - "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", - "id": 5817, - "name": "Approval", - "nameLocation": "626:8:41", - "nodeType": "EventDefinition", - "parameters": { - "id": 5816, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5811, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nameLocation": "651:5:41", - "nodeType": "VariableDeclaration", - "scope": 5817, - "src": "635:21:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "635:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5813, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nameLocation": "674:7:41", - "nodeType": "VariableDeclaration", - "scope": 5817, - "src": "658:23:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5812, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "658:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5815, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nameLocation": "691:5:41", - "nodeType": "VariableDeclaration", - "scope": 5817, - "src": "683:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5814, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "683:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "634:63:41" - }, - "src": "620:78:41" - }, - { - "documentation": { - "id": 5818, - "nodeType": "StructuredDocumentation", - "src": "704:65:41", - "text": " @dev Returns the value of tokens in existence." - }, - "functionSelector": "18160ddd", - "id": 5823, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nameLocation": "783:11:41", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5819, - "nodeType": "ParameterList", - "parameters": [], - "src": "794:2:41" - }, - "returnParameters": { - "id": 5822, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5821, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5823, - "src": "820:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5820, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "820:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "819:9:41" - }, - "scope": 5874, - "src": "774:55:41", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 5824, - "nodeType": "StructuredDocumentation", - "src": "835:71:41", - "text": " @dev Returns the value of tokens owned by `account`." - }, - "functionSelector": "70a08231", - "id": 5831, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nameLocation": "920:9:41", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5827, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5826, - "mutability": "mutable", - "name": "account", - "nameLocation": "938:7:41", - "nodeType": "VariableDeclaration", - "scope": 5831, - "src": "930:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "930:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "929:17:41" - }, - "returnParameters": { - "id": 5830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5829, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5831, - "src": "970:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5828, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "970:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "969:9:41" - }, - "scope": 5874, - "src": "911:68:41", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 5832, - "nodeType": "StructuredDocumentation", - "src": "985:213:41", - "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." - }, - "functionSelector": "a9059cbb", - "id": 5841, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nameLocation": "1212:8:41", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5837, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5834, - "mutability": "mutable", - "name": "to", - "nameLocation": "1229:2:41", - "nodeType": "VariableDeclaration", - "scope": 5841, - "src": "1221:10:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5833, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1221:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5836, - "mutability": "mutable", - "name": "value", - "nameLocation": "1241:5:41", - "nodeType": "VariableDeclaration", - "scope": 5841, - "src": "1233:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5835, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1233:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1220:27:41" - }, - "returnParameters": { - "id": 5840, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5839, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5841, - "src": "1266:4:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5838, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1266:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1265:6:41" - }, - "scope": 5874, - "src": "1203:69:41", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 5842, - "nodeType": "StructuredDocumentation", - "src": "1278:264:41", - "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." - }, - "functionSelector": "dd62ed3e", - "id": 5851, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nameLocation": "1556:9:41", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5847, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5844, - "mutability": "mutable", - "name": "owner", - "nameLocation": "1574:5:41", - "nodeType": "VariableDeclaration", - "scope": 5851, - "src": "1566:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5843, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1566:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5846, - "mutability": "mutable", - "name": "spender", - "nameLocation": "1589:7:41", - "nodeType": "VariableDeclaration", - "scope": 5851, - "src": "1581:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5845, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1581:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1565:32:41" - }, - "returnParameters": { - "id": 5850, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5849, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5851, - "src": "1621:7:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5848, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1621:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1620:9:41" - }, - "scope": 5874, - "src": "1547:83:41", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 5852, - "nodeType": "StructuredDocumentation", - "src": "1636:667:41", - "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." - }, - "functionSelector": "095ea7b3", - "id": 5861, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nameLocation": "2317:7:41", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5857, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5854, - "mutability": "mutable", - "name": "spender", - "nameLocation": "2333:7:41", - "nodeType": "VariableDeclaration", - "scope": 5861, - "src": "2325:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5853, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2325:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5856, - "mutability": "mutable", - "name": "value", - "nameLocation": "2350:5:41", - "nodeType": "VariableDeclaration", - "scope": 5861, - "src": "2342:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5855, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2342:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2324:32:41" - }, - "returnParameters": { - "id": 5860, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5859, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5861, - "src": "2375:4:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5858, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2375:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2374:6:41" - }, - "scope": 5874, - "src": "2308:73:41", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 5862, - "nodeType": "StructuredDocumentation", - "src": "2387:297:41", - "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." - }, - "functionSelector": "23b872dd", - "id": 5873, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nameLocation": "2698:12:41", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5869, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5864, - "mutability": "mutable", - "name": "from", - "nameLocation": "2719:4:41", - "nodeType": "VariableDeclaration", - "scope": 5873, - "src": "2711:12:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5863, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2711:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5866, - "mutability": "mutable", - "name": "to", - "nameLocation": "2733:2:41", - "nodeType": "VariableDeclaration", - "scope": 5873, - "src": "2725:10:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5865, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2725:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5868, - "mutability": "mutable", - "name": "value", - "nameLocation": "2745:5:41", - "nodeType": "VariableDeclaration", - "scope": 5873, - "src": "2737:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5867, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2737:7:41", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2710:41:41" - }, - "returnParameters": { - "id": 5872, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5871, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5873, - "src": "2770:4:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5870, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2770:4:41", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2769:6:41" - }, - "scope": 5874, - "src": "2689:87:41", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "scope": 5875, - "src": "203:2575:41", - "usedErrors": [], - "usedEvents": [ - 5808, - 5817 - ] - } - ], - "src": "106:2673:41" - }, - "id": 41 - }, - "@openzeppelin/contracts/utils/Address.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Address.sol", - "exportedSymbols": { - "Address": [ - 6127 - ] - }, - "id": 6128, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 5876, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "101:24:42" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Address", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 5877, - "nodeType": "StructuredDocumentation", - "src": "127:67:42", - "text": " @dev Collection of functions related to the address type" - }, - "fullyImplemented": true, - "id": 6127, - "linearizedBaseContracts": [ - 6127 - ], - "name": "Address", - "nameLocation": "203:7:42", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 5878, - "nodeType": "StructuredDocumentation", - "src": "217:94:42", - "text": " @dev The ETH balance of the account is not enough to perform the operation." - }, - "errorSelector": "cd786059", - "id": 5882, - "name": "AddressInsufficientBalance", - "nameLocation": "322:26:42", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5880, - "mutability": "mutable", - "name": "account", - "nameLocation": "357:7:42", - "nodeType": "VariableDeclaration", - "scope": 5882, - "src": "349:15:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "349:7:42", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "348:17:42" - }, - "src": "316:50:42" - }, - { - "documentation": { - "id": 5883, - "nodeType": "StructuredDocumentation", - "src": "372:75:42", - "text": " @dev There's no code at `target` (it is not a contract)." - }, - "errorSelector": "9996b315", - "id": 5887, - "name": "AddressEmptyCode", - "nameLocation": "458:16:42", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5886, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5885, - "mutability": "mutable", - "name": "target", - "nameLocation": "483:6:42", - "nodeType": "VariableDeclaration", - "scope": 5887, - "src": "475:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5884, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "475:7:42", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "474:16:42" - }, - "src": "452:39:42" - }, - { - "documentation": { - "id": 5888, - "nodeType": "StructuredDocumentation", - "src": "497:89:42", - "text": " @dev A call to an address target failed. The target may have reverted." - }, - "errorSelector": "1425ea42", - "id": 5890, - "name": "FailedInnerCall", - "nameLocation": "597:15:42", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 5889, - "nodeType": "ParameterList", - "parameters": [], - "src": "612:2:42" - }, - "src": "591:24:42" - }, - { - "body": { - "id": 5930, - "nodeType": "Block", - "src": "1602:260:42", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 5900, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1624:4:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$6127", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$6127", - "typeString": "library Address" - } - ], - "id": 5899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1616:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5898, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1616:7:42", - "typeDescriptions": {} - } - }, - "id": 5901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1616:13:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1630:7:42", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "1616:21:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 5903, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "1640:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1616:30:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5913, - "nodeType": "IfStatement", - "src": "1612:109:42", - "trueBody": { - "id": 5912, - "nodeType": "Block", - "src": "1648:73:42", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "id": 5908, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1704:4:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$6127", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$6127", - "typeString": "library Address" - } - ], - "id": 5907, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1696:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5906, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1696:7:42", - "typeDescriptions": {} - } - }, - "id": 5909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1696:13:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5905, - "name": "AddressInsufficientBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5882, - "src": "1669:26:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 5910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1669:41:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5911, - "nodeType": "RevertStatement", - "src": "1662:48:42" - } - ] - } - }, - { - "assignments": [ - 5915, - null - ], - "declarations": [ - { - "constant": false, - "id": 5915, - "mutability": "mutable", - "name": "success", - "nameLocation": "1737:7:42", - "nodeType": "VariableDeclaration", - "scope": 5930, - "src": "1732:12:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5914, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1732:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - null - ], - "id": 5922, - "initialValue": { - "arguments": [ - { - "hexValue": "", - "id": 5920, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1780:2:42", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "expression": { - "id": 5916, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5893, - "src": "1750:9:42", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 5917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1760:4:42", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "1750:14:42", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 5919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 5918, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "1772:6:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "1750:29:42", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 5921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1750:33:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1731:52:42" - }, - { - "condition": { - "id": 5924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1797:8:42", - "subExpression": { - "id": 5923, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5915, - "src": "1798:7:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5929, - "nodeType": "IfStatement", - "src": "1793:63:42", - "trueBody": { - "id": 5928, - "nodeType": "Block", - "src": "1807:49:42", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 5925, - "name": "FailedInnerCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5890, - "src": "1828:15:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 5926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1828:17:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5927, - "nodeType": "RevertStatement", - "src": "1821:24:42" - } - ] - } - } - ] - }, - "documentation": { - "id": 5891, - "nodeType": "StructuredDocumentation", - "src": "621:905:42", - "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." - }, - "id": 5931, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sendValue", - "nameLocation": "1540:9:42", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5896, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5893, - "mutability": "mutable", - "name": "recipient", - "nameLocation": "1566:9:42", - "nodeType": "VariableDeclaration", - "scope": 5931, - "src": "1550:25:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 5892, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1550:15:42", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5895, - "mutability": "mutable", - "name": "amount", - "nameLocation": "1585:6:42", - "nodeType": "VariableDeclaration", - "scope": 5931, - "src": "1577:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5894, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1577:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1549:43:42" - }, - "returnParameters": { - "id": 5897, - "nodeType": "ParameterList", - "parameters": [], - "src": "1602:0:42" - }, - "scope": 6127, - "src": "1531:331:42", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5947, - "nodeType": "Block", - "src": "2794:62:42", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 5942, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5934, - "src": "2833:6:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 5943, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5936, - "src": "2841:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "30", - "id": 5944, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2847:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5941, - "name": "functionCallWithValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5994, - "src": "2811:21:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory,uint256) returns (bytes memory)" - } - }, - "id": 5945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2811:38:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 5940, - "id": 5946, - "nodeType": "Return", - "src": "2804:45:42" - } - ] - }, - "documentation": { - "id": 5932, - "nodeType": "StructuredDocumentation", - "src": "1868:832:42", - "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason or custom error, it is bubbled\n up by this function (like regular Solidity function calls). However, if\n the call reverted with no returned reason, this function reverts with a\n {FailedInnerCall} error.\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert." - }, - "id": 5948, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCall", - "nameLocation": "2714:12:42", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5934, - "mutability": "mutable", - "name": "target", - "nameLocation": "2735:6:42", - "nodeType": "VariableDeclaration", - "scope": 5948, - "src": "2727:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5933, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2727:7:42", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5936, - "mutability": "mutable", - "name": "data", - "nameLocation": "2756:4:42", - "nodeType": "VariableDeclaration", - "scope": 5948, - "src": "2743:17:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5935, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2743:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2726:35:42" - }, - "returnParameters": { - "id": 5940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5939, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5948, - "src": "2780:12:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5938, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2780:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2779:14:42" - }, - "scope": 6127, - "src": "2705:151:42", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 5993, - "nodeType": "Block", - "src": "3293:279:42", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 5962, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3315:4:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$6127", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$6127", - "typeString": "library Address" - } - ], - "id": 5961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3307:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5960, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3307:7:42", - "typeDescriptions": {} - } - }, - "id": 5963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3307:13:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3321:7:42", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "3307:21:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 5965, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5955, - "src": "3331:5:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3307:29:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5975, - "nodeType": "IfStatement", - "src": "3303:108:42", - "trueBody": { - "id": 5974, - "nodeType": "Block", - "src": "3338:73:42", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "id": 5970, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3394:4:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$6127", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$6127", - "typeString": "library Address" - } - ], - "id": 5969, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3386:7:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 5968, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3386:7:42", - "typeDescriptions": {} - } - }, - "id": 5971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3386:13:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5967, - "name": "AddressInsufficientBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5882, - "src": "3359:26:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 5972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3359:41:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 5973, - "nodeType": "RevertStatement", - "src": "3352:48:42" - } - ] - } - }, - { - "assignments": [ - 5977, - 5979 - ], - "declarations": [ - { - "constant": false, - "id": 5977, - "mutability": "mutable", - "name": "success", - "nameLocation": "3426:7:42", - "nodeType": "VariableDeclaration", - "scope": 5993, - "src": "3421:12:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5976, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3421:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5979, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "3448:10:42", - "nodeType": "VariableDeclaration", - "scope": 5993, - "src": "3435:23:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5978, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3435:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 5986, - "initialValue": { - "arguments": [ - { - "id": 5984, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5953, - "src": "3488:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 5980, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5951, - "src": "3462:6:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3469:4:42", - "memberName": "call", - "nodeType": "MemberAccess", - "src": "3462:11:42", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 5983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 5982, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5955, - "src": "3481:5:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "3462:25:42", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 5985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3462:31:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3420:73:42" - }, - { - "expression": { - "arguments": [ - { - "id": 5988, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5951, - "src": "3537:6:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 5989, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5977, - "src": "3545:7:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 5990, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5979, - "src": "3554:10:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5987, - "name": "verifyCallResultFromTarget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6086, - "src": "3510:26:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bool,bytes memory) view returns (bytes memory)" - } - }, - "id": 5991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3510:55:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 5959, - "id": 5992, - "nodeType": "Return", - "src": "3503:62:42" - } - ] - }, - "documentation": { - "id": 5949, - "nodeType": "StructuredDocumentation", - "src": "2862:313:42", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`." - }, - "id": 5994, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCallWithValue", - "nameLocation": "3189:21:42", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5951, - "mutability": "mutable", - "name": "target", - "nameLocation": "3219:6:42", - "nodeType": "VariableDeclaration", - "scope": 5994, - "src": "3211:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5950, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3211:7:42", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5953, - "mutability": "mutable", - "name": "data", - "nameLocation": "3240:4:42", - "nodeType": "VariableDeclaration", - "scope": 5994, - "src": "3227:17:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5952, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3227:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5955, - "mutability": "mutable", - "name": "value", - "nameLocation": "3254:5:42", - "nodeType": "VariableDeclaration", - "scope": 5994, - "src": "3246:13:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5954, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3246:7:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3210:50:42" - }, - "returnParameters": { - "id": 5959, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5958, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 5994, - "src": "3279:12:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5957, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3279:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3278:14:42" - }, - "scope": 6127, - "src": "3180:392:42", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6019, - "nodeType": "Block", - "src": "3811:154:42", - "statements": [ - { - "assignments": [ - 6005, - 6007 - ], - "declarations": [ - { - "constant": false, - "id": 6005, - "mutability": "mutable", - "name": "success", - "nameLocation": "3827:7:42", - "nodeType": "VariableDeclaration", - "scope": 6019, - "src": "3822:12:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6004, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3822:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6007, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "3849:10:42", - "nodeType": "VariableDeclaration", - "scope": 6019, - "src": "3836:23:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6006, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3836:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 6012, - "initialValue": { - "arguments": [ - { - "id": 6010, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5999, - "src": "3881:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 6008, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5997, - "src": "3863:6:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3870:10:42", - "memberName": "staticcall", - "nodeType": "MemberAccess", - "src": "3863:17:42", - "typeDescriptions": { - "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) view returns (bool,bytes memory)" - } - }, - "id": 6011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3863:23:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3821:65:42" - }, - { - "expression": { - "arguments": [ - { - "id": 6014, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5997, - "src": "3930:6:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 6015, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6005, - "src": "3938:7:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 6016, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6007, - "src": "3947:10:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 6013, - "name": "verifyCallResultFromTarget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6086, - "src": "3903:26:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bool,bytes memory) view returns (bytes memory)" - } - }, - "id": 6017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3903:55:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 6003, - "id": 6018, - "nodeType": "Return", - "src": "3896:62:42" - } - ] - }, - "documentation": { - "id": 5995, - "nodeType": "StructuredDocumentation", - "src": "3578:128:42", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call." - }, - "id": 6020, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionStaticCall", - "nameLocation": "3720:18:42", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6000, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5997, - "mutability": "mutable", - "name": "target", - "nameLocation": "3747:6:42", - "nodeType": "VariableDeclaration", - "scope": 6020, - "src": "3739:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3739:7:42", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 5999, - "mutability": "mutable", - "name": "data", - "nameLocation": "3768:4:42", - "nodeType": "VariableDeclaration", - "scope": 6020, - "src": "3755:17:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5998, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3755:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3738:35:42" - }, - "returnParameters": { - "id": 6003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6002, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6020, - "src": "3797:12:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6001, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3797:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3796:14:42" - }, - "scope": 6127, - "src": "3711:254:42", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6045, - "nodeType": "Block", - "src": "4203:156:42", - "statements": [ - { - "assignments": [ - 6031, - 6033 - ], - "declarations": [ - { - "constant": false, - "id": 6031, - "mutability": "mutable", - "name": "success", - "nameLocation": "4219:7:42", - "nodeType": "VariableDeclaration", - "scope": 6045, - "src": "4214:12:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6030, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4214:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6033, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "4241:10:42", - "nodeType": "VariableDeclaration", - "scope": 6045, - "src": "4228:23:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6032, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4228:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 6038, - "initialValue": { - "arguments": [ - { - "id": 6036, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6025, - "src": "4275:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 6034, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6023, - "src": "4255:6:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4262:12:42", - "memberName": "delegatecall", - "nodeType": "MemberAccess", - "src": "4255:19:42", - "typeDescriptions": { - "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) returns (bool,bytes memory)" - } - }, - "id": 6037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4255:25:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4213:67:42" - }, - { - "expression": { - "arguments": [ - { - "id": 6040, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6023, - "src": "4324:6:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 6041, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6031, - "src": "4332:7:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 6042, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6033, - "src": "4341:10:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 6039, - "name": "verifyCallResultFromTarget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6086, - "src": "4297:26:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bool,bytes memory) view returns (bytes memory)" - } - }, - "id": 6043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4297:55:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 6029, - "id": 6044, - "nodeType": "Return", - "src": "4290:62:42" - } - ] - }, - "documentation": { - "id": 6021, - "nodeType": "StructuredDocumentation", - "src": "3971:130:42", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call." - }, - "id": 6046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionDelegateCall", - "nameLocation": "4115:20:42", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6026, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6023, - "mutability": "mutable", - "name": "target", - "nameLocation": "4144:6:42", - "nodeType": "VariableDeclaration", - "scope": 6046, - "src": "4136:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6022, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4136:7:42", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6025, - "mutability": "mutable", - "name": "data", - "nameLocation": "4165:4:42", - "nodeType": "VariableDeclaration", - "scope": 6046, - "src": "4152:17:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6024, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4152:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4135:35:42" - }, - "returnParameters": { - "id": 6029, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6028, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6046, - "src": "4189:12:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6027, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4189:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4188:14:42" - }, - "scope": 6127, - "src": "4106:253:42", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6085, - "nodeType": "Block", - "src": "4783:424:42", - "statements": [ - { - "condition": { - "id": 6059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4797:8:42", - "subExpression": { - "id": 6058, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6051, - "src": "4798:7:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 6083, - "nodeType": "Block", - "src": "4857:344:42", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 6074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 6065, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "5045:10:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 6066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5056:6:42", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "5045:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 6067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5066:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5045:22:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 6069, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6049, - "src": "5071:6:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5078:4:42", - "memberName": "code", - "nodeType": "MemberAccess", - "src": "5071:11:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 6071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5083:6:42", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "5071:18:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 6072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5093:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5071:23:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5045:49:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6080, - "nodeType": "IfStatement", - "src": "5041:119:42", - "trueBody": { - "id": 6079, - "nodeType": "Block", - "src": "5096:64:42", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 6076, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6049, - "src": "5138:6:42", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6075, - "name": "AddressEmptyCode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5887, - "src": "5121:16:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 6077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5121:24:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6078, - "nodeType": "RevertStatement", - "src": "5114:31:42" - } - ] - } - }, - { - "expression": { - "id": 6081, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "5180:10:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 6057, - "id": 6082, - "nodeType": "Return", - "src": "5173:17:42" - } - ] - }, - "id": 6084, - "nodeType": "IfStatement", - "src": "4793:408:42", - "trueBody": { - "id": 6064, - "nodeType": "Block", - "src": "4807:44:42", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 6061, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "4829:10:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 6060, - "name": "_revert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6126, - "src": "4821:7:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory) pure" - } - }, - "id": 6062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4821:19:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6063, - "nodeType": "ExpressionStatement", - "src": "4821:19:42" - } - ] - } - } - ] - }, - "documentation": { - "id": 6047, - "nodeType": "StructuredDocumentation", - "src": "4365:255:42", - "text": " @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target\n was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an\n unsuccessful call." - }, - "id": 6086, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifyCallResultFromTarget", - "nameLocation": "4634:26:42", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6049, - "mutability": "mutable", - "name": "target", - "nameLocation": "4678:6:42", - "nodeType": "VariableDeclaration", - "scope": 6086, - "src": "4670:14:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6048, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4670:7:42", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6051, - "mutability": "mutable", - "name": "success", - "nameLocation": "4699:7:42", - "nodeType": "VariableDeclaration", - "scope": 6086, - "src": "4694:12:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6050, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4694:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6053, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "4729:10:42", - "nodeType": "VariableDeclaration", - "scope": 6086, - "src": "4716:23:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6052, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4716:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4660:85:42" - }, - "returnParameters": { - "id": 6057, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6056, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6086, - "src": "4769:12:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6055, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4769:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4768:14:42" - }, - "scope": 6127, - "src": "4625:582:42", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6107, - "nodeType": "Block", - "src": "5509:122:42", - "statements": [ - { - "condition": { - "id": 6097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5523:8:42", - "subExpression": { - "id": 6096, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6089, - "src": "5524:7:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 6105, - "nodeType": "Block", - "src": "5583:42:42", - "statements": [ - { - "expression": { - "id": 6103, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6091, - "src": "5604:10:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 6095, - "id": 6104, - "nodeType": "Return", - "src": "5597:17:42" - } - ] - }, - "id": 6106, - "nodeType": "IfStatement", - "src": "5519:106:42", - "trueBody": { - "id": 6102, - "nodeType": "Block", - "src": "5533:44:42", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 6099, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6091, - "src": "5555:10:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 6098, - "name": "_revert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6126, - "src": "5547:7:42", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory) pure" - } - }, - "id": 6100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5547:19:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6101, - "nodeType": "ExpressionStatement", - "src": "5547:19:42" - } - ] - } - } - ] - }, - "documentation": { - "id": 6087, - "nodeType": "StructuredDocumentation", - "src": "5213:189:42", - "text": " @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the\n revert reason or with a default {FailedInnerCall} error." - }, - "id": 6108, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifyCallResult", - "nameLocation": "5416:16:42", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6092, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6089, - "mutability": "mutable", - "name": "success", - "nameLocation": "5438:7:42", - "nodeType": "VariableDeclaration", - "scope": 6108, - "src": "5433:12:42", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6088, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5433:4:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6091, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "5460:10:42", - "nodeType": "VariableDeclaration", - "scope": 6108, - "src": "5447:23:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6090, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5447:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5432:39:42" - }, - "returnParameters": { - "id": 6095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6094, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6108, - "src": "5495:12:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6093, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5495:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5494:14:42" - }, - "scope": 6127, - "src": "5407:224:42", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6125, - "nodeType": "Block", - "src": "5798:461:42", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 6114, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6111, - "src": "5874:10:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 6115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5885:6:42", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "5874:17:42", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 6116, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5894:1:42", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5874:21:42", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 6123, - "nodeType": "Block", - "src": "6204:49:42", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 6120, - "name": "FailedInnerCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5890, - "src": "6225:15:42", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 6121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6225:17:42", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6122, - "nodeType": "RevertStatement", - "src": "6218:24:42" - } - ] - }, - "id": 6124, - "nodeType": "IfStatement", - "src": "5870:383:42", - "trueBody": { - "id": 6119, - "nodeType": "Block", - "src": "5897:301:42", - "statements": [ - { - "AST": { - "nativeSrc": "6055:133:42", - "nodeType": "YulBlock", - "src": "6055:133:42", - "statements": [ - { - "nativeSrc": "6073:40:42", - "nodeType": "YulVariableDeclaration", - "src": "6073:40:42", - "value": { - "arguments": [ - { - "name": "returndata", - "nativeSrc": "6102:10:42", - "nodeType": "YulIdentifier", - "src": "6102:10:42" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "6096:5:42", - "nodeType": "YulIdentifier", - "src": "6096:5:42" - }, - "nativeSrc": "6096:17:42", - "nodeType": "YulFunctionCall", - "src": "6096:17:42" - }, - "variables": [ - { - "name": "returndata_size", - "nativeSrc": "6077:15:42", - "nodeType": "YulTypedName", - "src": "6077:15:42", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6141:2:42", - "nodeType": "YulLiteral", - "src": "6141:2:42", - "type": "", - "value": "32" - }, - { - "name": "returndata", - "nativeSrc": "6145:10:42", - "nodeType": "YulIdentifier", - "src": "6145:10:42" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6137:3:42", - "nodeType": "YulIdentifier", - "src": "6137:3:42" - }, - "nativeSrc": "6137:19:42", - "nodeType": "YulFunctionCall", - "src": "6137:19:42" - }, - { - "name": "returndata_size", - "nativeSrc": "6158:15:42", - "nodeType": "YulIdentifier", - "src": "6158:15:42" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6130:6:42", - "nodeType": "YulIdentifier", - "src": "6130:6:42" - }, - "nativeSrc": "6130:44:42", - "nodeType": "YulFunctionCall", - "src": "6130:44:42" - }, - "nativeSrc": "6130:44:42", - "nodeType": "YulExpressionStatement", - "src": "6130:44:42" - } - ] - }, - "documentation": "@solidity memory-safe-assembly", - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 6111, - "isOffset": false, - "isSlot": false, - "src": "6102:10:42", - "valueSize": 1 - }, - { - "declaration": 6111, - "isOffset": false, - "isSlot": false, - "src": "6145:10:42", - "valueSize": 1 - } - ], - "id": 6118, - "nodeType": "InlineAssembly", - "src": "6046:142:42" - } - ] - } - } - ] - }, - "documentation": { - "id": 6109, - "nodeType": "StructuredDocumentation", - "src": "5637:101:42", - "text": " @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}." - }, - "id": 6126, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_revert", - "nameLocation": "5752:7:42", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6111, - "mutability": "mutable", - "name": "returndata", - "nameLocation": "5773:10:42", - "nodeType": "VariableDeclaration", - "scope": 6126, - "src": "5760:23:42", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6110, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5760:5:42", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5759:25:42" - }, - "returnParameters": { - "id": 6113, - "nodeType": "ParameterList", - "parameters": [], - "src": "5798:0:42" - }, - "scope": 6127, - "src": "5743:516:42", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "scope": 6128, - "src": "195:6066:42", - "usedErrors": [ - 5882, - 5887, - 5890 - ], - "usedEvents": [] - } - ], - "src": "101:6161:42" - }, - "id": 42 - }, - "@openzeppelin/contracts/utils/Strings.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", - "exportedSymbols": { - "Math": [ - 7858 - ], - "SignedMath": [ - 7963 - ], - "Strings": [ - 6382 - ] - }, - "id": 6383, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6129, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "101:24:43" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", - "file": "./math/Math.sol", - "id": 6131, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 6383, - "sourceUnit": 7859, - "src": "127:37:43", - "symbolAliases": [ - { - "foreign": { - "id": 6130, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7858, - "src": "135:4:43", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", - "file": "./math/SignedMath.sol", - "id": 6133, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 6383, - "sourceUnit": 7964, - "src": "165:49:43", - "symbolAliases": [ - { - "foreign": { - "id": 6132, - "name": "SignedMath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7963, - "src": "173:10:43", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Strings", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 6134, - "nodeType": "StructuredDocumentation", - "src": "216:34:43", - "text": " @dev String operations." - }, - "fullyImplemented": true, - "id": 6382, - "linearizedBaseContracts": [ - 6382 - ], - "name": "Strings", - "nameLocation": "259:7:43", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 6137, - "mutability": "constant", - "name": "HEX_DIGITS", - "nameLocation": "298:10:43", - "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "273:56:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - }, - "typeName": { - "id": 6135, - "name": "bytes16", - "nodeType": "ElementaryTypeName", - "src": "273:7:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "value": { - "hexValue": "30313233343536373839616263646566", - "id": 6136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "311:18:43", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", - "typeString": "literal_string \"0123456789abcdef\"" - }, - "value": "0123456789abcdef" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 6140, - "mutability": "constant", - "name": "ADDRESS_LENGTH", - "nameLocation": "358:14:43", - "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "335:42:43", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6138, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "335:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "hexValue": "3230", - "id": 6139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "375:2:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - }, - "visibility": "private" - }, - { - "documentation": { - "id": 6141, - "nodeType": "StructuredDocumentation", - "src": "384:81:43", - "text": " @dev The `value` string doesn't fit in the specified `length`." - }, - "errorSelector": "e22e27eb", - "id": 6147, - "name": "StringsInsufficientHexLength", - "nameLocation": "476:28:43", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 6146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6143, - "mutability": "mutable", - "name": "value", - "nameLocation": "513:5:43", - "nodeType": "VariableDeclaration", - "scope": 6147, - "src": "505:13:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6142, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "505:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6145, - "mutability": "mutable", - "name": "length", - "nameLocation": "528:6:43", - "nodeType": "VariableDeclaration", - "scope": 6147, - "src": "520:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6144, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "520:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "504:31:43" - }, - "src": "470:66:43" - }, - { - "body": { - "id": 6194, - "nodeType": "Block", - "src": "708:627:43", - "statements": [ - { - "id": 6193, - "nodeType": "UncheckedBlock", - "src": "718:611:43", - "statements": [ - { - "assignments": [ - 6156 - ], - "declarations": [ - { - "constant": false, - "id": 6156, - "mutability": "mutable", - "name": "length", - "nameLocation": "750:6:43", - "nodeType": "VariableDeclaration", - "scope": 6193, - "src": "742:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "742:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 6163, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 6159, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6150, - "src": "770:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 6157, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7858, - "src": "759:4:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$7858_$", - "typeString": "type(library Math)" - } - }, - "id": 6158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "764:5:43", - "memberName": "log10", - "nodeType": "MemberAccess", - "referencedDeclaration": 7678, - "src": "759:10:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 6160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "759:17:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 6161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "779:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "759:21:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "742:38:43" - }, - { - "assignments": [ - 6165 - ], - "declarations": [ - { - "constant": false, - "id": 6165, - "mutability": "mutable", - "name": "buffer", - "nameLocation": "808:6:43", - "nodeType": "VariableDeclaration", - "scope": 6193, - "src": "794:20:43", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6164, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "794:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "id": 6170, - "initialValue": { - "arguments": [ - { - "id": 6168, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6156, - "src": "828:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "817:10:43", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (uint256) pure returns (string memory)" - }, - "typeName": { - "id": 6166, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "821:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "id": 6169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "817:18:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "794:41:43" - }, - { - "assignments": [ - 6172 - ], - "declarations": [ - { - "constant": false, - "id": 6172, - "mutability": "mutable", - "name": "ptr", - "nameLocation": "857:3:43", - "nodeType": "VariableDeclaration", - "scope": 6193, - "src": "849:11:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "849:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 6173, - "nodeType": "VariableDeclarationStatement", - "src": "849:11:43" - }, - { - "AST": { - "nativeSrc": "930:67:43", - "nodeType": "YulBlock", - "src": "930:67:43", - "statements": [ - { - "nativeSrc": "948:35:43", - "nodeType": "YulAssignment", - "src": "948:35:43", - "value": { - "arguments": [ - { - "name": "buffer", - "nativeSrc": "959:6:43", - "nodeType": "YulIdentifier", - "src": "959:6:43" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "971:2:43", - "nodeType": "YulLiteral", - "src": "971:2:43", - "type": "", - "value": "32" - }, - { - "name": "length", - "nativeSrc": "975:6:43", - "nodeType": "YulIdentifier", - "src": "975:6:43" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "967:3:43", - "nodeType": "YulIdentifier", - "src": "967:3:43" - }, - "nativeSrc": "967:15:43", - "nodeType": "YulFunctionCall", - "src": "967:15:43" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "955:3:43", - "nodeType": "YulIdentifier", - "src": "955:3:43" - }, - "nativeSrc": "955:28:43", - "nodeType": "YulFunctionCall", - "src": "955:28:43" - }, - "variableNames": [ - { - "name": "ptr", - "nativeSrc": "948:3:43", - "nodeType": "YulIdentifier", - "src": "948:3:43" - } - ] - } - ] - }, - "documentation": "@solidity memory-safe-assembly", - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 6165, - "isOffset": false, - "isSlot": false, - "src": "959:6:43", - "valueSize": 1 - }, - { - "declaration": 6156, - "isOffset": false, - "isSlot": false, - "src": "975:6:43", - "valueSize": 1 - }, - { - "declaration": 6172, - "isOffset": false, - "isSlot": false, - "src": "948:3:43", - "valueSize": 1 - } - ], - "id": 6174, - "nodeType": "InlineAssembly", - "src": "921:76:43" - }, - { - "body": { - "id": 6189, - "nodeType": "Block", - "src": "1023:269:43", - "statements": [ - { - "expression": { - "id": 6177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "1041:5:43", - "subExpression": { - "id": 6176, - "name": "ptr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6172, - "src": "1041:3:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6178, - "nodeType": "ExpressionStatement", - "src": "1041:5:43" - }, - { - "AST": { - "nativeSrc": "1124:86:43", - "nodeType": "YulBlock", - "src": "1124:86:43", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "1154:3:43", - "nodeType": "YulIdentifier", - "src": "1154:3:43" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1168:5:43", - "nodeType": "YulIdentifier", - "src": "1168:5:43" - }, - { - "kind": "number", - "nativeSrc": "1175:2:43", - "nodeType": "YulLiteral", - "src": "1175:2:43", - "type": "", - "value": "10" - } - ], - "functionName": { - "name": "mod", - "nativeSrc": "1164:3:43", - "nodeType": "YulIdentifier", - "src": "1164:3:43" - }, - "nativeSrc": "1164:14:43", - "nodeType": "YulFunctionCall", - "src": "1164:14:43" - }, - { - "name": "HEX_DIGITS", - "nativeSrc": "1180:10:43", - "nodeType": "YulIdentifier", - "src": "1180:10:43" - } - ], - "functionName": { - "name": "byte", - "nativeSrc": "1159:4:43", - "nodeType": "YulIdentifier", - "src": "1159:4:43" - }, - "nativeSrc": "1159:32:43", - "nodeType": "YulFunctionCall", - "src": "1159:32:43" - } - ], - "functionName": { - "name": "mstore8", - "nativeSrc": "1146:7:43", - "nodeType": "YulIdentifier", - "src": "1146:7:43" - }, - "nativeSrc": "1146:46:43", - "nodeType": "YulFunctionCall", - "src": "1146:46:43" - }, - "nativeSrc": "1146:46:43", - "nodeType": "YulExpressionStatement", - "src": "1146:46:43" - } - ] - }, - "documentation": "@solidity memory-safe-assembly", - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 6137, - "isOffset": false, - "isSlot": false, - "src": "1180:10:43", - "valueSize": 1 - }, - { - "declaration": 6172, - "isOffset": false, - "isSlot": false, - "src": "1154:3:43", - "valueSize": 1 - }, - { - "declaration": 6150, - "isOffset": false, - "isSlot": false, - "src": "1168:5:43", - "valueSize": 1 - } - ], - "id": 6179, - "nodeType": "InlineAssembly", - "src": "1115:95:43" - }, - { - "expression": { - "id": 6182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6180, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6150, - "src": "1227:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "hexValue": "3130", - "id": 6181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1236:2:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "1227:11:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6183, - "nodeType": "ExpressionStatement", - "src": "1227:11:43" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6184, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6150, - "src": "1260:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 6185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1269:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1260:10:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6188, - "nodeType": "IfStatement", - "src": "1256:21:43", - "trueBody": { - "id": 6187, - "nodeType": "Break", - "src": "1272:5:43" - } - } - ] - }, - "condition": { - "hexValue": "74727565", - "id": 6175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1017:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "id": 6190, - "nodeType": "WhileStatement", - "src": "1010:282:43" - }, - { - "expression": { - "id": 6191, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6165, - "src": "1312:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 6154, - "id": 6192, - "nodeType": "Return", - "src": "1305:13:43" - } - ] - } - ] - }, - "documentation": { - "id": 6148, - "nodeType": "StructuredDocumentation", - "src": "542:90:43", - "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." - }, - "id": 6195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toString", - "nameLocation": "646:8:43", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6150, - "mutability": "mutable", - "name": "value", - "nameLocation": "663:5:43", - "nodeType": "VariableDeclaration", - "scope": 6195, - "src": "655:13:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6149, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "655:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "654:15:43" - }, - "returnParameters": { - "id": 6154, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6153, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6195, - "src": "693:13:43", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6152, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "693:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "692:15:43" - }, - "scope": 6382, - "src": "637:698:43", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6220, - "nodeType": "Block", - "src": "1511:92:43", - "statements": [ - { - "expression": { - "arguments": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 6208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6206, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6198, - "src": "1542:5:43", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "hexValue": "30", - "id": 6207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1550:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1542:9:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "hexValue": "", - "id": 6210, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1560:2:43", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - }, - "id": 6211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "1542:20:43", - "trueExpression": { - "hexValue": "2d", - "id": 6209, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1554:3:43", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", - "typeString": "literal_string \"-\"" - }, - "value": "-" - }, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 6215, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6198, - "src": "1588:5:43", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "expression": { - "id": 6213, - "name": "SignedMath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7963, - "src": "1573:10:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SignedMath_$7963_$", - "typeString": "type(library SignedMath)" - } - }, - "id": 6214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1584:3:43", - "memberName": "abs", - "nodeType": "MemberAccess", - "referencedDeclaration": 7962, - "src": "1573:14:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$", - "typeString": "function (int256) pure returns (uint256)" - } - }, - "id": 6216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1573:21:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6212, - "name": "toString", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6195, - "src": "1564:8:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (uint256) pure returns (string memory)" - } - }, - "id": 6217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1564:31:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 6204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1528:6:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 6203, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1528:6:43", - "typeDescriptions": {} - } - }, - "id": 6205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1535:6:43", - "memberName": "concat", - "nodeType": "MemberAccess", - "src": "1528:13:43", - "typeDescriptions": { - "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", - "typeString": "function () pure returns (string memory)" - } - }, - "id": 6218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1528:68:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 6202, - "id": 6219, - "nodeType": "Return", - "src": "1521:75:43" - } - ] - }, - "documentation": { - "id": 6196, - "nodeType": "StructuredDocumentation", - "src": "1341:89:43", - "text": " @dev Converts a `int256` to its ASCII `string` decimal representation." - }, - "id": 6221, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toStringSigned", - "nameLocation": "1444:14:43", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6199, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6198, - "mutability": "mutable", - "name": "value", - "nameLocation": "1466:5:43", - "nodeType": "VariableDeclaration", - "scope": 6221, - "src": "1459:12:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 6197, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "1459:6:43", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "1458:14:43" - }, - "returnParameters": { - "id": 6202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6201, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6221, - "src": "1496:13:43", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6200, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1496:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1495:15:43" - }, - "scope": 6382, - "src": "1435:168:43", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6240, - "nodeType": "Block", - "src": "1782:100:43", - "statements": [ - { - "id": 6239, - "nodeType": "UncheckedBlock", - "src": "1792:84:43", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 6230, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6224, - "src": "1835:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 6233, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6224, - "src": "1854:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 6231, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7858, - "src": "1842:4:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$7858_$", - "typeString": "type(library Math)" - } - }, - "id": 6232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1847:6:43", - "memberName": "log256", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "1842:11:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 6234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1842:18:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 6235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1863:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1842:22:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6229, - "name": "toHexString", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 6241, - 6324, - 6344 - ], - "referencedDeclaration": 6324, - "src": "1823:11:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (uint256,uint256) pure returns (string memory)" - } - }, - "id": 6237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1823:42:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 6228, - "id": 6238, - "nodeType": "Return", - "src": "1816:49:43" - } - ] - } - ] - }, - "documentation": { - "id": 6222, - "nodeType": "StructuredDocumentation", - "src": "1609:94:43", - "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." - }, - "id": 6241, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toHexString", - "nameLocation": "1717:11:43", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6225, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6224, - "mutability": "mutable", - "name": "value", - "nameLocation": "1737:5:43", - "nodeType": "VariableDeclaration", - "scope": 6241, - "src": "1729:13:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6223, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1729:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1728:15:43" - }, - "returnParameters": { - "id": 6228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6227, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6241, - "src": "1767:13:43", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6226, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1767:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1766:15:43" - }, - "scope": 6382, - "src": "1708:174:43", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6323, - "nodeType": "Block", - "src": "2095:435:43", - "statements": [ - { - "assignments": [ - 6252 - ], - "declarations": [ - { - "constant": false, - "id": 6252, - "mutability": "mutable", - "name": "localValue", - "nameLocation": "2113:10:43", - "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "2105:18:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6251, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2105:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 6254, - "initialValue": { - "id": 6253, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6244, - "src": "2126:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2105:26:43" - }, - { - "assignments": [ - 6256 - ], - "declarations": [ - { - "constant": false, - "id": 6256, - "mutability": "mutable", - "name": "buffer", - "nameLocation": "2154:6:43", - "nodeType": "VariableDeclaration", - "scope": 6323, - "src": "2141:19:43", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6255, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2141:5:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 6265, - "initialValue": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 6259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2173:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 6260, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "2177:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2173:10:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "32", - "id": 6262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2186:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "2173:14:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "2163:9:43", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (uint256) pure returns (bytes memory)" - }, - "typeName": { - "id": 6257, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2167:5:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "id": 6264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2163:25:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2141:47:43" - }, - { - "expression": { - "id": 6270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 6266, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6256, - "src": "2198:6:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 6268, - "indexExpression": { - "hexValue": "30", - "id": 6267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2205:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2198:9:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 6269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2210:3:43", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", - "typeString": "literal_string \"0\"" - }, - "value": "0" - }, - "src": "2198:15:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 6271, - "nodeType": "ExpressionStatement", - "src": "2198:15:43" - }, - { - "expression": { - "id": 6276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 6272, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6256, - "src": "2223:6:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 6274, - "indexExpression": { - "hexValue": "31", - "id": 6273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2230:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2223:9:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "78", - "id": 6275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2235:3:43", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", - "typeString": "literal_string \"x\"" - }, - "value": "x" - }, - "src": "2223:15:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 6277, - "nodeType": "ExpressionStatement", - "src": "2223:15:43" - }, - { - "body": { - "id": 6306, - "nodeType": "Block", - "src": "2293:95:43", - "statements": [ - { - "expression": { - "id": 6300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 6292, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6256, - "src": "2307:6:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 6294, - "indexExpression": { - "id": 6293, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6279, - "src": "2314:1:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2307:9:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "id": 6295, - "name": "HEX_DIGITS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6137, - "src": "2319:10:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes16", - "typeString": "bytes16" - } - }, - "id": 6299, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6296, - "name": "localValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6252, - "src": "2330:10:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "hexValue": "307866", - "id": 6297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2343:3:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_15_by_1", - "typeString": "int_const 15" - }, - "value": "0xf" - }, - "src": "2330:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2319:28:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "src": "2307:40:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - "id": 6301, - "nodeType": "ExpressionStatement", - "src": "2307:40:43" - }, - { - "expression": { - "id": 6304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 6302, - "name": "localValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6252, - "src": "2361:10:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "34", - "id": 6303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2376:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "2361:16:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6305, - "nodeType": "ExpressionStatement", - "src": "2361:16:43" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6286, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6279, - "src": "2281:1:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "31", - "id": 6287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2285:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2281:5:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6307, - "initializationExpression": { - "assignments": [ - 6279 - ], - "declarations": [ - { - "constant": false, - "id": 6279, - "mutability": "mutable", - "name": "i", - "nameLocation": "2261:1:43", - "nodeType": "VariableDeclaration", - "scope": 6307, - "src": "2253:9:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6278, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2253:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 6285, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 6280, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2265:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 6281, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "2269:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2265:10:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 6283, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2278:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2265:14:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2253:26:43" - }, - "isSimpleCounterLoop": false, - "loopExpression": { - "expression": { - "id": 6290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": true, - "src": "2288:3:43", - "subExpression": { - "id": 6289, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6279, - "src": "2290:1:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6291, - "nodeType": "ExpressionStatement", - "src": "2288:3:43" - }, - "nodeType": "ForStatement", - "src": "2248:140:43" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6308, - "name": "localValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6252, - "src": "2401:10:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 6309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2415:1:43", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2401:15:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6317, - "nodeType": "IfStatement", - "src": "2397:96:43", - "trueBody": { - "id": 6316, - "nodeType": "Block", - "src": "2418:75:43", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 6312, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6244, - "src": "2468:5:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 6313, - "name": "length", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "2475:6:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6311, - "name": "StringsInsufficientHexLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6147, - "src": "2439:28:43", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 6314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2439:43:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6315, - "nodeType": "RevertStatement", - "src": "2432:50:43" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 6320, - "name": "buffer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6256, - "src": "2516:6:43", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 6319, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2509:6:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 6318, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2509:6:43", - "typeDescriptions": {} - } - }, - "id": 6321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2509:14:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 6250, - "id": 6322, - "nodeType": "Return", - "src": "2502:21:43" - } - ] - }, - "documentation": { - "id": 6242, - "nodeType": "StructuredDocumentation", - "src": "1888:112:43", - "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." - }, - "id": 6324, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toHexString", - "nameLocation": "2014:11:43", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6247, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6244, - "mutability": "mutable", - "name": "value", - "nameLocation": "2034:5:43", - "nodeType": "VariableDeclaration", - "scope": 6324, - "src": "2026:13:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6243, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2026:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6246, - "mutability": "mutable", - "name": "length", - "nameLocation": "2049:6:43", - "nodeType": "VariableDeclaration", - "scope": 6324, - "src": "2041:14:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6245, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2041:7:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2025:31:43" - }, - "returnParameters": { - "id": 6250, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6249, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6324, - "src": "2080:13:43", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6248, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2080:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "2079:15:43" - }, - "scope": 6382, - "src": "2005:525:43", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6343, - "nodeType": "Block", - "src": "2762:75:43", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 6337, - "name": "addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6327, - "src": "2807:4:43", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6336, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2799:7:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 6335, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "2799:7:43", - "typeDescriptions": {} - } - }, - "id": 6338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2799:13:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 6334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2791:7:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 6333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2791:7:43", - "typeDescriptions": {} - } - }, - "id": 6339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2791:22:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 6340, - "name": "ADDRESS_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6140, - "src": "2815:14:43", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 6332, - "name": "toHexString", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 6241, - 6324, - 6344 - ], - "referencedDeclaration": 6324, - "src": "2779:11:43", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (uint256,uint256) pure returns (string memory)" - } - }, - "id": 6341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2779:51:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "functionReturnParameters": 6331, - "id": 6342, - "nodeType": "Return", - "src": "2772:58:43" - } - ] - }, - "documentation": { - "id": 6325, - "nodeType": "StructuredDocumentation", - "src": "2536:148:43", - "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation." - }, - "id": 6344, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toHexString", - "nameLocation": "2698:11:43", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6327, - "mutability": "mutable", - "name": "addr", - "nameLocation": "2718:4:43", - "nodeType": "VariableDeclaration", - "scope": 6344, - "src": "2710:12:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6326, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2710:7:43", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2709:14:43" - }, - "returnParameters": { - "id": 6331, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6330, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6344, - "src": "2747:13:43", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6329, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2747:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "2746:15:43" - }, - "scope": 6382, - "src": "2689:148:43", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6380, - "nodeType": "Block", - "src": "2992:104:43", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 6378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 6356, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6347, - "src": "3015:1:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 6355, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3009:5:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 6354, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3009:5:43", - "typeDescriptions": {} - } - }, - "id": 6357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3009:8:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 6358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3018:6:43", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "3009:15:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "arguments": [ - { - "id": 6361, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6349, - "src": "3034:1:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 6360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3028:5:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 6359, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3028:5:43", - "typeDescriptions": {} - } - }, - "id": 6362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3028:8:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 6363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3037:6:43", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "3028:15:43", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3009:34:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 6377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "arguments": [ - { - "id": 6368, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6347, - "src": "3063:1:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 6367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3057:5:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 6366, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3057:5:43", - "typeDescriptions": {} - } - }, - "id": 6369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3057:8:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 6365, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "3047:9:43", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 6370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3047:19:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "arguments": [ - { - "id": 6374, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6349, - "src": "3086:1:43", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 6373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3080:5:43", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 6372, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3080:5:43", - "typeDescriptions": {} - } - }, - "id": 6375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3080:8:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 6371, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "3070:9:43", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 6376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3070:19:43", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "3047:42:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3009:80:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 6353, - "id": 6379, - "nodeType": "Return", - "src": "3002:87:43" - } - ] - }, - "documentation": { - "id": 6345, - "nodeType": "StructuredDocumentation", - "src": "2843:66:43", - "text": " @dev Returns true if the two strings are equal." - }, - "id": 6381, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "equal", - "nameLocation": "2923:5:43", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6350, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6347, - "mutability": "mutable", - "name": "a", - "nameLocation": "2943:1:43", - "nodeType": "VariableDeclaration", - "scope": 6381, - "src": "2929:15:43", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6346, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2929:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6349, - "mutability": "mutable", - "name": "b", - "nameLocation": "2960:1:43", - "nodeType": "VariableDeclaration", - "scope": 6381, - "src": "2946:15:43", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6348, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2946:6:43", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "2928:34:43" - }, - "returnParameters": { - "id": 6353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6352, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6381, - "src": "2986:4:43", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6351, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2986:4:43", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2985:6:43" - }, - "scope": 6382, - "src": "2914:182:43", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 6383, - "src": "251:2847:43", - "usedErrors": [ - 6147 - ], - "usedEvents": [] - } - ], - "src": "101:2998:43" - }, - "id": 43 - }, - "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "exportedSymbols": { - "ECDSA": [ - 6730 - ] - }, - "id": 6731, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6384, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "112:24:44" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "ECDSA", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 6385, - "nodeType": "StructuredDocumentation", - "src": "138:205:44", - "text": " @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address." - }, - "fullyImplemented": true, - "id": 6730, - "linearizedBaseContracts": [ - 6730 - ], - "name": "ECDSA", - "nameLocation": "352:5:44", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "ECDSA.RecoverError", - "id": 6390, - "members": [ - { - "id": 6386, - "name": "NoError", - "nameLocation": "392:7:44", - "nodeType": "EnumValue", - "src": "392:7:44" - }, - { - "id": 6387, - "name": "InvalidSignature", - "nameLocation": "409:16:44", - "nodeType": "EnumValue", - "src": "409:16:44" - }, - { - "id": 6388, - "name": "InvalidSignatureLength", - "nameLocation": "435:22:44", - "nodeType": "EnumValue", - "src": "435:22:44" - }, - { - "id": 6389, - "name": "InvalidSignatureS", - "nameLocation": "467:17:44", - "nodeType": "EnumValue", - "src": "467:17:44" - } - ], - "name": "RecoverError", - "nameLocation": "369:12:44", - "nodeType": "EnumDefinition", - "src": "364:126:44" - }, - { - "documentation": { - "id": 6391, - "nodeType": "StructuredDocumentation", - "src": "496:63:44", - "text": " @dev The signature derives the `address(0)`." - }, - "errorSelector": "f645eedf", - "id": 6393, - "name": "ECDSAInvalidSignature", - "nameLocation": "570:21:44", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 6392, - "nodeType": "ParameterList", - "parameters": [], - "src": "591:2:44" - }, - "src": "564:30:44" - }, - { - "documentation": { - "id": 6394, - "nodeType": "StructuredDocumentation", - "src": "600:60:44", - "text": " @dev The signature has an invalid length." - }, - "errorSelector": "fce698f7", - "id": 6398, - "name": "ECDSAInvalidSignatureLength", - "nameLocation": "671:27:44", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 6397, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6396, - "mutability": "mutable", - "name": "length", - "nameLocation": "707:6:44", - "nodeType": "VariableDeclaration", - "scope": 6398, - "src": "699:14:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6395, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "699:7:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "698:16:44" - }, - "src": "665:50:44" - }, - { - "documentation": { - "id": 6399, - "nodeType": "StructuredDocumentation", - "src": "721:85:44", - "text": " @dev The signature has an S value that is in the upper half order." - }, - "errorSelector": "d78bce0c", - "id": 6403, - "name": "ECDSAInvalidSignatureS", - "nameLocation": "817:22:44", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 6402, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6401, - "mutability": "mutable", - "name": "s", - "nameLocation": "848:1:44", - "nodeType": "VariableDeclaration", - "scope": 6403, - "src": "840:9:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6400, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "840:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "839:11:44" - }, - "src": "811:40:44" - }, - { - "body": { - "id": 6455, - "nodeType": "Block", - "src": "2242:653:44", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 6418, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6408, - "src": "2256:9:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 6419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2266:6:44", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2256:16:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "3635", - "id": 6420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2276:2:44", - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" - }, - "src": "2256:22:44", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 6453, - "nodeType": "Block", - "src": "2781:108:44", - "statements": [ - { - "expression": { - "components": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 6442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2811:1:44", - "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": 6441, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2803:7:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6440, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2803:7:44", - "typeDescriptions": {} - } - }, - "id": 6443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2803:10:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 6444, - "name": "RecoverError", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6390, - "src": "2815:12:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RecoverError_$6390_$", - "typeString": "type(enum ECDSA.RecoverError)" - } - }, - "id": 6445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2828:22:44", - "memberName": "InvalidSignatureLength", - "nodeType": "MemberAccess", - "referencedDeclaration": 6388, - "src": "2815:35:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - { - "arguments": [ - { - "expression": { - "id": 6448, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6408, - "src": "2860:9:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 6449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2870:6:44", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2860:16:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2852:7:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 6446, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2852:7:44", - "typeDescriptions": {} - } - }, - "id": 6450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2852:25:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 6451, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2802:76:44", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" - } - }, - "functionReturnParameters": 6417, - "id": 6452, - "nodeType": "Return", - "src": "2795:83:44" - } - ] - }, - "id": 6454, - "nodeType": "IfStatement", - "src": "2252:637:44", - "trueBody": { - "id": 6439, - "nodeType": "Block", - "src": "2280:495:44", - "statements": [ - { - "assignments": [ - 6423 - ], - "declarations": [ - { - "constant": false, - "id": 6423, - "mutability": "mutable", - "name": "r", - "nameLocation": "2302:1:44", - "nodeType": "VariableDeclaration", - "scope": 6439, - "src": "2294:9:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6422, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2294:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 6424, - "nodeType": "VariableDeclarationStatement", - "src": "2294:9:44" - }, - { - "assignments": [ - 6426 - ], - "declarations": [ - { - "constant": false, - "id": 6426, - "mutability": "mutable", - "name": "s", - "nameLocation": "2325:1:44", - "nodeType": "VariableDeclaration", - "scope": 6439, - "src": "2317:9:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6425, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2317:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 6427, - "nodeType": "VariableDeclarationStatement", - "src": "2317:9:44" - }, - { - "assignments": [ - 6429 - ], - "declarations": [ - { - "constant": false, - "id": 6429, - "mutability": "mutable", - "name": "v", - "nameLocation": "2346:1:44", - "nodeType": "VariableDeclaration", - "scope": 6439, - "src": "2340:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6428, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2340:5:44", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 6430, - "nodeType": "VariableDeclarationStatement", - "src": "2340:7:44" - }, - { - "AST": { - "nativeSrc": "2548:171:44", - "nodeType": "YulBlock", - "src": "2548:171:44", - "statements": [ - { - "nativeSrc": "2566:32:44", - "nodeType": "YulAssignment", - "src": "2566:32:44", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "signature", - "nativeSrc": "2581:9:44", - "nodeType": "YulIdentifier", - "src": "2581:9:44" - }, - { - "kind": "number", - "nativeSrc": "2592:4:44", - "nodeType": "YulLiteral", - "src": "2592:4:44", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2577:3:44", - "nodeType": "YulIdentifier", - "src": "2577:3:44" - }, - "nativeSrc": "2577:20:44", - "nodeType": "YulFunctionCall", - "src": "2577:20:44" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "2571:5:44", - "nodeType": "YulIdentifier", - "src": "2571:5:44" - }, - "nativeSrc": "2571:27:44", - "nodeType": "YulFunctionCall", - "src": "2571:27:44" - }, - "variableNames": [ - { - "name": "r", - "nativeSrc": "2566:1:44", - "nodeType": "YulIdentifier", - "src": "2566:1:44" - } - ] - }, - { - "nativeSrc": "2615:32:44", - "nodeType": "YulAssignment", - "src": "2615:32:44", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "signature", - "nativeSrc": "2630:9:44", - "nodeType": "YulIdentifier", - "src": "2630:9:44" - }, - { - "kind": "number", - "nativeSrc": "2641:4:44", - "nodeType": "YulLiteral", - "src": "2641:4:44", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2626:3:44", - "nodeType": "YulIdentifier", - "src": "2626:3:44" - }, - "nativeSrc": "2626:20:44", - "nodeType": "YulFunctionCall", - "src": "2626:20:44" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "2620:5:44", - "nodeType": "YulIdentifier", - "src": "2620:5:44" - }, - "nativeSrc": "2620:27:44", - "nodeType": "YulFunctionCall", - "src": "2620:27:44" - }, - "variableNames": [ - { - "name": "s", - "nativeSrc": "2615:1:44", - "nodeType": "YulIdentifier", - "src": "2615:1:44" - } - ] - }, - { - "nativeSrc": "2664:41:44", - "nodeType": "YulAssignment", - "src": "2664:41:44", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2674:1:44", - "nodeType": "YulLiteral", - "src": "2674:1:44", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "signature", - "nativeSrc": "2687:9:44", - "nodeType": "YulIdentifier", - "src": "2687:9:44" - }, - { - "kind": "number", - "nativeSrc": "2698:4:44", - "nodeType": "YulLiteral", - "src": "2698:4:44", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2683:3:44", - "nodeType": "YulIdentifier", - "src": "2683:3:44" - }, - "nativeSrc": "2683:20:44", - "nodeType": "YulFunctionCall", - "src": "2683:20:44" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "2677:5:44", - "nodeType": "YulIdentifier", - "src": "2677:5:44" - }, - "nativeSrc": "2677:27:44", - "nodeType": "YulFunctionCall", - "src": "2677:27:44" - } - ], - "functionName": { - "name": "byte", - "nativeSrc": "2669:4:44", - "nodeType": "YulIdentifier", - "src": "2669:4:44" - }, - "nativeSrc": "2669:36:44", - "nodeType": "YulFunctionCall", - "src": "2669:36:44" - }, - "variableNames": [ - { - "name": "v", - "nativeSrc": "2664:1:44", - "nodeType": "YulIdentifier", - "src": "2664:1:44" - } - ] - } - ] - }, - "documentation": "@solidity memory-safe-assembly", - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 6423, - "isOffset": false, - "isSlot": false, - "src": "2566:1:44", - "valueSize": 1 - }, - { - "declaration": 6426, - "isOffset": false, - "isSlot": false, - "src": "2615:1:44", - "valueSize": 1 - }, - { - "declaration": 6408, - "isOffset": false, - "isSlot": false, - "src": "2581:9:44", - "valueSize": 1 - }, - { - "declaration": 6408, - "isOffset": false, - "isSlot": false, - "src": "2630:9:44", - "valueSize": 1 - }, - { - "declaration": 6408, - "isOffset": false, - "isSlot": false, - "src": "2687:9:44", - "valueSize": 1 - }, - { - "declaration": 6429, - "isOffset": false, - "isSlot": false, - "src": "2664:1:44", - "valueSize": 1 - } - ], - "id": 6431, - "nodeType": "InlineAssembly", - "src": "2539:180:44" - }, - { - "expression": { - "arguments": [ - { - "id": 6433, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6406, - "src": "2750:4:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 6434, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6429, - "src": "2756:1:44", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "id": 6435, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6423, - "src": "2759:1:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 6436, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "2762:1:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6432, - "name": "tryRecover", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 6456, - 6536, - 6644 - ], - "referencedDeclaration": 6644, - "src": "2739:10:44", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" - } - }, - "id": 6437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2739:25:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" - } - }, - "functionReturnParameters": 6417, - "id": 6438, - "nodeType": "Return", - "src": "2732:32:44" - } - ] - } - } - ] - }, - "documentation": { - "id": 6404, - "nodeType": "StructuredDocumentation", - "src": "857:1267:44", - "text": " @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n return address(0) without also returning an error description. Errors are documented using an enum (error type)\n and a bytes32 providing additional information about the error.\n If no error is returned, then the address can be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]" - }, - "id": 6456, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryRecover", - "nameLocation": "2138:10:44", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6409, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6406, - "mutability": "mutable", - "name": "hash", - "nameLocation": "2157:4:44", - "nodeType": "VariableDeclaration", - "scope": 6456, - "src": "2149:12:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6405, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2149:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6408, - "mutability": "mutable", - "name": "signature", - "nameLocation": "2176:9:44", - "nodeType": "VariableDeclaration", - "scope": 6456, - "src": "2163:22:44", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6407, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2163:5:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2148:38:44" - }, - "returnParameters": { - "id": 6417, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6411, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6456, - "src": "2210:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6410, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2210:7:44", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6414, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6456, - "src": "2219:12:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - "typeName": { - "id": 6413, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 6412, - "name": "RecoverError", - "nameLocations": [ - "2219:12:44" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6390, - "src": "2219:12:44" - }, - "referencedDeclaration": 6390, - "src": "2219:12:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6416, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6456, - "src": "2233:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6415, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2233:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2209:32:44" - }, - "scope": 6730, - "src": "2129:766:44", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6485, - "nodeType": "Block", - "src": "3789:168:44", - "statements": [ - { - "assignments": [ - 6467, - 6470, - 6472 - ], - "declarations": [ - { - "constant": false, - "id": 6467, - "mutability": "mutable", - "name": "recovered", - "nameLocation": "3808:9:44", - "nodeType": "VariableDeclaration", - "scope": 6485, - "src": "3800:17:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6466, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3800:7:44", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6470, - "mutability": "mutable", - "name": "error", - "nameLocation": "3832:5:44", - "nodeType": "VariableDeclaration", - "scope": 6485, - "src": "3819:18:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - "typeName": { - "id": 6469, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 6468, - "name": "RecoverError", - "nameLocations": [ - "3819:12:44" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6390, - "src": "3819:12:44" - }, - "referencedDeclaration": 6390, - "src": "3819:12:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6472, - "mutability": "mutable", - "name": "errorArg", - "nameLocation": "3847:8:44", - "nodeType": "VariableDeclaration", - "scope": 6485, - "src": "3839:16:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6471, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3839:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 6477, - "initialValue": { - "arguments": [ - { - "id": 6474, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6459, - "src": "3870:4:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 6475, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6461, - "src": "3876:9:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 6473, - "name": "tryRecover", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 6456, - 6536, - 6644 - ], - "referencedDeclaration": 6456, - "src": "3859:10:44", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)" - } - }, - "id": 6476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3859:27:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3799:87:44" - }, - { - "expression": { - "arguments": [ - { - "id": 6479, - "name": "error", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6470, - "src": "3908:5:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - { - "id": 6480, - "name": "errorArg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6472, - "src": "3915:8:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6478, - "name": "_throwError", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6729, - "src": "3896:11:44", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$6390_$_t_bytes32_$returns$__$", - "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" - } - }, - "id": 6481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3896:28:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6482, - "nodeType": "ExpressionStatement", - "src": "3896:28:44" - }, - { - "expression": { - "id": 6483, - "name": "recovered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6467, - "src": "3941:9:44", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 6465, - "id": 6484, - "nodeType": "Return", - "src": "3934:16:44" - } - ] - }, - "documentation": { - "id": 6457, - "nodeType": "StructuredDocumentation", - "src": "2901:796:44", - "text": " @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it." - }, - "id": 6486, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "recover", - "nameLocation": "3711:7:44", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6459, - "mutability": "mutable", - "name": "hash", - "nameLocation": "3727:4:44", - "nodeType": "VariableDeclaration", - "scope": 6486, - "src": "3719:12:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6458, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3719:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6461, - "mutability": "mutable", - "name": "signature", - "nameLocation": "3746:9:44", - "nodeType": "VariableDeclaration", - "scope": 6486, - "src": "3733:22:44", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6460, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3733:5:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3718:38:44" - }, - "returnParameters": { - "id": 6465, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6464, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6486, - "src": "3780:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6463, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3780:7:44", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3779:9:44" - }, - "scope": 6730, - "src": "3702:255:44", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6535, - "nodeType": "Block", - "src": "4285:342:44", - "statements": [ - { - "id": 6534, - "nodeType": "UncheckedBlock", - "src": "4295:326:44", - "statements": [ - { - "assignments": [ - 6504 - ], - "declarations": [ - { - "constant": false, - "id": 6504, - "mutability": "mutable", - "name": "s", - "nameLocation": "4327:1:44", - "nodeType": "VariableDeclaration", - "scope": 6534, - "src": "4319:9:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6503, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4319:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 6511, - "initialValue": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 6510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6505, - "name": "vs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6493, - "src": "4331:2:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "arguments": [ - { - "hexValue": "307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", - "id": 6508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4344:66:44", - "typeDescriptions": { - "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1", - "typeString": "int_const 5789...(69 digits omitted)...9967" - }, - "value": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1", - "typeString": "int_const 5789...(69 digits omitted)...9967" - } - ], - "id": 6507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4336:7:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 6506, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4336:7:44", - "typeDescriptions": {} - } - }, - "id": 6509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4336:75:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "4331:80:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4319:92:44" - }, - { - "assignments": [ - 6513 - ], - "declarations": [ - { - "constant": false, - "id": 6513, - "mutability": "mutable", - "name": "v", - "nameLocation": "4528:1:44", - "nodeType": "VariableDeclaration", - "scope": 6534, - "src": "4522:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6512, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4522:5:44", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 6526, - "initialValue": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 6518, - "name": "vs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6493, - "src": "4547:2:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4539:7:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 6516, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4539:7:44", - "typeDescriptions": {} - } - }, - "id": 6519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4539:11:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "323535", - "id": 6520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4554:3:44", - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "255" - }, - "src": "4539:18:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6522, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4538:20:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "3237", - "id": 6523, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4561:2:44", - "typeDescriptions": { - "typeIdentifier": "t_rational_27_by_1", - "typeString": "int_const 27" - }, - "value": "27" - }, - "src": "4538:25:44", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4532:5:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 6514, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4532:5:44", - "typeDescriptions": {} - } - }, - "id": 6525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4532:32:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4522:42:44" - }, - { - "expression": { - "arguments": [ - { - "id": 6528, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6489, - "src": "4596:4:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 6529, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6513, - "src": "4602:1:44", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "id": 6530, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6491, - "src": "4605:1:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 6531, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6504, - "src": "4608:1:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6527, - "name": "tryRecover", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 6456, - 6536, - 6644 - ], - "referencedDeclaration": 6644, - "src": "4585:10:44", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" - } - }, - "id": 6532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4585:25:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" - } - }, - "functionReturnParameters": 6502, - "id": 6533, - "nodeType": "Return", - "src": "4578:32:44" - } - ] - } - ] - }, - "documentation": { - "id": 6487, - "nodeType": "StructuredDocumentation", - "src": "3963:205:44", - "text": " @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]" - }, - "id": 6536, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryRecover", - "nameLocation": "4182:10:44", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6489, - "mutability": "mutable", - "name": "hash", - "nameLocation": "4201:4:44", - "nodeType": "VariableDeclaration", - "scope": 6536, - "src": "4193:12:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6488, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4193:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6491, - "mutability": "mutable", - "name": "r", - "nameLocation": "4215:1:44", - "nodeType": "VariableDeclaration", - "scope": 6536, - "src": "4207:9:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6490, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4207:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6493, - "mutability": "mutable", - "name": "vs", - "nameLocation": "4226:2:44", - "nodeType": "VariableDeclaration", - "scope": 6536, - "src": "4218:10:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6492, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4218:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4192:37:44" - }, - "returnParameters": { - "id": 6502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6496, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6536, - "src": "4253:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6495, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4253:7:44", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6499, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6536, - "src": "4262:12:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - "typeName": { - "id": 6498, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 6497, - "name": "RecoverError", - "nameLocations": [ - "4262:12:44" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6390, - "src": "4262:12:44" - }, - "referencedDeclaration": 6390, - "src": "4262:12:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6501, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6536, - "src": "4276:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6500, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4276:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4252:32:44" - }, - "scope": 6730, - "src": "4173:454:44", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6568, - "nodeType": "Block", - "src": "4840:164:44", - "statements": [ - { - "assignments": [ - 6549, - 6552, - 6554 - ], - "declarations": [ - { - "constant": false, - "id": 6549, - "mutability": "mutable", - "name": "recovered", - "nameLocation": "4859:9:44", - "nodeType": "VariableDeclaration", - "scope": 6568, - "src": "4851:17:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6548, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4851:7:44", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6552, - "mutability": "mutable", - "name": "error", - "nameLocation": "4883:5:44", - "nodeType": "VariableDeclaration", - "scope": 6568, - "src": "4870:18:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - "typeName": { - "id": 6551, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 6550, - "name": "RecoverError", - "nameLocations": [ - "4870:12:44" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6390, - "src": "4870:12:44" - }, - "referencedDeclaration": 6390, - "src": "4870:12:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6554, - "mutability": "mutable", - "name": "errorArg", - "nameLocation": "4898:8:44", - "nodeType": "VariableDeclaration", - "scope": 6568, - "src": "4890:16:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6553, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4890:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 6560, - "initialValue": { - "arguments": [ - { - "id": 6556, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6539, - "src": "4921:4:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 6557, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6541, - "src": "4927:1:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 6558, - "name": "vs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6543, - "src": "4930:2:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6555, - "name": "tryRecover", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 6456, - 6536, - 6644 - ], - "referencedDeclaration": 6536, - "src": "4910:10:44", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" - } - }, - "id": 6559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4910:23:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4850:83:44" - }, - { - "expression": { - "arguments": [ - { - "id": 6562, - "name": "error", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6552, - "src": "4955:5:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - { - "id": 6563, - "name": "errorArg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6554, - "src": "4962:8:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6561, - "name": "_throwError", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6729, - "src": "4943:11:44", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$6390_$_t_bytes32_$returns$__$", - "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" - } - }, - "id": 6564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4943:28:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6565, - "nodeType": "ExpressionStatement", - "src": "4943:28:44" - }, - { - "expression": { - "id": 6566, - "name": "recovered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6549, - "src": "4988:9:44", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 6547, - "id": 6567, - "nodeType": "Return", - "src": "4981:16:44" - } - ] - }, - "documentation": { - "id": 6537, - "nodeType": "StructuredDocumentation", - "src": "4633:116:44", - "text": " @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately." - }, - "id": 6569, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "recover", - "nameLocation": "4763:7:44", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6544, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6539, - "mutability": "mutable", - "name": "hash", - "nameLocation": "4779:4:44", - "nodeType": "VariableDeclaration", - "scope": 6569, - "src": "4771:12:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6538, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4771:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6541, - "mutability": "mutable", - "name": "r", - "nameLocation": "4793:1:44", - "nodeType": "VariableDeclaration", - "scope": 6569, - "src": "4785:9:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6540, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4785:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6543, - "mutability": "mutable", - "name": "vs", - "nameLocation": "4804:2:44", - "nodeType": "VariableDeclaration", - "scope": 6569, - "src": "4796:10:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6542, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4796:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4770:37:44" - }, - "returnParameters": { - "id": 6547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6546, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6569, - "src": "4831:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6545, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4831:7:44", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4830:9:44" - }, - "scope": 6730, - "src": "4754:250:44", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6643, - "nodeType": "Block", - "src": "5298:1372:44", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 6590, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6578, - "src": "6194:1:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6186:7:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 6588, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6186:7:44", - "typeDescriptions": {} - } - }, - "id": 6591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6186:10:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130", - "id": 6592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6199:66:44", - "typeDescriptions": { - "typeIdentifier": "t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1", - "typeString": "int_const 5789...(69 digits omitted)...7168" - }, - "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0" - }, - "src": "6186:79:44", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6604, - "nodeType": "IfStatement", - "src": "6182:164:44", - "trueBody": { - "id": 6603, - "nodeType": "Block", - "src": "6267:79:44", - "statements": [ - { - "expression": { - "components": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 6596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6297:1:44", - "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": 6595, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6289:7:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6594, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:44", - "typeDescriptions": {} - } - }, - "id": 6597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6289:10:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 6598, - "name": "RecoverError", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6390, - "src": "6301:12:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RecoverError_$6390_$", - "typeString": "type(enum ECDSA.RecoverError)" - } - }, - "id": 6599, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6314:17:44", - "memberName": "InvalidSignatureS", - "nodeType": "MemberAccess", - "referencedDeclaration": 6389, - "src": "6301:30:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - { - "id": 6600, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6578, - "src": "6333:1:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 6601, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6288:47:44", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" - } - }, - "functionReturnParameters": 6587, - "id": 6602, - "nodeType": "Return", - "src": "6281:54:44" - } - ] - } - }, - { - "assignments": [ - 6606 - ], - "declarations": [ - { - "constant": false, - "id": 6606, - "mutability": "mutable", - "name": "signer", - "nameLocation": "6448:6:44", - "nodeType": "VariableDeclaration", - "scope": 6643, - "src": "6440:14:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6605, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6440:7:44", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 6613, - "initialValue": { - "arguments": [ - { - "id": 6608, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6572, - "src": "6467:4:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 6609, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6574, - "src": "6473:1:44", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "id": 6610, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6576, - "src": "6476:1:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 6611, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6578, - "src": "6479:1:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6607, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -6, - "src": "6457:9:44", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 6612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6457:24:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6440:41:44" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6614, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6606, - "src": "6495:6:44", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 6617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6513:1:44", - "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": 6616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6505:7:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6615, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6505:7:44", - "typeDescriptions": {} - } - }, - "id": 6618, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6505:10:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6495:20:44", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6633, - "nodeType": "IfStatement", - "src": "6491:113:44", - "trueBody": { - "id": 6632, - "nodeType": "Block", - "src": "6517:87:44", - "statements": [ - { - "expression": { - "components": [ - { - "arguments": [ - { - "hexValue": "30", - "id": 6622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6547:1:44", - "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": 6621, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6539:7:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 6620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6539:7:44", - "typeDescriptions": {} - } - }, - "id": 6623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6539:10:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 6624, - "name": "RecoverError", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6390, - "src": "6551:12:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RecoverError_$6390_$", - "typeString": "type(enum ECDSA.RecoverError)" - } - }, - "id": 6625, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6564:16:44", - "memberName": "InvalidSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 6387, - "src": "6551:29:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 6628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6590:1:44", - "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": 6627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6582:7:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 6626, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6582:7:44", - "typeDescriptions": {} - } - }, - "id": 6629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6582:10:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 6630, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6538:55:44", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" - } - }, - "functionReturnParameters": 6587, - "id": 6631, - "nodeType": "Return", - "src": "6531:62:44" - } - ] - } - }, - { - "expression": { - "components": [ - { - "id": 6634, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6606, - "src": "6622:6:44", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 6635, - "name": "RecoverError", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6390, - "src": "6630:12:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RecoverError_$6390_$", - "typeString": "type(enum ECDSA.RecoverError)" - } - }, - "id": 6636, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "6643:7:44", - "memberName": "NoError", - "nodeType": "MemberAccess", - "referencedDeclaration": 6386, - "src": "6630:20:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 6639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6660:1:44", - "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": 6638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6652:7:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 6637, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6652:7:44", - "typeDescriptions": {} - } - }, - "id": 6640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6652:10:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 6641, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6621:42:44", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" - } - }, - "functionReturnParameters": 6587, - "id": 6642, - "nodeType": "Return", - "src": "6614:49:44" - } - ] - }, - "documentation": { - "id": 6570, - "nodeType": "StructuredDocumentation", - "src": "5010:125:44", - "text": " @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately." - }, - "id": 6644, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryRecover", - "nameLocation": "5149:10:44", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6579, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6572, - "mutability": "mutable", - "name": "hash", - "nameLocation": "5177:4:44", - "nodeType": "VariableDeclaration", - "scope": 6644, - "src": "5169:12:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6571, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5169:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6574, - "mutability": "mutable", - "name": "v", - "nameLocation": "5197:1:44", - "nodeType": "VariableDeclaration", - "scope": 6644, - "src": "5191:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6573, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "5191:5:44", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6576, - "mutability": "mutable", - "name": "r", - "nameLocation": "5216:1:44", - "nodeType": "VariableDeclaration", - "scope": 6644, - "src": "5208:9:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6575, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5208:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6578, - "mutability": "mutable", - "name": "s", - "nameLocation": "5235:1:44", - "nodeType": "VariableDeclaration", - "scope": 6644, - "src": "5227:9:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6577, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5227:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5159:83:44" - }, - "returnParameters": { - "id": 6587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6581, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6644, - "src": "5266:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5266:7:44", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6584, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6644, - "src": "5275:12:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - "typeName": { - "id": 6583, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 6582, - "name": "RecoverError", - "nameLocations": [ - "5275:12:44" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6390, - "src": "5275:12:44" - }, - "referencedDeclaration": 6390, - "src": "5275:12:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6586, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6644, - "src": "5289:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6585, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5289:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5265:32:44" - }, - "scope": 6730, - "src": "5140:1530:44", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6679, - "nodeType": "Block", - "src": "6897:166:44", - "statements": [ - { - "assignments": [ - 6659, - 6662, - 6664 - ], - "declarations": [ - { - "constant": false, - "id": 6659, - "mutability": "mutable", - "name": "recovered", - "nameLocation": "6916:9:44", - "nodeType": "VariableDeclaration", - "scope": 6679, - "src": "6908:17:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6658, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6908:7:44", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6662, - "mutability": "mutable", - "name": "error", - "nameLocation": "6940:5:44", - "nodeType": "VariableDeclaration", - "scope": 6679, - "src": "6927:18:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - "typeName": { - "id": 6661, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 6660, - "name": "RecoverError", - "nameLocations": [ - "6927:12:44" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6390, - "src": "6927:12:44" - }, - "referencedDeclaration": 6390, - "src": "6927:12:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6664, - "mutability": "mutable", - "name": "errorArg", - "nameLocation": "6955:8:44", - "nodeType": "VariableDeclaration", - "scope": 6679, - "src": "6947:16:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6663, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6947:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 6671, - "initialValue": { - "arguments": [ - { - "id": 6666, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6647, - "src": "6978:4:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 6667, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6649, - "src": "6984:1:44", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "id": 6668, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6651, - "src": "6987:1:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 6669, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6653, - "src": "6990:1:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6665, - "name": "tryRecover", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 6456, - 6536, - 6644 - ], - "referencedDeclaration": 6644, - "src": "6967:10:44", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" - } - }, - "id": 6670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6967:25:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$6390_$_t_bytes32_$", - "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6907:85:44" - }, - { - "expression": { - "arguments": [ - { - "id": 6673, - "name": "error", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6662, - "src": "7014:5:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - { - "id": 6674, - "name": "errorArg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6664, - "src": "7021:8:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6672, - "name": "_throwError", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6729, - "src": "7002:11:44", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$6390_$_t_bytes32_$returns$__$", - "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" - } - }, - "id": 6675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7002:28:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6676, - "nodeType": "ExpressionStatement", - "src": "7002:28:44" - }, - { - "expression": { - "id": 6677, - "name": "recovered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6659, - "src": "7047:9:44", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 6657, - "id": 6678, - "nodeType": "Return", - "src": "7040:16:44" - } - ] - }, - "documentation": { - "id": 6645, - "nodeType": "StructuredDocumentation", - "src": "6676:122:44", - "text": " @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately." - }, - "id": 6680, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "recover", - "nameLocation": "6812:7:44", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6647, - "mutability": "mutable", - "name": "hash", - "nameLocation": "6828:4:44", - "nodeType": "VariableDeclaration", - "scope": 6680, - "src": "6820:12:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6646, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6820:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6649, - "mutability": "mutable", - "name": "v", - "nameLocation": "6840:1:44", - "nodeType": "VariableDeclaration", - "scope": 6680, - "src": "6834:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6648, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "6834:5:44", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6651, - "mutability": "mutable", - "name": "r", - "nameLocation": "6851:1:44", - "nodeType": "VariableDeclaration", - "scope": 6680, - "src": "6843:9:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6650, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6843:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6653, - "mutability": "mutable", - "name": "s", - "nameLocation": "6862:1:44", - "nodeType": "VariableDeclaration", - "scope": 6680, - "src": "6854:9:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6652, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6854:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "6819:45:44" - }, - "returnParameters": { - "id": 6657, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6656, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6680, - "src": "6888:7:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6655, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6888:7:44", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6887:9:44" - }, - "scope": 6730, - "src": "6803:260:44", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6728, - "nodeType": "Block", - "src": "7268:460:44", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - "id": 6692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6689, - "name": "error", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6684, - "src": "7282:5:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 6690, - "name": "RecoverError", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6390, - "src": "7291:12:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RecoverError_$6390_$", - "typeString": "type(enum ECDSA.RecoverError)" - } - }, - "id": 6691, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7304:7:44", - "memberName": "NoError", - "nodeType": "MemberAccess", - "referencedDeclaration": 6386, - "src": "7291:20:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "src": "7282:29:44", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - "id": 6698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6695, - "name": "error", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6684, - "src": "7378:5:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 6696, - "name": "RecoverError", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6390, - "src": "7387:12:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RecoverError_$6390_$", - "typeString": "type(enum ECDSA.RecoverError)" - } - }, - "id": 6697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7400:16:44", - "memberName": "InvalidSignature", - "nodeType": "MemberAccess", - "referencedDeclaration": 6387, - "src": "7387:29:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "src": "7378:38:44", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - "id": 6706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6703, - "name": "error", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6684, - "src": "7483:5:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 6704, - "name": "RecoverError", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6390, - "src": "7492:12:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RecoverError_$6390_$", - "typeString": "type(enum ECDSA.RecoverError)" - } - }, - "id": 6705, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7505:22:44", - "memberName": "InvalidSignatureLength", - "nodeType": "MemberAccess", - "referencedDeclaration": 6388, - "src": "7492:35:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "src": "7483:44:44", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - "id": 6718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6715, - "name": "error", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6684, - "src": "7617:5:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 6716, - "name": "RecoverError", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6390, - "src": "7626:12:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RecoverError_$6390_$", - "typeString": "type(enum ECDSA.RecoverError)" - } - }, - "id": 6717, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "7639:17:44", - "memberName": "InvalidSignatureS", - "nodeType": "MemberAccess", - "referencedDeclaration": 6389, - "src": "7626:30:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "src": "7617:39:44", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6724, - "nodeType": "IfStatement", - "src": "7613:109:44", - "trueBody": { - "id": 6723, - "nodeType": "Block", - "src": "7658:64:44", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 6720, - "name": "errorArg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6686, - "src": "7702:8:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6719, - "name": "ECDSAInvalidSignatureS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6403, - "src": "7679:22:44", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", - "typeString": "function (bytes32) pure returns (error)" - } - }, - "id": 6721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7679:32:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6722, - "nodeType": "RevertStatement", - "src": "7672:39:44" - } - ] - } - }, - "id": 6725, - "nodeType": "IfStatement", - "src": "7479:243:44", - "trueBody": { - "id": 6714, - "nodeType": "Block", - "src": "7529:78:44", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "arguments": [ - { - "id": 6710, - "name": "errorArg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6686, - "src": "7586:8:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 6709, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7578:7:44", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 6708, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7578:7:44", - "typeDescriptions": {} - } - }, - "id": 6711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7578:17:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6707, - "name": "ECDSAInvalidSignatureLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6398, - "src": "7550:27:44", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256) pure returns (error)" - } - }, - "id": 6712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7550:46:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6713, - "nodeType": "RevertStatement", - "src": "7543:53:44" - } - ] - } - }, - "id": 6726, - "nodeType": "IfStatement", - "src": "7374:348:44", - "trueBody": { - "id": 6702, - "nodeType": "Block", - "src": "7418:55:44", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 6699, - "name": "ECDSAInvalidSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6393, - "src": "7439:21:44", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 6700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7439:23:44", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 6701, - "nodeType": "RevertStatement", - "src": "7432:30:44" - } - ] - } - }, - "id": 6727, - "nodeType": "IfStatement", - "src": "7278:444:44", - "trueBody": { - "id": 6694, - "nodeType": "Block", - "src": "7313:55:44", - "statements": [ - { - "functionReturnParameters": 6688, - "id": 6693, - "nodeType": "Return", - "src": "7327:7:44" - } - ] - } - } - ] - }, - "documentation": { - "id": 6681, - "nodeType": "StructuredDocumentation", - "src": "7069:122:44", - "text": " @dev Optionally reverts with the corresponding custom error according to the `error` argument provided." - }, - "id": 6729, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_throwError", - "nameLocation": "7205:11:44", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6687, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6684, - "mutability": "mutable", - "name": "error", - "nameLocation": "7230:5:44", - "nodeType": "VariableDeclaration", - "scope": 6729, - "src": "7217:18:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - }, - "typeName": { - "id": 6683, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 6682, - "name": "RecoverError", - "nameLocations": [ - "7217:12:44" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6390, - "src": "7217:12:44" - }, - "referencedDeclaration": 6390, - "src": "7217:12:44", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RecoverError_$6390", - "typeString": "enum ECDSA.RecoverError" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6686, - "mutability": "mutable", - "name": "errorArg", - "nameLocation": "7245:8:44", - "nodeType": "VariableDeclaration", - "scope": 6729, - "src": "7237:16:44", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6685, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7237:7:44", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "7216:38:44" - }, - "returnParameters": { - "id": 6688, - "nodeType": "ParameterList", - "parameters": [], - "src": "7268:0:44" - }, - "scope": 6730, - "src": "7196:532:44", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "scope": 6731, - "src": "344:7386:44", - "usedErrors": [ - 6393, - 6398, - 6403 - ], - "usedEvents": [] - } - ], - "src": "112:7619:44" - }, - "id": 44 - }, - "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", - "exportedSymbols": { - "MessageHashUtils": [ - 6804 - ], - "Strings": [ - 6382 - ] - }, - "id": 6805, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6732, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "123:24:45" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", - "file": "../Strings.sol", - "id": 6734, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 6805, - "sourceUnit": 6383, - "src": "149:39:45", - "symbolAliases": [ - { - "foreign": { - "id": 6733, - "name": "Strings", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6382, - "src": "157:7:45", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "MessageHashUtils", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 6735, - "nodeType": "StructuredDocumentation", - "src": "190:330:45", - "text": " @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n The library provides methods for generating a hash of a message that conforms to the\n https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n specifications." - }, - "fullyImplemented": true, - "id": 6804, - "linearizedBaseContracts": [ - 6804 - ], - "name": "MessageHashUtils", - "nameLocation": "529:16:45", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 6744, - "nodeType": "Block", - "src": "1314:368:45", - "statements": [ - { - "AST": { - "nativeSrc": "1376:300:45", - "nodeType": "YulBlock", - "src": "1376:300:45", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1397:4:45", - "nodeType": "YulLiteral", - "src": "1397:4:45", - "type": "", - "value": "0x00" - }, - { - "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", - "kind": "string", - "nativeSrc": "1403:34:45", - "nodeType": "YulLiteral", - "src": "1403:34:45", - "type": "", - "value": "\u0019Ethereum Signed Message:\n32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1390:6:45", - "nodeType": "YulIdentifier", - "src": "1390:6:45" - }, - "nativeSrc": "1390:48:45", - "nodeType": "YulFunctionCall", - "src": "1390:48:45" - }, - "nativeSrc": "1390:48:45", - "nodeType": "YulExpressionStatement", - "src": "1390:48:45" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1499:4:45", - "nodeType": "YulLiteral", - "src": "1499:4:45", - "type": "", - "value": "0x1c" - }, - { - "name": "messageHash", - "nativeSrc": "1505:11:45", - "nodeType": "YulIdentifier", - "src": "1505:11:45" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1492:6:45", - "nodeType": "YulIdentifier", - "src": "1492:6:45" - }, - "nativeSrc": "1492:25:45", - "nodeType": "YulFunctionCall", - "src": "1492:25:45" - }, - "nativeSrc": "1492:25:45", - "nodeType": "YulExpressionStatement", - "src": "1492:25:45" - }, - { - "nativeSrc": "1571:31:45", - "nodeType": "YulAssignment", - "src": "1571:31:45", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1591:4:45", - "nodeType": "YulLiteral", - "src": "1591:4:45", - "type": "", - "value": "0x00" - }, - { - "kind": "number", - "nativeSrc": "1597:4:45", - "nodeType": "YulLiteral", - "src": "1597:4:45", - "type": "", - "value": "0x3c" - } - ], - "functionName": { - "name": "keccak256", - "nativeSrc": "1581:9:45", - "nodeType": "YulIdentifier", - "src": "1581:9:45" - }, - "nativeSrc": "1581:21:45", - "nodeType": "YulFunctionCall", - "src": "1581:21:45" - }, - "variableNames": [ - { - "name": "digest", - "nativeSrc": "1571:6:45", - "nodeType": "YulIdentifier", - "src": "1571:6:45" - } - ] - } - ] - }, - "documentation": "@solidity memory-safe-assembly", - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 6741, - "isOffset": false, - "isSlot": false, - "src": "1571:6:45", - "valueSize": 1 - }, - { - "declaration": 6738, - "isOffset": false, - "isSlot": false, - "src": "1505:11:45", - "valueSize": 1 - } - ], - "id": 6743, - "nodeType": "InlineAssembly", - "src": "1367:309:45" - } - ] - }, - "documentation": { - "id": 6736, - "nodeType": "StructuredDocumentation", - "src": "552:665:45", - "text": " @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing a bytes32 `messageHash` with\n `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n keccak256, although any bytes32 value can be safely used because the final digest will\n be re-hashed.\n See {ECDSA-recover}." - }, - "id": 6745, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toEthSignedMessageHash", - "nameLocation": "1231:22:45", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6739, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6738, - "mutability": "mutable", - "name": "messageHash", - "nameLocation": "1262:11:45", - "nodeType": "VariableDeclaration", - "scope": 6745, - "src": "1254:19:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6737, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1254:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1253:21:45" - }, - "returnParameters": { - "id": 6742, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6741, - "mutability": "mutable", - "name": "digest", - "nameLocation": "1306:6:45", - "nodeType": "VariableDeclaration", - "scope": 6745, - "src": "1298:14:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6740, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1298:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1297:16:45" - }, - "scope": 6804, - "src": "1222:460:45", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6770, - "nodeType": "Block", - "src": "2234:143:45", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a", - "id": 6757, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2286:32:45", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4", - "typeString": "literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\"" - }, - "value": "\u0019Ethereum Signed Message:\n" - }, - { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 6762, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6748, - "src": "2343:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 6763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2351:6:45", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2343:14:45", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 6760, - "name": "Strings", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6382, - "src": "2326:7:45", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Strings_$6382_$", - "typeString": "type(library Strings)" - } - }, - "id": 6761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2334:8:45", - "memberName": "toString", - "nodeType": "MemberAccess", - "referencedDeclaration": 6195, - "src": "2326:16:45", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (uint256) pure returns (string memory)" - } - }, - "id": 6764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2326:32:45", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 6759, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2320:5:45", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 6758, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2320:5:45", - "typeDescriptions": {} - } - }, - "id": 6765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2320:39:45", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 6766, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6748, - "src": "2361:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4", - "typeString": "literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\"" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 6755, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2273:5:45", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 6754, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2273:5:45", - "typeDescriptions": {} - } - }, - "id": 6756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2279:6:45", - "memberName": "concat", - "nodeType": "MemberAccess", - "src": "2273:12:45", - "typeDescriptions": { - "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 6767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2273:96:45", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 6753, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "2263:9:45", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 6768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2263:107:45", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 6752, - "id": 6769, - "nodeType": "Return", - "src": "2244:126:45" - } - ] - }, - "documentation": { - "id": 6746, - "nodeType": "StructuredDocumentation", - "src": "1688:455:45", - "text": " @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing an arbitrary `message` with\n `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n See {ECDSA-recover}." - }, - "id": 6771, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toEthSignedMessageHash", - "nameLocation": "2157:22:45", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6749, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6748, - "mutability": "mutable", - "name": "message", - "nameLocation": "2193:7:45", - "nodeType": "VariableDeclaration", - "scope": 6771, - "src": "2180:20:45", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6747, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2180:5:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2179:22:45" - }, - "returnParameters": { - "id": 6752, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6751, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6771, - "src": "2225:7:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6750, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2225:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2224:9:45" - }, - "scope": 6804, - "src": "2148:229:45", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6790, - "nodeType": "Block", - "src": "2831:80:45", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "1900", - "id": 6784, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "hexString", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2875:10:45", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a", - "typeString": "literal_string hex\"1900\"" - }, - "value": "\u0019\u0000" - }, - { - "id": 6785, - "name": "validator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6774, - "src": "2887:9:45", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 6786, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6776, - "src": "2898:4:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a", - "typeString": "literal_string hex\"1900\"" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 6782, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2858:3:45", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 6783, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2862:12:45", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "2858:16:45", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 6787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2858:45:45", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 6781, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "2848:9:45", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 6788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2848:56:45", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 6780, - "id": 6789, - "nodeType": "Return", - "src": "2841:63:45" - } - ] - }, - "documentation": { - "id": 6772, - "nodeType": "StructuredDocumentation", - "src": "2383:332:45", - "text": " @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x00` (data with intended validator).\n The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n `validator` address. Then hashing the result.\n See {ECDSA-recover}." - }, - "id": 6791, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toDataWithIntendedValidatorHash", - "nameLocation": "2729:31:45", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6777, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6774, - "mutability": "mutable", - "name": "validator", - "nameLocation": "2769:9:45", - "nodeType": "VariableDeclaration", - "scope": 6791, - "src": "2761:17:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6773, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2761:7:45", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6776, - "mutability": "mutable", - "name": "data", - "nameLocation": "2793:4:45", - "nodeType": "VariableDeclaration", - "scope": 6791, - "src": "2780:17:45", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 6775, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2780:5:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2760:38:45" - }, - "returnParameters": { - "id": 6780, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6779, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6791, - "src": "2822:7:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6778, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2822:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "2821:9:45" - }, - "scope": 6804, - "src": "2720:191:45", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6802, - "nodeType": "Block", - "src": "3462:292:45", - "statements": [ - { - "AST": { - "nativeSrc": "3524:224:45", - "nodeType": "YulBlock", - "src": "3524:224:45", - "statements": [ - { - "nativeSrc": "3538:22:45", - "nodeType": "YulVariableDeclaration", - "src": "3538:22:45", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3555:4:45", - "nodeType": "YulLiteral", - "src": "3555:4:45", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3549:5:45", - "nodeType": "YulIdentifier", - "src": "3549:5:45" - }, - "nativeSrc": "3549:11:45", - "nodeType": "YulFunctionCall", - "src": "3549:11:45" - }, - "variables": [ - { - "name": "ptr", - "nativeSrc": "3542:3:45", - "nodeType": "YulTypedName", - "src": "3542:3:45", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "3580:3:45", - "nodeType": "YulIdentifier", - "src": "3580:3:45" - }, - { - "hexValue": "1901", - "kind": "string", - "nativeSrc": "3585:10:45", - "nodeType": "YulLiteral", - "src": "3585:10:45", - "type": "", - "value": "\u0019\u0001" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3573:6:45", - "nodeType": "YulIdentifier", - "src": "3573:6:45" - }, - "nativeSrc": "3573:23:45", - "nodeType": "YulFunctionCall", - "src": "3573:23:45" - }, - "nativeSrc": "3573:23:45", - "nodeType": "YulExpressionStatement", - "src": "3573:23:45" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "3620:3:45", - "nodeType": "YulIdentifier", - "src": "3620:3:45" - }, - { - "kind": "number", - "nativeSrc": "3625:4:45", - "nodeType": "YulLiteral", - "src": "3625:4:45", - "type": "", - "value": "0x02" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3616:3:45", - "nodeType": "YulIdentifier", - "src": "3616:3:45" - }, - "nativeSrc": "3616:14:45", - "nodeType": "YulFunctionCall", - "src": "3616:14:45" - }, - { - "name": "domainSeparator", - "nativeSrc": "3632:15:45", - "nodeType": "YulIdentifier", - "src": "3632:15:45" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3609:6:45", - "nodeType": "YulIdentifier", - "src": "3609:6:45" - }, - "nativeSrc": "3609:39:45", - "nodeType": "YulFunctionCall", - "src": "3609:39:45" - }, - "nativeSrc": "3609:39:45", - "nodeType": "YulExpressionStatement", - "src": "3609:39:45" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "3672:3:45", - "nodeType": "YulIdentifier", - "src": "3672:3:45" - }, - { - "kind": "number", - "nativeSrc": "3677:4:45", - "nodeType": "YulLiteral", - "src": "3677:4:45", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3668:3:45", - "nodeType": "YulIdentifier", - "src": "3668:3:45" - }, - "nativeSrc": "3668:14:45", - "nodeType": "YulFunctionCall", - "src": "3668:14:45" - }, - { - "name": "structHash", - "nativeSrc": "3684:10:45", - "nodeType": "YulIdentifier", - "src": "3684:10:45" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3661:6:45", - "nodeType": "YulIdentifier", - "src": "3661:6:45" - }, - "nativeSrc": "3661:34:45", - "nodeType": "YulFunctionCall", - "src": "3661:34:45" - }, - "nativeSrc": "3661:34:45", - "nodeType": "YulExpressionStatement", - "src": "3661:34:45" - }, - { - "nativeSrc": "3708:30:45", - "nodeType": "YulAssignment", - "src": "3708:30:45", - "value": { - "arguments": [ - { - "name": "ptr", - "nativeSrc": "3728:3:45", - "nodeType": "YulIdentifier", - "src": "3728:3:45" - }, - { - "kind": "number", - "nativeSrc": "3733:4:45", - "nodeType": "YulLiteral", - "src": "3733:4:45", - "type": "", - "value": "0x42" - } - ], - "functionName": { - "name": "keccak256", - "nativeSrc": "3718:9:45", - "nodeType": "YulIdentifier", - "src": "3718:9:45" - }, - "nativeSrc": "3718:20:45", - "nodeType": "YulFunctionCall", - "src": "3718:20:45" - }, - "variableNames": [ - { - "name": "digest", - "nativeSrc": "3708:6:45", - "nodeType": "YulIdentifier", - "src": "3708:6:45" - } - ] - } - ] - }, - "documentation": "@solidity memory-safe-assembly", - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 6799, - "isOffset": false, - "isSlot": false, - "src": "3708:6:45", - "valueSize": 1 - }, - { - "declaration": 6794, - "isOffset": false, - "isSlot": false, - "src": "3632:15:45", - "valueSize": 1 - }, - { - "declaration": 6796, - "isOffset": false, - "isSlot": false, - "src": "3684:10:45", - "valueSize": 1 - } - ], - "id": 6801, - "nodeType": "InlineAssembly", - "src": "3515:233:45" - } - ] - }, - "documentation": { - "id": 6792, - "nodeType": "StructuredDocumentation", - "src": "2917:431:45", - "text": " @dev Returns the keccak256 digest of an EIP-712 typed data (EIP-191 version `0x01`).\n The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n See {ECDSA-recover}." - }, - "id": 6803, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toTypedDataHash", - "nameLocation": "3362:15:45", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6797, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6794, - "mutability": "mutable", - "name": "domainSeparator", - "nameLocation": "3386:15:45", - "nodeType": "VariableDeclaration", - "scope": 6803, - "src": "3378:23:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6793, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3378:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6796, - "mutability": "mutable", - "name": "structHash", - "nameLocation": "3411:10:45", - "nodeType": "VariableDeclaration", - "scope": 6803, - "src": "3403:18:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6795, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3403:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3377:45:45" - }, - "returnParameters": { - "id": 6800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6799, - "mutability": "mutable", - "name": "digest", - "nameLocation": "3454:6:45", - "nodeType": "VariableDeclaration", - "scope": 6803, - "src": "3446:14:45", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6798, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3446:7:45", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3445:16:45" - }, - "scope": 6804, - "src": "3353:401:45", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 6805, - "src": "521:3235:45", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "123:3634:45" - }, - "id": 45 - }, - "@openzeppelin/contracts/utils/math/Math.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", - "exportedSymbols": { - "Math": [ - 7858 - ] - }, - "id": 7859, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6806, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "103:24:46" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Math", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 6807, - "nodeType": "StructuredDocumentation", - "src": "129:73:46", - "text": " @dev Standard math utilities missing in the Solidity language." - }, - "fullyImplemented": true, - "id": 7858, - "linearizedBaseContracts": [ - 7858 - ], - "name": "Math", - "nameLocation": "211:4:46", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 6808, - "nodeType": "StructuredDocumentation", - "src": "222:50:46", - "text": " @dev Muldiv operation overflow." - }, - "errorSelector": "227bc153", - "id": 6810, - "name": "MathOverflowedMulDiv", - "nameLocation": "283:20:46", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 6809, - "nodeType": "ParameterList", - "parameters": [], - "src": "303:2:46" - }, - "src": "277:29:46" - }, - { - "canonicalName": "Math.Rounding", - "id": 6815, - "members": [ - { - "id": 6811, - "name": "Floor", - "nameLocation": "336:5:46", - "nodeType": "EnumValue", - "src": "336:5:46" - }, - { - "id": 6812, - "name": "Ceil", - "nameLocation": "379:4:46", - "nodeType": "EnumValue", - "src": "379:4:46" - }, - { - "id": 6813, - "name": "Trunc", - "nameLocation": "421:5:46", - "nodeType": "EnumValue", - "src": "421:5:46" - }, - { - "id": 6814, - "name": "Expand", - "nameLocation": "451:6:46", - "nodeType": "EnumValue", - "src": "451:6:46" - } - ], - "name": "Rounding", - "nameLocation": "317:8:46", - "nodeType": "EnumDefinition", - "src": "312:169:46" - }, - { - "body": { - "id": 6846, - "nodeType": "Block", - "src": "661:140:46", - "statements": [ - { - "id": 6845, - "nodeType": "UncheckedBlock", - "src": "671:124:46", - "statements": [ - { - "assignments": [ - 6828 - ], - "declarations": [ - { - "constant": false, - "id": 6828, - "mutability": "mutable", - "name": "c", - "nameLocation": "703:1:46", - "nodeType": "VariableDeclaration", - "scope": 6845, - "src": "695:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6827, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "695:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 6832, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6829, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6818, - "src": "707:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 6830, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "711:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "707:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "695:17:46" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6833, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6828, - "src": "730:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 6834, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6818, - "src": "734:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "730:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6840, - "nodeType": "IfStatement", - "src": "726:28:46", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 6836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "745:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 6837, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "752:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 6838, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "744:10:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 6826, - "id": 6839, - "nodeType": "Return", - "src": "737:17:46" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 6841, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "776:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "id": 6842, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6828, - "src": "782:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6843, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "775:9:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 6826, - "id": 6844, - "nodeType": "Return", - "src": "768:16:46" - } - ] - } - ] - }, - "documentation": { - "id": 6816, - "nodeType": "StructuredDocumentation", - "src": "487:93:46", - "text": " @dev Returns the addition of two unsigned integers, with an overflow flag." - }, - "id": 6847, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryAdd", - "nameLocation": "594:6:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6821, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6818, - "mutability": "mutable", - "name": "a", - "nameLocation": "609:1:46", - "nodeType": "VariableDeclaration", - "scope": 6847, - "src": "601:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6817, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "601:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6820, - "mutability": "mutable", - "name": "b", - "nameLocation": "620:1:46", - "nodeType": "VariableDeclaration", - "scope": 6847, - "src": "612:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6819, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "612:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "600:22:46" - }, - "returnParameters": { - "id": 6826, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6823, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6847, - "src": "646:4:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6822, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "646:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6825, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6847, - "src": "652:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6824, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "652:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "645:15:46" - }, - "scope": 7858, - "src": "585:216:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6874, - "nodeType": "Block", - "src": "984:113:46", - "statements": [ - { - "id": 6873, - "nodeType": "UncheckedBlock", - "src": "994:97:46", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6859, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6852, - "src": "1022:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 6860, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6850, - "src": "1026:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1022:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6866, - "nodeType": "IfStatement", - "src": "1018:28:46", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 6862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1037:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 6863, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 6864, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1036:10:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 6858, - "id": 6865, - "nodeType": "Return", - "src": "1029:17:46" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 6867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1068:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6868, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6850, - "src": "1074:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 6869, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6852, - "src": "1078:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1074:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6871, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1067:13:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 6858, - "id": 6872, - "nodeType": "Return", - "src": "1060:20:46" - } - ] - } - ] - }, - "documentation": { - "id": 6848, - "nodeType": "StructuredDocumentation", - "src": "807:96:46", - "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag." - }, - "id": 6875, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "trySub", - "nameLocation": "917:6:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6850, - "mutability": "mutable", - "name": "a", - "nameLocation": "932:1:46", - "nodeType": "VariableDeclaration", - "scope": 6875, - "src": "924:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6849, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "924:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6852, - "mutability": "mutable", - "name": "b", - "nameLocation": "943:1:46", - "nodeType": "VariableDeclaration", - "scope": 6875, - "src": "935:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "935:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "923:22:46" - }, - "returnParameters": { - "id": 6858, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6855, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6875, - "src": "969:4:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6854, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "969:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6857, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6875, - "src": "975:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6856, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "975:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "968:15:46" - }, - "scope": 7858, - "src": "908:189:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6916, - "nodeType": "Block", - "src": "1283:417:46", - "statements": [ - { - "id": 6915, - "nodeType": "UncheckedBlock", - "src": "1293:401:46", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6887, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6878, - "src": "1551:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 6888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1556:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1551:6:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6894, - "nodeType": "IfStatement", - "src": "1547:28:46", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 6890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1567:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "hexValue": "30", - "id": 6891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1573:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 6892, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1566:9:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 6886, - "id": 6893, - "nodeType": "Return", - "src": "1559:16:46" - } - }, - { - "assignments": [ - 6896 - ], - "declarations": [ - { - "constant": false, - "id": 6896, - "mutability": "mutable", - "name": "c", - "nameLocation": "1597:1:46", - "nodeType": "VariableDeclaration", - "scope": 6915, - "src": "1589:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6895, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1589:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 6900, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6897, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6878, - "src": "1601:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 6898, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6880, - "src": "1605:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1601:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1589:17:46" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6901, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6896, - "src": "1624:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 6902, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6878, - "src": "1628:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1624:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 6904, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6880, - "src": "1633:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1624:10:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6910, - "nodeType": "IfStatement", - "src": "1620:33:46", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 6906, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1644:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 6907, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1651:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 6908, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1643:10:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 6886, - "id": 6909, - "nodeType": "Return", - "src": "1636:17:46" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 6911, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1675:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "id": 6912, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6896, - "src": "1681:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6913, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1674:9:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 6886, - "id": 6914, - "nodeType": "Return", - "src": "1667:16:46" - } - ] - } - ] - }, - "documentation": { - "id": 6876, - "nodeType": "StructuredDocumentation", - "src": "1103:99:46", - "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag." - }, - "id": 6917, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryMul", - "nameLocation": "1216:6:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6878, - "mutability": "mutable", - "name": "a", - "nameLocation": "1231:1:46", - "nodeType": "VariableDeclaration", - "scope": 6917, - "src": "1223:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6877, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1223:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6880, - "mutability": "mutable", - "name": "b", - "nameLocation": "1242:1:46", - "nodeType": "VariableDeclaration", - "scope": 6917, - "src": "1234:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6879, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1234:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1222:22:46" - }, - "returnParameters": { - "id": 6886, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6883, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6917, - "src": "1268:4:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6882, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1268:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6885, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6917, - "src": "1274:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6884, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1274:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1267:15:46" - }, - "scope": 7858, - "src": "1207:493:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6944, - "nodeType": "Block", - "src": "1887:114:46", - "statements": [ - { - "id": 6943, - "nodeType": "UncheckedBlock", - "src": "1897:98:46", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6929, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6922, - "src": "1925:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 6930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1930:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1925:6:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6936, - "nodeType": "IfStatement", - "src": "1921:29:46", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 6932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1941:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 6933, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1948:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 6934, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1940:10:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 6928, - "id": 6935, - "nodeType": "Return", - "src": "1933:17:46" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 6937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1972:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6938, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6920, - "src": "1978:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 6939, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6922, - "src": "1982:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1978:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6941, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1971:13:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 6928, - "id": 6942, - "nodeType": "Return", - "src": "1964:20:46" - } - ] - } - ] - }, - "documentation": { - "id": 6918, - "nodeType": "StructuredDocumentation", - "src": "1706:100:46", - "text": " @dev Returns the division of two unsigned integers, with a division by zero flag." - }, - "id": 6945, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryDiv", - "nameLocation": "1820:6:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6920, - "mutability": "mutable", - "name": "a", - "nameLocation": "1835:1:46", - "nodeType": "VariableDeclaration", - "scope": 6945, - "src": "1827:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6919, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1827:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6922, - "mutability": "mutable", - "name": "b", - "nameLocation": "1846:1:46", - "nodeType": "VariableDeclaration", - "scope": 6945, - "src": "1838:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1838:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1826:22:46" - }, - "returnParameters": { - "id": 6928, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6925, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6945, - "src": "1872:4:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6924, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1872:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6927, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6945, - "src": "1878:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6926, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1878:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1871:15:46" - }, - "scope": 7858, - "src": "1811:190:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6972, - "nodeType": "Block", - "src": "2198:114:46", - "statements": [ - { - "id": 6971, - "nodeType": "UncheckedBlock", - "src": "2208:98:46", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6957, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6950, - "src": "2236:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 6958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2241:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2236:6:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6964, - "nodeType": "IfStatement", - "src": "2232:29:46", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 6960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2252:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 6961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2259:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 6962, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2251:10:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 6956, - "id": 6963, - "nodeType": "Return", - "src": "2244:17:46" - } - }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 6965, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2283:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6966, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6948, - "src": "2289:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "id": 6967, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6950, - "src": "2293:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2289:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 6969, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2282:13:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 6956, - "id": 6970, - "nodeType": "Return", - "src": "2275:20:46" - } - ] - } - ] - }, - "documentation": { - "id": 6946, - "nodeType": "StructuredDocumentation", - "src": "2007:110:46", - "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag." - }, - "id": 6973, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryMod", - "nameLocation": "2131:6:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6948, - "mutability": "mutable", - "name": "a", - "nameLocation": "2146:1:46", - "nodeType": "VariableDeclaration", - "scope": 6973, - "src": "2138:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2138:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6950, - "mutability": "mutable", - "name": "b", - "nameLocation": "2157:1:46", - "nodeType": "VariableDeclaration", - "scope": 6973, - "src": "2149:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2149:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2137:22:46" - }, - "returnParameters": { - "id": 6956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6953, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6973, - "src": "2183:4:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6952, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2183:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6955, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6973, - "src": "2189:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6954, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2189:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2182:15:46" - }, - "scope": 7858, - "src": "2122:190:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 6990, - "nodeType": "Block", - "src": "2449:37:46", - "statements": [ - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 6983, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6976, - "src": "2466:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 6984, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6978, - "src": "2470:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2466:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 6987, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6978, - "src": "2478:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "2466:13:46", - "trueExpression": { - "id": 6986, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6976, - "src": "2474:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 6982, - "id": 6989, - "nodeType": "Return", - "src": "2459:20:46" - } - ] - }, - "documentation": { - "id": 6974, - "nodeType": "StructuredDocumentation", - "src": "2318:59:46", - "text": " @dev Returns the largest of two numbers." - }, - "id": 6991, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "max", - "nameLocation": "2391:3:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6976, - "mutability": "mutable", - "name": "a", - "nameLocation": "2403:1:46", - "nodeType": "VariableDeclaration", - "scope": 6991, - "src": "2395:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6975, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2395:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6978, - "mutability": "mutable", - "name": "b", - "nameLocation": "2414:1:46", - "nodeType": "VariableDeclaration", - "scope": 6991, - "src": "2406:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6977, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2406:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2394:22:46" - }, - "returnParameters": { - "id": 6982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6981, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 6991, - "src": "2440:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2440:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2439:9:46" - }, - "scope": 7858, - "src": "2382:104:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7008, - "nodeType": "Block", - "src": "2624:37:46", - "statements": [ - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7001, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6994, - "src": "2641:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 7002, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6996, - "src": "2645:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2641:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 7005, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6996, - "src": "2653:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "2641:13:46", - "trueExpression": { - "id": 7004, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6994, - "src": "2649:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7000, - "id": 7007, - "nodeType": "Return", - "src": "2634:20:46" - } - ] - }, - "documentation": { - "id": 6992, - "nodeType": "StructuredDocumentation", - "src": "2492:60:46", - "text": " @dev Returns the smallest of two numbers." - }, - "id": 7009, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "min", - "nameLocation": "2566:3:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6997, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6994, - "mutability": "mutable", - "name": "a", - "nameLocation": "2578:1:46", - "nodeType": "VariableDeclaration", - "scope": 7009, - "src": "2570:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2570:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 6996, - "mutability": "mutable", - "name": "b", - "nameLocation": "2589:1:46", - "nodeType": "VariableDeclaration", - "scope": 7009, - "src": "2581:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6995, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2581:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2569:22:46" - }, - "returnParameters": { - "id": 7000, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6999, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7009, - "src": "2615:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6998, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2615:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2614:9:46" - }, - "scope": 7858, - "src": "2557:104:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7031, - "nodeType": "Block", - "src": "2845:82:46", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7019, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7012, - "src": "2900:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "id": 7020, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7014, - "src": "2904:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2900:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7022, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2899:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7023, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7012, - "src": "2910:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "id": 7024, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7014, - "src": "2914:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2910:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7026, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2909:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "hexValue": "32", - "id": 7027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2919:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "2909:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2899:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7018, - "id": 7030, - "nodeType": "Return", - "src": "2892:28:46" - } - ] - }, - "documentation": { - "id": 7010, - "nodeType": "StructuredDocumentation", - "src": "2667:102:46", - "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." - }, - "id": 7032, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "average", - "nameLocation": "2783:7:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7012, - "mutability": "mutable", - "name": "a", - "nameLocation": "2799:1:46", - "nodeType": "VariableDeclaration", - "scope": 7032, - "src": "2791:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7011, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2791:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7014, - "mutability": "mutable", - "name": "b", - "nameLocation": "2810:1:46", - "nodeType": "VariableDeclaration", - "scope": 7032, - "src": "2802:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7013, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2802:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2790:22:46" - }, - "returnParameters": { - "id": 7018, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7017, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7032, - "src": "2836:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7016, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2836:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2835:9:46" - }, - "scope": 7858, - "src": "2774:153:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7065, - "nodeType": "Block", - "src": "3219:260:46", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7042, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7037, - "src": "3233:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 7043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3238:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3233:6:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7050, - "nodeType": "IfStatement", - "src": "3229:127:46", - "trueBody": { - "id": 7049, - "nodeType": "Block", - "src": "3241:115:46", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7045, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7035, - "src": "3340:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 7046, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7037, - "src": "3344:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3340:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7041, - "id": 7048, - "nodeType": "Return", - "src": "3333:12:46" - } - ] - } - }, - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7051, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7035, - "src": "3444:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 7052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3449:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3444:6:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7055, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7035, - "src": "3458:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 7056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3462:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3458:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7058, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3457:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 7059, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7037, - "src": "3467:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3457:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 7061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3471:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3457:15:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "3444:28:46", - "trueExpression": { - "hexValue": "30", - "id": 7054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3453:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7041, - "id": 7064, - "nodeType": "Return", - "src": "3437:35:46" - } - ] - }, - "documentation": { - "id": 7033, - "nodeType": "StructuredDocumentation", - "src": "2933:210:46", - "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." - }, - "id": 7066, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ceilDiv", - "nameLocation": "3157:7:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7038, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7035, - "mutability": "mutable", - "name": "a", - "nameLocation": "3173:1:46", - "nodeType": "VariableDeclaration", - "scope": 7066, - "src": "3165:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7034, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3165:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7037, - "mutability": "mutable", - "name": "b", - "nameLocation": "3184:1:46", - "nodeType": "VariableDeclaration", - "scope": 7066, - "src": "3176:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7036, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3176:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3164:22:46" - }, - "returnParameters": { - "id": 7041, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7040, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7066, - "src": "3210:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7039, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3210:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3209:9:46" - }, - "scope": 7858, - "src": "3148:331:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7191, - "nodeType": "Block", - "src": "3901:4018:46", - "statements": [ - { - "id": 7190, - "nodeType": "UncheckedBlock", - "src": "3911:4002:46", - "statements": [ - { - "assignments": [ - 7079 - ], - "declarations": [ - { - "constant": false, - "id": 7079, - "mutability": "mutable", - "name": "prod0", - "nameLocation": "4240:5:46", - "nodeType": "VariableDeclaration", - "scope": 7190, - "src": "4232:13:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7078, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4232:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7083, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7080, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7069, - "src": "4248:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 7081, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7071, - "src": "4252:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4248:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4232:21:46" - }, - { - "assignments": [ - 7085 - ], - "declarations": [ - { - "constant": false, - "id": 7085, - "mutability": "mutable", - "name": "prod1", - "nameLocation": "4320:5:46", - "nodeType": "VariableDeclaration", - "scope": 7190, - "src": "4312:13:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7084, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4312:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7086, - "nodeType": "VariableDeclarationStatement", - "src": "4312:13:46" - }, - { - "AST": { - "nativeSrc": "4392:122:46", - "nodeType": "YulBlock", - "src": "4392:122:46", - "statements": [ - { - "nativeSrc": "4410:30:46", - "nodeType": "YulVariableDeclaration", - "src": "4410:30:46", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "4427:1:46", - "nodeType": "YulIdentifier", - "src": "4427:1:46" - }, - { - "name": "y", - "nativeSrc": "4430:1:46", - "nodeType": "YulIdentifier", - "src": "4430:1:46" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4437:1:46", - "nodeType": "YulLiteral", - "src": "4437:1:46", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "4433:3:46", - "nodeType": "YulIdentifier", - "src": "4433:3:46" - }, - "nativeSrc": "4433:6:46", - "nodeType": "YulFunctionCall", - "src": "4433:6:46" - } - ], - "functionName": { - "name": "mulmod", - "nativeSrc": "4420:6:46", - "nodeType": "YulIdentifier", - "src": "4420:6:46" - }, - "nativeSrc": "4420:20:46", - "nodeType": "YulFunctionCall", - "src": "4420:20:46" - }, - "variables": [ - { - "name": "mm", - "nativeSrc": "4414:2:46", - "nodeType": "YulTypedName", - "src": "4414:2:46", - "type": "" - } - ] - }, - { - "nativeSrc": "4457:43:46", - "nodeType": "YulAssignment", - "src": "4457:43:46", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "mm", - "nativeSrc": "4474:2:46", - "nodeType": "YulIdentifier", - "src": "4474:2:46" - }, - { - "name": "prod0", - "nativeSrc": "4478:5:46", - "nodeType": "YulIdentifier", - "src": "4478:5:46" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4470:3:46", - "nodeType": "YulIdentifier", - "src": "4470:3:46" - }, - "nativeSrc": "4470:14:46", - "nodeType": "YulFunctionCall", - "src": "4470:14:46" - }, - { - "arguments": [ - { - "name": "mm", - "nativeSrc": "4489:2:46", - "nodeType": "YulIdentifier", - "src": "4489:2:46" - }, - { - "name": "prod0", - "nativeSrc": "4493:5:46", - "nodeType": "YulIdentifier", - "src": "4493:5:46" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "4486:2:46", - "nodeType": "YulIdentifier", - "src": "4486:2:46" - }, - "nativeSrc": "4486:13:46", - "nodeType": "YulFunctionCall", - "src": "4486:13:46" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4466:3:46", - "nodeType": "YulIdentifier", - "src": "4466:3:46" - }, - "nativeSrc": "4466:34:46", - "nodeType": "YulFunctionCall", - "src": "4466:34:46" - }, - "variableNames": [ - { - "name": "prod1", - "nativeSrc": "4457:5:46", - "nodeType": "YulIdentifier", - "src": "4457:5:46" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 7079, - "isOffset": false, - "isSlot": false, - "src": "4478:5:46", - "valueSize": 1 - }, - { - "declaration": 7079, - "isOffset": false, - "isSlot": false, - "src": "4493:5:46", - "valueSize": 1 - }, - { - "declaration": 7085, - "isOffset": false, - "isSlot": false, - "src": "4457:5:46", - "valueSize": 1 - }, - { - "declaration": 7069, - "isOffset": false, - "isSlot": false, - "src": "4427:1:46", - "valueSize": 1 - }, - { - "declaration": 7071, - "isOffset": false, - "isSlot": false, - "src": "4430:1:46", - "valueSize": 1 - } - ], - "id": 7087, - "nodeType": "InlineAssembly", - "src": "4383:131:46" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7088, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7085, - "src": "4595:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 7089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4604:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4595:10:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7096, - "nodeType": "IfStatement", - "src": "4591:368:46", - "trueBody": { - "id": 7095, - "nodeType": "Block", - "src": "4607:352:46", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7091, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7079, - "src": "4925:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 7092, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "4933:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4925:19:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7077, - "id": 7094, - "nodeType": "Return", - "src": "4918:26:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7097, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "5065:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 7098, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7085, - "src": "5080:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5065:20:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7104, - "nodeType": "IfStatement", - "src": "5061:88:46", - "trueBody": { - "id": 7103, - "nodeType": "Block", - "src": "5087:62:46", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7100, - "name": "MathOverflowedMulDiv", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6810, - "src": "5112:20:46", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 7101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5112:22:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 7102, - "nodeType": "RevertStatement", - "src": "5105:29:46" - } - ] - } - }, - { - "assignments": [ - 7106 - ], - "declarations": [ - { - "constant": false, - "id": 7106, - "mutability": "mutable", - "name": "remainder", - "nameLocation": "5412:9:46", - "nodeType": "VariableDeclaration", - "scope": 7190, - "src": "5404:17:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7105, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5404:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7107, - "nodeType": "VariableDeclarationStatement", - "src": "5404:17:46" - }, - { - "AST": { - "nativeSrc": "5444:291:46", - "nodeType": "YulBlock", - "src": "5444:291:46", - "statements": [ - { - "nativeSrc": "5513:38:46", - "nodeType": "YulAssignment", - "src": "5513:38:46", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "5533:1:46", - "nodeType": "YulIdentifier", - "src": "5533:1:46" - }, - { - "name": "y", - "nativeSrc": "5536:1:46", - "nodeType": "YulIdentifier", - "src": "5536:1:46" - }, - { - "name": "denominator", - "nativeSrc": "5539:11:46", - "nodeType": "YulIdentifier", - "src": "5539:11:46" - } - ], - "functionName": { - "name": "mulmod", - "nativeSrc": "5526:6:46", - "nodeType": "YulIdentifier", - "src": "5526:6:46" - }, - "nativeSrc": "5526:25:46", - "nodeType": "YulFunctionCall", - "src": "5526:25:46" - }, - "variableNames": [ - { - "name": "remainder", - "nativeSrc": "5513:9:46", - "nodeType": "YulIdentifier", - "src": "5513:9:46" - } - ] - }, - { - "nativeSrc": "5633:41:46", - "nodeType": "YulAssignment", - "src": "5633:41:46", - "value": { - "arguments": [ - { - "name": "prod1", - "nativeSrc": "5646:5:46", - "nodeType": "YulIdentifier", - "src": "5646:5:46" - }, - { - "arguments": [ - { - "name": "remainder", - "nativeSrc": "5656:9:46", - "nodeType": "YulIdentifier", - "src": "5656:9:46" - }, - { - "name": "prod0", - "nativeSrc": "5667:5:46", - "nodeType": "YulIdentifier", - "src": "5667:5:46" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "5653:2:46", - "nodeType": "YulIdentifier", - "src": "5653:2:46" - }, - "nativeSrc": "5653:20:46", - "nodeType": "YulFunctionCall", - "src": "5653:20:46" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5642:3:46", - "nodeType": "YulIdentifier", - "src": "5642:3:46" - }, - "nativeSrc": "5642:32:46", - "nodeType": "YulFunctionCall", - "src": "5642:32:46" - }, - "variableNames": [ - { - "name": "prod1", - "nativeSrc": "5633:5:46", - "nodeType": "YulIdentifier", - "src": "5633:5:46" - } - ] - }, - { - "nativeSrc": "5691:30:46", - "nodeType": "YulAssignment", - "src": "5691:30:46", - "value": { - "arguments": [ - { - "name": "prod0", - "nativeSrc": "5704:5:46", - "nodeType": "YulIdentifier", - "src": "5704:5:46" - }, - { - "name": "remainder", - "nativeSrc": "5711:9:46", - "nodeType": "YulIdentifier", - "src": "5711:9:46" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5700:3:46", - "nodeType": "YulIdentifier", - "src": "5700:3:46" - }, - "nativeSrc": "5700:21:46", - "nodeType": "YulFunctionCall", - "src": "5700:21:46" - }, - "variableNames": [ - { - "name": "prod0", - "nativeSrc": "5691:5:46", - "nodeType": "YulIdentifier", - "src": "5691:5:46" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 7073, - "isOffset": false, - "isSlot": false, - "src": "5539:11:46", - "valueSize": 1 - }, - { - "declaration": 7079, - "isOffset": false, - "isSlot": false, - "src": "5667:5:46", - "valueSize": 1 - }, - { - "declaration": 7079, - "isOffset": false, - "isSlot": false, - "src": "5691:5:46", - "valueSize": 1 - }, - { - "declaration": 7079, - "isOffset": false, - "isSlot": false, - "src": "5704:5:46", - "valueSize": 1 - }, - { - "declaration": 7085, - "isOffset": false, - "isSlot": false, - "src": "5633:5:46", - "valueSize": 1 - }, - { - "declaration": 7085, - "isOffset": false, - "isSlot": false, - "src": "5646:5:46", - "valueSize": 1 - }, - { - "declaration": 7106, - "isOffset": false, - "isSlot": false, - "src": "5513:9:46", - "valueSize": 1 - }, - { - "declaration": 7106, - "isOffset": false, - "isSlot": false, - "src": "5656:9:46", - "valueSize": 1 - }, - { - "declaration": 7106, - "isOffset": false, - "isSlot": false, - "src": "5711:9:46", - "valueSize": 1 - }, - { - "declaration": 7069, - "isOffset": false, - "isSlot": false, - "src": "5533:1:46", - "valueSize": 1 - }, - { - "declaration": 7071, - "isOffset": false, - "isSlot": false, - "src": "5536:1:46", - "valueSize": 1 - } - ], - "id": 7108, - "nodeType": "InlineAssembly", - "src": "5435:300:46" - }, - { - "assignments": [ - 7110 - ], - "declarations": [ - { - "constant": false, - "id": 7110, - "mutability": "mutable", - "name": "twos", - "nameLocation": "5947:4:46", - "nodeType": "VariableDeclaration", - "scope": 7190, - "src": "5939:12:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7109, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5939:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7117, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7111, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "5954:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "30", - "id": 7112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5969:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 7113, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "5973:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5969:15:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7115, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5968:17:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5954:31:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5939:46:46" - }, - { - "AST": { - "nativeSrc": "6008:362:46", - "nodeType": "YulBlock", - "src": "6008:362:46", - "statements": [ - { - "nativeSrc": "6073:37:46", - "nodeType": "YulAssignment", - "src": "6073:37:46", - "value": { - "arguments": [ - { - "name": "denominator", - "nativeSrc": "6092:11:46", - "nodeType": "YulIdentifier", - "src": "6092:11:46" - }, - { - "name": "twos", - "nativeSrc": "6105:4:46", - "nodeType": "YulIdentifier", - "src": "6105:4:46" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "6088:3:46", - "nodeType": "YulIdentifier", - "src": "6088:3:46" - }, - "nativeSrc": "6088:22:46", - "nodeType": "YulFunctionCall", - "src": "6088:22:46" - }, - "variableNames": [ - { - "name": "denominator", - "nativeSrc": "6073:11:46", - "nodeType": "YulIdentifier", - "src": "6073:11:46" - } - ] - }, - { - "nativeSrc": "6177:25:46", - "nodeType": "YulAssignment", - "src": "6177:25:46", - "value": { - "arguments": [ - { - "name": "prod0", - "nativeSrc": "6190:5:46", - "nodeType": "YulIdentifier", - "src": "6190:5:46" - }, - { - "name": "twos", - "nativeSrc": "6197:4:46", - "nodeType": "YulIdentifier", - "src": "6197:4:46" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "6186:3:46", - "nodeType": "YulIdentifier", - "src": "6186:3:46" - }, - "nativeSrc": "6186:16:46", - "nodeType": "YulFunctionCall", - "src": "6186:16:46" - }, - "variableNames": [ - { - "name": "prod0", - "nativeSrc": "6177:5:46", - "nodeType": "YulIdentifier", - "src": "6177:5:46" - } - ] - }, - { - "nativeSrc": "6317:39:46", - "nodeType": "YulAssignment", - "src": "6317:39:46", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6337:1:46", - "nodeType": "YulLiteral", - "src": "6337:1:46", - "type": "", - "value": "0" - }, - { - "name": "twos", - "nativeSrc": "6340:4:46", - "nodeType": "YulIdentifier", - "src": "6340:4:46" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6333:3:46", - "nodeType": "YulIdentifier", - "src": "6333:3:46" - }, - "nativeSrc": "6333:12:46", - "nodeType": "YulFunctionCall", - "src": "6333:12:46" - }, - { - "name": "twos", - "nativeSrc": "6347:4:46", - "nodeType": "YulIdentifier", - "src": "6347:4:46" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "6329:3:46", - "nodeType": "YulIdentifier", - "src": "6329:3:46" - }, - "nativeSrc": "6329:23:46", - "nodeType": "YulFunctionCall", - "src": "6329:23:46" - }, - { - "kind": "number", - "nativeSrc": "6354:1:46", - "nodeType": "YulLiteral", - "src": "6354:1:46", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6325:3:46", - "nodeType": "YulIdentifier", - "src": "6325:3:46" - }, - "nativeSrc": "6325:31:46", - "nodeType": "YulFunctionCall", - "src": "6325:31:46" - }, - "variableNames": [ - { - "name": "twos", - "nativeSrc": "6317:4:46", - "nodeType": "YulIdentifier", - "src": "6317:4:46" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 7073, - "isOffset": false, - "isSlot": false, - "src": "6073:11:46", - "valueSize": 1 - }, - { - "declaration": 7073, - "isOffset": false, - "isSlot": false, - "src": "6092:11:46", - "valueSize": 1 - }, - { - "declaration": 7079, - "isOffset": false, - "isSlot": false, - "src": "6177:5:46", - "valueSize": 1 - }, - { - "declaration": 7079, - "isOffset": false, - "isSlot": false, - "src": "6190:5:46", - "valueSize": 1 - }, - { - "declaration": 7110, - "isOffset": false, - "isSlot": false, - "src": "6105:4:46", - "valueSize": 1 - }, - { - "declaration": 7110, - "isOffset": false, - "isSlot": false, - "src": "6197:4:46", - "valueSize": 1 - }, - { - "declaration": 7110, - "isOffset": false, - "isSlot": false, - "src": "6317:4:46", - "valueSize": 1 - }, - { - "declaration": 7110, - "isOffset": false, - "isSlot": false, - "src": "6340:4:46", - "valueSize": 1 - }, - { - "declaration": 7110, - "isOffset": false, - "isSlot": false, - "src": "6347:4:46", - "valueSize": 1 - } - ], - "id": 7118, - "nodeType": "InlineAssembly", - "src": "5999:371:46" - }, - { - "expression": { - "id": 7123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7119, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7079, - "src": "6436:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7120, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7085, - "src": "6445:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 7121, - "name": "twos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7110, - "src": "6453:4:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6445:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6436:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7124, - "nodeType": "ExpressionStatement", - "src": "6436:21:46" - }, - { - "assignments": [ - 7126 - ], - "declarations": [ - { - "constant": false, - "id": 7126, - "mutability": "mutable", - "name": "inverse", - "nameLocation": "6783:7:46", - "nodeType": "VariableDeclaration", - "scope": 7190, - "src": "6775:15:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7125, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6775:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7133, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "33", - "id": 7127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6794:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 7128, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "6798:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6794:15:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7130, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6793:17:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "hexValue": "32", - "id": 7131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6813:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "6793:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6775:39:46" - }, - { - "expression": { - "id": 7140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7134, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7031:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 7135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7042:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7136, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "7046:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 7137, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7060:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7046:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7042:25:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7031:36:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7141, - "nodeType": "ExpressionStatement", - "src": "7031:36:46" - }, - { - "expression": { - "id": 7148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7142, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7100:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 7143, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7111:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7144, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "7115:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 7145, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7129:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7115:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7111:25:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7100:36:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7149, - "nodeType": "ExpressionStatement", - "src": "7100:36:46" - }, - { - "expression": { - "id": 7156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7150, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7170:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 7151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7181:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7152, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "7185:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 7153, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7199:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7185:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7181:25:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7170:36:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7157, - "nodeType": "ExpressionStatement", - "src": "7170:36:46" - }, - { - "expression": { - "id": 7164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7158, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7240:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 7159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7251:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7160, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "7255:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 7161, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7269:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7255:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7251:25:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7240:36:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7165, - "nodeType": "ExpressionStatement", - "src": "7240:36:46" - }, - { - "expression": { - "id": 7172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7166, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7310:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 7167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7321:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7168, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "7325:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 7169, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7339:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7325:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7321:25:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7310:36:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7173, - "nodeType": "ExpressionStatement", - "src": "7310:36:46" - }, - { - "expression": { - "id": 7180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7174, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7381:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 7175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7392:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7176, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "7396:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 7177, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7410:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7396:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7392:25:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7381:36:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7181, - "nodeType": "ExpressionStatement", - "src": "7381:36:46" - }, - { - "expression": { - "id": 7186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7182, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7076, - "src": "7851:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7183, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7079, - "src": "7860:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 7184, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7126, - "src": "7868:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7860:15:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7851:24:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7187, - "nodeType": "ExpressionStatement", - "src": "7851:24:46" - }, - { - "expression": { - "id": 7188, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7076, - "src": "7896:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7077, - "id": 7189, - "nodeType": "Return", - "src": "7889:13:46" - } - ] - } - ] - }, - "documentation": { - "id": 7067, - "nodeType": "StructuredDocumentation", - "src": "3485:313:46", - "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." - }, - "id": 7192, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mulDiv", - "nameLocation": "3812:6:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7074, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7069, - "mutability": "mutable", - "name": "x", - "nameLocation": "3827:1:46", - "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "3819:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7068, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3819:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7071, - "mutability": "mutable", - "name": "y", - "nameLocation": "3838:1:46", - "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "3830:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7070, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3830:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7073, - "mutability": "mutable", - "name": "denominator", - "nameLocation": "3849:11:46", - "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "3841:19:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7072, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3841:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3818:43:46" - }, - "returnParameters": { - "id": 7077, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7076, - "mutability": "mutable", - "name": "result", - "nameLocation": "3893:6:46", - "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "3885:14:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7075, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3885:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3884:16:46" - }, - "scope": 7858, - "src": "3803:4116:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7234, - "nodeType": "Block", - "src": "8161:192:46", - "statements": [ - { - "assignments": [ - 7208 - ], - "declarations": [ - { - "constant": false, - "id": 7208, - "mutability": "mutable", - "name": "result", - "nameLocation": "8179:6:46", - "nodeType": "VariableDeclaration", - "scope": 7234, - "src": "8171:14:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8171:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7214, - "initialValue": { - "arguments": [ - { - "id": 7210, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7195, - "src": "8195:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 7211, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7197, - "src": "8198:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 7212, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7199, - "src": "8201:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7209, - "name": "mulDiv", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7192, - 7235 - ], - "referencedDeclaration": 7192, - "src": "8188:6:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 7213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8188:25:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8171:42:46" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7216, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7202, - "src": "8244:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - ], - "id": 7215, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "8227:16:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$6815_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 7217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8227:26:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7219, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7195, - "src": "8264:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 7220, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7197, - "src": "8267:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 7221, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7199, - "src": "8270:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7218, - "name": "mulmod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -16, - "src": "8257:6:46", - "typeDescriptions": { - "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 7222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8257:25:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7223, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8285:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8257:29:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8227:59:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7231, - "nodeType": "IfStatement", - "src": "8223:101:46", - "trueBody": { - "id": 7230, - "nodeType": "Block", - "src": "8288:36:46", - "statements": [ - { - "expression": { - "id": 7228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7226, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7208, - "src": "8302:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 7227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8312:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8302:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7229, - "nodeType": "ExpressionStatement", - "src": "8302:11:46" - } - ] - } - }, - { - "expression": { - "id": 7232, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7208, - "src": "8340:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7206, - "id": 7233, - "nodeType": "Return", - "src": "8333:13:46" - } - ] - }, - "documentation": { - "id": 7193, - "nodeType": "StructuredDocumentation", - "src": "7925:121:46", - "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." - }, - "id": 7235, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mulDiv", - "nameLocation": "8060:6:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7203, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7195, - "mutability": "mutable", - "name": "x", - "nameLocation": "8075:1:46", - "nodeType": "VariableDeclaration", - "scope": 7235, - "src": "8067:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7194, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8067:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7197, - "mutability": "mutable", - "name": "y", - "nameLocation": "8086:1:46", - "nodeType": "VariableDeclaration", - "scope": 7235, - "src": "8078:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7196, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8078:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7199, - "mutability": "mutable", - "name": "denominator", - "nameLocation": "8097:11:46", - "nodeType": "VariableDeclaration", - "scope": 7235, - "src": "8089:19:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7198, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8089:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7202, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "8119:8:46", - "nodeType": "VariableDeclaration", - "scope": 7235, - "src": "8110:17:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 7201, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7200, - "name": "Rounding", - "nameLocations": [ - "8110:8:46" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6815, - "src": "8110:8:46" - }, - "referencedDeclaration": 6815, - "src": "8110:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "8066:62:46" - }, - "returnParameters": { - "id": 7206, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7205, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7235, - "src": "8152:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7204, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8152:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8151:9:46" - }, - "scope": 7858, - "src": "8051:302:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7346, - "nodeType": "Block", - "src": "8644:1585:46", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7243, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "8658:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 7244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8663:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8658:6:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7249, - "nodeType": "IfStatement", - "src": "8654:45:46", - "trueBody": { - "id": 7248, - "nodeType": "Block", - "src": "8666:33:46", - "statements": [ - { - "expression": { - "hexValue": "30", - "id": 7246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8687:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 7242, - "id": 7247, - "nodeType": "Return", - "src": "8680:8:46" - } - ] - } - }, - { - "assignments": [ - 7251 - ], - "declarations": [ - { - "constant": false, - "id": 7251, - "mutability": "mutable", - "name": "result", - "nameLocation": "9386:6:46", - "nodeType": "VariableDeclaration", - "scope": 7346, - "src": "9378:14:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7250, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9378:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7260, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 7252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9395:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7254, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "9406:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7253, - "name": "log2", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7514, - 7549 - ], - "referencedDeclaration": 7514, - "src": "9401:4:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 7255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9401:7:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 7256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9412:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9401:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7258, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9400:14:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9395:19:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9378:36:46" - }, - { - "id": 7345, - "nodeType": "UncheckedBlock", - "src": "9815:408:46", - "statements": [ - { - "expression": { - "id": 7270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7261, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "9839:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7262, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "9849:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7263, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "9858:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 7264, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "9862:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9858:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9849:19:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7267, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9848:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 7268, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9873:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9848:26:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9839:35:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7271, - "nodeType": "ExpressionStatement", - "src": "9839:35:46" - }, - { - "expression": { - "id": 7281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7272, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "9888:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7273, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "9898:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7274, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "9907:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 7275, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "9911:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9907:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9898:19:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7278, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9897:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 7279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9922:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9897:26:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9888:35:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7282, - "nodeType": "ExpressionStatement", - "src": "9888:35:46" - }, - { - "expression": { - "id": 7292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7283, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "9937:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7284, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "9947:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7285, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "9956:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 7286, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "9960:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9956:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9947:19:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7289, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9946:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 7290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9971:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9946:26:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9937:35:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7293, - "nodeType": "ExpressionStatement", - "src": "9937:35:46" - }, - { - "expression": { - "id": 7303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7294, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "9986:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7295, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "9996:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7296, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "10005:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 7297, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10009:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10005:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9996:19:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7300, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "9995:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 7301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10020:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9995:26:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9986:35:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7304, - "nodeType": "ExpressionStatement", - "src": "9986:35:46" - }, - { - "expression": { - "id": 7314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7305, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10035:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7306, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10045:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7307, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "10054:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 7308, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10058:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10054:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10045:19:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7311, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10044:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 7312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10069:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10044:26:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10035:35:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7315, - "nodeType": "ExpressionStatement", - "src": "10035:35:46" - }, - { - "expression": { - "id": 7325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7316, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10084:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7317, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10094:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7318, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "10103:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 7319, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10107:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10103:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10094:19:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7322, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10093:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 7323, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10118:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10093:26:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10084:35:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7326, - "nodeType": "ExpressionStatement", - "src": "10084:35:46" - }, - { - "expression": { - "id": 7336, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7327, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10133:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7328, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10143:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7329, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "10152:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 7330, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10156:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10152:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10143:19:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7333, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10142:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 7334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10167:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10142:26:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10133:35:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7337, - "nodeType": "ExpressionStatement", - "src": "10133:35:46" - }, - { - "expression": { - "arguments": [ - { - "id": 7339, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10193:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7340, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "10201:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 7341, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7251, - "src": "10205:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10201:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7338, - "name": "min", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7009, - "src": "10189:3:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 7343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10189:23:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7242, - "id": 7344, - "nodeType": "Return", - "src": "10182:30:46" - } - ] - } - ] - }, - "documentation": { - "id": 7236, - "nodeType": "StructuredDocumentation", - "src": "8359:223:46", - "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." - }, - "id": 7347, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sqrt", - "nameLocation": "8596:4:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7238, - "mutability": "mutable", - "name": "a", - "nameLocation": "8609:1:46", - "nodeType": "VariableDeclaration", - "scope": 7347, - "src": "8601:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7237, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8601:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8600:11:46" - }, - "returnParameters": { - "id": 7242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7241, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7347, - "src": "8635:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7240, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8635:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8634:9:46" - }, - "scope": 7858, - "src": "8587:1642:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7381, - "nodeType": "Block", - "src": "10405:164:46", - "statements": [ - { - "id": 7380, - "nodeType": "UncheckedBlock", - "src": "10415:148:46", - "statements": [ - { - "assignments": [ - 7359 - ], - "declarations": [ - { - "constant": false, - "id": 7359, - "mutability": "mutable", - "name": "result", - "nameLocation": "10447:6:46", - "nodeType": "VariableDeclaration", - "scope": 7380, - "src": "10439:14:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7358, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10439:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7363, - "initialValue": { - "arguments": [ - { - "id": 7361, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7350, - "src": "10461:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7360, - "name": "sqrt", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7347, - 7382 - ], - "referencedDeclaration": 7347, - "src": "10456:4:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 7362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10456:7:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10439:24:46" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7364, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7359, - "src": "10484:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "components": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7366, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7353, - "src": "10511:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - ], - "id": 7365, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "10494:16:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$6815_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 7367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10494:26:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7368, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7359, - "src": "10524:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 7369, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7359, - "src": "10533:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10524:15:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 7371, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7350, - "src": "10542:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10524:19:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10494:49:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "hexValue": "30", - "id": 7375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10550:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 7376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "10494:57:46", - "trueExpression": { - "hexValue": "31", - "id": 7374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10546:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 7377, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10493:59:46", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "10484:68:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7357, - "id": 7379, - "nodeType": "Return", - "src": "10477:75:46" - } - ] - } - ] - }, - "documentation": { - "id": 7348, - "nodeType": "StructuredDocumentation", - "src": "10235:89:46", - "text": " @notice Calculates sqrt(a), following the selected rounding direction." - }, - "id": 7382, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sqrt", - "nameLocation": "10338:4:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7350, - "mutability": "mutable", - "name": "a", - "nameLocation": "10351:1:46", - "nodeType": "VariableDeclaration", - "scope": 7382, - "src": "10343:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7349, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10343:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7353, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "10363:8:46", - "nodeType": "VariableDeclaration", - "scope": 7382, - "src": "10354:17:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 7352, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7351, - "name": "Rounding", - "nameLocations": [ - "10354:8:46" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6815, - "src": "10354:8:46" - }, - "referencedDeclaration": 6815, - "src": "10354:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "10342:30:46" - }, - "returnParameters": { - "id": 7357, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7356, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7382, - "src": "10396:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7355, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10396:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10395:9:46" - }, - "scope": 7858, - "src": "10329:240:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7513, - "nodeType": "Block", - "src": "10760:922:46", - "statements": [ - { - "assignments": [ - 7391 - ], - "declarations": [ - { - "constant": false, - "id": 7391, - "mutability": "mutable", - "name": "result", - "nameLocation": "10778:6:46", - "nodeType": "VariableDeclaration", - "scope": 7513, - "src": "10770:14:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7390, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10770:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7393, - "initialValue": { - "hexValue": "30", - "id": 7392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10787:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10770:18:46" - }, - { - "id": 7510, - "nodeType": "UncheckedBlock", - "src": "10798:855:46", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7394, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "10826:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "313238", - "id": 7395, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10835:3:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "10826:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10841:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10826:16:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7408, - "nodeType": "IfStatement", - "src": "10822:99:46", - "trueBody": { - "id": 7407, - "nodeType": "Block", - "src": "10844:77:46", - "statements": [ - { - "expression": { - "id": 7401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7399, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "10862:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "313238", - "id": 7400, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10872:3:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "10862:13:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7402, - "nodeType": "ExpressionStatement", - "src": "10862:13:46" - }, - { - "expression": { - "id": 7405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7403, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7391, - "src": "10893:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "313238", - "id": 7404, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10903:3:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "10893:13:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7406, - "nodeType": "ExpressionStatement", - "src": "10893:13:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7409, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "10938:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "3634", - "id": 7410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10947:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "10938:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10952:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10938:15:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7423, - "nodeType": "IfStatement", - "src": "10934:96:46", - "trueBody": { - "id": 7422, - "nodeType": "Block", - "src": "10955:75:46", - "statements": [ - { - "expression": { - "id": 7416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7414, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "10973:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3634", - "id": 7415, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10983:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "10973:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7417, - "nodeType": "ExpressionStatement", - "src": "10973:12:46" - }, - { - "expression": { - "id": 7420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7418, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7391, - "src": "11003:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3634", - "id": 7419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11013:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "11003:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7421, - "nodeType": "ExpressionStatement", - "src": "11003:12:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7424, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "11047:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "3332", - "id": 7425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11056:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "11047:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7427, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11061:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11047:15:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7438, - "nodeType": "IfStatement", - "src": "11043:96:46", - "trueBody": { - "id": 7437, - "nodeType": "Block", - "src": "11064:75:46", - "statements": [ - { - "expression": { - "id": 7431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7429, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "11082:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3332", - "id": 7430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11092:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "11082:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7432, - "nodeType": "ExpressionStatement", - "src": "11082:12:46" - }, - { - "expression": { - "id": 7435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7433, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7391, - "src": "11112:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3332", - "id": 7434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11122:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "11112:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7436, - "nodeType": "ExpressionStatement", - "src": "11112:12:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7439, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "11156:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "3136", - "id": 7440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11165:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "11156:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11170:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11156:15:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7453, - "nodeType": "IfStatement", - "src": "11152:96:46", - "trueBody": { - "id": 7452, - "nodeType": "Block", - "src": "11173:75:46", - "statements": [ - { - "expression": { - "id": 7446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7444, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "11191:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3136", - "id": 7445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11201:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "11191:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7447, - "nodeType": "ExpressionStatement", - "src": "11191:12:46" - }, - { - "expression": { - "id": 7450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7448, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7391, - "src": "11221:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3136", - "id": 7449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11231:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "11221:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7451, - "nodeType": "ExpressionStatement", - "src": "11221:12:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7454, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "11265:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "38", - "id": 7455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11274:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "11265:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11278:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11265:14:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7468, - "nodeType": "IfStatement", - "src": "11261:93:46", - "trueBody": { - "id": 7467, - "nodeType": "Block", - "src": "11281:73:46", - "statements": [ - { - "expression": { - "id": 7461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7459, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "11299:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "38", - "id": 7460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11309:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "11299:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7462, - "nodeType": "ExpressionStatement", - "src": "11299:11:46" - }, - { - "expression": { - "id": 7465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7463, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7391, - "src": "11328:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "38", - "id": 7464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11338:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "11328:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7466, - "nodeType": "ExpressionStatement", - "src": "11328:11:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7469, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "11371:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "34", - "id": 7470, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11380:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "11371:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11384:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11371:14:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7483, - "nodeType": "IfStatement", - "src": "11367:93:46", - "trueBody": { - "id": 7482, - "nodeType": "Block", - "src": "11387:73:46", - "statements": [ - { - "expression": { - "id": 7476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7474, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "11405:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "34", - "id": 7475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11415:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "11405:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7477, - "nodeType": "ExpressionStatement", - "src": "11405:11:46" - }, - { - "expression": { - "id": 7480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7478, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7391, - "src": "11434:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "34", - "id": 7479, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11444:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "11434:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7481, - "nodeType": "ExpressionStatement", - "src": "11434:11:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7484, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "11477:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "32", - "id": 7485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11486:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "11477:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11490:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11477:14:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7498, - "nodeType": "IfStatement", - "src": "11473:93:46", - "trueBody": { - "id": 7497, - "nodeType": "Block", - "src": "11493:73:46", - "statements": [ - { - "expression": { - "id": 7491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7489, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "11511:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "32", - "id": 7490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11521:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "11511:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7492, - "nodeType": "ExpressionStatement", - "src": "11511:11:46" - }, - { - "expression": { - "id": 7495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7493, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7391, - "src": "11540:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "32", - "id": 7494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11550:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "11540:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7496, - "nodeType": "ExpressionStatement", - "src": "11540:11:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7499, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7385, - "src": "11583:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 7500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11592:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11583:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7502, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11596:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11583:14:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7509, - "nodeType": "IfStatement", - "src": "11579:64:46", - "trueBody": { - "id": 7508, - "nodeType": "Block", - "src": "11599:44:46", - "statements": [ - { - "expression": { - "id": 7506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7504, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7391, - "src": "11617:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 7505, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11627:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11617:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7507, - "nodeType": "ExpressionStatement", - "src": "11617:11:46" - } - ] - } - } - ] - }, - { - "expression": { - "id": 7511, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7391, - "src": "11669:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7389, - "id": 7512, - "nodeType": "Return", - "src": "11662:13:46" - } - ] - }, - "documentation": { - "id": 7383, - "nodeType": "StructuredDocumentation", - "src": "10575:119:46", - "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." - }, - "id": 7514, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log2", - "nameLocation": "10708:4:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7386, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7385, - "mutability": "mutable", - "name": "value", - "nameLocation": "10721:5:46", - "nodeType": "VariableDeclaration", - "scope": 7514, - "src": "10713:13:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7384, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10713:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10712:15:46" - }, - "returnParameters": { - "id": 7389, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7388, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7514, - "src": "10751:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7387, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10751:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10750:9:46" - }, - "scope": 7858, - "src": "10699:983:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7548, - "nodeType": "Block", - "src": "11915:168:46", - "statements": [ - { - "id": 7547, - "nodeType": "UncheckedBlock", - "src": "11925:152:46", - "statements": [ - { - "assignments": [ - 7526 - ], - "declarations": [ - { - "constant": false, - "id": 7526, - "mutability": "mutable", - "name": "result", - "nameLocation": "11957:6:46", - "nodeType": "VariableDeclaration", - "scope": 7547, - "src": "11949:14:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7525, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11949:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7530, - "initialValue": { - "arguments": [ - { - "id": 7528, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7517, - "src": "11971:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7527, - "name": "log2", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7514, - 7549 - ], - "referencedDeclaration": 7514, - "src": "11966:4:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 7529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11966:11:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11949:28:46" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7531, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7526, - "src": "11998:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "components": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7533, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7520, - "src": "12025:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - ], - "id": 7532, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "12008:16:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$6815_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 7534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12008:26:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 7535, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12038:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "id": 7536, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7526, - "src": "12043:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12038:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 7538, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7517, - "src": "12052:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12038:19:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12008:49:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "hexValue": "30", - "id": 7542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12064:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 7543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "12008:57:46", - "trueExpression": { - "hexValue": "31", - "id": 7541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12060:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 7544, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12007:59:46", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "11998:68:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7524, - "id": 7546, - "nodeType": "Return", - "src": "11991:75:46" - } - ] - } - ] - }, - "documentation": { - "id": 7515, - "nodeType": "StructuredDocumentation", - "src": "11688:142:46", - "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." - }, - "id": 7549, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log2", - "nameLocation": "11844:4:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7521, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7517, - "mutability": "mutable", - "name": "value", - "nameLocation": "11857:5:46", - "nodeType": "VariableDeclaration", - "scope": 7549, - "src": "11849:13:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7516, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11849:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7520, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "11873:8:46", - "nodeType": "VariableDeclaration", - "scope": 7549, - "src": "11864:17:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 7519, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7518, - "name": "Rounding", - "nameLocations": [ - "11864:8:46" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6815, - "src": "11864:8:46" - }, - "referencedDeclaration": 6815, - "src": "11864:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "11848:34:46" - }, - "returnParameters": { - "id": 7524, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7523, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7549, - "src": "11906:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7522, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11906:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11905:9:46" - }, - "scope": 7858, - "src": "11835:248:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7677, - "nodeType": "Block", - "src": "12276:854:46", - "statements": [ - { - "assignments": [ - 7558 - ], - "declarations": [ - { - "constant": false, - "id": 7558, - "mutability": "mutable", - "name": "result", - "nameLocation": "12294:6:46", - "nodeType": "VariableDeclaration", - "scope": 7677, - "src": "12286:14:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7557, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12286:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7560, - "initialValue": { - "hexValue": "30", - "id": 7559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12303:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12286:18:46" - }, - { - "id": 7674, - "nodeType": "UncheckedBlock", - "src": "12314:787:46", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7561, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12342:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(57 digits omitted)...0000" - }, - "id": 7564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7562, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12351:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3634", - "id": 7563, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12357:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "12351:8:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(57 digits omitted)...0000" - } - }, - "src": "12342:17:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7577, - "nodeType": "IfStatement", - "src": "12338:103:46", - "trueBody": { - "id": 7576, - "nodeType": "Block", - "src": "12361:80:46", - "statements": [ - { - "expression": { - "id": 7570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7566, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12379:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(57 digits omitted)...0000" - }, - "id": 7569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7567, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12388:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3634", - "id": 7568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12394:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "12388:8:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(57 digits omitted)...0000" - } - }, - "src": "12379:17:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7571, - "nodeType": "ExpressionStatement", - "src": "12379:17:46" - }, - { - "expression": { - "id": 7574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7572, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7558, - "src": "12414:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3634", - "id": 7573, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12424:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "12414:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7575, - "nodeType": "ExpressionStatement", - "src": "12414:12:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7578, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12458:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(25 digits omitted)...0000" - }, - "id": 7581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7579, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12467:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3332", - "id": 7580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12473:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "12467:8:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(25 digits omitted)...0000" - } - }, - "src": "12458:17:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7594, - "nodeType": "IfStatement", - "src": "12454:103:46", - "trueBody": { - "id": 7593, - "nodeType": "Block", - "src": "12477:80:46", - "statements": [ - { - "expression": { - "id": 7587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7583, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12495:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(25 digits omitted)...0000" - }, - "id": 7586, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12504:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3332", - "id": 7585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12510:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "12504:8:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", - "typeString": "int_const 1000...(25 digits omitted)...0000" - } - }, - "src": "12495:17:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7588, - "nodeType": "ExpressionStatement", - "src": "12495:17:46" - }, - { - "expression": { - "id": 7591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7589, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7558, - "src": "12530:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3332", - "id": 7590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12540:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "12530:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7592, - "nodeType": "ExpressionStatement", - "src": "12530:12:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7595, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12574:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - }, - "id": 7598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7596, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12583:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3136", - "id": 7597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12589:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "12583:8:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - } - }, - "src": "12574:17:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7611, - "nodeType": "IfStatement", - "src": "12570:103:46", - "trueBody": { - "id": 7610, - "nodeType": "Block", - "src": "12593:80:46", - "statements": [ - { - "expression": { - "id": 7604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7600, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12611:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - }, - "id": 7603, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12620:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "3136", - "id": 7602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12626:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "12620:8:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - } - }, - "src": "12611:17:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7605, - "nodeType": "ExpressionStatement", - "src": "12611:17:46" - }, - { - "expression": { - "id": 7608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7606, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7558, - "src": "12646:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3136", - "id": 7607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12656:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "12646:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7609, - "nodeType": "ExpressionStatement", - "src": "12646:12:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7612, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12690:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "id": 7615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12699:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "38", - "id": 7614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12705:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "12699:7:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - }, - "src": "12690:16:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7628, - "nodeType": "IfStatement", - "src": "12686:100:46", - "trueBody": { - "id": 7627, - "nodeType": "Block", - "src": "12708:78:46", - "statements": [ - { - "expression": { - "id": 7621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7617, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12726:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "id": 7620, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7618, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12735:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "38", - "id": 7619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12741:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "12735:7:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - }, - "src": "12726:16:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7622, - "nodeType": "ExpressionStatement", - "src": "12726:16:46" - }, - { - "expression": { - "id": 7625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7623, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7558, - "src": "12760:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "38", - "id": 7624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12770:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "12760:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7626, - "nodeType": "ExpressionStatement", - "src": "12760:11:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7629, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12803:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "id": 7632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12812:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "34", - "id": 7631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12818:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "12812:7:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - }, - "src": "12803:16:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7645, - "nodeType": "IfStatement", - "src": "12799:100:46", - "trueBody": { - "id": 7644, - "nodeType": "Block", - "src": "12821:78:46", - "statements": [ - { - "expression": { - "id": 7638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7634, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12839:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "id": 7637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12848:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "34", - "id": 7636, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12854:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "12848:7:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - } - }, - "src": "12839:16:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7639, - "nodeType": "ExpressionStatement", - "src": "12839:16:46" - }, - { - "expression": { - "id": 7642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7640, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7558, - "src": "12873:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "34", - "id": 7641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12883:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "12873:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7643, - "nodeType": "ExpressionStatement", - "src": "12873:11:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7646, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12916:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "id": 7649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12925:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "32", - "id": 7648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12931:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12925:7:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - } - }, - "src": "12916:16:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7662, - "nodeType": "IfStatement", - "src": "12912:100:46", - "trueBody": { - "id": 7661, - "nodeType": "Block", - "src": "12934:78:46", - "statements": [ - { - "expression": { - "id": 7655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7651, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "12952:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "/=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - }, - "id": 7654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7652, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12961:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "32", - "id": 7653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12967:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12961:7:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" - } - }, - "src": "12952:16:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7656, - "nodeType": "ExpressionStatement", - "src": "12952:16:46" - }, - { - "expression": { - "id": 7659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7657, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7558, - "src": "12986:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "32", - "id": 7658, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12996:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12986:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7660, - "nodeType": "ExpressionStatement", - "src": "12986:11:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7663, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7552, - "src": "13029:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "id": 7666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13038:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "hexValue": "31", - "id": 7665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13044:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "13038:7:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - } - }, - "src": "13029:16:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7673, - "nodeType": "IfStatement", - "src": "13025:66:46", - "trueBody": { - "id": 7672, - "nodeType": "Block", - "src": "13047:44:46", - "statements": [ - { - "expression": { - "id": 7670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7668, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7558, - "src": "13065:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 7669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13075:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "13065:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7671, - "nodeType": "ExpressionStatement", - "src": "13065:11:46" - } - ] - } - } - ] - }, - { - "expression": { - "id": 7675, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7558, - "src": "13117:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7556, - "id": 7676, - "nodeType": "Return", - "src": "13110:13:46" - } - ] - }, - "documentation": { - "id": 7550, - "nodeType": "StructuredDocumentation", - "src": "12089:120:46", - "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." - }, - "id": 7678, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log10", - "nameLocation": "12223:5:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7553, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7552, - "mutability": "mutable", - "name": "value", - "nameLocation": "12237:5:46", - "nodeType": "VariableDeclaration", - "scope": 7678, - "src": "12229:13:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7551, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12229:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12228:15:46" - }, - "returnParameters": { - "id": 7556, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7555, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7678, - "src": "12267:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7554, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12267:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12266:9:46" - }, - "scope": 7858, - "src": "12214:916:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7712, - "nodeType": "Block", - "src": "13365:170:46", - "statements": [ - { - "id": 7711, - "nodeType": "UncheckedBlock", - "src": "13375:154:46", - "statements": [ - { - "assignments": [ - 7690 - ], - "declarations": [ - { - "constant": false, - "id": 7690, - "mutability": "mutable", - "name": "result", - "nameLocation": "13407:6:46", - "nodeType": "VariableDeclaration", - "scope": 7711, - "src": "13399:14:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7689, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13399:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7694, - "initialValue": { - "arguments": [ - { - "id": 7692, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7681, - "src": "13422:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7691, - "name": "log10", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7678, - 7713 - ], - "referencedDeclaration": 7678, - "src": "13416:5:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 7693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13416:12:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13399:29:46" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7695, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7690, - "src": "13449:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "components": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7697, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7684, - "src": "13476:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - ], - "id": 7696, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "13459:16:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$6815_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 7698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13459:26:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "3130", - "id": 7699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13489:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "id": 7700, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7690, - "src": "13495:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13489:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 7702, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7681, - "src": "13504:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13489:20:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "13459:50:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "hexValue": "30", - "id": 7706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13516:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 7707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "13459:58:46", - "trueExpression": { - "hexValue": "31", - "id": 7705, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13512:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 7708, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13458:60:46", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "13449:69:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7688, - "id": 7710, - "nodeType": "Return", - "src": "13442:76:46" - } - ] - } - ] - }, - "documentation": { - "id": 7679, - "nodeType": "StructuredDocumentation", - "src": "13136:143:46", - "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." - }, - "id": 7713, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log10", - "nameLocation": "13293:5:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7681, - "mutability": "mutable", - "name": "value", - "nameLocation": "13307:5:46", - "nodeType": "VariableDeclaration", - "scope": 7713, - "src": "13299:13:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7680, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13299:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7684, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "13323:8:46", - "nodeType": "VariableDeclaration", - "scope": 7713, - "src": "13314:17:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 7683, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7682, - "name": "Rounding", - "nameLocations": [ - "13314:8:46" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6815, - "src": "13314:8:46" - }, - "referencedDeclaration": 6815, - "src": "13314:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "13298:34:46" - }, - "returnParameters": { - "id": 7688, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7687, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7713, - "src": "13356:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7686, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13356:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13355:9:46" - }, - "scope": 7858, - "src": "13284:251:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7799, - "nodeType": "Block", - "src": "13855:600:46", - "statements": [ - { - "assignments": [ - 7722 - ], - "declarations": [ - { - "constant": false, - "id": 7722, - "mutability": "mutable", - "name": "result", - "nameLocation": "13873:6:46", - "nodeType": "VariableDeclaration", - "scope": 7799, - "src": "13865:14:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7721, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13865:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7724, - "initialValue": { - "hexValue": "30", - "id": 7723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13882:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13865:18:46" - }, - { - "id": 7796, - "nodeType": "UncheckedBlock", - "src": "13893:533:46", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7725, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7716, - "src": "13921:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "313238", - "id": 7726, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13930:3:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "13921:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7728, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13936:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13921:16:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7739, - "nodeType": "IfStatement", - "src": "13917:98:46", - "trueBody": { - "id": 7738, - "nodeType": "Block", - "src": "13939:76:46", - "statements": [ - { - "expression": { - "id": 7732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7730, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7716, - "src": "13957:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "313238", - "id": 7731, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13967:3:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_128_by_1", - "typeString": "int_const 128" - }, - "value": "128" - }, - "src": "13957:13:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7733, - "nodeType": "ExpressionStatement", - "src": "13957:13:46" - }, - { - "expression": { - "id": 7736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7734, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7722, - "src": "13988:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "3136", - "id": 7735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13998:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "13988:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7737, - "nodeType": "ExpressionStatement", - "src": "13988:12:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7740, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7716, - "src": "14032:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "3634", - "id": 7741, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14041:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "14032:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14046:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14032:15:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7754, - "nodeType": "IfStatement", - "src": "14028:95:46", - "trueBody": { - "id": 7753, - "nodeType": "Block", - "src": "14049:74:46", - "statements": [ - { - "expression": { - "id": 7747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7745, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7716, - "src": "14067:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3634", - "id": 7746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14077:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_64_by_1", - "typeString": "int_const 64" - }, - "value": "64" - }, - "src": "14067:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7748, - "nodeType": "ExpressionStatement", - "src": "14067:12:46" - }, - { - "expression": { - "id": 7751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7749, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7722, - "src": "14097:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "38", - "id": 7750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14107:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "14097:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7752, - "nodeType": "ExpressionStatement", - "src": "14097:11:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7755, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7716, - "src": "14140:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "3332", - "id": 7756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14149:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "14140:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14154:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14140:15:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7769, - "nodeType": "IfStatement", - "src": "14136:95:46", - "trueBody": { - "id": 7768, - "nodeType": "Block", - "src": "14157:74:46", - "statements": [ - { - "expression": { - "id": 7762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7760, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7716, - "src": "14175:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3332", - "id": 7761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14185:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "14175:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7763, - "nodeType": "ExpressionStatement", - "src": "14175:12:46" - }, - { - "expression": { - "id": 7766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7764, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7722, - "src": "14205:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "34", - "id": 7765, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14215:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "14205:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7767, - "nodeType": "ExpressionStatement", - "src": "14205:11:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7770, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7716, - "src": "14248:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "3136", - "id": 7771, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14257:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "14248:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14262:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14248:15:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7784, - "nodeType": "IfStatement", - "src": "14244:95:46", - "trueBody": { - "id": 7783, - "nodeType": "Block", - "src": "14265:74:46", - "statements": [ - { - "expression": { - "id": 7777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7775, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7716, - "src": "14283:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": ">>=", - "rightHandSide": { - "hexValue": "3136", - "id": 7776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14293:2:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_16_by_1", - "typeString": "int_const 16" - }, - "value": "16" - }, - "src": "14283:12:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7778, - "nodeType": "ExpressionStatement", - "src": "14283:12:46" - }, - { - "expression": { - "id": 7781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7779, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7722, - "src": "14313:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "32", - "id": 7780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14323:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "14313:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7782, - "nodeType": "ExpressionStatement", - "src": "14313:11:46" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7785, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7716, - "src": "14356:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "38", - "id": 7786, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14365:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - }, - "src": "14356:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 7788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14369:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14356:14:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7795, - "nodeType": "IfStatement", - "src": "14352:64:46", - "trueBody": { - "id": 7794, - "nodeType": "Block", - "src": "14372:44:46", - "statements": [ - { - "expression": { - "id": 7792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7790, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7722, - "src": "14390:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "hexValue": "31", - "id": 7791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14400:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "14390:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7793, - "nodeType": "ExpressionStatement", - "src": "14390:11:46" - } - ] - } - } - ] - }, - { - "expression": { - "id": 7797, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7722, - "src": "14442:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7720, - "id": 7798, - "nodeType": "Return", - "src": "14435:13:46" - } - ] - }, - "documentation": { - "id": 7714, - "nodeType": "StructuredDocumentation", - "src": "13541:246:46", - "text": " @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string." - }, - "id": 7800, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log256", - "nameLocation": "13801:6:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7716, - "mutability": "mutable", - "name": "value", - "nameLocation": "13816:5:46", - "nodeType": "VariableDeclaration", - "scope": 7800, - "src": "13808:13:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7715, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13808:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13807:15:46" - }, - "returnParameters": { - "id": 7720, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7719, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7800, - "src": "13846:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7718, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13846:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13845:9:46" - }, - "scope": 7858, - "src": "13792:663:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7837, - "nodeType": "Block", - "src": "14692:177:46", - "statements": [ - { - "id": 7836, - "nodeType": "UncheckedBlock", - "src": "14702:161:46", - "statements": [ - { - "assignments": [ - 7812 - ], - "declarations": [ - { - "constant": false, - "id": 7812, - "mutability": "mutable", - "name": "result", - "nameLocation": "14734:6:46", - "nodeType": "VariableDeclaration", - "scope": 7836, - "src": "14726:14:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7811, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14726:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 7816, - "initialValue": { - "arguments": [ - { - "id": 7814, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7803, - "src": "14750:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7813, - "name": "log256", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7800, - 7838 - ], - "referencedDeclaration": 7800, - "src": "14743:6:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 7815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14743:13:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14726:30:46" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7817, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7812, - "src": "14777:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "components": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7819, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7806, - "src": "14804:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - ], - "id": 7818, - "name": "unsignedRoundsUp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "14787:16:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$6815_$returns$_t_bool_$", - "typeString": "function (enum Math.Rounding) pure returns (bool)" - } - }, - "id": 7820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14787:26:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "31", - "id": 7821, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14817:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7822, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7812, - "src": "14823:6:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<<", - "rightExpression": { - "hexValue": "33", - "id": 7823, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14833:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "14823:11:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7825, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14822:13:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14817:18:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 7827, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7803, - "src": "14838:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14817:26:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "14787:56:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "hexValue": "30", - "id": 7831, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14850:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 7832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "14787:64:46", - "trueExpression": { - "hexValue": "31", - "id": 7830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14846:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 7833, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14786:66:46", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "14777:75:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7810, - "id": 7835, - "nodeType": "Return", - "src": "14770:82:46" - } - ] - } - ] - }, - "documentation": { - "id": 7801, - "nodeType": "StructuredDocumentation", - "src": "14461:144:46", - "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." - }, - "id": 7838, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "log256", - "nameLocation": "14619:6:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7807, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7803, - "mutability": "mutable", - "name": "value", - "nameLocation": "14634:5:46", - "nodeType": "VariableDeclaration", - "scope": 7838, - "src": "14626:13:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7802, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14626:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7806, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "14650:8:46", - "nodeType": "VariableDeclaration", - "scope": 7838, - "src": "14641:17:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 7805, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7804, - "name": "Rounding", - "nameLocations": [ - "14641:8:46" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6815, - "src": "14641:8:46" - }, - "referencedDeclaration": 6815, - "src": "14641:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "14625:34:46" - }, - "returnParameters": { - "id": 7810, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7809, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7838, - "src": "14683:7:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7808, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14683:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "14682:9:46" - }, - "scope": 7858, - "src": "14610:259:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7856, - "nodeType": "Block", - "src": "15067:48:46", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 7854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 7852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7849, - "name": "rounding", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7842, - "src": "15090:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - ], - "id": 7848, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15084:5:46", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 7847, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "15084:5:46", - "typeDescriptions": {} - } - }, - "id": 7850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15084:15:46", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "hexValue": "32", - "id": 7851, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15102:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "15084:19:46", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "31", - "id": 7853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15107:1:46", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "15084:24:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 7846, - "id": 7855, - "nodeType": "Return", - "src": "15077:31:46" - } - ] - }, - "documentation": { - "id": 7839, - "nodeType": "StructuredDocumentation", - "src": "14875:113:46", - "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." - }, - "id": 7857, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "unsignedRoundsUp", - "nameLocation": "15002:16:46", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7843, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7842, - "mutability": "mutable", - "name": "rounding", - "nameLocation": "15028:8:46", - "nodeType": "VariableDeclaration", - "scope": 7857, - "src": "15019:17:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - }, - "typeName": { - "id": 7841, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 7840, - "name": "Rounding", - "nameLocations": [ - "15019:8:46" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 6815, - "src": "15019:8:46" - }, - "referencedDeclaration": 6815, - "src": "15019:8:46", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$6815", - "typeString": "enum Math.Rounding" - } - }, - "visibility": "internal" - } - ], - "src": "15018:19:46" - }, - "returnParameters": { - "id": 7846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7845, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7857, - "src": "15061:4:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7844, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15061:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "15060:6:46" - }, - "scope": 7858, - "src": "14993:122:46", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 7859, - "src": "203:14914:46", - "usedErrors": [ - 6810 - ], - "usedEvents": [] - } - ], - "src": "103:15015:46" - }, - "id": 46 - }, - "@openzeppelin/contracts/utils/math/SignedMath.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", - "exportedSymbols": { - "SignedMath": [ - 7963 - ] - }, - "id": 7964, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7860, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "109:24:47" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "SignedMath", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 7861, - "nodeType": "StructuredDocumentation", - "src": "135:80:47", - "text": " @dev Standard signed math utilities missing in the Solidity language." - }, - "fullyImplemented": true, - "id": 7963, - "linearizedBaseContracts": [ - 7963 - ], - "name": "SignedMath", - "nameLocation": "224:10:47", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 7878, - "nodeType": "Block", - "src": "376:37:47", - "statements": [ - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7871, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7864, - "src": "393:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 7872, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7866, - "src": "397:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "393:5:47", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 7875, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7866, - "src": "405:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 7876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "393:13:47", - "trueExpression": { - "id": 7874, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7864, - "src": "401:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 7870, - "id": 7877, - "nodeType": "Return", - "src": "386:20:47" - } - ] - }, - "documentation": { - "id": 7862, - "nodeType": "StructuredDocumentation", - "src": "241:66:47", - "text": " @dev Returns the largest of two signed numbers." - }, - "id": 7879, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "max", - "nameLocation": "321:3:47", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7867, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7864, - "mutability": "mutable", - "name": "a", - "nameLocation": "332:1:47", - "nodeType": "VariableDeclaration", - "scope": 7879, - "src": "325:8:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7863, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "325:6:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7866, - "mutability": "mutable", - "name": "b", - "nameLocation": "342:1:47", - "nodeType": "VariableDeclaration", - "scope": 7879, - "src": "335:8:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7865, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "335:6:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "324:20:47" - }, - "returnParameters": { - "id": 7870, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7869, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7879, - "src": "368:6:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7868, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "368:6:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "367:8:47" - }, - "scope": 7963, - "src": "312:101:47", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7896, - "nodeType": "Block", - "src": "555:37:47", - "statements": [ - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7889, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7882, - "src": "572:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 7890, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7884, - "src": "576:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "572:5:47", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 7893, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7884, - "src": "584:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 7894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "572:13:47", - "trueExpression": { - "id": 7892, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7882, - "src": "580:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 7888, - "id": 7895, - "nodeType": "Return", - "src": "565:20:47" - } - ] - }, - "documentation": { - "id": 7880, - "nodeType": "StructuredDocumentation", - "src": "419:67:47", - "text": " @dev Returns the smallest of two signed numbers." - }, - "id": 7897, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "min", - "nameLocation": "500:3:47", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7882, - "mutability": "mutable", - "name": "a", - "nameLocation": "511:1:47", - "nodeType": "VariableDeclaration", - "scope": 7897, - "src": "504:8:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7881, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "504:6:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7884, - "mutability": "mutable", - "name": "b", - "nameLocation": "521:1:47", - "nodeType": "VariableDeclaration", - "scope": 7897, - "src": "514:8:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7883, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "514:6:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "503:20:47" - }, - "returnParameters": { - "id": 7888, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7887, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7897, - "src": "547:6:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7886, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "547:6:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "546:8:47" - }, - "scope": 7963, - "src": "491:101:47", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7940, - "nodeType": "Block", - "src": "797:162:47", - "statements": [ - { - "assignments": [ - 7908 - ], - "declarations": [ - { - "constant": false, - "id": 7908, - "mutability": "mutable", - "name": "x", - "nameLocation": "866:1:47", - "nodeType": "VariableDeclaration", - "scope": 7940, - "src": "859:8:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7907, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "859:6:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "id": 7921, - "initialValue": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7909, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7900, - "src": "871:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "id": 7910, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7902, - "src": "875:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "871:5:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "id": 7912, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "870:7:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7913, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7900, - "src": "882:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "id": 7914, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7902, - "src": "886:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "882:5:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "id": 7916, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "881:7:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "31", - "id": 7917, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "892:1:47", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "881:12:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "id": 7919, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "880:14:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "870:24:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "859:35:47" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7922, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7908, - "src": "911:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 7927, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7908, - "src": "931:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "923:7:47", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 7925, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "923:7:47", - "typeDescriptions": {} - } - }, - "id": 7928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "923:10:47", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">>", - "rightExpression": { - "hexValue": "323535", - "id": 7929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "937:3:47", - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "255" - }, - "src": "923:17:47", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "916:6:47", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": { - "id": 7923, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "916:6:47", - "typeDescriptions": {} - } - }, - "id": 7931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "916:25:47", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7932, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7900, - "src": "945:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "id": 7933, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7902, - "src": "949:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "945:5:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "id": 7935, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "944:7:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "916:35:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "id": 7937, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "915:37:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "911:41:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 7906, - "id": 7939, - "nodeType": "Return", - "src": "904:48:47" - } - ] - }, - "documentation": { - "id": 7898, - "nodeType": "StructuredDocumentation", - "src": "598:126:47", - "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." - }, - "id": 7941, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "average", - "nameLocation": "738:7:47", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7903, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7900, - "mutability": "mutable", - "name": "a", - "nameLocation": "753:1:47", - "nodeType": "VariableDeclaration", - "scope": 7941, - "src": "746:8:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7899, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "746:6:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 7902, - "mutability": "mutable", - "name": "b", - "nameLocation": "763:1:47", - "nodeType": "VariableDeclaration", - "scope": 7941, - "src": "756:8:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7901, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "756:6:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "745:20:47" - }, - "returnParameters": { - "id": 7906, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7905, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7941, - "src": "789:6:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7904, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "789:6:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "788:8:47" - }, - "scope": 7963, - "src": "729:230:47", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 7961, - "nodeType": "Block", - "src": "1103:158:47", - "statements": [ - { - "id": 7960, - "nodeType": "UncheckedBlock", - "src": "1113:142:47", - "statements": [ - { - "expression": { - "arguments": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 7953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 7951, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7944, - "src": "1228:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "hexValue": "30", - "id": 7952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1233:1:47", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1228:6:47", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 7956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "1241:2:47", - "subExpression": { - "id": 7955, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7944, - "src": "1242:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 7957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "1228:15:47", - "trueExpression": { - "id": 7954, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7944, - "src": "1237:1:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 7950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1220:7:47", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 7949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1220:7:47", - "typeDescriptions": {} - } - }, - "id": 7958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1220:24:47", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7948, - "id": 7959, - "nodeType": "Return", - "src": "1213:31:47" - } - ] - } - ] - }, - "documentation": { - "id": 7942, - "nodeType": "StructuredDocumentation", - "src": "965:78:47", - "text": " @dev Returns the absolute unsigned value of a signed value." - }, - "id": 7962, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "abs", - "nameLocation": "1057:3:47", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7945, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7944, - "mutability": "mutable", - "name": "n", - "nameLocation": "1068:1:47", - "nodeType": "VariableDeclaration", - "scope": 7962, - "src": "1061:8:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 7943, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "1061:6:47", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "visibility": "internal" - } - ], - "src": "1060:10:47" - }, - "returnParameters": { - "id": 7948, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7947, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 7962, - "src": "1094:7:47", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7946, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1094:7:47", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1093:9:47" - }, - "scope": 7963, - "src": "1048:213:47", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 7964, - "src": "216:1047:47", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "109:1155:47" - }, - "id": 47 - }, - "contracts/DisputeManager.sol": { - "ast": { - "absolutePath": "contracts/DisputeManager.sol", - "exportedSymbols": { - "Allocation": [ - 11674 - ], - "Attestation": [ - 11920 - ], - "AttestationManager": [ - 13226 - ], - "DisputeManager": [ - 9438 - ], - "DisputeManagerV1Storage": [ - 9470 - ], - "GraphDirectory": [ - 4653 - ], - "IDisputeManager": [ - 11057 - ], - "IGraphToken": [ - 518 - ], - "IHorizonStaking": [ - 2235 - ], - "ISubgraphService": [ - 11280 - ], - "Initializable": [ - 5102 - ], - "Math": [ - 7858 - ], - "MathUtils": [ - 4168 - ], - "OwnableUpgradeable": [ - 4848 - ], - "PPMMath": [ - 4262 - ], - "TokenUtils": [ - 600 - ] - }, - "id": 9439, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7965, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:48" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", - "file": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", - "id": 7967, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 519, - "src": "70:87:48", - "symbolAliases": [ - { - "foreign": { - "id": 7966, - "name": "IGraphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "79:11:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", - "file": "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol", - "id": 7969, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 2236, - "src": "158:98:48", - "symbolAliases": [ - { - "foreign": { - "id": 7968, - "name": "IHorizonStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2235, - "src": "167:15:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/IDisputeManager.sol", - "file": "./interfaces/IDisputeManager.sol", - "id": 7971, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 11058, - "src": "257:67:48", - "symbolAliases": [ - { - "foreign": { - "id": 7970, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "266:15:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/ISubgraphService.sol", - "file": "./interfaces/ISubgraphService.sol", - "id": 7973, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 11281, - "src": "325:69:48", - "symbolAliases": [ - { - "foreign": { - "id": 7972, - "name": "ISubgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11280, - "src": "334:16:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", - "file": "@openzeppelin/contracts/utils/math/Math.sol", - "id": 7975, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 7859, - "src": "396:67:48", - "symbolAliases": [ - { - "foreign": { - "id": 7974, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7858, - "src": "405:4:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", - "file": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", - "id": 7977, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 601, - "src": "464:85:48", - "symbolAliases": [ - { - "foreign": { - "id": 7976, - "name": "TokenUtils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "473:10:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", - "file": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", - "id": 7979, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 4263, - "src": "550:81:48", - "symbolAliases": [ - { - "foreign": { - "id": 7978, - "name": "PPMMath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4262, - "src": "559:7:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/MathUtils.sol", - "file": "@graphprotocol/horizon/contracts/libraries/MathUtils.sol", - "id": 7981, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 4169, - "src": "632:85:48", - "symbolAliases": [ - { - "foreign": { - "id": 7980, - "name": "MathUtils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4168, - "src": "641:9:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/Allocation.sol", - "file": "./libraries/Allocation.sol", - "id": 7983, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 11675, - "src": "718:56:48", - "symbolAliases": [ - { - "foreign": { - "id": 7982, - "name": "Allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11674, - "src": "727:10:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/Attestation.sol", - "file": "./libraries/Attestation.sol", - "id": 7985, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 11921, - "src": "775:58:48", - "symbolAliases": [ - { - "foreign": { - "id": 7984, - "name": "Attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11920, - "src": "784:11:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", - "id": 7987, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 4849, - "src": "835:103:48", - "symbolAliases": [ - { - "foreign": { - "id": 7986, - "name": "OwnableUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4848, - "src": "844:18:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "id": 7989, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 5103, - "src": "939:98:48", - "symbolAliases": [ - { - "foreign": { - "id": 7988, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5102, - "src": "948:13:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", - "file": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", - "id": 7991, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 4654, - "src": "1038:95:48", - "symbolAliases": [ - { - "foreign": { - "id": 7990, - "name": "GraphDirectory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4653, - "src": "1047:14:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/DisputeManagerStorage.sol", - "file": "./DisputeManagerStorage.sol", - "id": 7993, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 9471, - "src": "1134:70:48", - "symbolAliases": [ - { - "foreign": { - "id": 7992, - "name": "DisputeManagerV1Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9470, - "src": "1143:23:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/utilities/AttestationManager.sol", - "file": "./utilities/AttestationManager.sol", - "id": 7995, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9439, - "sourceUnit": 13227, - "src": "1205:72:48", - "symbolAliases": [ - { - "foreign": { - "id": 7994, - "name": "AttestationManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13226, - "src": "1214:18:48", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 7997, - "name": "Initializable", - "nameLocations": [ - "2460:13:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5102, - "src": "2460:13:48" - }, - "id": 7998, - "nodeType": "InheritanceSpecifier", - "src": "2460:13:48" - }, - { - "baseName": { - "id": 7999, - "name": "OwnableUpgradeable", - "nameLocations": [ - "2479:18:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4848, - "src": "2479:18:48" - }, - "id": 8000, - "nodeType": "InheritanceSpecifier", - "src": "2479:18:48" - }, - { - "baseName": { - "id": 8001, - "name": "GraphDirectory", - "nameLocations": [ - "2503:14:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4653, - "src": "2503:14:48" - }, - "id": 8002, - "nodeType": "InheritanceSpecifier", - "src": "2503:14:48" - }, - { - "baseName": { - "id": 8003, - "name": "AttestationManager", - "nameLocations": [ - "2523:18:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 13226, - "src": "2523:18:48" - }, - "id": 8004, - "nodeType": "InheritanceSpecifier", - "src": "2523:18:48" - }, - { - "baseName": { - "id": 8005, - "name": "DisputeManagerV1Storage", - "nameLocations": [ - "2547:23:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 9470, - "src": "2547:23:48" - }, - "id": 8006, - "nodeType": "InheritanceSpecifier", - "src": "2547:23:48" - }, - { - "baseName": { - "id": 8007, - "name": "IDisputeManager", - "nameLocations": [ - "2576:15:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11057, - "src": "2576:15:48" - }, - "id": 8008, - "nodeType": "InheritanceSpecifier", - "src": "2576:15:48" - } - ], - "canonicalName": "DisputeManager", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 7996, - "nodeType": "StructuredDocumentation", - "src": "1279:1149:48", - "text": " @title DisputeManager\n @notice Provides a way to permissionlessly create disputes for incorrect behavior in the Subgraph Service.\n There are two types of disputes that can be created: Query disputes and Indexing disputes.\n Query Disputes:\n Graph nodes receive queries and return responses with signed receipts called attestations.\n An attestation can be disputed if the consumer thinks the query response was invalid.\n Indexers use the derived private key for an allocation to sign attestations.\n Indexing Disputes:\n Indexers present a Proof of Indexing (POI) when they close allocations to prove\n they were indexing a subgraph. The Staking contract emits that proof with the format\n keccak256(indexer.address, POI).\n Any fisherman can dispute the validity of a POI by submitting a dispute to this contract\n along with a deposit.\n Arbitration:\n Disputes can only be accepted, rejected or drawn by the arbitrator role that can be delegated\n to a EOA or DAO.\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program." - }, - "fullyImplemented": true, - "id": 9438, - "linearizedBaseContracts": [ - 9438, - 11057, - 9470, - 13226, - 13237, - 4653, - 4848, - 5148, - 5102 - ], - "name": "DisputeManager", - "nameLocation": "2438:14:48", - "nodeType": "ContractDefinition", - "nodes": [ - { - "global": false, - "id": 8012, - "libraryName": { - "id": 8009, - "name": "TokenUtils", - "nameLocations": [ - "2604:10:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 600, - "src": "2604:10:48" - }, - "nodeType": "UsingForDirective", - "src": "2598:33:48", - "typeName": { - "id": 8011, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8010, - "name": "IGraphToken", - "nameLocations": [ - "2619:11:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 518, - "src": "2619:11:48" - }, - "referencedDeclaration": 518, - "src": "2619:11:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - } - }, - { - "global": false, - "id": 8015, - "libraryName": { - "id": 8013, - "name": "PPMMath", - "nameLocations": [ - "2642:7:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4262, - "src": "2642:7:48" - }, - "nodeType": "UsingForDirective", - "src": "2636:26:48", - "typeName": { - "id": 8014, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2654:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": true, - "functionSelector": "17337b46", - "id": 8018, - "mutability": "constant", - "name": "MAX_FISHERMAN_REWARD_CUT", - "nameLocation": "2768:24:48", - "nodeType": "VariableDeclaration", - "scope": 9438, - "src": "2745:56:48", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8016, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2745:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "hexValue": "353030303030", - "id": 8017, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2795:6:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_500000_by_1", - "typeString": "int_const 500000" - }, - "value": "500000" - }, - "visibility": "public" - }, - { - "body": { - "id": 8031, - "nodeType": "Block", - "src": "2928:92:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 8022, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2946:3:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2950:6:48", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2946:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 8024, - "name": "arbitrator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9451, - "src": "2960:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2946:24:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8026, - "name": "DisputeManagerNotArbitrator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10855, - "src": "2972:27:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 8027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2972:29:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8021, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2938:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2938:64:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8029, - "nodeType": "ExpressionStatement", - "src": "2938:64:48" - }, - { - "id": 8030, - "nodeType": "PlaceholderStatement", - "src": "3012:1:48" - } - ] - }, - "documentation": { - "id": 8019, - "nodeType": "StructuredDocumentation", - "src": "2832:65:48", - "text": " @notice Check if the caller is the arbitrator." - }, - "id": 8032, - "name": "onlyArbitrator", - "nameLocation": "2911:14:48", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 8020, - "nodeType": "ParameterList", - "parameters": [], - "src": "2925:2:48" - }, - "src": "2902:118:48", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 8064, - "nodeType": "Block", - "src": "3187:286:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 8039, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8035, - "src": "3222:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8038, - "name": "isDisputeCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "3205:16:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view returns (bool)" - } - }, - "id": 8040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3205:27:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 8042, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8035, - "src": "3263:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8041, - "name": "DisputeManagerInvalidDispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10867, - "src": "3234:28:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", - "typeString": "function (bytes32) pure returns (error)" - } - }, - "id": 8043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3234:39:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8037, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3197:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3197:77:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8045, - "nodeType": "ExpressionStatement", - "src": "3197:77:48" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - }, - "id": 8054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 8047, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "3305:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 8049, - "indexExpression": { - "id": 8048, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8035, - "src": "3314:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3305:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "id": 8050, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3325:6:48", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 10733, - "src": "3305:26:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "expression": { - "id": 8051, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "3335:15:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$11057_$", - "typeString": "type(contract IDisputeManager)" - } - }, - "id": 8052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3351:13:48", - "memberName": "DisputeStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 10718, - "src": "3335:29:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$10718_$", - "typeString": "type(enum IDisputeManager.DisputeStatus)" - } - }, - "id": 8053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3365:7:48", - "memberName": "Pending", - "nodeType": "MemberAccess", - "referencedDeclaration": 10716, - "src": "3335:37:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "src": "3305:67:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "expression": { - "baseExpression": { - "id": 8056, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "3418:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 8058, - "indexExpression": { - "id": 8057, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8035, - "src": "3427:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3418:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "id": 8059, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3438:6:48", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 10733, - "src": "3418:26:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - ], - "id": 8055, - "name": "DisputeManagerDisputeNotPending", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10890, - "src": "3386:31:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_enum$_DisputeStatus_$10718_$returns$_t_error_$", - "typeString": "function (enum IDisputeManager.DisputeStatus) pure returns (error)" - } - }, - "id": 8060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3386:59:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8046, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3284:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3284:171:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8062, - "nodeType": "ExpressionStatement", - "src": "3284:171:48" - }, - { - "id": 8063, - "nodeType": "PlaceholderStatement", - "src": "3465:1:48" - } - ] - }, - "documentation": { - "id": 8033, - "nodeType": "StructuredDocumentation", - "src": "3026:109:48", - "text": " @notice Check if the dispute exists and is pending.\n @param disputeId The dispute Id" - }, - "id": 8065, - "name": "onlyPendingDispute", - "nameLocation": "3149:18:48", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 8036, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8035, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "3176:9:48", - "nodeType": "VariableDeclaration", - "scope": 8065, - "src": "3168:17:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8034, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3168:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3167:19:48" - }, - "src": "3140:333:48", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 8092, - "nodeType": "Block", - "src": "3644:197:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 8072, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8068, - "src": "3679:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8071, - "name": "isDisputeCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "3662:16:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view returns (bool)" - } - }, - "id": 8073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3662:27:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 8075, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8068, - "src": "3720:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8074, - "name": "DisputeManagerInvalidDispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10867, - "src": "3691:28:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", - "typeString": "function (bytes32) pure returns (error)" - } - }, - "id": 8076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3691:39:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8070, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3654:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3654:77:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8078, - "nodeType": "ExpressionStatement", - "src": "3654:77:48" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 8080, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "3749:3:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3753:6:48", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "3749:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "baseExpression": { - "id": 8082, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "3763:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 8084, - "indexExpression": { - "id": 8083, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8068, - "src": "3772:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3763:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "id": 8085, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3783:9:48", - "memberName": "fisherman", - "nodeType": "MemberAccess", - "referencedDeclaration": 10723, - "src": "3763:29:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3749:43:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8087, - "name": "DisputeManagerNotFisherman", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10857, - "src": "3794:26:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 8088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3794:28:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8079, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3741:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3741:82:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8090, - "nodeType": "ExpressionStatement", - "src": "3741:82:48" - }, - { - "id": 8091, - "nodeType": "PlaceholderStatement", - "src": "3833:1:48" - } - ] - }, - "documentation": { - "id": 8066, - "nodeType": "StructuredDocumentation", - "src": "3479:118:48", - "text": " @notice Check if the caller is the fisherman of the dispute.\n @param disputeId The dispute Id" - }, - "id": 8093, - "name": "onlyFisherman", - "nameLocation": "3611:13:48", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 8069, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8068, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "3633:9:48", - "nodeType": "VariableDeclaration", - "scope": 8093, - "src": "3625:17:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8067, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3625:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3624:19:48" - }, - "src": "3602:239:48", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 8105, - "nodeType": "Block", - "src": "4009:39:48", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8102, - "name": "_disableInitializers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5070, - "src": "4019:20:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 8103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4019:22:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8104, - "nodeType": "ExpressionStatement", - "src": "4019:22:48" - } - ] - }, - "documentation": { - "id": 8094, - "nodeType": "StructuredDocumentation", - "src": "3847:98:48", - "text": " @notice Contract constructor\n @param controller Address of the controller" - }, - "id": 8106, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 8099, - "name": "controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8096, - "src": "3997:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 8100, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 8098, - "name": "GraphDirectory", - "nameLocations": [ - "3982:14:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4653, - "src": "3982:14:48" - }, - "nodeType": "ModifierInvocation", - "src": "3982:26:48" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8096, - "mutability": "mutable", - "name": "controller", - "nameLocation": "3970:10:48", - "nodeType": "VariableDeclaration", - "scope": 8106, - "src": "3962:18:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8095, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3962:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3961:20:48" - }, - "returnParameters": { - "id": 8101, - "nodeType": "ParameterList", - "parameters": [], - "src": "4009:0:48" - }, - "scope": 9438, - "src": "3950:98:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 8150, - "nodeType": "Block", - "src": "4648:301:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 8123, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4673:3:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4677:6:48", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4673:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8122, - "name": "__Ownable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4708, - "src": "4658:14:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4658:26:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8126, - "nodeType": "ExpressionStatement", - "src": "4658:26:48" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8127, - "name": "__AttestationManager_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13125, - "src": "4694:25:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 8128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4694:27:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8129, - "nodeType": "ExpressionStatement", - "src": "4694:27:48" - }, - { - "expression": { - "arguments": [ - { - "id": 8131, - "name": "arbitrator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8109, - "src": "4747:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8130, - "name": "_setArbitrator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9238, - "src": "4732:14:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4732:26:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8133, - "nodeType": "ExpressionStatement", - "src": "4732:26:48" - }, - { - "expression": { - "arguments": [ - { - "id": 8135, - "name": "disputePeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8111, - "src": "4786:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 8134, - "name": "_setDisputePeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9261, - "src": "4768:17:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 8136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4768:32:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8137, - "nodeType": "ExpressionStatement", - "src": "4768:32:48" - }, - { - "expression": { - "arguments": [ - { - "id": 8139, - "name": "disputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8113, - "src": "4829:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8138, - "name": "_setDisputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9285, - "src": "4810:18:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 8140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4810:34:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8141, - "nodeType": "ExpressionStatement", - "src": "4810:34:48" - }, - { - "expression": { - "arguments": [ - { - "id": 8143, - "name": "fishermanRewardCut_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8115, - "src": "4877:19:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 8142, - "name": "_setFishermanRewardCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9309, - "src": "4854:22:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 8144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4854:43:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8145, - "nodeType": "ExpressionStatement", - "src": "4854:43:48" - }, - { - "expression": { - "arguments": [ - { - "id": 8147, - "name": "maxSlashingCut_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8117, - "src": "4926:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 8146, - "name": "_setMaxSlashingCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9334, - "src": "4907:18:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 8148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4907:35:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8149, - "nodeType": "ExpressionStatement", - "src": "4907:35:48" - } - ] - }, - "documentation": { - "id": 8107, - "nodeType": "StructuredDocumentation", - "src": "4054:384:48", - "text": " @notice Initialize this contract.\n @param arbitrator Arbitrator role\n @param disputePeriod Dispute period in seconds\n @param disputeDeposit Deposit required to create a Dispute\n @param fishermanRewardCut_ Percent of slashed funds for fisherman (ppm)\n @param maxSlashingCut_ Maximum percentage of indexer stake that can be slashed (ppm)" - }, - "functionSelector": "5ed2c96c", - "id": 8151, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8120, - "kind": "modifierInvocation", - "modifierName": { - "id": 8119, - "name": "initializer", - "nameLocations": [ - "4636:11:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4956, - "src": "4636:11:48" - }, - "nodeType": "ModifierInvocation", - "src": "4636:11:48" - } - ], - "name": "initialize", - "nameLocation": "4452:10:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8109, - "mutability": "mutable", - "name": "arbitrator", - "nameLocation": "4480:10:48", - "nodeType": "VariableDeclaration", - "scope": 8151, - "src": "4472:18:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8108, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4472:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8111, - "mutability": "mutable", - "name": "disputePeriod", - "nameLocation": "4507:13:48", - "nodeType": "VariableDeclaration", - "scope": 8151, - "src": "4500:20:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 8110, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4500:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8113, - "mutability": "mutable", - "name": "disputeDeposit", - "nameLocation": "4538:14:48", - "nodeType": "VariableDeclaration", - "scope": 8151, - "src": "4530:22:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4530:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8115, - "mutability": "mutable", - "name": "fishermanRewardCut_", - "nameLocation": "4569:19:48", - "nodeType": "VariableDeclaration", - "scope": 8151, - "src": "4562:26:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8114, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4562:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8117, - "mutability": "mutable", - "name": "maxSlashingCut_", - "nameLocation": "4605:15:48", - "nodeType": "VariableDeclaration", - "scope": 8151, - "src": "4598:22:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8116, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4598:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "4462:164:48" - }, - "returnParameters": { - "id": 8121, - "nodeType": "ParameterList", - "parameters": [], - "src": "4648:0:48" - }, - "scope": 9438, - "src": "4443:506:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 10978 - ], - "body": { - "id": 8173, - "nodeType": "Block", - "src": "5636:205:48", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8162, - "name": "_pullFishermanDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9131, - "src": "5682:21:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 8163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5682:23:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8164, - "nodeType": "ExpressionStatement", - "src": "5682:23:48" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 8166, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5788:3:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5792:6:48", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "5788:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8168, - "name": "disputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9457, - "src": "5800:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 8169, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8154, - "src": "5816:12:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8170, - "name": "poi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8156, - "src": "5830:3:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8165, - "name": "_createIndexingDisputeWithAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9040, - "src": "5751:36:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,address,bytes32) returns (bytes32)" - } - }, - "id": 8171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5751:83:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 8161, - "id": 8172, - "nodeType": "Return", - "src": "5744:90:48" - } - ] - }, - "documentation": { - "id": 8152, - "nodeType": "StructuredDocumentation", - "src": "4955:574:48", - "text": " @notice Create an indexing dispute for the arbitrator to resolve.\n The disputes are created in reference to an allocationId and specifically\n a POI for that allocation.\n This function is called by a fisherman and it will pull `disputeDeposit` GRT tokens.\n Requirements:\n - fisherman must have previously approved this contract to pull `disputeDeposit` amount\n of tokens from their balance.\n @param allocationId The allocation to dispute\n @param poi The Proof of Indexing (POI) being disputed" - }, - "functionSelector": "4bc5839a", - "id": 8174, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createIndexingDispute", - "nameLocation": "5543:21:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8158, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "5609:8:48" - }, - "parameters": { - "id": 8157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8154, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "5573:12:48", - "nodeType": "VariableDeclaration", - "scope": 8174, - "src": "5565:20:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8153, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5565:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8156, - "mutability": "mutable", - "name": "poi", - "nameLocation": "5595:3:48", - "nodeType": "VariableDeclaration", - "scope": 8174, - "src": "5587:11:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8155, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5587:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5564:35:48" - }, - "returnParameters": { - "id": 8161, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8160, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8174, - "src": "5627:7:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8159, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5627:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5626:9:48" - }, - "scope": 9438, - "src": "5534:307:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 10958 - ], - "body": { - "id": 8197, - "nodeType": "Block", - "src": "6366:327:48", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8183, - "name": "_pullFishermanDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9131, - "src": "6412:21:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 8184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6412:23:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8185, - "nodeType": "ExpressionStatement", - "src": "6412:23:48" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 8187, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6545:3:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6549:6:48", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "6545:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8189, - "name": "disputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9457, - "src": "6573:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 8192, - "name": "attestationData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8177, - "src": "6623:15:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "id": 8190, - "name": "Attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11920, - "src": "6605:11:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Attestation_$11920_$", - "typeString": "type(library Attestation)" - } - }, - "id": 8191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6617:5:48", - "memberName": "parse", - "nodeType": "MemberAccess", - "referencedDeclaration": 11853, - "src": "6605:17:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_State_$11699_memory_ptr_$", - "typeString": "function (bytes memory) pure returns (struct Attestation.State memory)" - } - }, - "id": 8193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6605:34:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - { - "id": 8194, - "name": "attestationData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8177, - "src": "6657:15:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 8186, - "name": "_createQueryDisputeWithAttestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8913, - "src": "6493:34:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_struct$_State_$11699_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,struct Attestation.State memory,bytes memory) returns (bytes32)" - } - }, - "id": 8195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6493:193:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 8182, - "id": 8196, - "nodeType": "Return", - "src": "6474:212:48" - } - ] - }, - "documentation": { - "id": 8175, - "nodeType": "StructuredDocumentation", - "src": "5847:418:48", - "text": " @notice Create a query dispute for the arbitrator to resolve.\n This function is called by a fisherman and it will pull `disputeDeposit` GRT tokens.\n * Requirements:\n - fisherman must have previously approved this contract to pull `disputeDeposit` amount\n of tokens from their balance.\n @param attestationData Attestation bytes submitted by the fisherman" - }, - "functionSelector": "c50a77b1", - "id": 8198, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createQueryDispute", - "nameLocation": "6279:18:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8179, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "6339:8:48" - }, - "parameters": { - "id": 8178, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8177, - "mutability": "mutable", - "name": "attestationData", - "nameLocation": "6313:15:48", - "nodeType": "VariableDeclaration", - "scope": 8198, - "src": "6298:30:48", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8176, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6298:5:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6297:32:48" - }, - "returnParameters": { - "id": 8182, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8181, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8198, - "src": "6357:7:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8180, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6357:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "6356:9:48" - }, - "scope": 9438, - "src": "6270:423:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 10969 - ], - "body": { - "id": 8299, - "nodeType": "Block", - "src": "7551:1314:48", - "statements": [ - { - "assignments": [ - 8212 - ], - "declarations": [ - { - "constant": false, - "id": 8212, - "mutability": "mutable", - "name": "fisherman", - "nameLocation": "7569:9:48", - "nodeType": "VariableDeclaration", - "scope": 8299, - "src": "7561:17:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8211, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7561:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 8215, - "initialValue": { - "expression": { - "id": 8213, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7581:3:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7585:6:48", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "7581:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7561:30:48" - }, - { - "assignments": [ - 8220 - ], - "declarations": [ - { - "constant": false, - "id": 8220, - "mutability": "mutable", - "name": "attestation1", - "nameLocation": "7661:12:48", - "nodeType": "VariableDeclaration", - "scope": 8299, - "src": "7636:37:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 8219, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8218, - "name": "Attestation.State", - "nameLocations": [ - "7636:11:48", - "7648:5:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "7636:17:48" - }, - "referencedDeclaration": 11699, - "src": "7636:17:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - } - ], - "id": 8225, - "initialValue": { - "arguments": [ - { - "id": 8223, - "name": "attestationData1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8201, - "src": "7694:16:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "id": 8221, - "name": "Attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11920, - "src": "7676:11:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Attestation_$11920_$", - "typeString": "type(library Attestation)" - } - }, - "id": 8222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7688:5:48", - "memberName": "parse", - "nodeType": "MemberAccess", - "referencedDeclaration": 11853, - "src": "7676:17:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_State_$11699_memory_ptr_$", - "typeString": "function (bytes memory) pure returns (struct Attestation.State memory)" - } - }, - "id": 8224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7676:35:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7636:75:48" - }, - { - "assignments": [ - 8230 - ], - "declarations": [ - { - "constant": false, - "id": 8230, - "mutability": "mutable", - "name": "attestation2", - "nameLocation": "7746:12:48", - "nodeType": "VariableDeclaration", - "scope": 8299, - "src": "7721:37:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 8229, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8228, - "name": "Attestation.State", - "nameLocations": [ - "7721:11:48", - "7733:5:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "7721:17:48" - }, - "referencedDeclaration": 11699, - "src": "7721:17:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - } - ], - "id": 8235, - "initialValue": { - "arguments": [ - { - "id": 8233, - "name": "attestationData2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8203, - "src": "7779:16:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "id": 8231, - "name": "Attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11920, - "src": "7761:11:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Attestation_$11920_$", - "typeString": "type(library Attestation)" - } - }, - "id": 8232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7773:5:48", - "memberName": "parse", - "nodeType": "MemberAccess", - "referencedDeclaration": 11853, - "src": "7761:17:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_State_$11699_memory_ptr_$", - "typeString": "function (bytes memory) pure returns (struct Attestation.State memory)" - } - }, - "id": 8234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7761:35:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7721:75:48" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 8239, - "name": "attestation1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8220, - "src": "7905:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - { - "id": 8240, - "name": "attestation2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8230, - "src": "7919:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - }, - { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - ], - "expression": { - "id": 8237, - "name": "Attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11920, - "src": "7878:11:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Attestation_$11920_$", - "typeString": "type(library Attestation)" - } - }, - "id": 8238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7890:14:48", - "memberName": "areConflicting", - "nodeType": "MemberAccess", - "referencedDeclaration": 11783, - "src": "7878:26:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11699_memory_ptr_$_t_struct$_State_$11699_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct Attestation.State memory,struct Attestation.State memory) pure returns (bool)" - } - }, - "id": 8241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7878:54:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "expression": { - "id": 8243, - "name": "attestation1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8220, - "src": "8004:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8244, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8017:10:48", - "memberName": "requestCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11688, - "src": "8004:23:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8245, - "name": "attestation1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8220, - "src": "8045:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8246, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8058:11:48", - "memberName": "responseCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11690, - "src": "8045:24:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8247, - "name": "attestation1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8220, - "src": "8087:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8100:20:48", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11692, - "src": "8087:33:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8249, - "name": "attestation2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8230, - "src": "8138:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8250, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8151:10:48", - "memberName": "requestCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11688, - "src": "8138:23:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8251, - "name": "attestation2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8230, - "src": "8179:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8252, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8192:11:48", - "memberName": "responseCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11690, - "src": "8179:24:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8253, - "name": "attestation2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8230, - "src": "8221:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8254, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "8234:20:48", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11692, - "src": "8221:33:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8242, - "name": "DisputeManagerNonConflictingAttestations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10926, - "src": "7946:40:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_error_$", - "typeString": "function (bytes32,bytes32,bytes32,bytes32,bytes32,bytes32) pure returns (error)" - } - }, - "id": 8255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7946:322:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8236, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7857:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7857:421:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8257, - "nodeType": "ExpressionStatement", - "src": "7857:421:48" - }, - { - "assignments": [ - 8259 - ], - "declarations": [ - { - "constant": false, - "id": 8259, - "mutability": "mutable", - "name": "dId1", - "nameLocation": "8388:4:48", - "nodeType": "VariableDeclaration", - "scope": 8299, - "src": "8380:12:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8258, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8380:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 8266, - "initialValue": { - "arguments": [ - { - "id": 8261, - "name": "fisherman", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8212, - "src": "8430:9:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "hexValue": "30", - "id": 8262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8441:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "id": 8263, - "name": "attestation1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8220, - "src": "8444:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - { - "id": 8264, - "name": "attestationData1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8201, - "src": "8458:16:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 8260, - "name": "_createQueryDisputeWithAttestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8913, - "src": "8395:34:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_struct$_State_$11699_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,struct Attestation.State memory,bytes memory) returns (bytes32)" - } - }, - "id": 8265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8395:80:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8380:95:48" - }, - { - "assignments": [ - 8268 - ], - "declarations": [ - { - "constant": false, - "id": 8268, - "mutability": "mutable", - "name": "dId2", - "nameLocation": "8493:4:48", - "nodeType": "VariableDeclaration", - "scope": 8299, - "src": "8485:12:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8267, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8485:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 8275, - "initialValue": { - "arguments": [ - { - "id": 8270, - "name": "fisherman", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8212, - "src": "8535:9:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "hexValue": "30", - "id": 8271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8546:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "id": 8272, - "name": "attestation2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8230, - "src": "8549:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - { - "id": 8273, - "name": "attestationData2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8203, - "src": "8563:16:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 8269, - "name": "_createQueryDisputeWithAttestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8913, - "src": "8500:34:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_struct$_State_$11699_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,struct Attestation.State memory,bytes memory) returns (bytes32)" - } - }, - "id": 8274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8500:80:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8485:95:48" - }, - { - "expression": { - "id": 8281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 8276, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "8643:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 8278, - "indexExpression": { - "id": 8277, - "name": "dId1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "8652:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8643:14:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "id": 8279, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "8658:16:48", - "memberName": "relatedDisputeId", - "nodeType": "MemberAccess", - "referencedDeclaration": 10727, - "src": "8643:31:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 8280, - "name": "dId2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8268, - "src": "8677:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "8643:38:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 8282, - "nodeType": "ExpressionStatement", - "src": "8643:38:48" - }, - { - "expression": { - "id": 8288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 8283, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "8691:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 8285, - "indexExpression": { - "id": 8284, - "name": "dId2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8268, - "src": "8700:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8691:14:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "id": 8286, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "8706:16:48", - "memberName": "relatedDisputeId", - "nodeType": "MemberAccess", - "referencedDeclaration": 10727, - "src": "8691:31:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 8287, - "name": "dId1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "8725:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "8691:38:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 8289, - "nodeType": "ExpressionStatement", - "src": "8691:38:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 8291, - "name": "dId1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "8817:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 8292, - "name": "dId2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8268, - "src": "8823:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8290, - "name": "DisputeLinked", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10842, - "src": "8803:13:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$", - "typeString": "function (bytes32,bytes32)" - } - }, - "id": 8293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8803:25:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8294, - "nodeType": "EmitStatement", - "src": "8798:30:48" - }, - { - "expression": { - "components": [ - { - "id": 8295, - "name": "dId1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "8847:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 8296, - "name": "dId2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8268, - "src": "8853:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 8297, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8846:12:48", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(bytes32,bytes32)" - } - }, - "functionReturnParameters": 8210, - "id": 8298, - "nodeType": "Return", - "src": "8839:19:48" - } - ] - }, - "documentation": { - "id": 8199, - "nodeType": "StructuredDocumentation", - "src": "6699:678:48", - "text": " @notice Create query disputes for two conflicting attestations.\n A conflicting attestation is a proof presented by two different indexers\n where for the same request on a subgraph the response is different.\n For this type of dispute the fisherman is not required to present a deposit\n as one of the attestation is considered to be right.\n Two linked disputes will be created and if the arbitrator resolve one, the other\n one will be automatically resolved.\n @param attestationData1 First attestation data submitted\n @param attestationData2 Second attestation data submitted\n @return DisputeId1, DisputeId2" - }, - "functionSelector": "c894222e", - "id": 8300, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createQueryDisputeConflict", - "nameLocation": "7391:26:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8205, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "7515:8:48" - }, - "parameters": { - "id": 8204, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8201, - "mutability": "mutable", - "name": "attestationData1", - "nameLocation": "7442:16:48", - "nodeType": "VariableDeclaration", - "scope": 8300, - "src": "7427:31:48", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8200, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7427:5:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8203, - "mutability": "mutable", - "name": "attestationData2", - "nameLocation": "7483:16:48", - "nodeType": "VariableDeclaration", - "scope": 8300, - "src": "7468:31:48", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8202, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7468:5:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "7417:88:48" - }, - "returnParameters": { - "id": 8210, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8207, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8300, - "src": "7533:7:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8206, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7533:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8209, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8300, - "src": "7542:7:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8208, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7542:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "7532:18:48" - }, - "scope": 9438, - "src": "7382:1483:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 10985 - ], - "body": { - "id": 8372, - "nodeType": "Block", - "src": "9538:658:48", - "statements": [ - { - "assignments": [ - 8316 - ], - "declarations": [ - { - "constant": false, - "id": 8316, - "mutability": "mutable", - "name": "dispute", - "nameLocation": "9564:7:48", - "nodeType": "VariableDeclaration", - "scope": 8372, - "src": "9548:23:48", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - }, - "typeName": { - "id": 8315, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8314, - "name": "Dispute", - "nameLocations": [ - "9548:7:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10738, - "src": "9548:7:48" - }, - "referencedDeclaration": 10738, - "src": "9548:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - } - }, - "visibility": "internal" - } - ], - "id": 8320, - "initialValue": { - "baseExpression": { - "id": 8317, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "9574:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 8319, - "indexExpression": { - "id": 8318, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8303, - "src": "9583:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9574:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9548:45:48" - }, - { - "expression": { - "id": 8327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 8321, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8316, - "src": "9640:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8323, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "9648:6:48", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 10733, - "src": "9640:14:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "expression": { - "id": 8324, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "9657:15:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$11057_$", - "typeString": "type(contract IDisputeManager)" - } - }, - "id": 8325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9673:13:48", - "memberName": "DisputeStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 10718, - "src": "9657:29:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$10718_$", - "typeString": "type(enum IDisputeManager.DisputeStatus)" - } - }, - "id": 8326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9687:8:48", - "memberName": "Accepted", - "nodeType": "MemberAccess", - "referencedDeclaration": 10713, - "src": "9657:38:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "src": "9640:55:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "id": 8328, - "nodeType": "ExpressionStatement", - "src": "9640:55:48" - }, - { - "assignments": [ - 8330 - ], - "declarations": [ - { - "constant": false, - "id": 8330, - "mutability": "mutable", - "name": "tokensToReward", - "nameLocation": "9731:14:48", - "nodeType": "VariableDeclaration", - "scope": 8372, - "src": "9723:22:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8329, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9723:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8338, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 8332, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8316, - "src": "9762:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8333, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9770:7:48", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10721, - "src": "9762:15:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8334, - "name": "tokensSlash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8305, - "src": "9779:11:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 8335, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8316, - "src": "9792:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8336, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9800:13:48", - "memberName": "stakeSnapshot", - "nodeType": "MemberAccess", - "referencedDeclaration": 10737, - "src": "9792:21:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8331, - "name": "_slashIndexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9212, - "src": "9748:13:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address,uint256,uint256) returns (uint256)" - } - }, - "id": 8337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9748:66:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9723:91:48" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 8342, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8316, - "src": "9916:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8343, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9924:9:48", - "memberName": "fisherman", - "nodeType": "MemberAccess", - "referencedDeclaration": 10723, - "src": "9916:17:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8344, - "name": "tokensToReward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8330, - "src": "9935:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "id": 8345, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8316, - "src": "9952:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8346, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9960:7:48", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10725, - "src": "9952:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9935:32:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8339, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4530, - "src": "9891:11:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$518_$", - "typeString": "function () view returns (contract IGraphToken)" - } - }, - "id": 8340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9891:13:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 8341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9905:10:48", - "memberName": "pushTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 578, - "src": "9891:24:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$518_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$518_$", - "typeString": "function (contract IGraphToken,address,uint256)" - } - }, - "id": 8348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9891:77:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8349, - "nodeType": "ExpressionStatement", - "src": "9891:77:48" - }, - { - "condition": { - "arguments": [ - { - "id": 8351, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8316, - "src": "10004:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - ], - "id": 8350, - "name": "_isDisputeInConflict", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9390, - "src": "9983:20:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Dispute_$10738_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct IDisputeManager.Dispute memory) view returns (bool)" - } - }, - "id": 8352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9983:29:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8359, - "nodeType": "IfStatement", - "src": "9979:99:48", - "trueBody": { - "id": 8358, - "nodeType": "Block", - "src": "10014:64:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 8354, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8316, - "src": "10042:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8355, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10050:16:48", - "memberName": "relatedDisputeId", - "nodeType": "MemberAccess", - "referencedDeclaration": 10727, - "src": "10042:24:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8353, - "name": "rejectDispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8727, - "src": "10028:13:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" - } - }, - "id": 8356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10028:39:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8357, - "nodeType": "ExpressionStatement", - "src": "10028:39:48" - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "id": 8361, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8303, - "src": "10109:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8362, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8316, - "src": "10120:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8363, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10128:7:48", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10721, - "src": "10120:15:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 8364, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8316, - "src": "10137:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8365, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10145:9:48", - "memberName": "fisherman", - "nodeType": "MemberAccess", - "referencedDeclaration": 10723, - "src": "10137:17:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 8366, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8316, - "src": "10156:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8367, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10164:7:48", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10725, - "src": "10156:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 8368, - "name": "tokensToReward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8330, - "src": "10174:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10156:32:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8360, - "name": "DisputeAccepted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10813, - "src": "10093:15:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (bytes32,address,address,uint256)" - } - }, - "id": 8370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10093:96:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8371, - "nodeType": "EmitStatement", - "src": "10088:101:48" - } - ] - }, - "documentation": { - "id": 8301, - "nodeType": "StructuredDocumentation", - "src": "8871:514:48", - "text": " @notice The arbitrator accepts a dispute as being valid.\n This function will revert if the indexer is not slashable, whether because it does not have\n any stake available or the slashing percentage is configured to be zero. In those cases\n a dispute must be resolved using drawDispute or rejectDispute.\n @dev Accept a dispute with Id `disputeId`\n @param disputeId Id of the dispute to be accepted\n @param tokensSlash Amount of tokens to slash from the indexer" - }, - "functionSelector": "050b17ad", - "id": 8373, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8309, - "kind": "modifierInvocation", - "modifierName": { - "id": 8308, - "name": "onlyArbitrator", - "nameLocations": [ - "9493:14:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8032, - "src": "9493:14:48" - }, - "nodeType": "ModifierInvocation", - "src": "9493:14:48" - }, - { - "arguments": [ - { - "id": 8311, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8303, - "src": "9527:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 8312, - "kind": "modifierInvocation", - "modifierName": { - "id": 8310, - "name": "onlyPendingDispute", - "nameLocations": [ - "9508:18:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8065, - "src": "9508:18:48" - }, - "nodeType": "ModifierInvocation", - "src": "9508:29:48" - } - ], - "name": "acceptDispute", - "nameLocation": "9399:13:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8307, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "9484:8:48" - }, - "parameters": { - "id": 8306, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8303, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "9430:9:48", - "nodeType": "VariableDeclaration", - "scope": 8373, - "src": "9422:17:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8302, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9422:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8305, - "mutability": "mutable", - "name": "tokensSlash", - "nameLocation": "9457:11:48", - "nodeType": "VariableDeclaration", - "scope": 8373, - "src": "9449:19:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9449:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9412:62:48" - }, - "returnParameters": { - "id": 8313, - "nodeType": "ParameterList", - "parameters": [], - "src": "9538:0:48" - }, - "scope": 9438, - "src": "9390:806:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 10995 - ], - "body": { - "id": 8429, - "nodeType": "Block", - "src": "10475:503:48", - "statements": [ - { - "assignments": [ - 8387 - ], - "declarations": [ - { - "constant": false, - "id": 8387, - "mutability": "mutable", - "name": "dispute", - "nameLocation": "10501:7:48", - "nodeType": "VariableDeclaration", - "scope": 8429, - "src": "10485:23:48", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - }, - "typeName": { - "id": 8386, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8385, - "name": "Dispute", - "nameLocations": [ - "10485:7:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10738, - "src": "10485:7:48" - }, - "referencedDeclaration": 10738, - "src": "10485:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - } - }, - "visibility": "internal" - } - ], - "id": 8391, - "initialValue": { - "baseExpression": { - "id": 8388, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "10511:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 8390, - "indexExpression": { - "id": 8389, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8376, - "src": "10520:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10511:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10485:45:48" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 8392, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8387, - "src": "10595:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8393, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10603:7:48", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10725, - "src": "10595:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 8394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10613:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10595:19:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8406, - "nodeType": "IfStatement", - "src": "10591:110:48", - "trueBody": { - "id": 8405, - "nodeType": "Block", - "src": "10616:85:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 8399, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8387, - "src": "10655:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8400, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10663:9:48", - "memberName": "fisherman", - "nodeType": "MemberAccess", - "referencedDeclaration": 10723, - "src": "10655:17:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 8401, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8387, - "src": "10674:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8402, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10682:7:48", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10725, - "src": "10674:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8396, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4530, - "src": "10630:11:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$518_$", - "typeString": "function () view returns (contract IGraphToken)" - } - }, - "id": 8397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10630:13:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 8398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10644:10:48", - "memberName": "pushTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 578, - "src": "10630:24:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$518_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$518_$", - "typeString": "function (contract IGraphToken,address,uint256)" - } - }, - "id": 8403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10630:60:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8404, - "nodeType": "ExpressionStatement", - "src": "10630:60:48" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 8408, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8387, - "src": "10776:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - ], - "id": 8407, - "name": "_drawDisputeInConflict", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9079, - "src": "10753:22:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Dispute_$10738_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct IDisputeManager.Dispute memory) returns (bool)" - } - }, - "id": 8409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10753:31:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8410, - "nodeType": "ExpressionStatement", - "src": "10753:31:48" - }, - { - "expression": { - "id": 8417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 8411, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8387, - "src": "10827:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8413, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "10835:6:48", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 10733, - "src": "10827:14:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "expression": { - "id": 8414, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "10844:15:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$11057_$", - "typeString": "type(contract IDisputeManager)" - } - }, - "id": 8415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10860:13:48", - "memberName": "DisputeStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 10718, - "src": "10844:29:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$10718_$", - "typeString": "type(enum IDisputeManager.DisputeStatus)" - } - }, - "id": 8416, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "10874:5:48", - "memberName": "Drawn", - "nodeType": "MemberAccess", - "referencedDeclaration": 10715, - "src": "10844:35:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "src": "10827:52:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "id": 8418, - "nodeType": "ExpressionStatement", - "src": "10827:52:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 8420, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8376, - "src": "10908:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8421, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8387, - "src": "10919:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8422, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10927:7:48", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10721, - "src": "10919:15:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 8423, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8387, - "src": "10936:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8424, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10944:9:48", - "memberName": "fisherman", - "nodeType": "MemberAccess", - "referencedDeclaration": 10723, - "src": "10936:17:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 8425, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8387, - "src": "10955:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8426, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10963:7:48", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10725, - "src": "10955:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8419, - "name": "DisputeDrawn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10835, - "src": "10895:12:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (bytes32,address,address,uint256)" - } - }, - "id": 8427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10895:76:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8428, - "nodeType": "EmitStatement", - "src": "10890:81:48" - } - ] - }, - "documentation": { - "id": 8374, - "nodeType": "StructuredDocumentation", - "src": "10202:165:48", - "text": " @notice The arbitrator draws dispute.\n @dev Ignore a dispute with Id `disputeId`\n @param disputeId Id of the dispute to be disregarded" - }, - "functionSelector": "9334ea52", - "id": 8430, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8380, - "kind": "modifierInvocation", - "modifierName": { - "id": 8379, - "name": "onlyArbitrator", - "nameLocations": [ - "10430:14:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8032, - "src": "10430:14:48" - }, - "nodeType": "ModifierInvocation", - "src": "10430:14:48" - }, - { - "arguments": [ - { - "id": 8382, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8376, - "src": "10464:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 8383, - "kind": "modifierInvocation", - "modifierName": { - "id": 8381, - "name": "onlyPendingDispute", - "nameLocations": [ - "10445:18:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8065, - "src": "10445:18:48" - }, - "nodeType": "ModifierInvocation", - "src": "10445:29:48" - } - ], - "name": "drawDispute", - "nameLocation": "10381:11:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8378, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "10421:8:48" - }, - "parameters": { - "id": 8377, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8376, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "10401:9:48", - "nodeType": "VariableDeclaration", - "scope": 8430, - "src": "10393:17:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8375, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10393:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "10392:19:48" - }, - "returnParameters": { - "id": 8384, - "nodeType": "ParameterList", - "parameters": [], - "src": "10475:0:48" - }, - "scope": 9438, - "src": "10372:606:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11000 - ], - "body": { - "id": 8499, - "nodeType": "Block", - "src": "11386:674:48", - "statements": [ - { - "assignments": [ - 8445 - ], - "declarations": [ - { - "constant": false, - "id": 8445, - "mutability": "mutable", - "name": "dispute", - "nameLocation": "11412:7:48", - "nodeType": "VariableDeclaration", - "scope": 8499, - "src": "11396:23:48", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - }, - "typeName": { - "id": 8444, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8443, - "name": "Dispute", - "nameLocations": [ - "11396:7:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10738, - "src": "11396:7:48" - }, - "referencedDeclaration": 10738, - "src": "11396:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - } - }, - "visibility": "internal" - } - ], - "id": 8449, - "initialValue": { - "baseExpression": { - "id": 8446, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "11422:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 8448, - "indexExpression": { - "id": 8447, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8433, - "src": "11431:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11422:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11396:45:48" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 8451, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8445, - "src": "11508:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8452, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11516:9:48", - "memberName": "createdAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 10735, - "src": "11508:17:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 8453, - "name": "disputePeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9454, - "src": "11528:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "11508:33:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 8455, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "11544:5:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11550:9:48", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "11544:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11508:51:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8458, - "name": "DisputeManagerDisputePeriodNotFinished", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10896, - "src": "11561:38:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 8459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11561:40:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8450, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11500:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11500:102:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8461, - "nodeType": "ExpressionStatement", - "src": "11500:102:48" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 8462, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8445, - "src": "11667:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8463, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11675:7:48", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10725, - "src": "11667:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 8464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11685:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11667:19:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8476, - "nodeType": "IfStatement", - "src": "11663:110:48", - "trueBody": { - "id": 8475, - "nodeType": "Block", - "src": "11688:85:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 8469, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8445, - "src": "11727:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8470, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11735:9:48", - "memberName": "fisherman", - "nodeType": "MemberAccess", - "referencedDeclaration": 10723, - "src": "11727:17:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 8471, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8445, - "src": "11746:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8472, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11754:7:48", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10725, - "src": "11746:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8466, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4530, - "src": "11702:11:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$518_$", - "typeString": "function () view returns (contract IGraphToken)" - } - }, - "id": 8467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11702:13:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 8468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11716:10:48", - "memberName": "pushTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 578, - "src": "11702:24:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$518_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$518_$", - "typeString": "function (contract IGraphToken,address,uint256)" - } - }, - "id": 8473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11702:60:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8474, - "nodeType": "ExpressionStatement", - "src": "11702:60:48" - } - ] - } - }, - { - "expression": { - "arguments": [ - { - "id": 8478, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8445, - "src": "11850:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - ], - "id": 8477, - "name": "_cancelDisputeInConflict", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9118, - "src": "11825:24:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Dispute_$10738_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct IDisputeManager.Dispute memory) returns (bool)" - } - }, - "id": 8479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11825:33:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8480, - "nodeType": "ExpressionStatement", - "src": "11825:33:48" - }, - { - "expression": { - "id": 8487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 8481, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8445, - "src": "11901:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8483, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "11909:6:48", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 10733, - "src": "11901:14:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "expression": { - "id": 8484, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "11918:15:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$11057_$", - "typeString": "type(contract IDisputeManager)" - } - }, - "id": 8485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11934:13:48", - "memberName": "DisputeStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 10718, - "src": "11918:29:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$10718_$", - "typeString": "type(enum IDisputeManager.DisputeStatus)" - } - }, - "id": 8486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "11948:9:48", - "memberName": "Cancelled", - "nodeType": "MemberAccess", - "referencedDeclaration": 10717, - "src": "11918:39:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "src": "11901:56:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "id": 8488, - "nodeType": "ExpressionStatement", - "src": "11901:56:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 8490, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8433, - "src": "11990:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8491, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8445, - "src": "12001:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8492, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12009:7:48", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10721, - "src": "12001:15:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 8493, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8445, - "src": "12018:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8494, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12026:9:48", - "memberName": "fisherman", - "nodeType": "MemberAccess", - "referencedDeclaration": 10723, - "src": "12018:17:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 8495, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8445, - "src": "12037:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8496, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12045:7:48", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10725, - "src": "12037:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8489, - "name": "DisputeCancelled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10853, - "src": "11973:16:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (bytes32,address,address,uint256)" - } - }, - "id": 8497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11973:80:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8498, - "nodeType": "EmitStatement", - "src": "11968:85:48" - } - ] - }, - "documentation": { - "id": 8431, - "nodeType": "StructuredDocumentation", - "src": "10984:282:48", - "text": " @notice Once the dispute period ends, if the dispute status remains Pending,\n the fisherman can cancel the dispute and get back their initial deposit.\n @dev Cancel a dispute with Id `disputeId`\n @param disputeId Id of the dispute to be cancelled" - }, - "functionSelector": "1792f194", - "id": 8500, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 8437, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8433, - "src": "11345:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 8438, - "kind": "modifierInvocation", - "modifierName": { - "id": 8436, - "name": "onlyFisherman", - "nameLocations": [ - "11331:13:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8093, - "src": "11331:13:48" - }, - "nodeType": "ModifierInvocation", - "src": "11331:24:48" - }, - { - "arguments": [ - { - "id": 8440, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8433, - "src": "11375:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 8441, - "kind": "modifierInvocation", - "modifierName": { - "id": 8439, - "name": "onlyPendingDispute", - "nameLocations": [ - "11356:18:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8065, - "src": "11356:18:48" - }, - "nodeType": "ModifierInvocation", - "src": "11356:29:48" - } - ], - "name": "cancelDispute", - "nameLocation": "11280:13:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8435, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "11322:8:48" - }, - "parameters": { - "id": 8434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8433, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "11302:9:48", - "nodeType": "VariableDeclaration", - "scope": 8500, - "src": "11294:17:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8432, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11294:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "11293:19:48" - }, - "returnParameters": { - "id": 8442, - "nodeType": "ParameterList", - "parameters": [], - "src": "11386:0:48" - }, - "scope": 9438, - "src": "11271:789:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 10936 - ], - "body": { - "id": 8513, - "nodeType": "Block", - "src": "12321:43:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 8510, - "name": "arbitrator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8503, - "src": "12346:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8509, - "name": "_setArbitrator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9238, - "src": "12331:14:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12331:26:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8512, - "nodeType": "ExpressionStatement", - "src": "12331:26:48" - } - ] - }, - "documentation": { - "id": 8501, - "nodeType": "StructuredDocumentation", - "src": "12066:179:48", - "text": " @notice Set the arbitrator address.\n @dev Update the arbitrator to `_arbitrator`\n @param arbitrator The address of the arbitration contract or party" - }, - "functionSelector": "b0eefabe", - "id": 8514, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8507, - "kind": "modifierInvocation", - "modifierName": { - "id": 8506, - "name": "onlyOwner", - "nameLocations": [ - "12311:9:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "12311:9:48" - }, - "nodeType": "ModifierInvocation", - "src": "12311:9:48" - } - ], - "name": "setArbitrator", - "nameLocation": "12259:13:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8505, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "12302:8:48" - }, - "parameters": { - "id": 8504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8503, - "mutability": "mutable", - "name": "arbitrator", - "nameLocation": "12281:10:48", - "nodeType": "VariableDeclaration", - "scope": 8514, - "src": "12273:18:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8502, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "12272:20:48" - }, - "returnParameters": { - "id": 8508, - "nodeType": "ParameterList", - "parameters": [], - "src": "12321:0:48" - }, - "scope": 9438, - "src": "12250:114:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 10931 - ], - "body": { - "id": 8527, - "nodeType": "Block", - "src": "12624:49:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 8524, - "name": "disputePeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8517, - "src": "12652:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 8523, - "name": "_setDisputePeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9261, - "src": "12634:17:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 8525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12634:32:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8526, - "nodeType": "ExpressionStatement", - "src": "12634:32:48" - } - ] - }, - "documentation": { - "id": 8515, - "nodeType": "StructuredDocumentation", - "src": "12370:173:48", - "text": " @notice Set the dispute period.\n @dev Update the dispute period to `_disputePeriod` in seconds\n @param disputePeriod Dispute period in seconds" - }, - "functionSelector": "d76f62d1", - "id": 8528, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8521, - "kind": "modifierInvocation", - "modifierName": { - "id": 8520, - "name": "onlyOwner", - "nameLocations": [ - "12614:9:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "12614:9:48" - }, - "nodeType": "ModifierInvocation", - "src": "12614:9:48" - } - ], - "name": "setDisputePeriod", - "nameLocation": "12557:16:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8519, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "12605:8:48" - }, - "parameters": { - "id": 8518, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8517, - "mutability": "mutable", - "name": "disputePeriod", - "nameLocation": "12581:13:48", - "nodeType": "VariableDeclaration", - "scope": 8528, - "src": "12574:20:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 8516, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "12574:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "12573:22:48" - }, - "returnParameters": { - "id": 8522, - "nodeType": "ParameterList", - "parameters": [], - "src": "12624:0:48" - }, - "scope": 9438, - "src": "12548:125:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 10941 - ], - "body": { - "id": 8541, - "nodeType": "Block", - "src": "12981:51:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 8538, - "name": "disputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8531, - "src": "13010:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8537, - "name": "_setDisputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9285, - "src": "12991:18:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 8539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12991:34:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8540, - "nodeType": "ExpressionStatement", - "src": "12991:34:48" - } - ] - }, - "documentation": { - "id": 8529, - "nodeType": "StructuredDocumentation", - "src": "12679:218:48", - "text": " @notice Set the dispute deposit required to create a dispute.\n @dev Update the dispute deposit to `_disputeDeposit` Graph Tokens\n @param disputeDeposit The dispute deposit in Graph Tokens" - }, - "functionSelector": "16972978", - "id": 8542, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8535, - "kind": "modifierInvocation", - "modifierName": { - "id": 8534, - "name": "onlyOwner", - "nameLocations": [ - "12971:9:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "12971:9:48" - }, - "nodeType": "ModifierInvocation", - "src": "12971:9:48" - } - ], - "name": "setDisputeDeposit", - "nameLocation": "12911:17:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8533, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "12962:8:48" - }, - "parameters": { - "id": 8532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8531, - "mutability": "mutable", - "name": "disputeDeposit", - "nameLocation": "12937:14:48", - "nodeType": "VariableDeclaration", - "scope": 8542, - "src": "12929:22:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8530, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12929:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12928:24:48" - }, - "returnParameters": { - "id": 8536, - "nodeType": "ParameterList", - "parameters": [], - "src": "12981:0:48" - }, - "scope": 9438, - "src": "12902:130:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 10946 - ], - "body": { - "id": 8555, - "nodeType": "Block", - "src": "13357:60:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 8552, - "name": "fishermanRewardCut_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8545, - "src": "13390:19:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 8551, - "name": "_setFishermanRewardCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9309, - "src": "13367:22:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 8553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13367:43:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8554, - "nodeType": "ExpressionStatement", - "src": "13367:43:48" - } - ] - }, - "documentation": { - "id": 8543, - "nodeType": "StructuredDocumentation", - "src": "13038:227:48", - "text": " @notice Set the percent reward that the fisherman gets when slashing occurs.\n @dev Update the reward percentage to `_percentage`\n @param fishermanRewardCut_ Reward as a percentage of indexer stake" - }, - "functionSelector": "76c993ae", - "id": 8556, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8549, - "kind": "modifierInvocation", - "modifierName": { - "id": 8548, - "name": "onlyOwner", - "nameLocations": [ - "13347:9:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "13347:9:48" - }, - "nodeType": "ModifierInvocation", - "src": "13347:9:48" - } - ], - "name": "setFishermanRewardCut", - "nameLocation": "13279:21:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8547, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "13338:8:48" - }, - "parameters": { - "id": 8546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8545, - "mutability": "mutable", - "name": "fishermanRewardCut_", - "nameLocation": "13308:19:48", - "nodeType": "VariableDeclaration", - "scope": 8556, - "src": "13301:26:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8544, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13301:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "13300:28:48" - }, - "returnParameters": { - "id": 8550, - "nodeType": "ParameterList", - "parameters": [], - "src": "13357:0:48" - }, - "scope": 9438, - "src": "13270:147:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 10951 - ], - "body": { - "id": 8569, - "nodeType": "Block", - "src": "13667:52:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 8566, - "name": "maxSlashingCut_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8559, - "src": "13696:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 8565, - "name": "_setMaxSlashingCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9334, - "src": "13677:18:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 8567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13677:35:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8568, - "nodeType": "ExpressionStatement", - "src": "13677:35:48" - } - ] - }, - "documentation": { - "id": 8557, - "nodeType": "StructuredDocumentation", - "src": "13423:160:48", - "text": " @notice Set the maximum percentage that can be used for slashing indexers.\n @param maxSlashingCut_ Max percentage slashing for disputes" - }, - "functionSelector": "9f81a7cf", - "id": 8570, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8563, - "kind": "modifierInvocation", - "modifierName": { - "id": 8562, - "name": "onlyOwner", - "nameLocations": [ - "13657:9:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "13657:9:48" - }, - "nodeType": "ModifierInvocation", - "src": "13657:9:48" - } - ], - "name": "setMaxSlashingCut", - "nameLocation": "13597:17:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8561, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "13648:8:48" - }, - "parameters": { - "id": 8560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8559, - "mutability": "mutable", - "name": "maxSlashingCut_", - "nameLocation": "13622:15:48", - "nodeType": "VariableDeclaration", - "scope": 8570, - "src": "13615:22:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8558, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "13615:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "13614:24:48" - }, - "returnParameters": { - "id": 8564, - "nodeType": "ParameterList", - "parameters": [], - "src": "13667:0:48" - }, - "scope": 9438, - "src": "13588:131:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11005 - ], - "body": { - "id": 8583, - "nodeType": "Block", - "src": "14008:53:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 8580, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8573, - "src": "14038:15:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8579, - "name": "_setSubgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9362, - "src": "14018:19:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14018:36:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8582, - "nodeType": "ExpressionStatement", - "src": "14018:36:48" - } - ] - }, - "documentation": { - "id": 8571, - "nodeType": "StructuredDocumentation", - "src": "13725:197:48", - "text": " @notice Set the subgraph service address.\n @dev Update the subgraph service to `_subgraphService`\n @param subgraphService The address of the subgraph service contract" - }, - "functionSelector": "93a90a1e", - "id": 8584, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8577, - "kind": "modifierInvocation", - "modifierName": { - "id": 8576, - "name": "onlyOwner", - "nameLocations": [ - "13998:9:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "13998:9:48" - }, - "nodeType": "ModifierInvocation", - "src": "13998:9:48" - } - ], - "name": "setSubgraphService", - "nameLocation": "13936:18:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8575, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "13989:8:48" - }, - "parameters": { - "id": 8574, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8573, - "mutability": "mutable", - "name": "subgraphService", - "nameLocation": "13963:15:48", - "nodeType": "VariableDeclaration", - "scope": 8584, - "src": "13955:23:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8572, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13955:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "13954:25:48" - }, - "returnParameters": { - "id": 8578, - "nodeType": "ParameterList", - "parameters": [], - "src": "14008:0:48" - }, - "scope": 9438, - "src": "13927:134:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11030 - ], - "body": { - "id": 8598, - "nodeType": "Block", - "src": "14601:47:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 8595, - "name": "receipt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8588, - "src": "14633:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt memory" - } - ], - "id": 8594, - "name": "_encodeReceipt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13225, - "src": "14618:14:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Receipt_$11685_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (struct Attestation.Receipt memory) view returns (bytes32)" - } - }, - "id": 8596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14618:23:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 8593, - "id": 8597, - "nodeType": "Return", - "src": "14611:30:48" - } - ] - }, - "documentation": { - "id": 8585, - "nodeType": "StructuredDocumentation", - "src": "14067:429:48", - "text": " @notice Get the message hash that a indexer used to sign the receipt.\n Encodes a receipt using a domain separator, as described on\n https://github.com/ethereum/EIPs/blob/master/EIPS/eip-712.md#specification.\n @dev Return the message hash used to sign the receipt\n @param receipt Receipt returned by indexer and submitted by fisherman\n @return Message hash used to sign the receipt" - }, - "functionSelector": "6369df6b", - "id": 8599, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "encodeReceipt", - "nameLocation": "14510:13:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8590, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "14574:8:48" - }, - "parameters": { - "id": 8589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8588, - "mutability": "mutable", - "name": "receipt", - "nameLocation": "14551:7:48", - "nodeType": "VariableDeclaration", - "scope": 8599, - "src": "14524:34:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt" - }, - "typeName": { - "id": 8587, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8586, - "name": "Attestation.Receipt", - "nameLocations": [ - "14524:11:48", - "14536:7:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11685, - "src": "14524:19:48" - }, - "referencedDeclaration": 11685, - "src": "14524:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_storage_ptr", - "typeString": "struct Attestation.Receipt" - } - }, - "visibility": "internal" - } - ], - "src": "14523:36:48" - }, - "returnParameters": { - "id": 8593, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8592, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8599, - "src": "14592:7:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8591, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14592:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "14591:9:48" - }, - "scope": 9438, - "src": "14501:147:48", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11010 - ], - "body": { - "id": 8608, - "nodeType": "Block", - "src": "14821:42:48", - "statements": [ - { - "expression": { - "id": 8606, - "name": "fishermanRewardCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9460, - "src": "14838:18:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 8605, - "id": 8607, - "nodeType": "Return", - "src": "14831:25:48" - } - ] - }, - "documentation": { - "id": 8600, - "nodeType": "StructuredDocumentation", - "src": "14654:96:48", - "text": " @notice Get the verifier cut.\n @return Verifier cut in percentage (ppm)" - }, - "functionSelector": "84633713", - "id": 8609, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getVerifierCut", - "nameLocation": "14764:14:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8602, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "14795:8:48" - }, - "parameters": { - "id": 8601, - "nodeType": "ParameterList", - "parameters": [], - "src": "14778:2:48" - }, - "returnParameters": { - "id": 8605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8604, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8609, - "src": "14813:6:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 8603, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "14813:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "14812:8:48" - }, - "scope": 9438, - "src": "14755:108:48", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11015 - ], - "body": { - "id": 8618, - "nodeType": "Block", - "src": "15033:37:48", - "statements": [ - { - "expression": { - "id": 8616, - "name": "disputePeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9454, - "src": "15050:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 8615, - "id": 8617, - "nodeType": "Return", - "src": "15043:20:48" - } - ] - }, - "documentation": { - "id": 8610, - "nodeType": "StructuredDocumentation", - "src": "14869:91:48", - "text": " @notice Get the dispute period.\n @return Dispute period in seconds" - }, - "functionSelector": "5aea0ec4", - "id": 8619, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDisputePeriod", - "nameLocation": "14974:16:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8612, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "15007:8:48" - }, - "parameters": { - "id": 8611, - "nodeType": "ParameterList", - "parameters": [], - "src": "14990:2:48" - }, - "returnParameters": { - "id": 8615, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8614, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8619, - "src": "15025:6:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 8613, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "15025:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "15024:8:48" - }, - "scope": 9438, - "src": "14965:105:48", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11045 - ], - "body": { - "id": 8649, - "nodeType": "Block", - "src": "15272:186:48", - "statements": [ - { - "assignments": [ - 8632 - ], - "declarations": [ - { - "constant": false, - "id": 8632, - "mutability": "mutable", - "name": "provision", - "nameLocation": "15315:9:48", - "nodeType": "VariableDeclaration", - "scope": 8649, - "src": "15282:42:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 8631, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8630, - "name": "IHorizonStaking.Provision", - "nameLocations": [ - "15282:15:48", - "15298:9:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "15282:25:48" - }, - "referencedDeclaration": 3718, - "src": "15282:25:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - } - ], - "id": 8642, - "initialValue": { - "arguments": [ - { - "id": 8636, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8622, - "src": "15356:7:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 8639, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9448, - "src": "15373:15:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - ], - "id": 8638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15365:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15365:7:48", - "typeDescriptions": {} - } - }, - "id": 8640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15365:24:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8633, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "15327:13:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 8634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15327:15:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 8635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15343:12:48", - "memberName": "getProvision", - "nodeType": "MemberAccess", - "referencedDeclaration": 2784, - "src": "15327:28:48", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_Provision_$3718_memory_ptr_$", - "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.Provision memory)" - } - }, - "id": 8641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15327:63:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15282:108:48" - }, - { - "expression": { - "arguments": [ - { - "id": 8644, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8622, - "src": "15425:7:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 8645, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8632, - "src": "15434:9:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 8646, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15444:6:48", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 3701, - "src": "15434:16:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8643, - "name": "_getStakeSnapshot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9437, - "src": "15407:17:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address,uint256) view returns (uint256)" - } - }, - "id": 8647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15407:44:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8627, - "id": 8648, - "nodeType": "Return", - "src": "15400:51:48" - } - ] - }, - "documentation": { - "id": 8620, - "nodeType": "StructuredDocumentation", - "src": "15076:107:48", - "text": " @notice Get the stake snapshot for an indexer.\n @param indexer The indexer address" - }, - "functionSelector": "c133b429", - "id": 8650, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStakeSnapshot", - "nameLocation": "15197:16:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8624, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "15245:8:48" - }, - "parameters": { - "id": 8623, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8622, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "15222:7:48", - "nodeType": "VariableDeclaration", - "scope": 8650, - "src": "15214:15:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15214:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "15213:17:48" - }, - "returnParameters": { - "id": 8627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8626, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8650, - "src": "15263:7:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15263:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "15262:9:48" - }, - "scope": 9438, - "src": "15188:270:48", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11056 - ], - "body": { - "id": 8669, - "nodeType": "Block", - "src": "15812:78:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 8665, - "name": "attestation1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8654, - "src": "15856:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - { - "id": 8666, - "name": "attestation2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8657, - "src": "15870:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - }, - { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - ], - "expression": { - "id": 8663, - "name": "Attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11920, - "src": "15829:11:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Attestation_$11920_$", - "typeString": "type(library Attestation)" - } - }, - "id": 8664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15841:14:48", - "memberName": "areConflicting", - "nodeType": "MemberAccess", - "referencedDeclaration": 11783, - "src": "15829:26:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11699_memory_ptr_$_t_struct$_State_$11699_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct Attestation.State memory,struct Attestation.State memory) pure returns (bool)" - } - }, - "id": 8667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15829:54:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 8662, - "id": 8668, - "nodeType": "Return", - "src": "15822:61:48" - } - ] - }, - "documentation": { - "id": 8651, - "nodeType": "StructuredDocumentation", - "src": "15464:169:48", - "text": " @notice Checks if two attestations are conflicting.\n @param attestation1 The first attestation\n @param attestation2 The second attestation" - }, - "functionSelector": "d36fc9d4", - "id": 8670, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "areConflictingAttestations", - "nameLocation": "15647:26:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8659, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "15788:8:48" - }, - "parameters": { - "id": 8658, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8654, - "mutability": "mutable", - "name": "attestation1", - "nameLocation": "15708:12:48", - "nodeType": "VariableDeclaration", - "scope": 8670, - "src": "15683:37:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 8653, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8652, - "name": "Attestation.State", - "nameLocations": [ - "15683:11:48", - "15695:5:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "15683:17:48" - }, - "referencedDeclaration": 11699, - "src": "15683:17:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8657, - "mutability": "mutable", - "name": "attestation2", - "nameLocation": "15755:12:48", - "nodeType": "VariableDeclaration", - "scope": 8670, - "src": "15730:37:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 8656, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8655, - "name": "Attestation.State", - "nameLocations": [ - "15730:11:48", - "15742:5:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "15730:17:48" - }, - "referencedDeclaration": 11699, - "src": "15730:17:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - } - ], - "src": "15673:100:48" - }, - "returnParameters": { - "id": 8662, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8661, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8670, - "src": "15806:4:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8660, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15806:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "15805:6:48" - }, - "scope": 9438, - "src": "15638:252:48", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 10990 - ], - "body": { - "id": 8726, - "nodeType": "Block", - "src": "16187:582:48", - "statements": [ - { - "assignments": [ - 8684 - ], - "declarations": [ - { - "constant": false, - "id": 8684, - "mutability": "mutable", - "name": "dispute", - "nameLocation": "16213:7:48", - "nodeType": "VariableDeclaration", - "scope": 8726, - "src": "16197:23:48", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - }, - "typeName": { - "id": 8683, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8682, - "name": "Dispute", - "nameLocations": [ - "16197:7:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10738, - "src": "16197:7:48" - }, - "referencedDeclaration": 10738, - "src": "16197:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - } - }, - "visibility": "internal" - } - ], - "id": 8688, - "initialValue": { - "baseExpression": { - "id": 8685, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "16223:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 8687, - "indexExpression": { - "id": 8686, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "16232:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16223:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16197:45:48" - }, - { - "expression": { - "id": 8695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 8689, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8684, - "src": "16285:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8691, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "16293:6:48", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 10733, - "src": "16285:14:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "expression": { - "id": 8692, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "16302:15:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$11057_$", - "typeString": "type(contract IDisputeManager)" - } - }, - "id": 8693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16318:13:48", - "memberName": "DisputeStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 10718, - "src": "16302:29:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$10718_$", - "typeString": "type(enum IDisputeManager.DisputeStatus)" - } - }, - "id": 8694, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "16332:8:48", - "memberName": "Rejected", - "nodeType": "MemberAccess", - "referencedDeclaration": 10714, - "src": "16302:38:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "src": "16285:55:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "id": 8696, - "nodeType": "ExpressionStatement", - "src": "16285:55:48" - }, - { - "expression": { - "arguments": [ - { - "id": 8701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16446:30:48", - "subExpression": { - "arguments": [ - { - "id": 8699, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8684, - "src": "16468:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - ], - "id": 8698, - "name": "_isDisputeInConflict", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9390, - "src": "16447:20:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Dispute_$10738_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct IDisputeManager.Dispute memory) view returns (bool)" - } - }, - "id": 8700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16447:29:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 8703, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "16529:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8704, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8684, - "src": "16540:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8705, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16548:16:48", - "memberName": "relatedDisputeId", - "nodeType": "MemberAccess", - "referencedDeclaration": 10727, - "src": "16540:24:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8702, - "name": "DisputeManagerMustAcceptRelatedDispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10902, - "src": "16490:38:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$_t_bytes32_$returns$_t_error_$", - "typeString": "function (bytes32,bytes32) pure returns (error)" - } - }, - "id": 8706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16490:75:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "16425:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16425:150:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8708, - "nodeType": "ExpressionStatement", - "src": "16425:150:48" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 8712, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8684, - "src": "16651:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8713, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16659:7:48", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10725, - "src": "16651:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8709, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4530, - "src": "16626:11:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$518_$", - "typeString": "function () view returns (contract IGraphToken)" - } - }, - "id": 8710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16626:13:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 8711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16640:10:48", - "memberName": "burnTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 599, - "src": "16626:24:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$518_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$518_$", - "typeString": "function (contract IGraphToken,uint256)" - } - }, - "id": 8714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16626:41:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8715, - "nodeType": "ExpressionStatement", - "src": "16626:41:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 8717, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "16699:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8718, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8684, - "src": "16710:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8719, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16718:7:48", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 10721, - "src": "16710:15:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 8720, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8684, - "src": "16727:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8721, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16735:9:48", - "memberName": "fisherman", - "nodeType": "MemberAccess", - "referencedDeclaration": 10723, - "src": "16727:17:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 8722, - "name": "dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8684, - "src": "16746:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 8723, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16754:7:48", - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 10725, - "src": "16746:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8716, - "name": "DisputeRejected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10824, - "src": "16683:15:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (bytes32,address,address,uint256)" - } - }, - "id": 8724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16683:79:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8725, - "nodeType": "EmitStatement", - "src": "16678:84:48" - } - ] - }, - "documentation": { - "id": 8671, - "nodeType": "StructuredDocumentation", - "src": "15896:183:48", - "text": " @notice The arbitrator rejects a dispute as being invalid.\n @dev Reject a dispute with Id `disputeId`\n @param disputeId Id of the dispute to be rejected" - }, - "functionSelector": "36167e03", - "id": 8727, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 8677, - "kind": "modifierInvocation", - "modifierName": { - "id": 8676, - "name": "onlyArbitrator", - "nameLocations": [ - "16142:14:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8032, - "src": "16142:14:48" - }, - "nodeType": "ModifierInvocation", - "src": "16142:14:48" - }, - { - "arguments": [ - { - "id": 8679, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8673, - "src": "16176:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 8680, - "kind": "modifierInvocation", - "modifierName": { - "id": 8678, - "name": "onlyPendingDispute", - "nameLocations": [ - "16157:18:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 8065, - "src": "16157:18:48" - }, - "nodeType": "ModifierInvocation", - "src": "16157:29:48" - } - ], - "name": "rejectDispute", - "nameLocation": "16093:13:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8675, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "16133:8:48" - }, - "parameters": { - "id": 8674, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8673, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "16115:9:48", - "nodeType": "VariableDeclaration", - "scope": 8727, - "src": "16107:17:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8672, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "16107:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "16106:19:48" - }, - "returnParameters": { - "id": 8681, - "nodeType": "ParameterList", - "parameters": [], - "src": "16187:0:48" - }, - "scope": 9438, - "src": "16084:685:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 11038 - ], - "body": { - "id": 8782, - "nodeType": "Block", - "src": "17022:568:48", - "statements": [ - { - "assignments": [ - 8737 - ], - "declarations": [ - { - "constant": false, - "id": 8737, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "17112:12:48", - "nodeType": "VariableDeclaration", - "scope": 8782, - "src": "17104:20:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8736, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17104:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 8741, - "initialValue": { - "arguments": [ - { - "id": 8739, - "name": "attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8731, - "src": "17142:11:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - ], - "id": 8738, - "name": "_recoverSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13195, - "src": "17127:14:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_State_$11699_memory_ptr_$returns$_t_address_$", - "typeString": "function (struct Attestation.State memory) view returns (address)" - } - }, - "id": 8740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17127:27:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17104:50:48" - }, - { - "assignments": [ - 8746 - ], - "declarations": [ - { - "constant": false, - "id": 8746, - "mutability": "mutable", - "name": "alloc", - "nameLocation": "17189:5:48", - "nodeType": "VariableDeclaration", - "scope": 8782, - "src": "17165:29:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 8745, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8744, - "name": "Allocation.State", - "nameLocations": [ - "17165:10:48", - "17176:5:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "17165:16:48" - }, - "referencedDeclaration": 11307, - "src": "17165:16:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 8751, - "initialValue": { - "arguments": [ - { - "id": 8749, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8737, - "src": "17227:12:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 8747, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9448, - "src": "17197:15:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "id": 8748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17213:13:48", - "memberName": "getAllocation", - "nodeType": "MemberAccess", - "referencedDeclaration": 11244, - "src": "17197:29:48", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (address) view external returns (struct Allocation.State memory)" - } - }, - "id": 8750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17197:43:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17165:75:48" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 8753, - "name": "alloc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8746, - "src": "17258:5:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 8754, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17264:7:48", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "17258:13:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 8757, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17283:1:48", - "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": 8756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17275:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8755, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17275:7:48", - "typeDescriptions": {} - } - }, - "id": 8758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17275:10:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17258:27:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 8761, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8737, - "src": "17317:12:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8760, - "name": "DisputeManagerIndexerNotFound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10906, - "src": "17287:29:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 8762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17287:43:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8752, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "17250:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17250:81:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8764, - "nodeType": "ExpressionStatement", - "src": "17250:81:48" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 8770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 8766, - "name": "alloc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8746, - "src": "17362:5:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 8767, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17368:20:48", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "17362:26:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 8768, - "name": "attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8731, - "src": "17392:11:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8769, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17404:20:48", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11692, - "src": "17392:32:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "17362:62:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "expression": { - "id": 8772, - "name": "alloc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8746, - "src": "17482:5:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 8773, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17488:20:48", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "17482:26:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8774, - "name": "attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8731, - "src": "17510:11:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8775, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17522:20:48", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11692, - "src": "17510:32:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8771, - "name": "DisputeManagerNonMatchingSubgraphDeployment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10912, - "src": "17438:43:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$_t_bytes32_$returns$_t_error_$", - "typeString": "function (bytes32,bytes32) pure returns (error)" - } - }, - "id": 8776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17438:105:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8765, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "17341:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17341:212:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8778, - "nodeType": "ExpressionStatement", - "src": "17341:212:48" - }, - { - "expression": { - "expression": { - "id": 8779, - "name": "alloc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8746, - "src": "17570:5:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 8780, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17576:7:48", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "17570:13:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 8735, - "id": 8781, - "nodeType": "Return", - "src": "17563:20:48" - } - ] - }, - "documentation": { - "id": 8728, - "nodeType": "StructuredDocumentation", - "src": "16775:143:48", - "text": " @notice Returns the indexer that signed an attestation.\n @param attestation Attestation\n @return indexer address" - }, - "functionSelector": "c9747f51", - "id": 8783, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAttestationIndexer", - "nameLocation": "16932:21:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8732, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8731, - "mutability": "mutable", - "name": "attestation", - "nameLocation": "16979:11:48", - "nodeType": "VariableDeclaration", - "scope": 8783, - "src": "16954:36:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 8730, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8729, - "name": "Attestation.State", - "nameLocations": [ - "16954:11:48", - "16966:5:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "16954:17:48" - }, - "referencedDeclaration": 11699, - "src": "16954:17:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - } - ], - "src": "16953:38:48" - }, - "returnParameters": { - "id": 8735, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8734, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8783, - "src": "17013:7:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8733, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17013:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "17012:9:48" - }, - "scope": 9438, - "src": "16923:667:48", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 11022 - ], - "body": { - "id": 8800, - "nodeType": "Block", - "src": "17860:72:48", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - }, - "id": 8798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 8792, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "17877:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 8794, - "indexExpression": { - "id": 8793, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8786, - "src": "17886:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17877:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "id": 8795, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17897:6:48", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 10733, - "src": "17877:26:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 8796, - "name": "DisputeStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10718, - "src": "17907:13:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$10718_$", - "typeString": "type(enum IDisputeManager.DisputeStatus)" - } - }, - "id": 8797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "17921:4:48", - "memberName": "Null", - "nodeType": "MemberAccess", - "referencedDeclaration": 10712, - "src": "17907:18:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "src": "17877:48:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 8791, - "id": 8799, - "nodeType": "Return", - "src": "17870:55:48" - } - ] - }, - "documentation": { - "id": 8784, - "nodeType": "StructuredDocumentation", - "src": "17596:178:48", - "text": " @notice Return whether a dispute exists or not.\n @dev Return if dispute with Id `disputeId` exists\n @param disputeId True if dispute already exists" - }, - "functionSelector": "be41f384", - "id": 8801, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDisputeCreated", - "nameLocation": "17788:16:48", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 8788, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "17836:8:48" - }, - "parameters": { - "id": 8787, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8786, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "17813:9:48", - "nodeType": "VariableDeclaration", - "scope": 8801, - "src": "17805:17:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8785, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "17805:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "17804:19:48" - }, - "returnParameters": { - "id": 8791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8790, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8801, - "src": "17854:4:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8789, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17854:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "17853:6:48" - }, - "scope": 9438, - "src": "17779:153:48", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 8912, - "nodeType": "Block", - "src": "18694:1501:48", - "statements": [ - { - "assignments": [ - 8817 - ], - "declarations": [ - { - "constant": false, - "id": 8817, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "18767:7:48", - "nodeType": "VariableDeclaration", - "scope": 8912, - "src": "18759:15:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18759:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 8821, - "initialValue": { - "arguments": [ - { - "id": 8819, - "name": "_attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8809, - "src": "18799:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - ], - "id": 8818, - "name": "getAttestationIndexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8783, - "src": "18777:21:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_State_$11699_memory_ptr_$returns$_t_address_$", - "typeString": "function (struct Attestation.State memory) view returns (address)" - } - }, - "id": 8820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18777:35:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18759:53:48" - }, - { - "assignments": [ - 8826 - ], - "declarations": [ - { - "constant": false, - "id": 8826, - "mutability": "mutable", - "name": "provision", - "nameLocation": "18893:9:48", - "nodeType": "VariableDeclaration", - "scope": 8912, - "src": "18860:42:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 8825, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8824, - "name": "IHorizonStaking.Provision", - "nameLocations": [ - "18860:15:48", - "18876:9:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "18860:25:48" - }, - "referencedDeclaration": 3718, - "src": "18860:25:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - } - ], - "id": 8836, - "initialValue": { - "arguments": [ - { - "id": 8830, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8817, - "src": "18934:7:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 8833, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9448, - "src": "18951:15:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - ], - "id": 8832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18943:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8831, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18943:7:48", - "typeDescriptions": {} - } - }, - "id": 8834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18943:24:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8827, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "18905:13:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 8828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18905:15:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 8829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18921:12:48", - "memberName": "getProvision", - "nodeType": "MemberAccess", - "referencedDeclaration": 2784, - "src": "18905:28:48", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_Provision_$3718_memory_ptr_$", - "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.Provision memory)" - } - }, - "id": 8835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18905:63:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18860:108:48" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 8838, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8826, - "src": "18986:9:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 8839, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18996:6:48", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 3701, - "src": "18986:16:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 8840, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19006:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18986:21:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8842, - "name": "DisputeManagerZeroTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10863, - "src": "19009:24:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 8843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19009:26:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8837, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "18978:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18978:58:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8845, - "nodeType": "ExpressionStatement", - "src": "18978:58:48" - }, - { - "assignments": [ - 8847 - ], - "declarations": [ - { - "constant": false, - "id": 8847, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "19085:9:48", - "nodeType": "VariableDeclaration", - "scope": 8912, - "src": "19077:17:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8846, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "19077:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 8861, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 8851, - "name": "_attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8809, - "src": "19154:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8852, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19167:10:48", - "memberName": "requestCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11688, - "src": "19154:23:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8853, - "name": "_attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8809, - "src": "19195:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8854, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19208:11:48", - "memberName": "responseCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11690, - "src": "19195:24:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 8855, - "name": "_attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8809, - "src": "19237:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8856, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19250:20:48", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11692, - "src": "19237:33:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 8857, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8817, - "src": "19288:7:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8858, - "name": "_fisherman", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8804, - "src": "19313:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 8849, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "19120:3:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 8850, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "19124:12:48", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "19120:16:48", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 8859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19120:217:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8848, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "19097:9:48", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 8860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19097:250:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19077:270:48" - }, - { - "expression": { - "arguments": [ - { - "id": 8866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "19442:28:48", - "subExpression": { - "arguments": [ - { - "id": 8864, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8847, - "src": "19460:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8863, - "name": "isDisputeCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "19443:16:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view returns (bool)" - } - }, - "id": 8865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19443:27:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 8868, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8847, - "src": "19508:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8867, - "name": "DisputeManagerDisputeAlreadyCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10894, - "src": "19472:35:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", - "typeString": "function (bytes32) pure returns (error)" - } - }, - "id": 8869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19472:46:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8862, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "19434:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19434:85:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8871, - "nodeType": "ExpressionStatement", - "src": "19434:85:48" - }, - { - "assignments": [ - 8873 - ], - "declarations": [ - { - "constant": false, - "id": 8873, - "mutability": "mutable", - "name": "stakeSnapshot", - "nameLocation": "19563:13:48", - "nodeType": "VariableDeclaration", - "scope": 8912, - "src": "19555:21:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8872, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19555:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 8879, - "initialValue": { - "arguments": [ - { - "id": 8875, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8817, - "src": "19597:7:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 8876, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8826, - "src": "19606:9:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 8877, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19616:6:48", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 3701, - "src": "19606:16:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8874, - "name": "_getStakeSnapshot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9437, - "src": "19579:17:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address,uint256) view returns (uint256)" - } - }, - "id": 8878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19579:44:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19555:68:48" - }, - { - "expression": { - "id": 8897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 8880, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "19633:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 8882, - "indexExpression": { - "id": 8881, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8847, - "src": "19642:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19633:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 8884, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8817, - "src": "19676:7:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8885, - "name": "_fisherman", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8804, - "src": "19697:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8886, - "name": "_deposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "19721:8:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "30", - "id": 8887, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19743:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "expression": { - "id": 8888, - "name": "DisputeType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10710, - "src": "19781:11:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeType_$10710_$", - "typeString": "type(enum IDisputeManager.DisputeType)" - } - }, - "id": 8889, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "19793:12:48", - "memberName": "QueryDispute", - "nodeType": "MemberAccess", - "referencedDeclaration": 10709, - "src": "19781:24:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeType_$10710", - "typeString": "enum IDisputeManager.DisputeType" - } - }, - { - "expression": { - "expression": { - "id": 8890, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "19819:15:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$11057_$", - "typeString": "type(contract IDisputeManager)" - } - }, - "id": 8891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19835:13:48", - "memberName": "DisputeStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 10718, - "src": "19819:29:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$10718_$", - "typeString": "type(enum IDisputeManager.DisputeStatus)" - } - }, - "id": 8892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "19849:7:48", - "memberName": "Pending", - "nodeType": "MemberAccess", - "referencedDeclaration": 10716, - "src": "19819:37:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - { - "expression": { - "id": 8893, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "19870:5:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 8894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19876:9:48", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "19870:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 8895, - "name": "stakeSnapshot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8873, - "src": "19899:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_enum$_DisputeType_$10710", - "typeString": "enum IDisputeManager.DisputeType" - }, - { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8883, - "name": "Dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10738, - "src": "19655:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Dispute_$10738_storage_ptr_$", - "typeString": "type(struct IDisputeManager.Dispute storage pointer)" - } - }, - "id": 8896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19655:267:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute memory" - } - }, - "src": "19633:289:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "id": 8898, - "nodeType": "ExpressionStatement", - "src": "19633:289:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 8900, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8847, - "src": "19971:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 8901, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8817, - "src": "19994:7:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8902, - "name": "_fisherman", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8804, - "src": "20015:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8903, - "name": "_deposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8806, - "src": "20039:8:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 8904, - "name": "_attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8809, - "src": "20061:12:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 8905, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20074:20:48", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11692, - "src": "20061:33:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 8906, - "name": "_attestationData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8811, - "src": "20108:16:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 8907, - "name": "stakeSnapshot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8873, - "src": "20138:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8899, - "name": "QueryDisputeCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10785, - "src": "19938:19:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (bytes32,address,address,uint256,bytes32,bytes memory,uint256)" - } - }, - "id": 8908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19938:223:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8909, - "nodeType": "EmitStatement", - "src": "19933:228:48" - }, - { - "expression": { - "id": 8910, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8847, - "src": "20179:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 8815, - "id": 8911, - "nodeType": "Return", - "src": "20172:16:48" - } - ] - }, - "documentation": { - "id": 8802, - "nodeType": "StructuredDocumentation", - "src": "17938:535:48", - "text": " @notice Create a query dispute passing the parsed attestation.\n To be used in createQueryDispute() and createQueryDisputeConflict()\n to avoid calling parseAttestation() multiple times\n `attestationData` is only passed to be emitted\n @param _fisherman Creator of dispute\n @param _deposit Amount of tokens staked as deposit\n @param _attestation Attestation struct parsed from bytes\n @param _attestationData Attestation bytes submitted by the fisherman\n @return DisputeId" - }, - "id": 8913, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_createQueryDisputeWithAttestation", - "nameLocation": "18487:34:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8812, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8804, - "mutability": "mutable", - "name": "_fisherman", - "nameLocation": "18539:10:48", - "nodeType": "VariableDeclaration", - "scope": 8913, - "src": "18531:18:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8803, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18531:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8806, - "mutability": "mutable", - "name": "_deposit", - "nameLocation": "18567:8:48", - "nodeType": "VariableDeclaration", - "scope": 8913, - "src": "18559:16:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8805, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18559:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8809, - "mutability": "mutable", - "name": "_attestation", - "nameLocation": "18610:12:48", - "nodeType": "VariableDeclaration", - "scope": 8913, - "src": "18585:37:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 8808, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8807, - "name": "Attestation.State", - "nameLocations": [ - "18585:11:48", - "18597:5:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "18585:17:48" - }, - "referencedDeclaration": 11699, - "src": "18585:17:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8811, - "mutability": "mutable", - "name": "_attestationData", - "nameLocation": "18645:16:48", - "nodeType": "VariableDeclaration", - "scope": 8913, - "src": "18632:29:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8810, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18632:5:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "18521:146:48" - }, - "returnParameters": { - "id": 8815, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8814, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 8913, - "src": "18685:7:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8813, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "18685:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "18684:9:48" - }, - "scope": 9438, - "src": "18478:1717:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9039, - "nodeType": "Block", - "src": "20668:1283:48", - "statements": [ - { - "assignments": [ - 8928 - ], - "declarations": [ - { - "constant": false, - "id": 8928, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "20716:9:48", - "nodeType": "VariableDeclaration", - "scope": 9039, - "src": "20708:17:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8927, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "20708:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 8936, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 8932, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8920, - "src": "20755:13:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 8933, - "name": "_poi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8922, - "src": "20770:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 8930, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "20738:3:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 8931, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "20742:12:48", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "20738:16:48", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 8934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20738:37:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8929, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "20728:9:48", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 8935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20728:48:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20708:68:48" - }, - { - "expression": { - "arguments": [ - { - "id": 8941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20853:28:48", - "subExpression": { - "arguments": [ - { - "id": 8939, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8928, - "src": "20871:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8938, - "name": "isDisputeCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8801, - "src": "20854:16:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view returns (bool)" - } - }, - "id": 8940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20854:27:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 8943, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8928, - "src": "20919:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8942, - "name": "DisputeManagerDisputeAlreadyCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10894, - "src": "20883:35:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", - "typeString": "function (bytes32) pure returns (error)" - } - }, - "id": 8944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20883:46:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8937, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "20845:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20845:85:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8946, - "nodeType": "ExpressionStatement", - "src": "20845:85:48" - }, - { - "assignments": [ - 8951 - ], - "declarations": [ - { - "constant": false, - "id": 8951, - "mutability": "mutable", - "name": "alloc", - "nameLocation": "20998:5:48", - "nodeType": "VariableDeclaration", - "scope": 9039, - "src": "20974:29:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 8950, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8949, - "name": "Allocation.State", - "nameLocations": [ - "20974:10:48", - "20985:5:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "20974:16:48" - }, - "referencedDeclaration": 11307, - "src": "20974:16:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 8956, - "initialValue": { - "arguments": [ - { - "id": 8954, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8920, - "src": "21036:13:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 8952, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9448, - "src": "21006:15:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "id": 8953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21022:13:48", - "memberName": "getAllocation", - "nodeType": "MemberAccess", - "referencedDeclaration": 11244, - "src": "21006:29:48", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (address) view external returns (struct Allocation.State memory)" - } - }, - "id": 8955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21006:44:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20974:76:48" - }, - { - "assignments": [ - 8958 - ], - "declarations": [ - { - "constant": false, - "id": 8958, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "21068:7:48", - "nodeType": "VariableDeclaration", - "scope": 9039, - "src": "21060:15:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21060:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 8961, - "initialValue": { - "expression": { - "id": 8959, - "name": "alloc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8951, - "src": "21078:5:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 8960, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21084:7:48", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "21078:13:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21060:31:48" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 8963, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8958, - "src": "21109:7:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 8966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21128:1:48", - "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": 8965, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21120:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8964, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21120:7:48", - "typeDescriptions": {} - } - }, - "id": 8967, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21120:10:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21109:21:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 8970, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8920, - "src": "21162:13:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8969, - "name": "DisputeManagerIndexerNotFound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10906, - "src": "21132:29:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 8971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21132:44:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8962, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "21101:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21101:76:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8973, - "nodeType": "ExpressionStatement", - "src": "21101:76:48" - }, - { - "assignments": [ - 8978 - ], - "declarations": [ - { - "constant": false, - "id": 8978, - "mutability": "mutable", - "name": "provision", - "nameLocation": "21263:9:48", - "nodeType": "VariableDeclaration", - "scope": 9039, - "src": "21230:42:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 8977, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 8976, - "name": "IHorizonStaking.Provision", - "nameLocations": [ - "21230:15:48", - "21246:9:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "21230:25:48" - }, - "referencedDeclaration": 3718, - "src": "21230:25:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - } - ], - "id": 8988, - "initialValue": { - "arguments": [ - { - "id": 8982, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8958, - "src": "21304:7:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 8985, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9448, - "src": "21321:15:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - ], - "id": 8984, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21313:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 8983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21313:7:48", - "typeDescriptions": {} - } - }, - "id": 8986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21313:24:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8979, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "21275:13:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 8980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21275:15:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 8981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21291:12:48", - "memberName": "getProvision", - "nodeType": "MemberAccess", - "referencedDeclaration": 2784, - "src": "21275:28:48", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_Provision_$3718_memory_ptr_$", - "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.Provision memory)" - } - }, - "id": 8987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21275:63:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21230:108:48" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 8990, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8978, - "src": "21356:9:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 8991, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21366:6:48", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 3701, - "src": "21356:16:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 8992, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21376:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21356:21:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8994, - "name": "DisputeManagerZeroTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10863, - "src": "21379:24:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 8995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21379:26:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 8989, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "21348:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 8996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21348:58:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8997, - "nodeType": "ExpressionStatement", - "src": "21348:58:48" - }, - { - "assignments": [ - 8999 - ], - "declarations": [ - { - "constant": false, - "id": 8999, - "mutability": "mutable", - "name": "stakeSnapshot", - "nameLocation": "21450:13:48", - "nodeType": "VariableDeclaration", - "scope": 9039, - "src": "21442:21:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8998, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21442:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 9005, - "initialValue": { - "arguments": [ - { - "id": 9001, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8958, - "src": "21484:7:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 9002, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8978, - "src": "21493:9:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 9003, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21503:6:48", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 3701, - "src": "21493:16:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9000, - "name": "_getStakeSnapshot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9437, - "src": "21466:17:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address,uint256) view returns (uint256)" - } - }, - "id": 9004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21466:44:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21442:68:48" - }, - { - "expression": { - "id": 9024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 9006, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "21520:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 9008, - "indexExpression": { - "id": 9007, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8928, - "src": "21529:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21520:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 9010, - "name": "alloc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8951, - "src": "21563:5:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 9011, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21569:7:48", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "21563:13:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9012, - "name": "_fisherman", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8916, - "src": "21590:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9013, - "name": "_deposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8918, - "src": "21614:8:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "30", - "id": 9014, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21636:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "expression": { - "id": 9015, - "name": "DisputeType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10710, - "src": "21651:11:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeType_$10710_$", - "typeString": "type(enum IDisputeManager.DisputeType)" - } - }, - "id": 9016, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "21663:15:48", - "memberName": "IndexingDispute", - "nodeType": "MemberAccess", - "referencedDeclaration": 10708, - "src": "21651:27:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeType_$10710", - "typeString": "enum IDisputeManager.DisputeType" - } - }, - { - "expression": { - "expression": { - "id": 9017, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "21692:15:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$11057_$", - "typeString": "type(contract IDisputeManager)" - } - }, - "id": 9018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21708:13:48", - "memberName": "DisputeStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 10718, - "src": "21692:29:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$10718_$", - "typeString": "type(enum IDisputeManager.DisputeStatus)" - } - }, - "id": 9019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "21722:7:48", - "memberName": "Pending", - "nodeType": "MemberAccess", - "referencedDeclaration": 10716, - "src": "21692:37:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - { - "expression": { - "id": 9020, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "21743:5:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 9021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21749:9:48", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "21743:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 9022, - "name": "stakeSnapshot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8999, - "src": "21772:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_enum$_DisputeType_$10710", - "typeString": "enum IDisputeManager.DisputeType" - }, - { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9009, - "name": "Dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10738, - "src": "21542:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Dispute_$10738_storage_ptr_$", - "typeString": "type(struct IDisputeManager.Dispute storage pointer)" - } - }, - "id": 9023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21542:253:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute memory" - } - }, - "src": "21520:275:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "id": 9025, - "nodeType": "ExpressionStatement", - "src": "21520:275:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 9027, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8928, - "src": "21834:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 9028, - "name": "alloc", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8951, - "src": "21845:5:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 9029, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21851:7:48", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "21845:13:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9030, - "name": "_fisherman", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8916, - "src": "21860:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9031, - "name": "_deposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8918, - "src": "21872:8:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 9032, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8920, - "src": "21882:13:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9033, - "name": "_poi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8922, - "src": "21897:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 9034, - "name": "stakeSnapshot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8999, - "src": "21903:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9026, - "name": "IndexingDisputeCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10802, - "src": "21811:22:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (bytes32,address,address,uint256,address,bytes32,uint256)" - } - }, - "id": 9035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21811:106:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9036, - "nodeType": "EmitStatement", - "src": "21806:111:48" - }, - { - "expression": { - "id": 9037, - "name": "disputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8928, - "src": "21935:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 8926, - "id": 9038, - "nodeType": "Return", - "src": "21928:16:48" - } - ] - }, - "documentation": { - "id": 8914, - "nodeType": "StructuredDocumentation", - "src": "20201:277:48", - "text": " @notice Create indexing dispute internal function.\n @param _fisherman The fisherman creating the dispute\n @param _deposit Amount of tokens staked as deposit\n @param _allocationId Allocation disputed\n @param _poi The POI being disputed" - }, - "id": 9040, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_createIndexingDisputeWithAllocation", - "nameLocation": "20492:36:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8923, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8916, - "mutability": "mutable", - "name": "_fisherman", - "nameLocation": "20546:10:48", - "nodeType": "VariableDeclaration", - "scope": 9040, - "src": "20538:18:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8915, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20538:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8918, - "mutability": "mutable", - "name": "_deposit", - "nameLocation": "20574:8:48", - "nodeType": "VariableDeclaration", - "scope": 9040, - "src": "20566:16:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20566:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8920, - "mutability": "mutable", - "name": "_allocationId", - "nameLocation": "20600:13:48", - "nodeType": "VariableDeclaration", - "scope": 9040, - "src": "20592:21:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8919, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20592:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 8922, - "mutability": "mutable", - "name": "_poi", - "nameLocation": "20631:4:48", - "nodeType": "VariableDeclaration", - "scope": 9040, - "src": "20623:12:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8921, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "20623:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "20528:113:48" - }, - "returnParameters": { - "id": 8926, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8925, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 9040, - "src": "20659:7:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 8924, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "20659:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "20658:9:48" - }, - "scope": 9438, - "src": "20483:1468:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9078, - "nodeType": "Block", - "src": "22213:322:48", - "statements": [ - { - "condition": { - "arguments": [ - { - "id": 9050, - "name": "_dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9044, - "src": "22248:8:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute memory" - } - ], - "id": 9049, - "name": "_isDisputeInConflict", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9390, - "src": "22227:20:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Dispute_$10738_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct IDisputeManager.Dispute memory) view returns (bool)" - } - }, - "id": 9051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22227:30:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9075, - "nodeType": "IfStatement", - "src": "22223:284:48", - "trueBody": { - "id": 9074, - "nodeType": "Block", - "src": "22259:248:48", - "statements": [ - { - "assignments": [ - 9053 - ], - "declarations": [ - { - "constant": false, - "id": 9053, - "mutability": "mutable", - "name": "relatedDisputeId", - "nameLocation": "22281:16:48", - "nodeType": "VariableDeclaration", - "scope": 9074, - "src": "22273:24:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 9052, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "22273:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 9056, - "initialValue": { - "expression": { - "id": 9054, - "name": "_dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9044, - "src": "22300:8:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute memory" - } - }, - "id": 9055, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22309:16:48", - "memberName": "relatedDisputeId", - "nodeType": "MemberAccess", - "referencedDeclaration": 10727, - "src": "22300:25:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22273:52:48" - }, - { - "assignments": [ - 9059 - ], - "declarations": [ - { - "constant": false, - "id": 9059, - "mutability": "mutable", - "name": "relatedDispute", - "nameLocation": "22355:14:48", - "nodeType": "VariableDeclaration", - "scope": 9074, - "src": "22339:30:48", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - }, - "typeName": { - "id": 9058, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9057, - "name": "Dispute", - "nameLocations": [ - "22339:7:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10738, - "src": "22339:7:48" - }, - "referencedDeclaration": 10738, - "src": "22339:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - } - }, - "visibility": "internal" - } - ], - "id": 9063, - "initialValue": { - "baseExpression": { - "id": 9060, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "22372:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 9062, - "indexExpression": { - "id": 9061, - "name": "relatedDisputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9053, - "src": "22381:16:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22372:26:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22339:59:48" - }, - { - "expression": { - "id": 9070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 9064, - "name": "relatedDispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9059, - "src": "22412:14:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 9066, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "22427:6:48", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 10733, - "src": "22412:21:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "expression": { - "id": 9067, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "22436:15:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$11057_$", - "typeString": "type(contract IDisputeManager)" - } - }, - "id": 9068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22452:13:48", - "memberName": "DisputeStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 10718, - "src": "22436:29:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$10718_$", - "typeString": "type(enum IDisputeManager.DisputeStatus)" - } - }, - "id": 9069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "22466:5:48", - "memberName": "Drawn", - "nodeType": "MemberAccess", - "referencedDeclaration": 10715, - "src": "22436:35:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "src": "22412:59:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "id": 9071, - "nodeType": "ExpressionStatement", - "src": "22412:59:48" - }, - { - "expression": { - "hexValue": "74727565", - "id": 9072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22492:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9048, - "id": 9073, - "nodeType": "Return", - "src": "22485:11:48" - } - ] - } - }, - { - "expression": { - "hexValue": "66616c7365", - "id": 9076, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22523:5:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 9048, - "id": 9077, - "nodeType": "Return", - "src": "22516:12:48" - } - ] - }, - "documentation": { - "id": 9041, - "nodeType": "StructuredDocumentation", - "src": "21957:171:48", - "text": " @notice Draw the conflicting dispute if there is any for the one passed to this function.\n @param _dispute Dispute\n @return True if resolved" - }, - "id": 9079, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_drawDisputeInConflict", - "nameLocation": "22142:22:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9045, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9044, - "mutability": "mutable", - "name": "_dispute", - "nameLocation": "22180:8:48", - "nodeType": "VariableDeclaration", - "scope": 9079, - "src": "22165:23:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute" - }, - "typeName": { - "id": 9043, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9042, - "name": "Dispute", - "nameLocations": [ - "22165:7:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10738, - "src": "22165:7:48" - }, - "referencedDeclaration": 10738, - "src": "22165:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - } - }, - "visibility": "internal" - } - ], - "src": "22164:25:48" - }, - "returnParameters": { - "id": 9048, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9047, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 9079, - "src": "22207:4:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9046, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "22207:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "22206:6:48" - }, - "scope": 9438, - "src": "22133:402:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9117, - "nodeType": "Block", - "src": "22802:326:48", - "statements": [ - { - "condition": { - "arguments": [ - { - "id": 9089, - "name": "_dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9083, - "src": "22837:8:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute memory" - } - ], - "id": 9088, - "name": "_isDisputeInConflict", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9390, - "src": "22816:20:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Dispute_$10738_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct IDisputeManager.Dispute memory) view returns (bool)" - } - }, - "id": 9090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22816:30:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9114, - "nodeType": "IfStatement", - "src": "22812:288:48", - "trueBody": { - "id": 9113, - "nodeType": "Block", - "src": "22848:252:48", - "statements": [ - { - "assignments": [ - 9092 - ], - "declarations": [ - { - "constant": false, - "id": 9092, - "mutability": "mutable", - "name": "relatedDisputeId", - "nameLocation": "22870:16:48", - "nodeType": "VariableDeclaration", - "scope": 9113, - "src": "22862:24:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 9091, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "22862:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 9095, - "initialValue": { - "expression": { - "id": 9093, - "name": "_dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9083, - "src": "22889:8:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute memory" - } - }, - "id": 9094, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22898:16:48", - "memberName": "relatedDisputeId", - "nodeType": "MemberAccess", - "referencedDeclaration": 10727, - "src": "22889:25:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22862:52:48" - }, - { - "assignments": [ - 9098 - ], - "declarations": [ - { - "constant": false, - "id": 9098, - "mutability": "mutable", - "name": "relatedDispute", - "nameLocation": "22944:14:48", - "nodeType": "VariableDeclaration", - "scope": 9113, - "src": "22928:30:48", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - }, - "typeName": { - "id": 9097, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9096, - "name": "Dispute", - "nameLocations": [ - "22928:7:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10738, - "src": "22928:7:48" - }, - "referencedDeclaration": 10738, - "src": "22928:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - } - }, - "visibility": "internal" - } - ], - "id": 9102, - "initialValue": { - "baseExpression": { - "id": 9099, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "22961:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 9101, - "indexExpression": { - "id": 9100, - "name": "relatedDisputeId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9092, - "src": "22970:16:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22961:26:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22928:59:48" - }, - { - "expression": { - "id": 9109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 9103, - "name": "relatedDispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9098, - "src": "23001:14:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute storage pointer" - } - }, - "id": 9105, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "23016:6:48", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 10733, - "src": "23001:21:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "expression": { - "id": 9106, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "23025:15:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$11057_$", - "typeString": "type(contract IDisputeManager)" - } - }, - "id": 9107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23041:13:48", - "memberName": "DisputeStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 10718, - "src": "23025:29:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$10718_$", - "typeString": "type(enum IDisputeManager.DisputeStatus)" - } - }, - "id": 9108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "23055:9:48", - "memberName": "Cancelled", - "nodeType": "MemberAccess", - "referencedDeclaration": 10717, - "src": "23025:39:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "src": "23001:63:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "id": 9110, - "nodeType": "ExpressionStatement", - "src": "23001:63:48" - }, - { - "expression": { - "hexValue": "74727565", - "id": 9111, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23085:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9087, - "id": 9112, - "nodeType": "Return", - "src": "23078:11:48" - } - ] - } - }, - { - "expression": { - "hexValue": "66616c7365", - "id": 9115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23116:5:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 9087, - "id": 9116, - "nodeType": "Return", - "src": "23109:12:48" - } - ] - }, - "documentation": { - "id": 9080, - "nodeType": "StructuredDocumentation", - "src": "22541:174:48", - "text": " @notice Cancel the conflicting dispute if there is any for the one passed to this function.\n @param _dispute Dispute\n @return True if cancelled" - }, - "id": 9118, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_cancelDisputeInConflict", - "nameLocation": "22729:24:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9083, - "mutability": "mutable", - "name": "_dispute", - "nameLocation": "22769:8:48", - "nodeType": "VariableDeclaration", - "scope": 9118, - "src": "22754:23:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute" - }, - "typeName": { - "id": 9082, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9081, - "name": "Dispute", - "nameLocations": [ - "22754:7:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10738, - "src": "22754:7:48" - }, - "referencedDeclaration": 10738, - "src": "22754:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - } - }, - "visibility": "internal" - } - ], - "src": "22753:25:48" - }, - "returnParameters": { - "id": 9087, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9086, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 9118, - "src": "22796:4:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9085, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "22796:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "22795:6:48" - }, - "scope": 9438, - "src": "22720:408:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9130, - "nodeType": "Block", - "src": "23252:139:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 9125, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "23357:3:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23361:6:48", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "23357:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9127, - "name": "disputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9457, - "src": "23369:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9122, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4530, - "src": "23332:11:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$518_$", - "typeString": "function () view returns (contract IGraphToken)" - } - }, - "id": 9123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23332:13:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 9124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23346:10:48", - "memberName": "pullTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 552, - "src": "23332:24:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$518_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$518_$", - "typeString": "function (contract IGraphToken,address,uint256)" - } - }, - "id": 9128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23332:52:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9129, - "nodeType": "ExpressionStatement", - "src": "23332:52:48" - } - ] - }, - "documentation": { - "id": 9119, - "nodeType": "StructuredDocumentation", - "src": "23134:72:48", - "text": " @notice Pull `disputeDeposit` from fisherman account." - }, - "id": 9131, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_pullFishermanDeposit", - "nameLocation": "23220:21:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9120, - "nodeType": "ParameterList", - "parameters": [], - "src": "23241:2:48" - }, - "returnParameters": { - "id": 9121, - "nodeType": "ParameterList", - "parameters": [], - "src": "23252:0:48" - }, - "scope": 9438, - "src": "23211:180:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9211, - "nodeType": "Block", - "src": "23967:906:48", - "statements": [ - { - "assignments": [ - 9147 - ], - "declarations": [ - { - "constant": false, - "id": 9147, - "mutability": "mutable", - "name": "provision", - "nameLocation": "24054:9:48", - "nodeType": "VariableDeclaration", - "scope": 9211, - "src": "24021:42:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - }, - "typeName": { - "id": 9146, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9145, - "name": "IHorizonStaking.Provision", - "nameLocations": [ - "24021:15:48", - "24037:9:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3718, - "src": "24021:25:48" - }, - "referencedDeclaration": 3718, - "src": "24021:25:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_storage_ptr", - "typeString": "struct IHorizonStakingTypes.Provision" - } - }, - "visibility": "internal" - } - ], - "id": 9157, - "initialValue": { - "arguments": [ - { - "id": 9151, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9134, - "src": "24095:8:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 9154, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9448, - "src": "24113:15:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - ], - "id": 9153, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24105:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9152, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24105:7:48", - "typeDescriptions": {} - } - }, - "id": 9155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24105:24:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9148, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "24066:13:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 9149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24066:15:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 9150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24082:12:48", - "memberName": "getProvision", - "nodeType": "MemberAccess", - "referencedDeclaration": 2784, - "src": "24066:28:48", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_Provision_$3718_memory_ptr_$", - "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.Provision memory)" - } - }, - "id": 9156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24066:64:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24021:109:48" - }, - { - "assignments": [ - 9159 - ], - "declarations": [ - { - "constant": false, - "id": 9159, - "mutability": "mutable", - "name": "maxTokensSlash", - "nameLocation": "24198:14:48", - "nodeType": "VariableDeclaration", - "scope": 9211, - "src": "24190:22:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9158, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24190:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 9164, - "initialValue": { - "arguments": [ - { - "id": 9162, - "name": "maxSlashingCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9463, - "src": "24243:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 9160, - "name": "_tokensStakeSnapshot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9138, - "src": "24215:20:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24236:6:48", - "memberName": "mulPPM", - "nodeType": "MemberAccess", - "referencedDeclaration": 4219, - "src": "24215:27:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24215:43:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24190:68:48" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 9172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9166, - "name": "_tokensSlash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9136, - "src": "24289:12:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 9167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24305:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "24289:17:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9169, - "name": "_tokensSlash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9136, - "src": "24310:12:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 9170, - "name": "maxTokensSlash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9159, - "src": "24326:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24310:30:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "24289:51:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 9174, - "name": "_tokensSlash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9136, - "src": "24387:12:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 9175, - "name": "maxTokensSlash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9159, - "src": "24401:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9173, - "name": "DisputeManagerInvalidTokensSlash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10885, - "src": "24354:32:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 9176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24354:62:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9165, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "24268:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24268:158:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9178, - "nodeType": "ExpressionStatement", - "src": "24268:158:48" - }, - { - "assignments": [ - 9180 - ], - "declarations": [ - { - "constant": false, - "id": 9180, - "mutability": "mutable", - "name": "maxRewardableTokens", - "nameLocation": "24602:19:48", - "nodeType": "VariableDeclaration", - "scope": 9211, - "src": "24594:27:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9179, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24594:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 9187, - "initialValue": { - "arguments": [ - { - "id": 9183, - "name": "_tokensSlash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9136, - "src": "24633:12:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 9184, - "name": "provision", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9147, - "src": "24647:9:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Provision_$3718_memory_ptr", - "typeString": "struct IHorizonStakingTypes.Provision memory" - } - }, - "id": 9185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24657:6:48", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 3701, - "src": "24647:16:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 9181, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7858, - "src": "24624:4:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$7858_$", - "typeString": "type(library Math)" - } - }, - "id": 9182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24629:3:48", - "memberName": "min", - "nodeType": "MemberAccess", - "referencedDeclaration": 7009, - "src": "24624:8:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24624:40:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24594:70:48" - }, - { - "assignments": [ - 9189 - ], - "declarations": [ - { - "constant": false, - "id": 9189, - "mutability": "mutable", - "name": "tokensRewards", - "nameLocation": "24682:13:48", - "nodeType": "VariableDeclaration", - "scope": 9211, - "src": "24674:21:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9188, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24674:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 9197, - "initialValue": { - "arguments": [ - { - "id": 9195, - "name": "maxRewardableTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9180, - "src": "24733:19:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 9192, - "name": "fishermanRewardCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9460, - "src": "24706:18:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 9191, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24698:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 9190, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24698:7:48", - "typeDescriptions": {} - } - }, - "id": 9193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24698:27:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24726:6:48", - "memberName": "mulPPM", - "nodeType": "MemberAccess", - "referencedDeclaration": 4219, - "src": "24698:34:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24698:55:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24674:79:48" - }, - { - "expression": { - "arguments": [ - { - "id": 9201, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9134, - "src": "24786:8:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 9204, - "name": "_tokensSlash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9136, - "src": "24807:12:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 9205, - "name": "tokensRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9189, - "src": "24821:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 9202, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "24796:3:48", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 9203, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "24800:6:48", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "24796:10:48", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 9206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24796:39:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 9198, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9448, - "src": "24764:15:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "id": 9200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24780:5:48", - "memberName": "slash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1287, - "src": "24764:21:48", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory) external" - } - }, - "id": 9207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24764:72:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9208, - "nodeType": "ExpressionStatement", - "src": "24764:72:48" - }, - { - "expression": { - "id": 9209, - "name": "tokensRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9189, - "src": "24853:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9142, - "id": 9210, - "nodeType": "Return", - "src": "24846:20:48" - } - ] - }, - "documentation": { - "id": 9132, - "nodeType": "StructuredDocumentation", - "src": "23397:416:48", - "text": " @notice Make the subgraph service contract slash the indexer and reward the fisherman.\n Give the fisherman a reward equal to the fishermanRewardPercentage of slashed amount\n @param _indexer Address of the indexer\n @param _tokensSlash Amount of tokens to slash from the indexer\n @param _tokensStakeSnapshot Snapshot of the indexer's stake at the time of the dispute creation" - }, - "id": 9212, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_slashIndexer", - "nameLocation": "23827:13:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9139, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9134, - "mutability": "mutable", - "name": "_indexer", - "nameLocation": "23858:8:48", - "nodeType": "VariableDeclaration", - "scope": 9212, - "src": "23850:16:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9133, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23850:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9136, - "mutability": "mutable", - "name": "_tokensSlash", - "nameLocation": "23884:12:48", - "nodeType": "VariableDeclaration", - "scope": 9212, - "src": "23876:20:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23876:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9138, - "mutability": "mutable", - "name": "_tokensStakeSnapshot", - "nameLocation": "23914:20:48", - "nodeType": "VariableDeclaration", - "scope": 9212, - "src": "23906:28:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9137, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23906:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23840:100:48" - }, - "returnParameters": { - "id": 9142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9141, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 9212, - "src": "23958:7:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9140, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23958:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "23957:9:48" - }, - "scope": 9438, - "src": "23818:1055:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9237, - "nodeType": "Block", - "src": "25127:162:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9219, - "name": "_arbitrator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9215, - "src": "25145:11:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 9222, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25168:1:48", - "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": 9221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "25160:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25160:7:48", - "typeDescriptions": {} - } - }, - "id": 9223, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25160:10:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "25145:25:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9225, - "name": "DisputeManagerInvalidZeroAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10859, - "src": "25172:32:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 9226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25172:34:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9218, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "25137:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25137:70:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9228, - "nodeType": "ExpressionStatement", - "src": "25137:70:48" - }, - { - "expression": { - "id": 9231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 9229, - "name": "arbitrator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9451, - "src": "25217:10:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 9230, - "name": "_arbitrator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9215, - "src": "25230:11:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "25217:24:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9232, - "nodeType": "ExpressionStatement", - "src": "25217:24:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 9234, - "name": "_arbitrator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9215, - "src": "25270:11:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9233, - "name": "ArbitratorSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10743, - "src": "25256:13:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 9235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25256:26:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9236, - "nodeType": "EmitStatement", - "src": "25251:31:48" - } - ] - }, - "documentation": { - "id": 9213, - "nodeType": "StructuredDocumentation", - "src": "24879:190:48", - "text": " @notice Internal: Set the arbitrator address.\n @dev Update the arbitrator to `_arbitrator`\n @param _arbitrator The address of the arbitration contract or party" - }, - "id": 9238, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setArbitrator", - "nameLocation": "25083:14:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9216, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9215, - "mutability": "mutable", - "name": "_arbitrator", - "nameLocation": "25106:11:48", - "nodeType": "VariableDeclaration", - "scope": 9238, - "src": "25098:19:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9214, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "25098:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "25097:21:48" - }, - "returnParameters": { - "id": 9217, - "nodeType": "ParameterList", - "parameters": [], - "src": "25127:0:48" - }, - "scope": 9438, - "src": "25074:215:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9260, - "nodeType": "Block", - "src": "25542:167:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 9247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9245, - "name": "_disputePeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9241, - "src": "25560:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 9246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25578:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25560:19:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9248, - "name": "DisputeManagerDisputePeriodZero", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10861, - "src": "25581:31:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 9249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25581:33:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9244, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "25552:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25552:63:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9251, - "nodeType": "ExpressionStatement", - "src": "25552:63:48" - }, - { - "expression": { - "id": 9254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 9252, - "name": "disputePeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9454, - "src": "25625:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 9253, - "name": "_disputePeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9241, - "src": "25641:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "25625:30:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 9255, - "nodeType": "ExpressionStatement", - "src": "25625:30:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 9257, - "name": "_disputePeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9241, - "src": "25687:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 9256, - "name": "DisputePeriodSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10748, - "src": "25670:16:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 9258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25670:32:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9259, - "nodeType": "EmitStatement", - "src": "25665:37:48" - } - ] - }, - "documentation": { - "id": 9239, - "nodeType": "StructuredDocumentation", - "src": "25295:184:48", - "text": " @notice Internal: Set the dispute period.\n @dev Update the dispute period to `_disputePeriod` in seconds\n @param _disputePeriod Dispute period in seconds" - }, - "id": 9261, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setDisputePeriod", - "nameLocation": "25493:17:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9241, - "mutability": "mutable", - "name": "_disputePeriod", - "nameLocation": "25518:14:48", - "nodeType": "VariableDeclaration", - "scope": 9261, - "src": "25511:21:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 9240, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "25511:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "25510:23:48" - }, - "returnParameters": { - "id": 9243, - "nodeType": "ParameterList", - "parameters": [], - "src": "25542:0:48" - }, - "scope": 9438, - "src": "25484:225:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9284, - "nodeType": "Block", - "src": "26010:191:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9268, - "name": "_disputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9264, - "src": "26028:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 9269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26047:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "26028:20:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 9272, - "name": "_disputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9264, - "src": "26086:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9271, - "name": "DisputeManagerInvalidDisputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10871, - "src": "26050:35:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256) pure returns (error)" - } - }, - "id": 9273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26050:52:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9267, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "26020:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26020:83:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9275, - "nodeType": "ExpressionStatement", - "src": "26020:83:48" - }, - { - "expression": { - "id": 9278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 9276, - "name": "disputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9457, - "src": "26113:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 9277, - "name": "_disputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9264, - "src": "26130:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26113:32:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9279, - "nodeType": "ExpressionStatement", - "src": "26113:32:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 9281, - "name": "_disputeDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9264, - "src": "26178:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9280, - "name": "DisputeDepositSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10753, - "src": "26160:17:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 9282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26160:34:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9283, - "nodeType": "EmitStatement", - "src": "26155:39:48" - } - ] - }, - "documentation": { - "id": 9262, - "nodeType": "StructuredDocumentation", - "src": "25715:229:48", - "text": " @notice Internal: Set the dispute deposit required to create a dispute.\n @dev Update the dispute deposit to `_disputeDeposit` Graph Tokens\n @param _disputeDeposit The dispute deposit in Graph Tokens" - }, - "id": 9285, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setDisputeDeposit", - "nameLocation": "25958:18:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9265, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9264, - "mutability": "mutable", - "name": "_disputeDeposit", - "nameLocation": "25985:15:48", - "nodeType": "VariableDeclaration", - "scope": 9285, - "src": "25977:23:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9263, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25977:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "25976:25:48" - }, - "returnParameters": { - "id": 9266, - "nodeType": "ParameterList", - "parameters": [], - "src": "26010:0:48" - }, - "scope": 9438, - "src": "25949:252:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9308, - "nodeType": "Block", - "src": "26517:273:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 9294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9292, - "name": "_fishermanRewardCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "26548:19:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 9293, - "name": "MAX_FISHERMAN_REWARD_CUT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8018, - "src": "26571:24:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "26548:47:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 9296, - "name": "_fishermanRewardCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "26646:19:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 9295, - "name": "DisputeManagerInvalidFishermanReward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10875, - "src": "26609:36:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint32_$returns$_t_error_$", - "typeString": "function (uint32) pure returns (error)" - } - }, - "id": 9297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26609:57:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9291, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "26527:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26527:149:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9299, - "nodeType": "ExpressionStatement", - "src": "26527:149:48" - }, - { - "expression": { - "id": 9302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 9300, - "name": "fishermanRewardCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9460, - "src": "26686:18:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 9301, - "name": "_fishermanRewardCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "26707:19:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "26686:40:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 9303, - "nodeType": "ExpressionStatement", - "src": "26686:40:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 9305, - "name": "_fishermanRewardCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "26763:19:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 9304, - "name": "FishermanRewardCutSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10763, - "src": "26741:21:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 9306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26741:42:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9307, - "nodeType": "EmitStatement", - "src": "26736:47:48" - } - ] - }, - "documentation": { - "id": 9286, - "nodeType": "StructuredDocumentation", - "src": "26207:237:48", - "text": " @notice Internal: Set the percent reward that the fisherman gets when slashing occurs.\n @dev Update the reward percentage to `_percentage`\n @param _fishermanRewardCut Reward as a percentage of indexer stake" - }, - "id": 9309, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setFishermanRewardCut", - "nameLocation": "26458:22:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9289, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9288, - "mutability": "mutable", - "name": "_fishermanRewardCut", - "nameLocation": "26488:19:48", - "nodeType": "VariableDeclaration", - "scope": 9309, - "src": "26481:26:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 9287, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "26481:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "26480:28:48" - }, - "returnParameters": { - "id": 9290, - "nodeType": "ParameterList", - "parameters": [], - "src": "26517:0:48" - }, - "scope": 9438, - "src": "26449:341:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9333, - "nodeType": "Block", - "src": "27031:254:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 9318, - "name": "_maxSlashingCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9312, - "src": "27117:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 9316, - "name": "PPMMath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4262, - "src": "27098:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PPMMath_$4262_$", - "typeString": "type(library PPMMath)" - } - }, - "id": 9317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27106:10:48", - "memberName": "isValidPPM", - "nodeType": "MemberAccess", - "referencedDeclaration": 4261, - "src": "27098:18:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 9319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27098:35:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 9321, - "name": "_maxSlashingCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9312, - "src": "27171:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 9320, - "name": "DisputeManagerInvalidMaxSlashingCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10879, - "src": "27135:35:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint32_$returns$_t_error_$", - "typeString": "function (uint32) pure returns (error)" - } - }, - "id": 9322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27135:52:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9315, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "27090:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27090:98:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9324, - "nodeType": "ExpressionStatement", - "src": "27090:98:48" - }, - { - "expression": { - "id": 9327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 9325, - "name": "maxSlashingCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9463, - "src": "27198:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 9326, - "name": "_maxSlashingCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9312, - "src": "27215:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "27198:32:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 9328, - "nodeType": "ExpressionStatement", - "src": "27198:32:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 9330, - "name": "maxSlashingCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9463, - "src": "27263:14:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 9329, - "name": "MaxSlashingCutSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10758, - "src": "27245:17:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 9331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27245:33:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9332, - "nodeType": "EmitStatement", - "src": "27240:38:48" - } - ] - }, - "documentation": { - "id": 9310, - "nodeType": "StructuredDocumentation", - "src": "26796:170:48", - "text": " @notice Internal: Set the maximum percentage that can be used for slashing indexers.\n @param _maxSlashingCut Max percentage slashing for disputes" - }, - "id": 9334, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setMaxSlashingCut", - "nameLocation": "26980:18:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9313, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9312, - "mutability": "mutable", - "name": "_maxSlashingCut", - "nameLocation": "27006:15:48", - "nodeType": "VariableDeclaration", - "scope": 9334, - "src": "26999:22:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 9311, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "26999:6:48", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "26998:24:48" - }, - "returnParameters": { - "id": 9314, - "nodeType": "ParameterList", - "parameters": [], - "src": "27031:0:48" - }, - "scope": 9438, - "src": "26971:314:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9361, - "nodeType": "Block", - "src": "27567:205:48", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9341, - "name": "_subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9337, - "src": "27585:16:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 9344, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27613:1:48", - "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": 9343, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "27605:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27605:7:48", - "typeDescriptions": {} - } - }, - "id": 9345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27605:10:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "27585:30:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9347, - "name": "DisputeManagerInvalidZeroAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10859, - "src": "27617:32:48", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 9348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27617:34:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9340, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "27577:7:48", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27577:75:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9350, - "nodeType": "ExpressionStatement", - "src": "27577:75:48" - }, - { - "expression": { - "id": 9355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 9351, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9448, - "src": "27662:15:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 9353, - "name": "_subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9337, - "src": "27697:16:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9352, - "name": "ISubgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11280, - "src": "27680:16:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISubgraphService_$11280_$", - "typeString": "type(contract ISubgraphService)" - } - }, - "id": 9354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27680:34:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "src": "27662:52:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "id": 9356, - "nodeType": "ExpressionStatement", - "src": "27662:52:48" - }, - { - "eventCall": { - "arguments": [ - { - "id": 9358, - "name": "_subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9337, - "src": "27748:16:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9357, - "name": "SubgraphServiceSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10768, - "src": "27729:18:48", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 9359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27729:36:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9360, - "nodeType": "EmitStatement", - "src": "27724:41:48" - } - ] - }, - "documentation": { - "id": 9335, - "nodeType": "StructuredDocumentation", - "src": "27291:208:48", - "text": " @notice Internal: Set the subgraph service address.\n @dev Update the subgraph service to `_subgraphService`\n @param _subgraphService The address of the subgraph service contract" - }, - "id": 9362, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setSubgraphService", - "nameLocation": "27513:19:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9338, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9337, - "mutability": "mutable", - "name": "_subgraphService", - "nameLocation": "27541:16:48", - "nodeType": "VariableDeclaration", - "scope": 9362, - "src": "27533:24:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9336, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27533:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "27532:26:48" - }, - "returnParameters": { - "id": 9339, - "nodeType": "ParameterList", - "parameters": [], - "src": "27567:0:48" - }, - "scope": 9438, - "src": "27504:268:48", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9389, - "nodeType": "Block", - "src": "28044:246:48", - "statements": [ - { - "assignments": [ - 9372 - ], - "declarations": [ - { - "constant": false, - "id": 9372, - "mutability": "mutable", - "name": "relatedId", - "nameLocation": "28062:9:48", - "nodeType": "VariableDeclaration", - "scope": 9389, - "src": "28054:17:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 9371, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "28054:7:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 9375, - "initialValue": { - "expression": { - "id": 9373, - "name": "_dispute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9366, - "src": "28074:8:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute memory" - } - }, - "id": 9374, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28083:16:48", - "memberName": "relatedDisputeId", - "nodeType": "MemberAccess", - "referencedDeclaration": 10727, - "src": "28074:25:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "28054:45:48" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 9387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 9378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9376, - "name": "relatedId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9372, - "src": "28198:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 9377, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28211:1:48", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28198:14:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - }, - "id": 9386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 9379, - "name": "disputes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9469, - "src": "28216:8:48", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute storage ref)" - } - }, - "id": 9381, - "indexExpression": { - "id": 9380, - "name": "relatedId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9372, - "src": "28225:9:48", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28216:19:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage", - "typeString": "struct IDisputeManager.Dispute storage ref" - } - }, - "id": 9382, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28236:6:48", - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 10733, - "src": "28216:26:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "expression": { - "id": 9383, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "28246:15:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$11057_$", - "typeString": "type(contract IDisputeManager)" - } - }, - "id": 9384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28262:13:48", - "memberName": "DisputeStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 10718, - "src": "28246:29:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$10718_$", - "typeString": "type(enum IDisputeManager.DisputeStatus)" - } - }, - "id": 9385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "28276:7:48", - "memberName": "Pending", - "nodeType": "MemberAccess", - "referencedDeclaration": 10716, - "src": "28246:37:48", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "src": "28216:67:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "28198:85:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 9370, - "id": 9388, - "nodeType": "Return", - "src": "28191:92:48" - } - ] - }, - "documentation": { - "id": 9363, - "nodeType": "StructuredDocumentation", - "src": "27778:178:48", - "text": " @notice Returns whether the dispute is for a conflicting attestation or not.\n @param _dispute Dispute\n @return True conflicting attestation dispute" - }, - "id": 9390, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isDisputeInConflict", - "nameLocation": "27970:20:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9366, - "mutability": "mutable", - "name": "_dispute", - "nameLocation": "28006:8:48", - "nodeType": "VariableDeclaration", - "scope": 9390, - "src": "27991:23:48", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_memory_ptr", - "typeString": "struct IDisputeManager.Dispute" - }, - "typeName": { - "id": 9365, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9364, - "name": "Dispute", - "nameLocations": [ - "27991:7:48" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10738, - "src": "27991:7:48" - }, - "referencedDeclaration": 10738, - "src": "27991:7:48", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - } - }, - "visibility": "internal" - } - ], - "src": "27990:25:48" - }, - "returnParameters": { - "id": 9370, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9369, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 9390, - "src": "28038:4:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9368, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "28038:4:48", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "28037:6:48" - }, - "scope": 9438, - "src": "27961:329:48", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 9436, - "nodeType": "Block", - "src": "28895:349:48", - "statements": [ - { - "assignments": [ - 9401 - ], - "declarations": [ - { - "constant": false, - "id": 9401, - "mutability": "mutable", - "name": "delegatorsStake", - "nameLocation": "28913:15:48", - "nodeType": "VariableDeclaration", - "scope": 9436, - "src": "28905:23:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28905:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 9412, - "initialValue": { - "expression": { - "arguments": [ - { - "id": 9405, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9393, - "src": "28965:8:48", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 9408, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9448, - "src": "28983:15:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - ], - "id": 9407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28975:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9406, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28975:7:48", - "typeDescriptions": {} - } - }, - "id": 9409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28975:24:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9402, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "28931:13:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 9403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28931:15:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 9404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28947:17:48", - "memberName": "getDelegationPool", - "nodeType": "MemberAccess", - "referencedDeclaration": 2747, - "src": "28931:33:48", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_DelegationPool_$3748_memory_ptr_$", - "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.DelegationPool memory)" - } - }, - "id": 9410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28931:69:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_DelegationPool_$3748_memory_ptr", - "typeString": "struct IHorizonStakingTypes.DelegationPool memory" - } - }, - "id": 9411, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29001:6:48", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 3739, - "src": "28931:76:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "28905:102:48" - }, - { - "assignments": [ - 9414 - ], - "declarations": [ - { - "constant": false, - "id": 9414, - "mutability": "mutable", - "name": "delegatorsStakeMax", - "nameLocation": "29025:18:48", - "nodeType": "VariableDeclaration", - "scope": 9436, - "src": "29017:26:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29017:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 9423, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9415, - "name": "_indexerStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9395, - "src": "29046:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 9418, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9448, - "src": "29070:15:48", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "id": 9419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29086:18:48", - "memberName": "getDelegationRatio", - "nodeType": "MemberAccess", - "referencedDeclaration": 1317, - "src": "29070:34:48", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", - "typeString": "function () view external returns (uint32)" - } - }, - "id": 9420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29070:36:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 9417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "29062:7:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 9416, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29062:7:48", - "typeDescriptions": {} - } - }, - "id": 9421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29062:45:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29046:61:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29017:90:48" - }, - { - "assignments": [ - 9425 - ], - "declarations": [ - { - "constant": false, - "id": 9425, - "mutability": "mutable", - "name": "stakeSnapshot", - "nameLocation": "29125:13:48", - "nodeType": "VariableDeclaration", - "scope": 9436, - "src": "29117:21:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9424, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29117:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 9433, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9426, - "name": "_indexerStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9395, - "src": "29141:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [ - { - "id": 9429, - "name": "delegatorsStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9401, - "src": "29171:15:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 9430, - "name": "delegatorsStakeMax", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9414, - "src": "29188:18:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 9427, - "name": "MathUtils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4168, - "src": "29157:9:48", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_MathUtils_$4168_$", - "typeString": "type(library MathUtils)" - } - }, - "id": 9428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29167:3:48", - "memberName": "min", - "nodeType": "MemberAccess", - "referencedDeclaration": 4146, - "src": "29157:13:48", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 9431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29157:50:48", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "29141:66:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29117:90:48" - }, - { - "expression": { - "id": 9434, - "name": "stakeSnapshot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9425, - "src": "29224:13:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9399, - "id": 9435, - "nodeType": "Return", - "src": "29217:20:48" - } - ] - }, - "documentation": { - "id": 9391, - "nodeType": "StructuredDocumentation", - "src": "28296:495:48", - "text": " @notice Get the total stake snapshot for and indexer.\n @dev A few considerations:\n - We include both indexer and delegators stake.\n - Thawing stake is not excluded from the snapshot.\n - Delegators stake is capped at the delegation ratio to prevent delegators from inflating the snapshot\n to increase the indexer slash amount.\n @param _indexer Indexer address\n @param _indexerStake Indexer's stake\n @return Total stake snapshot" - }, - "id": 9437, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getStakeSnapshot", - "nameLocation": "28805:17:48", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9396, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9393, - "mutability": "mutable", - "name": "_indexer", - "nameLocation": "28831:8:48", - "nodeType": "VariableDeclaration", - "scope": 9437, - "src": "28823:16:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9392, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28823:7:48", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9395, - "mutability": "mutable", - "name": "_indexerStake", - "nameLocation": "28849:13:48", - "nodeType": "VariableDeclaration", - "scope": 9437, - "src": "28841:21:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9394, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28841:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "28822:41:48" - }, - "returnParameters": { - "id": 9399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9398, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 9437, - "src": "28886:7:48", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28886:7:48", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "28885:9:48" - }, - "scope": 9438, - "src": "28796:448:48", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "scope": 9439, - "src": "2429:26817:48", - "usedErrors": [ - 4187, - 4380, - 4684, - 4689, - 4865, - 4868, - 6393, - 6398, - 6403, - 10855, - 10857, - 10859, - 10861, - 10863, - 10867, - 10871, - 10875, - 10879, - 10885, - 10890, - 10894, - 10896, - 10902, - 10906, - 10912, - 10926, - 11751 - ], - "usedEvents": [ - 4375, - 4695, - 4873, - 10743, - 10748, - 10753, - 10758, - 10763, - 10768, - 10785, - 10802, - 10813, - 10824, - 10835, - 10842, - 10853 - ] - } - ], - "src": "45:29202:48" - }, - "id": 48 - }, - "contracts/DisputeManagerStorage.sol": { - "ast": { - "absolutePath": "contracts/DisputeManagerStorage.sol", - "exportedSymbols": { - "DisputeManagerV1Storage": [ - 9470 - ], - "IDisputeManager": [ - 11057 - ], - "ISubgraphService": [ - 11280 - ] - }, - "id": 9471, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9440, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:49" - }, - { - "absolutePath": "contracts/interfaces/IDisputeManager.sol", - "file": "./interfaces/IDisputeManager.sol", - "id": 9442, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9471, - "sourceUnit": 11058, - "src": "71:67:49", - "symbolAliases": [ - { - "foreign": { - "id": 9441, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "80:15:49", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/ISubgraphService.sol", - "file": "./interfaces/ISubgraphService.sol", - "id": 9444, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 9471, - "sourceUnit": 11281, - "src": "139:69:49", - "symbolAliases": [ - { - "foreign": { - "id": 9443, - "name": "ISubgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11280, - "src": "148:16:49", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "DisputeManagerV1Storage", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 9470, - "linearizedBaseContracts": [ - 9470 - ], - "name": "DisputeManagerV1Storage", - "nameLocation": "228:23:49", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "documentation": { - "id": 9445, - "nodeType": "StructuredDocumentation", - "src": "258:49:49", - "text": "@notice The Subgraph Service contract address" - }, - "functionSelector": "26058249", - "id": 9448, - "mutability": "mutable", - "name": "subgraphService", - "nameLocation": "336:15:49", - "nodeType": "VariableDeclaration", - "scope": 9470, - "src": "312:39:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - }, - "typeName": { - "id": 9447, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9446, - "name": "ISubgraphService", - "nameLocations": [ - "312:16:49" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11280, - "src": "312:16:49" - }, - "referencedDeclaration": 11280, - "src": "312:16:49", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 9449, - "nodeType": "StructuredDocumentation", - "src": "358:71:49", - "text": "@notice The arbitrator is solely in control of arbitrating disputes" - }, - "functionSelector": "6cc6cde1", - "id": 9451, - "mutability": "mutable", - "name": "arbitrator", - "nameLocation": "449:10:49", - "nodeType": "VariableDeclaration", - "scope": 9470, - "src": "434:25:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9450, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "434:7:49", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 9452, - "nodeType": "StructuredDocumentation", - "src": "466:37:49", - "text": "@notice dispute period in seconds" - }, - "functionSelector": "5bf31d4d", - "id": 9454, - "mutability": "mutable", - "name": "disputePeriod", - "nameLocation": "522:13:49", - "nodeType": "VariableDeclaration", - "scope": 9470, - "src": "508:27:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 9453, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "508:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 9455, - "nodeType": "StructuredDocumentation", - "src": "542:48:49", - "text": "@notice Deposit required to create a Dispute" - }, - "functionSelector": "29e03ff1", - "id": 9457, - "mutability": "mutable", - "name": "disputeDeposit", - "nameLocation": "610:14:49", - "nodeType": "VariableDeclaration", - "scope": 9470, - "src": "595:29:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "595:7:49", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 9458, - "nodeType": "StructuredDocumentation", - "src": "631:113:49", - "text": "@notice Percentage of indexer slashed funds to assign as a reward to fisherman in successful dispute. In PPM." - }, - "functionSelector": "902a4938", - "id": 9460, - "mutability": "mutable", - "name": "fishermanRewardCut", - "nameLocation": "763:18:49", - "nodeType": "VariableDeclaration", - "scope": 9470, - "src": "749:32:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 9459, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "749:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 9461, - "nodeType": "StructuredDocumentation", - "src": "788:89:49", - "text": "@notice Maximum percentage of indexer stake that can be slashed on a dispute. In PPM." - }, - "functionSelector": "0533e1ba", - "id": 9463, - "mutability": "mutable", - "name": "maxSlashingCut", - "nameLocation": "896:14:49", - "nodeType": "VariableDeclaration", - "scope": 9470, - "src": "882:28:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 9462, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "882:6:49", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 9464, - "nodeType": "StructuredDocumentation", - "src": "917:36:49", - "text": "@notice List of disputes created" - }, - "functionSelector": "11be1997", - "id": 9469, - "mutability": "mutable", - "name": "disputes", - "nameLocation": "1027:8:49", - "nodeType": "VariableDeclaration", - "scope": 9470, - "src": "958:77:49", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute)" - }, - "typeName": { - "id": 9468, - "keyName": "disputeId", - "keyNameLocation": "974:9:49", - "keyType": { - "id": 9465, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "966:7:49", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "958:61:49", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Dispute_$10738_storage_$", - "typeString": "mapping(bytes32 => struct IDisputeManager.Dispute)" - }, - "valueName": "dispute", - "valueNameLocation": "1011:7:49", - "valueType": { - "id": 9467, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9466, - "name": "IDisputeManager.Dispute", - "nameLocations": [ - "987:15:49", - "1003:7:49" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10738, - "src": "987:23:49" - }, - "referencedDeclaration": 10738, - "src": "987:23:49", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Dispute_$10738_storage_ptr", - "typeString": "struct IDisputeManager.Dispute" - } - } - }, - "visibility": "public" - } - ], - "scope": 9471, - "src": "210:828:49", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "46:993:49" - }, - "id": 49 - }, - "contracts/SubgraphService.sol": { - "ast": { - "absolutePath": "contracts/SubgraphService.sol", - "exportedSymbols": { - "Allocation": [ - 11674 - ], - "AllocationManager": [ - 13030 - ], - "DataService": [ - 696 - ], - "DataServiceFees": [ - 1052 - ], - "DataServicePausableUpgradeable": [ - 1186 - ], - "Directory": [ - 13390 - ], - "IGraphPayments": [ - 2211 - ], - "IGraphToken": [ - 518 - ], - "IRewardsIssuer": [ - 314 - ], - "ISubgraphService": [ - 11280 - ], - "ITAPCollector": [ - 2695 - ], - "Initializable": [ - 5102 - ], - "LegacyAllocation": [ - 12086 - ], - "MulticallUpgradeable": [ - 5251 - ], - "OwnableUpgradeable": [ - 4848 - ], - "PPMMath": [ - 4262 - ], - "SubgraphService": [ - 10684 - ], - "SubgraphServiceV1Storage": [ - 10701 - ], - "TokenUtils": [ - 600 - ] - }, - "id": 10685, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9472, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:50" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "file": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "id": 9474, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 2212, - "src": "70:96:50", - "symbolAliases": [ - { - "foreign": { - "id": 9473, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "79:14:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", - "file": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", - "id": 9476, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 519, - "src": "167:87:50", - "symbolAliases": [ - { - "foreign": { - "id": 9475, - "name": "IGraphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "176:11:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol", - "file": "@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol", - "id": 9478, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 2696, - "src": "255:94:50", - "symbolAliases": [ - { - "foreign": { - "id": 9477, - "name": "ITAPCollector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "264:13:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol", - "file": "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol", - "id": 9480, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 315, - "src": "350:95:50", - "symbolAliases": [ - { - "foreign": { - "id": 9479, - "name": "IRewardsIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "359:14:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/ISubgraphService.sol", - "file": "./interfaces/ISubgraphService.sol", - "id": 9482, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 11281, - "src": "446:69:50", - "symbolAliases": [ - { - "foreign": { - "id": 9481, - "name": "ISubgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11280, - "src": "455:16:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", - "id": 9484, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 4849, - "src": "517:103:50", - "symbolAliases": [ - { - "foreign": { - "id": 9483, - "name": "OwnableUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4848, - "src": "526:18:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol", - "id": 9486, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 5252, - "src": "621:106:50", - "symbolAliases": [ - { - "foreign": { - "id": 9485, - "name": "MulticallUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5251, - "src": "630:20:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "id": 9488, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 5103, - "src": "728:98:50", - "symbolAliases": [ - { - "foreign": { - "id": 9487, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5102, - "src": "737:13:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol", - "file": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol", - "id": 9490, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 1187, - "src": "827:141:50", - "symbolAliases": [ - { - "foreign": { - "id": 9489, - "name": "DataServicePausableUpgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1186, - "src": "836:30:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/DataService.sol", - "file": "@graphprotocol/horizon/contracts/data-service/DataService.sol", - "id": 9492, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 697, - "src": "969:92:50", - "symbolAliases": [ - { - "foreign": { - "id": 9491, - "name": "DataService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "978:11:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol", - "file": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol", - "id": 9494, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 1053, - "src": "1062:111:50", - "symbolAliases": [ - { - "foreign": { - "id": 9493, - "name": "DataServiceFees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1052, - "src": "1071:15:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/utilities/Directory.sol", - "file": "./utilities/Directory.sol", - "id": 9496, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 13391, - "src": "1174:54:50", - "symbolAliases": [ - { - "foreign": { - "id": 9495, - "name": "Directory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13390, - "src": "1183:9:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/utilities/AllocationManager.sol", - "file": "./utilities/AllocationManager.sol", - "id": 9498, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 13031, - "src": "1229:70:50", - "symbolAliases": [ - { - "foreign": { - "id": 9497, - "name": "AllocationManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13030, - "src": "1238:17:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/SubgraphServiceStorage.sol", - "file": "./SubgraphServiceStorage.sol", - "id": 9500, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 10702, - "src": "1300:72:50", - "symbolAliases": [ - { - "foreign": { - "id": 9499, - "name": "SubgraphServiceV1Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10701, - "src": "1309:24:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", - "file": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", - "id": 9502, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 601, - "src": "1374:85:50", - "symbolAliases": [ - { - "foreign": { - "id": 9501, - "name": "TokenUtils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "1383:10:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", - "file": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", - "id": 9504, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 4263, - "src": "1460:81:50", - "symbolAliases": [ - { - "foreign": { - "id": 9503, - "name": "PPMMath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4262, - "src": "1469:7:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/Allocation.sol", - "file": "./libraries/Allocation.sol", - "id": 9506, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 11675, - "src": "1542:56:50", - "symbolAliases": [ - { - "foreign": { - "id": 9505, - "name": "Allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11674, - "src": "1551:10:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/LegacyAllocation.sol", - "file": "./libraries/LegacyAllocation.sol", - "id": 9508, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10685, - "sourceUnit": 12087, - "src": "1599:68:50", - "symbolAliases": [ - { - "foreign": { - "id": 9507, - "name": "LegacyAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12086, - "src": "1608:16:50", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 9510, - "name": "Initializable", - "nameLocations": [ - "1884:13:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5102, - "src": "1884:13:50" - }, - "id": 9511, - "nodeType": "InheritanceSpecifier", - "src": "1884:13:50" - }, - { - "baseName": { - "id": 9512, - "name": "OwnableUpgradeable", - "nameLocations": [ - "1903:18:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4848, - "src": "1903:18:50" - }, - "id": 9513, - "nodeType": "InheritanceSpecifier", - "src": "1903:18:50" - }, - { - "baseName": { - "id": 9514, - "name": "MulticallUpgradeable", - "nameLocations": [ - "1927:20:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5251, - "src": "1927:20:50" - }, - "id": 9515, - "nodeType": "InheritanceSpecifier", - "src": "1927:20:50" - }, - { - "baseName": { - "id": 9516, - "name": "DataService", - "nameLocations": [ - "1953:11:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 696, - "src": "1953:11:50" - }, - "id": 9517, - "nodeType": "InheritanceSpecifier", - "src": "1953:11:50" - }, - { - "baseName": { - "id": 9518, - "name": "DataServicePausableUpgradeable", - "nameLocations": [ - "1970:30:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1186, - "src": "1970:30:50" - }, - "id": 9519, - "nodeType": "InheritanceSpecifier", - "src": "1970:30:50" - }, - { - "baseName": { - "id": 9520, - "name": "DataServiceFees", - "nameLocations": [ - "2006:15:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1052, - "src": "2006:15:50" - }, - "id": 9521, - "nodeType": "InheritanceSpecifier", - "src": "2006:15:50" - }, - { - "baseName": { - "id": 9522, - "name": "Directory", - "nameLocations": [ - "2027:9:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 13390, - "src": "2027:9:50" - }, - "id": 9523, - "nodeType": "InheritanceSpecifier", - "src": "2027:9:50" - }, - { - "baseName": { - "id": 9524, - "name": "AllocationManager", - "nameLocations": [ - "2042:17:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 13030, - "src": "2042:17:50" - }, - "id": 9525, - "nodeType": "InheritanceSpecifier", - "src": "2042:17:50" - }, - { - "baseName": { - "id": 9526, - "name": "SubgraphServiceV1Storage", - "nameLocations": [ - "2065:24:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10701, - "src": "2065:24:50" - }, - "id": 9527, - "nodeType": "InheritanceSpecifier", - "src": "2065:24:50" - }, - { - "baseName": { - "id": 9528, - "name": "IRewardsIssuer", - "nameLocations": [ - "2095:14:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 314, - "src": "2095:14:50" - }, - "id": 9529, - "nodeType": "InheritanceSpecifier", - "src": "2095:14:50" - }, - { - "baseName": { - "id": 9530, - "name": "ISubgraphService", - "nameLocations": [ - "2115:16:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11280, - "src": "2115:16:50" - }, - "id": 9531, - "nodeType": "InheritanceSpecifier", - "src": "2115:16:50" - } - ], - "canonicalName": "SubgraphService", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 9509, - "nodeType": "StructuredDocumentation", - "src": "1669:182:50", - "text": " @title SubgraphService contract\n @custom:security-contact Please email security+contracts@thegraph.com if you find any\n bugs. We may have an active bug bounty program." - }, - "fullyImplemented": true, - "id": 10684, - "internalFunctionIDs": { - "958": 1, - "970": 2, - "1028": 3 - }, - "linearizedBaseContracts": [ - 10684, - 11280, - 314, - 10701, - 13030, - 13072, - 13390, - 1052, - 1381, - 1081, - 1186, - 1409, - 696, - 1318, - 704, - 2128, - 2158, - 4653, - 5771, - 5796, - 5427, - 5251, - 4848, - 5148, - 5102 - ], - "name": "SubgraphService", - "nameLocation": "1861:15:50", - "nodeType": "ContractDefinition", - "nodes": [ - { - "global": false, - "id": 9534, - "libraryName": { - "id": 9532, - "name": "PPMMath", - "nameLocations": [ - "2144:7:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4262, - "src": "2144:7:50" - }, - "nodeType": "UsingForDirective", - "src": "2138:26:50", - "typeName": { - "id": 9533, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2156:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "global": false, - "id": 9540, - "libraryName": { - "id": 9535, - "name": "Allocation", - "nameLocations": [ - "2175:10:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11674, - "src": "2175:10:50" - }, - "nodeType": "UsingForDirective", - "src": "2169:58:50", - "typeName": { - "id": 9539, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 9536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2198:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2190:36:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 9538, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9537, - "name": "Allocation.State", - "nameLocations": [ - "2209:10:50", - "2220:5:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "2209:16:50" - }, - "referencedDeclaration": 11307, - "src": "2209:16:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - } - }, - { - "global": false, - "id": 9544, - "libraryName": { - "id": 9541, - "name": "Allocation", - "nameLocations": [ - "2238:10:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11674, - "src": "2238:10:50" - }, - "nodeType": "UsingForDirective", - "src": "2232:38:50", - "typeName": { - "id": 9543, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9542, - "name": "Allocation.State", - "nameLocations": [ - "2253:10:50", - "2264:5:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "2253:16:50" - }, - "referencedDeclaration": 11307, - "src": "2253:16:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - }, - { - "global": false, - "id": 9548, - "libraryName": { - "id": 9545, - "name": "TokenUtils", - "nameLocations": [ - "2281:10:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 600, - "src": "2281:10:50" - }, - "nodeType": "UsingForDirective", - "src": "2275:33:50", - "typeName": { - "id": 9547, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9546, - "name": "IGraphToken", - "nameLocations": [ - "2296:11:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 518, - "src": "2296:11:50" - }, - "referencedDeclaration": 518, - "src": "2296:11:50", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - } - }, - { - "body": { - "id": 9566, - "nodeType": "Block", - "src": "2479:118:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 9554, - "name": "indexers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10694, - "src": "2497:8:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Indexer_$11078_storage_$", - "typeString": "mapping(address => struct ISubgraphService.Indexer storage ref)" - } - }, - "id": 9556, - "indexExpression": { - "id": 9555, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9551, - "src": "2506:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2497:17:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Indexer_$11078_storage", - "typeString": "struct ISubgraphService.Indexer storage ref" - } - }, - "id": 9557, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2515:12:50", - "memberName": "registeredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11073, - "src": "2497:30:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 9558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2531:1:50", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2497:35:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 9561, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9551, - "src": "2570:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9560, - "name": "SubgraphServiceIndexerNotRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11116, - "src": "2534:35:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 9562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2534:44:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2489:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2489:90:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9564, - "nodeType": "ExpressionStatement", - "src": "2489:90:50" - }, - { - "id": 9565, - "nodeType": "PlaceholderStatement", - "src": "2589:1:50" - } - ] - }, - "documentation": { - "id": 9549, - "nodeType": "StructuredDocumentation", - "src": "2314:112:50", - "text": " @notice Checks that an indexer is registered\n @param indexer The address of the indexer" - }, - "id": 9567, - "name": "onlyRegisteredIndexer", - "nameLocation": "2440:21:50", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 9552, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9551, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "2470:7:50", - "nodeType": "VariableDeclaration", - "scope": 9567, - "src": "2462:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9550, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2462:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2461:17:50" - }, - "src": "2431:166:50", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 9594, - "nodeType": "Block", - "src": "3273:39:50", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9591, - "name": "_disableInitializers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5070, - "src": "3283:20:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 9592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3283:22:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9593, - "nodeType": "ExpressionStatement", - "src": "3283:22:50" - } - ] - }, - "documentation": { - "id": 9568, - "nodeType": "StructuredDocumentation", - "src": "2603:432:50", - "text": " @notice Constructor for the SubgraphService contract\n @dev DataService and Directory constructors set a bunch of immutable variables\n @param graphController The address of the Graph Controller contract\n @param disputeManager The address of the DisputeManager contract\n @param tapCollector The address of the TAPCollector contract\n @param curation The address of the Curation contract" - }, - "id": 9595, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 9579, - "name": "graphController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9570, - "src": "3191:15:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9580, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 9578, - "name": "DataService", - "nameLocations": [ - "3179:11:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 696, - "src": "3179:11:50" - }, - "nodeType": "ModifierInvocation", - "src": "3179:28:50" - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 9584, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "3226:4:50", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SubgraphService_$10684", - "typeString": "contract SubgraphService" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SubgraphService_$10684", - "typeString": "contract SubgraphService" - } - ], - "id": 9583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3218:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9582, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3218:7:50", - "typeDescriptions": {} - } - }, - "id": 9585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3218:13:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9586, - "name": "disputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9572, - "src": "3233:14:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9587, - "name": "tapCollector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9574, - "src": "3249:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9588, - "name": "curation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9576, - "src": "3263:8:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9589, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 9581, - "name": "Directory", - "nameLocations": [ - "3208:9:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 13390, - "src": "3208:9:50" - }, - "nodeType": "ModifierInvocation", - "src": "3208:64:50" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9570, - "mutability": "mutable", - "name": "graphController", - "nameLocation": "3069:15:50", - "nodeType": "VariableDeclaration", - "scope": 9595, - "src": "3061:23:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9569, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3061:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9572, - "mutability": "mutable", - "name": "disputeManager", - "nameLocation": "3102:14:50", - "nodeType": "VariableDeclaration", - "scope": 9595, - "src": "3094:22:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9571, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3094:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9574, - "mutability": "mutable", - "name": "tapCollector", - "nameLocation": "3134:12:50", - "nodeType": "VariableDeclaration", - "scope": 9595, - "src": "3126:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9573, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3126:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9576, - "mutability": "mutable", - "name": "curation", - "nameLocation": "3164:8:50", - "nodeType": "VariableDeclaration", - "scope": 9595, - "src": "3156:16:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9575, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3156:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3051:127:50" - }, - "returnParameters": { - "id": 9590, - "nodeType": "ParameterList", - "parameters": [], - "src": "3273:0:50" - }, - "scope": 10684, - "src": "3040:272:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 9643, - "nodeType": "Block", - "src": "4026:378:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 9608, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "4051:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4055:6:50", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "4051:10:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9607, - "name": "__Ownable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4708, - "src": "4036:14:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 9610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4036:26:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9611, - "nodeType": "ExpressionStatement", - "src": "4036:26:50" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9612, - "name": "__Multicall_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5167, - "src": "4072:16:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 9613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4072:18:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9614, - "nodeType": "ExpressionStatement", - "src": "4072:18:50" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9615, - "name": "__DataService_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "4100:18:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 9616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4100:20:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9617, - "nodeType": "ExpressionStatement", - "src": "4100:20:50" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9618, - "name": "__DataServicePausable_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "4130:26:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 9619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4130:28:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9620, - "nodeType": "ExpressionStatement", - "src": "4130:28:50" - }, - { - "expression": { - "arguments": [ - { - "hexValue": "537562677261706853657276696365", - "id": 9622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4193:17:50", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_de968410163c85e985eeb4fbd7957aae2a5a7499745e7a8f1fd22402a4e5c8b0", - "typeString": "literal_string \"SubgraphService\"" - }, - "value": "SubgraphService" - }, - { - "hexValue": "312e30", - "id": 9623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4212:5:50", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b3", - "typeString": "literal_string \"1.0\"" - }, - "value": "1.0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_de968410163c85e985eeb4fbd7957aae2a5a7499745e7a8f1fd22402a4e5c8b0", - "typeString": "literal_string \"SubgraphService\"" - }, - { - "typeIdentifier": "t_stringliteral_e6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b3", - "typeString": "literal_string \"1.0\"" - } - ], - "id": 9621, - "name": "__AllocationManager_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12271, - "src": "4168:24:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory,string memory)" - } - }, - "id": 9624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4168:50:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9625, - "nodeType": "ExpressionStatement", - "src": "4168:50:50" - }, - { - "expression": { - "arguments": [ - { - "id": 9627, - "name": "minimumProvisionTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9598, - "src": "4254:22:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "arguments": [ - { - "id": 9630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4283:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 9629, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4283:7:50", - "typeDescriptions": {} - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - ], - "id": 9628, - "name": "type", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -27, - "src": "4278:4:50", - "typeDescriptions": { - "typeIdentifier": "t_function_metatype_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 9631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4278:13:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_uint256", - "typeString": "type(uint256)" - } - }, - "id": 9632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4292:3:50", - "memberName": "max", - "nodeType": "MemberAccess", - "src": "4278:17:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9626, - "name": "_setProvisionTokensRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "4229:24:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 9633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4229:67:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9634, - "nodeType": "ExpressionStatement", - "src": "4229:67:50" - }, - { - "expression": { - "arguments": [ - { - "id": 9636, - "name": "maximumDelegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9600, - "src": "4326:22:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 9635, - "name": "_setDelegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1793, - "src": "4306:19:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 9637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4306:43:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9638, - "nodeType": "ExpressionStatement", - "src": "4306:43:50" - }, - { - "expression": { - "arguments": [ - { - "id": 9640, - "name": "stakeToFeesRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9602, - "src": "4380:16:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9639, - "name": "_setStakeToFeesRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10683, - "src": "4359:20:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 9641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4359:38:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9642, - "nodeType": "ExpressionStatement", - "src": "4359:38:50" - } - ] - }, - "documentation": { - "id": 9596, - "nodeType": "StructuredDocumentation", - "src": "3318:543:50", - "text": " @notice Initialize the contract\n @dev The thawingPeriod and verifierCut ranges are not set here because they are variables\n on the DisputeManager. We use the {ProvisionManager} overrideable getters to get the ranges.\n @param minimumProvisionTokens The minimum amount of provisioned tokens required to create an allocation\n @param maximumDelegationRatio The maximum delegation ratio allowed for an allocation\n @param stakeToFeesRatio The ratio of stake to fees to lock when collecting query fees" - }, - "functionSelector": "1cafa218", - "id": 9644, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 9605, - "kind": "modifierInvocation", - "modifierName": { - "id": 9604, - "name": "initializer", - "nameLocations": [ - "4014:11:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4956, - "src": "4014:11:50" - }, - "nodeType": "ModifierInvocation", - "src": "4014:11:50" - } - ], - "name": "initialize", - "nameLocation": "3875:10:50", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9603, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9598, - "mutability": "mutable", - "name": "minimumProvisionTokens", - "nameLocation": "3903:22:50", - "nodeType": "VariableDeclaration", - "scope": 9644, - "src": "3895:30:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9597, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3895:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9600, - "mutability": "mutable", - "name": "maximumDelegationRatio", - "nameLocation": "3942:22:50", - "nodeType": "VariableDeclaration", - "scope": 9644, - "src": "3935:29:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 9599, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3935:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9602, - "mutability": "mutable", - "name": "stakeToFeesRatio", - "nameLocation": "3982:16:50", - "nodeType": "VariableDeclaration", - "scope": 9644, - "src": "3974:24:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9601, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3974:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3885:119:50" - }, - "returnParameters": { - "id": 9606, - "nodeType": "ParameterList", - "parameters": [], - "src": "4026:0:50" - }, - "scope": 10684, - "src": "3866:538:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 1242 - ], - "body": { - "id": 9743, - "nodeType": "Block", - "src": "5313:719:50", - "statements": [ - { - "assignments": [ - 9662, - 9664, - 9666 - ], - "declarations": [ - { - "constant": false, - "id": 9662, - "mutability": "mutable", - "name": "url", - "nameLocation": "5338:3:50", - "nodeType": "VariableDeclaration", - "scope": 9743, - "src": "5324:17:50", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9661, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5324:6:50", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9664, - "mutability": "mutable", - "name": "geohash", - "nameLocation": "5357:7:50", - "nodeType": "VariableDeclaration", - "scope": 9743, - "src": "5343:21:50", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9663, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5343:6:50", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9666, - "mutability": "mutable", - "name": "rewardsDestination", - "nameLocation": "5374:18:50", - "nodeType": "VariableDeclaration", - "scope": 9743, - "src": "5366:26:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9665, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5366:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 9678, - "initialValue": { - "arguments": [ - { - "id": 9669, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9649, - "src": "5420:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "id": 9671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5439:6:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 9670, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5439:6:50", - "typeDescriptions": {} - } - }, - { - "id": 9673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5447:6:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 9672, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5447:6:50", - "typeDescriptions": {} - } - }, - { - "id": 9675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5455:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5455:7:50", - "typeDescriptions": {} - } - } - ], - "id": 9676, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5438:25:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_string_storage_ptr_$_$_t_type$_t_string_storage_ptr_$_$_t_type$_t_address_$_$", - "typeString": "tuple(type(string storage pointer),type(string storage pointer),type(address))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_string_storage_ptr_$_$_t_type$_t_string_storage_ptr_$_$_t_type$_t_address_$_$", - "typeString": "tuple(type(string storage pointer),type(string storage pointer),type(address))" - } - ], - "expression": { - "id": 9667, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "5396:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 9668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "5400:6:50", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "5396:10:50", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 9677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5396:77:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_payable_$", - "typeString": "tuple(string memory,string memory,address payable)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5323:150:50" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 9682, - "name": "url", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9662, - "src": "5498:3:50", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 9681, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5492:5:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 9680, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5492:5:50", - "typeDescriptions": {} - } - }, - "id": 9683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5492:10:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 9684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5503:6:50", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "5492:17:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 9685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5512:1:50", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5492:21:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9687, - "name": "SubgraphServiceEmptyUrl", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11105, - "src": "5515:23:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 9688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5515:25:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9679, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5484:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5484:57:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9690, - "nodeType": "ExpressionStatement", - "src": "5484:57:50" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 9694, - "name": "geohash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9664, - "src": "5565:7:50", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 9693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5559:5:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 9692, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5559:5:50", - "typeDescriptions": {} - } - }, - "id": 9695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5559:14:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 9696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5574:6:50", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "5559:21:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 9697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5583:1:50", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5559:25:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9699, - "name": "SubgraphServiceEmptyGeohash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11108, - "src": "5586:27:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 9700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5586:29:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9691, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5551:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5551:65:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9702, - "nodeType": "ExpressionStatement", - "src": "5551:65:50" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 9704, - "name": "indexers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10694, - "src": "5634:8:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Indexer_$11078_storage_$", - "typeString": "mapping(address => struct ISubgraphService.Indexer storage ref)" - } - }, - "id": 9706, - "indexExpression": { - "id": 9705, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9647, - "src": "5643:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5634:17:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Indexer_$11078_storage", - "typeString": "struct ISubgraphService.Indexer storage ref" - } - }, - "id": 9707, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5652:12:50", - "memberName": "registeredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11073, - "src": "5634:30:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 9708, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5668:1:50", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5634:35:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9710, - "name": "SubgraphServiceIndexerAlreadyRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11111, - "src": "5671:39:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 9711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5671:41:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9703, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5626:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5626:87:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9713, - "nodeType": "ExpressionStatement", - "src": "5626:87:50" - }, - { - "expression": { - "id": 9723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 9714, - "name": "indexers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10694, - "src": "5756:8:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Indexer_$11078_storage_$", - "typeString": "mapping(address => struct ISubgraphService.Indexer storage ref)" - } - }, - "id": 9716, - "indexExpression": { - "id": 9715, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9647, - "src": "5765:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5756:17:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Indexer_$11078_storage", - "typeString": "struct ISubgraphService.Indexer storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 9718, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "5800:5:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 9719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5806:9:50", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "5800:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 9720, - "name": "url", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9662, - "src": "5822:3:50", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 9721, - "name": "geohash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9664, - "src": "5836:7:50", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 9717, - "name": "Indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11078, - "src": "5776:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Indexer_$11078_storage_ptr_$", - "typeString": "type(struct ISubgraphService.Indexer storage pointer)" - } - }, - "id": 9722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "5786:12:50", - "5817:3:50", - "5827:7:50" - ], - "names": [ - "registeredAt", - "url", - "geoHash" - ], - "nodeType": "FunctionCall", - "src": "5776:70:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Indexer_$11078_memory_ptr", - "typeString": "struct ISubgraphService.Indexer memory" - } - }, - "src": "5756:90:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Indexer_$11078_storage", - "typeString": "struct ISubgraphService.Indexer storage ref" - } - }, - "id": 9724, - "nodeType": "ExpressionStatement", - "src": "5756:90:50" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9725, - "name": "rewardsDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9666, - "src": "5860:18:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 9728, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5890:1:50", - "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": 9727, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5882:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5882:7:50", - "typeDescriptions": {} - } - }, - "id": 9729, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5882:10:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5860:32:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9737, - "nodeType": "IfStatement", - "src": "5856:114:50", - "trueBody": { - "id": 9736, - "nodeType": "Block", - "src": "5894:76:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 9732, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9647, - "src": "5931:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9733, - "name": "rewardsDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9666, - "src": "5940:18:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9731, - "name": "_setRewardsDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12910, - "src": "5908:22:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 9734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5908:51:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9735, - "nodeType": "ExpressionStatement", - "src": "5908:51:50" - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "id": 9739, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9647, - "src": "6011:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9740, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9649, - "src": "6020:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 9738, - "name": "ServiceProviderRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "5985:25:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 9741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5985:40:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9742, - "nodeType": "EmitStatement", - "src": "5980:45:50" - } - ] - }, - "documentation": { - "id": 9645, - "nodeType": "StructuredDocumentation", - "src": "4410:724:50", - "text": " @notice\n @dev Implements {IDataService.register}\n Requirements:\n - The indexer must not be already registered\n - The URL must not be empty\n - The provision must be valid according to the subgraph service rules\n Emits a {ServiceProviderRegistered} event\n @param indexer The address of the indexer to register\n @param data Encoded registration data:\n - address `url`: The URL of the indexer\n - string `geohash`: The geohash of the indexer\n - address `rewardsDestination`: The address where the indexer wants to receive indexing rewards.\n Use zero address for automatic reprovisioning to the subgraph service." - }, - "functionSelector": "24b8fbf6", - "id": 9744, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 9653, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9647, - "src": "5262:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9654, - "kind": "modifierInvocation", - "modifierName": { - "id": 9652, - "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "5235:26:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1703, - "src": "5235:26:50" - }, - "nodeType": "ModifierInvocation", - "src": "5235:35:50" - }, - { - "arguments": [ - { - "id": 9656, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9647, - "src": "5290:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9657, - "kind": "modifierInvocation", - "modifierName": { - "id": 9655, - "name": "onlyValidProvision", - "nameLocations": [ - "5271:18:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1728, - "src": "5271:18:50" - }, - "nodeType": "ModifierInvocation", - "src": "5271:27:50" - }, - { - "id": 9659, - "kind": "modifierInvocation", - "modifierName": { - "id": 9658, - "name": "whenNotPaused", - "nameLocations": [ - "5299:13:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5329, - "src": "5299:13:50" - }, - "nodeType": "ModifierInvocation", - "src": "5299:13:50" - } - ], - "name": "register", - "nameLocation": "5148:8:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 9651, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "5226:8:50" - }, - "parameters": { - "id": 9650, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9647, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "5174:7:50", - "nodeType": "VariableDeclaration", - "scope": 9744, - "src": "5166:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9646, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5166:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9649, - "mutability": "mutable", - "name": "data", - "nameLocation": "5206:4:50", - "nodeType": "VariableDeclaration", - "scope": 9744, - "src": "5191:19:50", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 9648, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5191:5:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5156:60:50" - }, - "returnParameters": { - "id": 9660, - "nodeType": "ParameterList", - "parameters": [], - "src": "5313:0:50" - }, - "scope": 10684, - "src": "5139:893:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 1250 - ], - "body": { - "id": 9773, - "nodeType": "Block", - "src": "6815:150:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 9762, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9747, - "src": "6847:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9761, - "name": "_checkProvisionTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1920, - 1936 - ], - "referencedDeclaration": 1920, - "src": "6825:21:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$", - "typeString": "function (address) view" - } - }, - "id": 9763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6825:30:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9764, - "nodeType": "ExpressionStatement", - "src": "6825:30:50" - }, - { - "expression": { - "arguments": [ - { - "id": 9766, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9747, - "src": "6892:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9765, - "name": "_acceptProvisionParameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1778, - "src": "6865:26:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 9767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6865:35:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9768, - "nodeType": "ExpressionStatement", - "src": "6865:35:50" - }, - { - "eventCall": { - "arguments": [ - { - "id": 9770, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9747, - "src": "6950:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9769, - "name": "ProvisionPendingParametersAccepted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1203, - "src": "6915:34:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 9771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6915:43:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9772, - "nodeType": "EmitStatement", - "src": "6910:48:50" - } - ] - }, - "documentation": { - "id": 9745, - "nodeType": "StructuredDocumentation", - "src": "6038:576:50", - "text": " @notice Accept staged parameters in the provision of a service provider\n @dev Implements {IDataService-acceptProvisionPendingParameters}\n Requirements:\n - The indexer must be registered\n - Must have previously staged provision parameters, using {IHorizonStaking-setProvisionParameters}\n - The new provision parameters must be valid according to the subgraph service rules\n Emits a {ProvisionPendingParametersAccepted} event\n @param indexer The address of the indexer to accept the provision for" - }, - "functionSelector": "ce0fc0cc", - "id": 9774, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 9753, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9747, - "src": "6761:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9754, - "kind": "modifierInvocation", - "modifierName": { - "id": 9752, - "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "6734:26:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1703, - "src": "6734:26:50" - }, - "nodeType": "ModifierInvocation", - "src": "6734:35:50" - }, - { - "arguments": [ - { - "id": 9756, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9747, - "src": "6792:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9757, - "kind": "modifierInvocation", - "modifierName": { - "id": 9755, - "name": "onlyRegisteredIndexer", - "nameLocations": [ - "6770:21:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 9567, - "src": "6770:21:50" - }, - "nodeType": "ModifierInvocation", - "src": "6770:30:50" - }, - { - "id": 9759, - "kind": "modifierInvocation", - "modifierName": { - "id": 9758, - "name": "whenNotPaused", - "nameLocations": [ - "6801:13:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5329, - "src": "6801:13:50" - }, - "nodeType": "ModifierInvocation", - "src": "6801:13:50" - } - ], - "name": "acceptProvisionPendingParameters", - "nameLocation": "6628:32:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 9751, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "6725:8:50" - }, - "parameters": { - "id": 9750, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9747, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "6678:7:50", - "nodeType": "VariableDeclaration", - "scope": 9774, - "src": "6670:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9746, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6670:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9749, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 9774, - "src": "6695:14:50", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 9748, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6695:5:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6660:55:50" - }, - "returnParameters": { - "id": 9760, - "nodeType": "ParameterList", - "parameters": [], - "src": "6815:0:50" - }, - "scope": 10684, - "src": "6619:346:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 1258 - ], - "body": { - "id": 9830, - "nodeType": "Block", - "src": "8390:354:50", - "statements": [ - { - "assignments": [ - 9795, - 9797, - 9799, - 9801 - ], - "declarations": [ - { - "constant": false, - "id": 9795, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "8409:20:50", - "nodeType": "VariableDeclaration", - "scope": 9830, - "src": "8401:28:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 9794, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8401:7:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9797, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "8439:6:50", - "nodeType": "VariableDeclaration", - "scope": 9830, - "src": "8431:14:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9796, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8431:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9799, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "8455:12:50", - "nodeType": "VariableDeclaration", - "scope": 9830, - "src": "8447:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9798, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8447:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9801, - "mutability": "mutable", - "name": "allocationProof", - "nameLocation": "8482:15:50", - "nodeType": "VariableDeclaration", - "scope": 9830, - "src": "8469:28:50", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 9800, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8469:5:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 9815, - "initialValue": { - "arguments": [ - { - "id": 9804, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9779, - "src": "8525:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "id": 9806, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8544:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 9805, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8544:7:50", - "typeDescriptions": {} - } - }, - { - "id": 9808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8553:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 9807, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8553:7:50", - "typeDescriptions": {} - } - }, - { - "id": 9810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8562:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9809, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8562:7:50", - "typeDescriptions": {} - } - }, - { - "id": 9812, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8571:5:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 9811, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8571:5:50", - "typeDescriptions": {} - } - } - ], - "id": 9813, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8543:34:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_uint256_$_$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(bytes32),type(uint256),type(address),type(bytes storage pointer))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_uint256_$_$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(bytes32),type(uint256),type(address),type(bytes storage pointer))" - } - ], - "expression": { - "id": 9802, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "8501:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 9803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "8505:6:50", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "8501:10:50", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 9814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8501:86:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bytes32_$_t_uint256_$_t_address_payable_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bytes32,uint256,address payable,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8400:187:50" - }, - { - "expression": { - "arguments": [ - { - "id": 9817, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9777, - "src": "8607:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9818, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9799, - "src": "8616:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9819, - "name": "subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9795, - "src": "8630:20:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 9820, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9797, - "src": "8652:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 9821, - "name": "allocationProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9801, - "src": "8660:15:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 9822, - "name": "delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2152, - "src": "8677:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 9816, - "name": "_allocate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12401, - "src": "8597:9:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint32_$returns$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (address,address,bytes32,uint256,bytes memory,uint32) returns (struct Allocation.State memory)" - } - }, - "id": 9823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8597:96:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 9824, - "nodeType": "ExpressionStatement", - "src": "8597:96:50" - }, - { - "eventCall": { - "arguments": [ - { - "id": 9826, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9777, - "src": "8723:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9827, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9779, - "src": "8732:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 9825, - "name": "ServiceStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "8708:14:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 9828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8708:29:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9829, - "nodeType": "EmitStatement", - "src": "8703:34:50" - } - ] - }, - "documentation": { - "id": 9775, - "nodeType": "StructuredDocumentation", - "src": "6971:1153:50", - "text": " @notice Allocates tokens to subgraph deployment, manifesting the indexer's commitment to index it\n @dev This is the equivalent of the `allocate` function in the legacy Staking contract.\n Requirements:\n - The indexer must be registered\n - The provision must be valid according to the subgraph service rules\n - Allocation id cannot be zero\n - Allocation id cannot be reused from the legacy staking contract\n - The indexer must have enough available tokens to allocate\n The `allocationProof` is a 65-bytes Ethereum signed message of `keccak256(indexerAddress,allocationId)`.\n See {AllocationManager-allocate} for more details.\n Emits {ServiceStarted} and {AllocationCreated} events\n @param indexer The address of the indexer\n @param data Encoded data:\n - bytes32 `subgraphDeploymentId`: The id of the subgraph deployment\n - uint256 `tokens`: The amount of tokens to allocate\n - address `allocationId`: The id of the allocation\n - bytes `allocationProof`: Signed proof of the allocation id address ownership" - }, - "functionSelector": "dedf6726", - "id": 9831, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 9783, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9777, - "src": "8280:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9784, - "kind": "modifierInvocation", - "modifierName": { - "id": 9782, - "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "8253:26:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1703, - "src": "8253:26:50" - }, - "nodeType": "ModifierInvocation", - "src": "8253:35:50" - }, - { - "arguments": [ - { - "id": 9786, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9777, - "src": "8316:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9787, - "kind": "modifierInvocation", - "modifierName": { - "id": 9785, - "name": "onlyValidProvision", - "nameLocations": [ - "8297:18:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1728, - "src": "8297:18:50" - }, - "nodeType": "ModifierInvocation", - "src": "8297:27:50" - }, - { - "arguments": [ - { - "id": 9789, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9777, - "src": "8355:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9790, - "kind": "modifierInvocation", - "modifierName": { - "id": 9788, - "name": "onlyRegisteredIndexer", - "nameLocations": [ - "8333:21:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 9567, - "src": "8333:21:50" - }, - "nodeType": "ModifierInvocation", - "src": "8333:30:50" - }, - { - "id": 9792, - "kind": "modifierInvocation", - "modifierName": { - "id": 9791, - "name": "whenNotPaused", - "nameLocations": [ - "8372:13:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5329, - "src": "8372:13:50" - }, - "nodeType": "ModifierInvocation", - "src": "8372:13:50" - } - ], - "name": "startService", - "nameLocation": "8138:12:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 9781, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "8236:8:50" - }, - "parameters": { - "id": 9780, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9777, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "8168:7:50", - "nodeType": "VariableDeclaration", - "scope": 9831, - "src": "8160:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9776, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9779, - "mutability": "mutable", - "name": "data", - "nameLocation": "8200:4:50", - "nodeType": "VariableDeclaration", - "scope": 9831, - "src": "8185:19:50", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 9778, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8185:5:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "8150:60:50" - }, - "returnParameters": { - "id": 9793, - "nodeType": "ParameterList", - "parameters": [], - "src": "8390:0:50" - }, - "scope": 10684, - "src": "8129:615:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 1266 - ], - "body": { - "id": 9881, - "nodeType": "Block", - "src": "9962:315:50", - "statements": [ - { - "assignments": [ - 9849 - ], - "declarations": [ - { - "constant": false, - "id": 9849, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "9980:12:50", - "nodeType": "VariableDeclaration", - "scope": 9881, - "src": "9972:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9848, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9972:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 9857, - "initialValue": { - "arguments": [ - { - "id": 9852, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9836, - "src": "10006:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "id": 9854, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10013:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9853, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10013:7:50", - "typeDescriptions": {} - } - } - ], - "id": 9855, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "10012:9:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - } - ], - "expression": { - "id": 9850, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "9995:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 9851, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "9999:6:50", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "9995:10:50", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 9856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9995:27:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9972:50:50" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 9861, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9849, - "src": "10069:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 9859, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "10053:11:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 9860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10065:3:50", - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 11554, - "src": "10053:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" - } - }, - "id": 9862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10053:29:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 9863, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "10083:7:50", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "10053:37:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 9864, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9834, - "src": "10094:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10053:48:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 9867, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9834, - "src": "10154:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9868, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9849, - "src": "10163:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9866, - "name": "SubgraphServiceAllocationNotAuthorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11145, - "src": "10115:38:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", - "typeString": "function (address,address) pure returns (error)" - } - }, - "id": 9869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10115:61:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9858, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10032:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10032:154:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9871, - "nodeType": "ExpressionStatement", - "src": "10032:154:50" - }, - { - "expression": { - "arguments": [ - { - "id": 9873, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9849, - "src": "10213:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9872, - "name": "_closeAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12890, - "src": "10196:16:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 9874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10196:30:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9875, - "nodeType": "ExpressionStatement", - "src": "10196:30:50" - }, - { - "eventCall": { - "arguments": [ - { - "id": 9877, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9834, - "src": "10256:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9878, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9836, - "src": "10265:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 9876, - "name": "ServiceStopped", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "10241:14:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 9879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "10241:29:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9880, - "nodeType": "EmitStatement", - "src": "10236:34:50" - } - ] - }, - "documentation": { - "id": 9832, - "nodeType": "StructuredDocumentation", - "src": "8750:1027:50", - "text": " @notice Close an allocation, indicating that the indexer has stopped indexing the subgraph deployment\n @dev This is the equivalent of the `closeAllocation` function in the legacy Staking contract.\n There are a few notable differences with the legacy function:\n - allocations are nowlong lived. All service payments, including indexing rewards, should be collected periodically\n without the need of closing the allocation. Allocations should only be closed when indexers want to reclaim the allocated\n tokens for other purposes.\n - No POI is required to close an allocation. Indexers should present POIs to collect indexing rewards using {collect}.\n Requirements:\n - The indexer must be registered\n - Allocation must exist and be open\n Emits {ServiceStopped} and {AllocationClosed} events\n @param indexer The address of the indexer\n @param data Encoded data:\n - address `allocationId`: The id of the allocation" - }, - "functionSelector": "8180083b", - "id": 9882, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 9840, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9834, - "src": "9908:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9841, - "kind": "modifierInvocation", - "modifierName": { - "id": 9839, - "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "9881:26:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1703, - "src": "9881:26:50" - }, - "nodeType": "ModifierInvocation", - "src": "9881:35:50" - }, - { - "arguments": [ - { - "id": 9843, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9834, - "src": "9939:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9844, - "kind": "modifierInvocation", - "modifierName": { - "id": 9842, - "name": "onlyRegisteredIndexer", - "nameLocations": [ - "9917:21:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 9567, - "src": "9917:21:50" - }, - "nodeType": "ModifierInvocation", - "src": "9917:30:50" - }, - { - "id": 9846, - "kind": "modifierInvocation", - "modifierName": { - "id": 9845, - "name": "whenNotPaused", - "nameLocations": [ - "9948:13:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5329, - "src": "9948:13:50" - }, - "nodeType": "ModifierInvocation", - "src": "9948:13:50" - } - ], - "name": "stopService", - "nameLocation": "9791:11:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 9838, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "9872:8:50" - }, - "parameters": { - "id": 9837, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9834, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "9820:7:50", - "nodeType": "VariableDeclaration", - "scope": 9882, - "src": "9812:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9833, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9812:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9836, - "mutability": "mutable", - "name": "data", - "nameLocation": "9852:4:50", - "nodeType": "VariableDeclaration", - "scope": 9882, - "src": "9837:19:50", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 9835, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9837:5:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "9802:60:50" - }, - "returnParameters": { - "id": 9847, - "nodeType": "ParameterList", - "parameters": [], - "src": "9962:0:50" - }, - "scope": 10684, - "src": "9782:495:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 1279 - ], - "body": { - "id": 10007, - "nodeType": "Block", - "src": "11782:1102:50", - "statements": [ - { - "assignments": [ - 9908 - ], - "declarations": [ - { - "constant": false, - "id": 9908, - "mutability": "mutable", - "name": "paymentCollected", - "nameLocation": "11800:16:50", - "nodeType": "VariableDeclaration", - "scope": 10007, - "src": "11792:24:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9907, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11792:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 9910, - "initialValue": { - "hexValue": "30", - "id": 9909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11819:1:50", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "11792:28:50" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "id": 9915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9911, - "name": "paymentType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9888, - "src": "11835:11:50", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "expression": { - "id": 9912, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "11850:14:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGraphPayments_$2211_$", - "typeString": "type(contract IGraphPayments)" - } - }, - "id": 9913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11865:12:50", - "memberName": "PaymentTypes", - "nodeType": "MemberAccess", - "referencedDeclaration": 2166, - "src": "11850:27:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_PaymentTypes_$2166_$", - "typeString": "type(enum IGraphPayments.PaymentTypes)" - } - }, - "id": 9914, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "11878:8:50", - "memberName": "QueryFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 2163, - "src": "11850:36:50", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "src": "11835:51:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "commonType": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "id": 9954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 9950, - "name": "paymentType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9888, - "src": "12251:11:50", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "expression": { - "id": 9951, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "12266:14:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGraphPayments_$2211_$", - "typeString": "type(contract IGraphPayments)" - } - }, - "id": 9952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12281:12:50", - "memberName": "PaymentTypes", - "nodeType": "MemberAccess", - "referencedDeclaration": 2166, - "src": "12266:27:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_PaymentTypes_$2166_$", - "typeString": "type(enum IGraphPayments.PaymentTypes)" - } - }, - "id": 9953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "12294:15:50", - "memberName": "IndexingRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 2165, - "src": "12266:43:50", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "src": "12251:58:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 9996, - "nodeType": "Block", - "src": "12688:78:50", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 9993, - "name": "paymentType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9888, - "src": "12743:11:50", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - ], - "id": 9992, - "name": "SubgraphServiceInvalidPaymentType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11122, - "src": "12709:33:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_enum$_PaymentTypes_$2166_$returns$_t_error_$", - "typeString": "function (enum IGraphPayments.PaymentTypes) pure returns (error)" - } - }, - "id": 9994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12709:46:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - }, - "id": 9995, - "nodeType": "RevertStatement", - "src": "12702:53:50" - } - ] - }, - "id": 9997, - "nodeType": "IfStatement", - "src": "12247:519:50", - "trueBody": { - "id": 9991, - "nodeType": "Block", - "src": "12311:371:50", - "statements": [ - { - "assignments": [ - 9956, - 9958 - ], - "declarations": [ - { - "constant": false, - "id": 9956, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "12334:12:50", - "nodeType": "VariableDeclaration", - "scope": 9991, - "src": "12326:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12326:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9958, - "mutability": "mutable", - "name": "poi", - "nameLocation": "12356:3:50", - "nodeType": "VariableDeclaration", - "scope": 9991, - "src": "12348:11:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 9957, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12348:7:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 9968, - "initialValue": { - "arguments": [ - { - "id": 9961, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9890, - "src": "12374:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "id": 9963, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12381:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 9962, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12381:7:50", - "typeDescriptions": {} - } - }, - { - "id": 9965, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12390:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 9964, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12390:7:50", - "typeDescriptions": {} - } - } - ], - "id": 9966, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12380:18:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$", - "typeString": "tuple(type(address),type(bytes32))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes32_$_$", - "typeString": "tuple(type(address),type(bytes32))" - } - ], - "expression": { - "id": 9959, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "12363:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 9960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "12367:6:50", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "12363:10:50", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 9967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12363:36:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_payable_$_t_bytes32_$", - "typeString": "tuple(address payable,bytes32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12325:74:50" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 9972, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9956, - "src": "12454:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 9970, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "12438:11:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 9971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12450:3:50", - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 11554, - "src": "12438:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" - } - }, - "id": 9973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12438:29:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 9974, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12468:7:50", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "12438:37:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 9975, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9885, - "src": "12479:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12438:48:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 9978, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9885, - "src": "12543:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9979, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9956, - "src": "12552:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9977, - "name": "SubgraphServiceAllocationNotAuthorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11145, - "src": "12504:38:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", - "typeString": "function (address,address) pure returns (error)" - } - }, - "id": 9980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12504:61:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12413:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12413:166:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9982, - "nodeType": "ExpressionStatement", - "src": "12413:166:50" - }, - { - "expression": { - "id": 9989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 9983, - "name": "paymentCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9908, - "src": "12593:16:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 9985, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9956, - "src": "12636:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9986, - "name": "poi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9958, - "src": "12650:3:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 9987, - "name": "delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2152, - "src": "12655:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 9984, - "name": "_collectIndexingRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12657, - "src": "12612:23:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$_t_uint32_$returns$_t_uint256_$", - "typeString": "function (address,bytes32,uint32) returns (uint256)" - } - }, - "id": 9988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12612:59:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12593:78:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9990, - "nodeType": "ExpressionStatement", - "src": "12593:78:50" - } - ] - } - }, - "id": 9998, - "nodeType": "IfStatement", - "src": "11831:935:50", - "trueBody": { - "id": 9949, - "nodeType": "Block", - "src": "11888:353:50", - "statements": [ - { - "assignments": [ - 9920 - ], - "declarations": [ - { - "constant": false, - "id": 9920, - "mutability": "mutable", - "name": "signedRav", - "nameLocation": "11933:9:50", - "nodeType": "VariableDeclaration", - "scope": 9949, - "src": "11902:40:50", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_memory_ptr", - "typeString": "struct ITAPCollector.SignedRAV" - }, - "typeName": { - "id": 9919, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9918, - "name": "ITAPCollector.SignedRAV", - "nameLocations": [ - "11902:13:50", - "11916:9:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2546, - "src": "11902:23:50" - }, - "referencedDeclaration": 2546, - "src": "11902:23:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_storage_ptr", - "typeString": "struct ITAPCollector.SignedRAV" - } - }, - "visibility": "internal" - } - ], - "id": 9928, - "initialValue": { - "arguments": [ - { - "id": 9923, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9890, - "src": "11956:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "expression": { - "id": 9924, - "name": "ITAPCollector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "11963:13:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ITAPCollector_$2695_$", - "typeString": "type(contract ITAPCollector)" - } - }, - "id": 9925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11977:9:50", - "memberName": "SignedRAV", - "nodeType": "MemberAccess", - "referencedDeclaration": 2546, - "src": "11963:23:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SignedRAV_$2546_storage_ptr_$", - "typeString": "type(struct ITAPCollector.SignedRAV storage pointer)" - } - } - ], - "id": 9926, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11962:25:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_SignedRAV_$2546_storage_ptr_$", - "typeString": "type(struct ITAPCollector.SignedRAV storage pointer)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_type$_t_struct$_SignedRAV_$2546_storage_ptr_$", - "typeString": "type(struct ITAPCollector.SignedRAV storage pointer)" - } - ], - "expression": { - "id": 9921, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "11945:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 9922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "11949:6:50", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "11945:10:50", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 9927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11945:43:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_memory_ptr", - "typeString": "struct ITAPCollector.SignedRAV memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11902:86:50" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 9930, - "name": "signedRav", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9920, - "src": "12027:9:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_memory_ptr", - "typeString": "struct ITAPCollector.SignedRAV memory" - } - }, - "id": 9931, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12037:3:50", - "memberName": "rav", - "nodeType": "MemberAccess", - "referencedDeclaration": 2543, - "src": "12027:13:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2539_memory_ptr", - "typeString": "struct ITAPCollector.ReceiptAggregateVoucher memory" - } - }, - "id": 9932, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12041:15:50", - "memberName": "serviceProvider", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "12027:29:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 9933, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9885, - "src": "12060:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12027:40:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 9936, - "name": "signedRav", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9920, - "src": "12116:9:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_memory_ptr", - "typeString": "struct ITAPCollector.SignedRAV memory" - } - }, - "id": 9937, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12126:3:50", - "memberName": "rav", - "nodeType": "MemberAccess", - "referencedDeclaration": 2543, - "src": "12116:13:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2539_memory_ptr", - "typeString": "struct ITAPCollector.ReceiptAggregateVoucher memory" - } - }, - "id": 9938, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12130:15:50", - "memberName": "serviceProvider", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "12116:29:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 9939, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9885, - "src": "12147:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9935, - "name": "SubgraphServiceIndexerMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11138, - "src": "12085:30:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", - "typeString": "function (address,address) pure returns (error)" - } - }, - "id": 9940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12085:70:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 9929, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12002:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 9941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12002:167:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9942, - "nodeType": "ExpressionStatement", - "src": "12002:167:50" - }, - { - "expression": { - "id": 9947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 9943, - "name": "paymentCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9908, - "src": "12183:16:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 9945, - "name": "signedRav", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9920, - "src": "12220:9:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_memory_ptr", - "typeString": "struct ITAPCollector.SignedRAV memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SignedRAV_$2546_memory_ptr", - "typeString": "struct ITAPCollector.SignedRAV memory" - } - ], - "id": 9944, - "name": "_collectQueryFees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10661, - "src": "12202:17:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_SignedRAV_$2546_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (struct ITAPCollector.SignedRAV memory) returns (uint256)" - } - }, - "id": 9946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12202:28:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12183:47:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9948, - "nodeType": "ExpressionStatement", - "src": "12183:47:50" - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "id": 10000, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9885, - "src": "12805:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10001, - "name": "paymentType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9888, - "src": "12814:11:50", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - { - "id": 10002, - "name": "paymentCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9908, - "src": "12827:16:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9999, - "name": "ServicePaymentCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1227, - "src": "12781:23:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_enum$_PaymentTypes_$2166_$_t_uint256_$returns$__$", - "typeString": "function (address,enum IGraphPayments.PaymentTypes,uint256)" - } - }, - "id": 10003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12781:63:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10004, - "nodeType": "EmitStatement", - "src": "12776:68:50" - }, - { - "expression": { - "id": 10005, - "name": "paymentCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9908, - "src": "12861:16:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9906, - "id": 10006, - "nodeType": "Return", - "src": "12854:23:50" - } - ] - }, - "documentation": { - "id": 9883, - "nodeType": "StructuredDocumentation", - "src": "10283:1163:50", - "text": " @notice Collects payment for the service provided by the indexer\n Allows collecting different types of payments such as query fees and indexing rewards.\n It uses Graph Horizon payments protocol to process payments.\n Reverts if the payment type is not supported.\n @dev This function is the equivalent of the `collect` function for query fees and the `closeAllocation` function\n for indexing rewards in the legacy Staking contract.\n Requirements:\n - The indexer must be registered\n - The provision must be valid according to the subgraph service rules\n Emits a {ServicePaymentCollected} event. Emits payment type specific events.\n For query fees, see {SubgraphService-_collectQueryFees} for more details.\n For indexing rewards, see {AllocationManager-_collectIndexingRewards} for more details.\n @param indexer The address of the indexer\n @param paymentType The type of payment to collect as defined in {IGraphPayments}\n @param data Encoded data to fulfill the payment. The structure of the data depends on the payment type. See above." - }, - "functionSelector": "b15d2a2c", - "id": 10008, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 9894, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9885, - "src": "11646:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9895, - "kind": "modifierInvocation", - "modifierName": { - "id": 9893, - "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "11619:26:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1703, - "src": "11619:26:50" - }, - "nodeType": "ModifierInvocation", - "src": "11619:35:50" - }, - { - "arguments": [ - { - "id": 9897, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9885, - "src": "11682:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9898, - "kind": "modifierInvocation", - "modifierName": { - "id": 9896, - "name": "onlyValidProvision", - "nameLocations": [ - "11663:18:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1728, - "src": "11663:18:50" - }, - "nodeType": "ModifierInvocation", - "src": "11663:27:50" - }, - { - "arguments": [ - { - "id": 9900, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9885, - "src": "11721:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 9901, - "kind": "modifierInvocation", - "modifierName": { - "id": 9899, - "name": "onlyRegisteredIndexer", - "nameLocations": [ - "11699:21:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 9567, - "src": "11699:21:50" - }, - "nodeType": "ModifierInvocation", - "src": "11699:30:50" - }, - { - "id": 9903, - "kind": "modifierInvocation", - "modifierName": { - "id": 9902, - "name": "whenNotPaused", - "nameLocations": [ - "11738:13:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5329, - "src": "11738:13:50" - }, - "nodeType": "ModifierInvocation", - "src": "11738:13:50" - } - ], - "name": "collect", - "nameLocation": "11460:7:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 9892, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "11602:8:50" - }, - "parameters": { - "id": 9891, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9885, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "11485:7:50", - "nodeType": "VariableDeclaration", - "scope": 10008, - "src": "11477:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9884, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11477:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9888, - "mutability": "mutable", - "name": "paymentType", - "nameLocation": "11530:11:50", - "nodeType": "VariableDeclaration", - "scope": 10008, - "src": "11502:39:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "typeName": { - "id": 9887, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 9886, - "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "11502:14:50", - "11517:12:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2166, - "src": "11502:27:50" - }, - "referencedDeclaration": 2166, - "src": "11502:27:50", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 9890, - "mutability": "mutable", - "name": "data", - "nameLocation": "11566:4:50", - "nodeType": "VariableDeclaration", - "scope": 10008, - "src": "11551:19:50", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 9889, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11551:5:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "11467:109:50" - }, - "returnParameters": { - "id": 9906, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9905, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10008, - "src": "11769:7:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9904, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11769:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11768:9:50" - }, - "scope": 10684, - "src": "11451:1433:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 1287 - ], - "body": { - "id": 10051, - "nodeType": "Block", - "src": "13497:226:50", - "statements": [ - { - "assignments": [ - 10020, - 10022 - ], - "declarations": [ - { - "constant": false, - "id": 10020, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "13516:6:50", - "nodeType": "VariableDeclaration", - "scope": 10051, - "src": "13508:14:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10019, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13508:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10022, - "mutability": "mutable", - "name": "reward", - "nameLocation": "13532:6:50", - "nodeType": "VariableDeclaration", - "scope": 10051, - "src": "13524:14:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10021, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13524:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 10032, - "initialValue": { - "arguments": [ - { - "id": 10025, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10013, - "src": "13553:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "components": [ - { - "id": 10027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13560:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 10026, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13560:7:50", - "typeDescriptions": {} - } - }, - { - "id": 10029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13569:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 10028, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13569:7:50", - "typeDescriptions": {} - } - } - ], - "id": 10030, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13559:18:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$", - "typeString": "tuple(type(uint256),type(uint256))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$", - "typeString": "tuple(type(uint256),type(uint256))" - } - ], - "expression": { - "id": 10023, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "13542:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 10024, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "13546:6:50", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "13542:10:50", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 10031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13542:36:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13507:71:50" - }, - { - "expression": { - "arguments": [ - { - "id": 10036, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10011, - "src": "13610:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10037, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "13619:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 10038, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10022, - "src": "13627:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10041, - "name": "_disputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13369, - "src": "13643:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IDisputeManager_$11057_$", - "typeString": "function () view returns (contract IDisputeManager)" - } - }, - "id": 10042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13643:17:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - ], - "id": 10040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13635:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 10039, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13635:7:50", - "typeDescriptions": {} - } - }, - "id": 10043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13635:26:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10033, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "13588:13:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 10034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13588:15:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 10035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13604:5:50", - "memberName": "slash", - "nodeType": "MemberAccess", - "referencedDeclaration": 3626, - "src": "13588:21:50", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,uint256,address) external" - } - }, - "id": 10044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13588:74:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10045, - "nodeType": "ExpressionStatement", - "src": "13588:74:50" - }, - { - "eventCall": { - "arguments": [ - { - "id": 10047, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10011, - "src": "13700:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10048, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "13709:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10046, - "name": "ServiceProviderSlashed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1234, - "src": "13677:22:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13677:39:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10050, - "nodeType": "EmitStatement", - "src": "13672:44:50" - } - ] - }, - "documentation": { - "id": 10009, - "nodeType": "StructuredDocumentation", - "src": "12890:512:50", - "text": " @notice Slash an indexer\n @dev Slashing is delegated to the {DisputeManager} contract which is the only one that can call this\n function.\n See {IHorizonStaking-slash} for more details.\n Emits a {ServiceProviderSlashed} event.\n @param indexer The address of the indexer to be slashed\n @param data Encoded data:\n - uint256 `tokens`: The amount of tokens to slash\n - uint256 `reward`: The amount of tokens to reward the slasher" - }, - "functionSelector": "cb8347fe", - "id": 10052, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 10017, - "kind": "modifierInvocation", - "modifierName": { - "id": 10016, - "name": "onlyDisputeManager", - "nameLocations": [ - "13478:18:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 13305, - "src": "13478:18:50" - }, - "nodeType": "ModifierInvocation", - "src": "13478:18:50" - } - ], - "name": "slash", - "nameLocation": "13416:5:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10015, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "13469:8:50" - }, - "parameters": { - "id": 10014, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10011, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "13430:7:50", - "nodeType": "VariableDeclaration", - "scope": 10052, - "src": "13422:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10010, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13422:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10013, - "mutability": "mutable", - "name": "data", - "nameLocation": "13454:4:50", - "nodeType": "VariableDeclaration", - "scope": 10052, - "src": "13439:19:50", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10012, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13439:5:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "13421:38:50" - }, - "returnParameters": { - "id": 10018, - "nodeType": "ParameterList", - "parameters": [], - "src": "13497:0:50" - }, - "scope": 10684, - "src": "13407:316:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11171 - ], - "body": { - "id": 10107, - "nodeType": "Block", - "src": "13874:471:50", - "statements": [ - { - "assignments": [ - 10063 - ], - "declarations": [ - { - "constant": false, - "id": 10063, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "13908:10:50", - "nodeType": "VariableDeclaration", - "scope": 10107, - "src": "13884:34:50", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 10062, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 10061, - "name": "Allocation.State", - "nameLocations": [ - "13884:10:50", - "13895:5:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "13884:16:50" - }, - "referencedDeclaration": 11307, - "src": "13884:16:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 10068, - "initialValue": { - "arguments": [ - { - "id": 10066, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "13937:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 10064, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "13921:11:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 10065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13933:3:50", - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 11554, - "src": "13921:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" - } - }, - "id": 10067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13921:29:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13884:66:50" - }, - { - "assignments": [ - 10070 - ], - "declarations": [ - { - "constant": false, - "id": 10070, - "mutability": "mutable", - "name": "isStale", - "nameLocation": "13965:7:50", - "nodeType": "VariableDeclaration", - "scope": 10107, - "src": "13960:12:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10069, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13960:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 10075, - "initialValue": { - "arguments": [ - { - "id": 10073, - "name": "maxPOIStaleness", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13056, - "src": "13994:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 10071, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10063, - "src": "13975:10:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10072, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13986:7:50", - "memberName": "isStale", - "nodeType": "MemberAccess", - "referencedDeclaration": 11587, - "src": "13975:18:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_State_$11307_memory_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory,uint256) view returns (bool)" - } - }, - "id": 10074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13975:35:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13960:50:50" - }, - { - "assignments": [ - 10077 - ], - "declarations": [ - { - "constant": false, - "id": 10077, - "mutability": "mutable", - "name": "isOverAllocated_", - "nameLocation": "14025:16:50", - "nodeType": "VariableDeclaration", - "scope": 10107, - "src": "14020:21:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10076, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14020:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "id": 10083, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 10079, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10063, - "src": "14061:10:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10080, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14072:7:50", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "14061:18:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10081, - "name": "delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2152, - "src": "14081:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 10078, - "name": "_isOverAllocated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12997, - "src": "14044:16:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint32_$returns$_t_bool_$", - "typeString": "function (address,uint32) view returns (bool)" - } - }, - "id": 10082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14044:53:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14020:77:50" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 10087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 10085, - "name": "isStale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10070, - "src": "14115:7:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "id": 10086, - "name": "isOverAllocated_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10077, - "src": "14126:16:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "14115:27:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 10089, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "14186:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10088, - "name": "SubgraphServiceCannotForceCloseAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11157, - "src": "14144:41:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 10090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14144:55:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 10084, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14107:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 10091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14107:93:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10092, - "nodeType": "ExpressionStatement", - "src": "14107:93:50" - }, - { - "expression": { - "arguments": [ - { - "id": 10097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14218:26:50", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 10094, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10063, - "src": "14219:10:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10095, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14230:12:50", - "memberName": "isAltruistic", - "nodeType": "MemberAccess", - "referencedDeclaration": 11640, - "src": "14219:23:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 10096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14219:25:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 10099, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "14284:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10098, - "name": "SubgraphServiceAllocationIsAltruistic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11162, - "src": "14246:37:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 10100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14246:51:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 10093, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14210:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 10101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14210:88:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10102, - "nodeType": "ExpressionStatement", - "src": "14210:88:50" - }, - { - "expression": { - "arguments": [ - { - "id": 10104, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "14325:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10103, - "name": "_closeAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12890, - "src": "14308:16:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14308:30:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10106, - "nodeType": "ExpressionStatement", - "src": "14308:30:50" - } - ] - }, - "documentation": { - "id": 10053, - "nodeType": "StructuredDocumentation", - "src": "13729:70:50", - "text": " @notice See {ISubgraphService.closeStaleAllocation}" - }, - "functionSelector": "a827a90c", - "id": 10108, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "forceCloseAllocation", - "nameLocation": "13813:20:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10057, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "13865:8:50" - }, - "parameters": { - "id": 10056, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10055, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "13842:12:50", - "nodeType": "VariableDeclaration", - "scope": 10108, - "src": "13834:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13834:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "13833:22:50" - }, - "returnParameters": { - "id": 10058, - "nodeType": "ParameterList", - "parameters": [], - "src": "13874:0:50" - }, - "scope": 10684, - "src": "13804:541:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11181 - ], - "body": { - "id": 10149, - "nodeType": "Block", - "src": "14695:237:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 10132, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "14742:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 10130, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "14726:11:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 10131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14738:3:50", - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 11554, - "src": "14726:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" - } - }, - "id": 10133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14726:29:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10134, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14756:7:50", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "14726:37:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 10135, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10111, - "src": "14767:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "14726:48:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 10138, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10111, - "src": "14827:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10139, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "14836:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10137, - "name": "SubgraphServiceAllocationNotAuthorized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11145, - "src": "14788:38:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", - "typeString": "function (address,address) pure returns (error)" - } - }, - "id": 10140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14788:61:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 10129, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14705:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 10141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14705:154:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10142, - "nodeType": "ExpressionStatement", - "src": "14705:154:50" - }, - { - "expression": { - "arguments": [ - { - "id": 10144, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "14887:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10145, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10115, - "src": "14901:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 10146, - "name": "delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2152, - "src": "14909:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 10143, - "name": "_resizeAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12823, - "src": "14869:17:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (address,uint256,uint32) returns (struct Allocation.State memory)" - } - }, - "id": 10147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14869:56:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10148, - "nodeType": "ExpressionStatement", - "src": "14869:56:50" - } - ] - }, - "documentation": { - "id": 10109, - "nodeType": "StructuredDocumentation", - "src": "14351:66:50", - "text": " @notice See {ISubgraphService.resizeAllocation}" - }, - "functionSelector": "81e777a7", - "id": 10150, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 10118, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10111, - "src": "14585:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 10119, - "kind": "modifierInvocation", - "modifierName": { - "id": 10117, - "name": "onlyAuthorizedForProvision", - "nameLocations": [ - "14558:26:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1703, - "src": "14558:26:50" - }, - "nodeType": "ModifierInvocation", - "src": "14558:35:50" - }, - { - "arguments": [ - { - "id": 10121, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10111, - "src": "14621:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 10122, - "kind": "modifierInvocation", - "modifierName": { - "id": 10120, - "name": "onlyValidProvision", - "nameLocations": [ - "14602:18:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1728, - "src": "14602:18:50" - }, - "nodeType": "ModifierInvocation", - "src": "14602:27:50" - }, - { - "arguments": [ - { - "id": 10124, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10111, - "src": "14660:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 10125, - "kind": "modifierInvocation", - "modifierName": { - "id": 10123, - "name": "onlyRegisteredIndexer", - "nameLocations": [ - "14638:21:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 9567, - "src": "14638:21:50" - }, - "nodeType": "ModifierInvocation", - "src": "14638:30:50" - }, - { - "id": 10127, - "kind": "modifierInvocation", - "modifierName": { - "id": 10126, - "name": "whenNotPaused", - "nameLocations": [ - "14677:13:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5329, - "src": "14677:13:50" - }, - "nodeType": "ModifierInvocation", - "src": "14677:13:50" - } - ], - "name": "resizeAllocation", - "nameLocation": "14431:16:50", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10111, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "14465:7:50", - "nodeType": "VariableDeclaration", - "scope": 10150, - "src": "14457:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14457:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10113, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "14490:12:50", - "nodeType": "VariableDeclaration", - "scope": 10150, - "src": "14482:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14482:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10115, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "14520:6:50", - "nodeType": "VariableDeclaration", - "scope": 10150, - "src": "14512:14:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14512:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "14447:85:50" - }, - "returnParameters": { - "id": 10128, - "nodeType": "ParameterList", - "parameters": [], - "src": "14695:0:50" - }, - "scope": 10684, - "src": "14422:510:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11191 - ], - "body": { - "id": 10169, - "nodeType": "Block", - "src": "15176:86:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 10164, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10153, - "src": "15211:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10165, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10155, - "src": "15220:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10166, - "name": "subgraphDeploymentID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10157, - "src": "15234:20:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 10163, - "name": "_migrateLegacyAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12307, - "src": "15186:24:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,bytes32)" - } - }, - "id": 10167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15186:69:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10168, - "nodeType": "ExpressionStatement", - "src": "15186:69:50" - } - ] - }, - "documentation": { - "id": 10151, - "nodeType": "StructuredDocumentation", - "src": "14938:73:50", - "text": " @notice See {ISubgraphService.migrateLegacyAllocation}" - }, - "functionSelector": "7dfe6d28", - "id": 10170, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 10161, - "kind": "modifierInvocation", - "modifierName": { - "id": 10160, - "name": "onlyOwner", - "nameLocations": [ - "15166:9:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "15166:9:50" - }, - "nodeType": "ModifierInvocation", - "src": "15166:9:50" - } - ], - "name": "migrateLegacyAllocation", - "nameLocation": "15025:23:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10159, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "15157:8:50" - }, - "parameters": { - "id": 10158, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10153, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "15066:7:50", - "nodeType": "VariableDeclaration", - "scope": 10170, - "src": "15058:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10152, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15058:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10155, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "15091:12:50", - "nodeType": "VariableDeclaration", - "scope": 10170, - "src": "15083:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10154, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15083:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10157, - "mutability": "mutable", - "name": "subgraphDeploymentID", - "nameLocation": "15121:20:50", - "nodeType": "VariableDeclaration", - "scope": 10170, - "src": "15113:28:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10156, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15113:7:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "15048:99:50" - }, - "returnParameters": { - "id": 10162, - "nodeType": "ParameterList", - "parameters": [], - "src": "15176:0:50" - }, - "scope": 10684, - "src": "15016:246:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11199 - ], - "body": { - "id": 10186, - "nodeType": "Block", - "src": "15430:58:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 10182, - "name": "pauseGuardian", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10173, - "src": "15458:13:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10183, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10175, - "src": "15473:7:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10181, - "name": "_setPauseGuardian", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1185, - "src": "15440:17:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,bool)" - } - }, - "id": 10184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15440:41:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10185, - "nodeType": "ExpressionStatement", - "src": "15440:41:50" - } - ] - }, - "documentation": { - "id": 10171, - "nodeType": "StructuredDocumentation", - "src": "15268:66:50", - "text": " @notice See {ISubgraphService.setPauseGuardian}" - }, - "functionSelector": "35577962", - "id": 10187, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 10179, - "kind": "modifierInvocation", - "modifierName": { - "id": 10178, - "name": "onlyOwner", - "nameLocations": [ - "15420:9:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "15420:9:50" - }, - "nodeType": "ModifierInvocation", - "src": "15420:9:50" - } - ], - "name": "setPauseGuardian", - "nameLocation": "15348:16:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10177, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "15411:8:50" - }, - "parameters": { - "id": 10176, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10173, - "mutability": "mutable", - "name": "pauseGuardian", - "nameLocation": "15373:13:50", - "nodeType": "VariableDeclaration", - "scope": 10187, - "src": "15365:21:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10172, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15365:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10175, - "mutability": "mutable", - "name": "allowed", - "nameLocation": "15393:7:50", - "nodeType": "VariableDeclaration", - "scope": 10187, - "src": "15388:12:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10174, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15388:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "15364:37:50" - }, - "returnParameters": { - "id": 10180, - "nodeType": "ParameterList", - "parameters": [], - "src": "15430:0:50" - }, - "scope": 10684, - "src": "15339:149:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11235 - ], - "body": { - "id": 10200, - "nodeType": "Block", - "src": "15647:71:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 10195, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "15680:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15684:6:50", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "15680:10:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10197, - "name": "rewardsDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10190, - "src": "15692:18:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10194, - "name": "_setRewardsDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12910, - "src": "15657:22:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 10198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15657:54:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10199, - "nodeType": "ExpressionStatement", - "src": "15657:54:50" - } - ] - }, - "documentation": { - "id": 10188, - "nodeType": "StructuredDocumentation", - "src": "15494:71:50", - "text": " @notice See {ISubgraphService.setRewardsDestination}" - }, - "functionSelector": "772495c3", - "id": 10201, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setRewardsDestination", - "nameLocation": "15579:21:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10192, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "15638:8:50" - }, - "parameters": { - "id": 10191, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10190, - "mutability": "mutable", - "name": "rewardsDestination", - "nameLocation": "15609:18:50", - "nodeType": "VariableDeclaration", - "scope": 10201, - "src": "15601:26:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10189, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15601:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "15600:28:50" - }, - "returnParameters": { - "id": 10193, - "nodeType": "ParameterList", - "parameters": [], - "src": "15647:0:50" - }, - "scope": 10684, - "src": "15570:148:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11205 - ], - "body": { - "id": 10215, - "nodeType": "Block", - "src": "15899:95:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 10211, - "name": "minimumProvisionTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10204, - "src": "15934:22:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 10212, - "name": "DEFAULT_MAX_PROVISION_TOKENS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "15958:28:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10210, - "name": "_setProvisionTokensRange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "15909:24:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 10213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15909:78:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10214, - "nodeType": "ExpressionStatement", - "src": "15909:78:50" - } - ] - }, - "documentation": { - "id": 10202, - "nodeType": "StructuredDocumentation", - "src": "15724:75:50", - "text": " @notice See {ISubgraphService.setMinimumProvisionTokens}" - }, - "functionSelector": "832bc923", - "id": 10216, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 10208, - "kind": "modifierInvocation", - "modifierName": { - "id": 10207, - "name": "onlyOwner", - "nameLocations": [ - "15889:9:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "15889:9:50" - }, - "nodeType": "ModifierInvocation", - "src": "15889:9:50" - } - ], - "name": "setMinimumProvisionTokens", - "nameLocation": "15813:25:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10206, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "15880:8:50" - }, - "parameters": { - "id": 10205, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10204, - "mutability": "mutable", - "name": "minimumProvisionTokens", - "nameLocation": "15847:22:50", - "nodeType": "VariableDeclaration", - "scope": 10216, - "src": "15839:30:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15839:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "15838:32:50" - }, - "returnParameters": { - "id": 10209, - "nodeType": "ParameterList", - "parameters": [], - "src": "15899:0:50" - }, - "scope": 10684, - "src": "15804:190:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11211 - ], - "body": { - "id": 10229, - "nodeType": "Block", - "src": "16153:53:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 10226, - "name": "delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10219, - "src": "16183:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 10225, - "name": "_setDelegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1793, - "src": "16163:19:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 10227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16163:36:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10228, - "nodeType": "ExpressionStatement", - "src": "16163:36:50" - } - ] - }, - "documentation": { - "id": 10217, - "nodeType": "StructuredDocumentation", - "src": "16000:68:50", - "text": " @notice See {ISubgraphService.setDelegationRatio}" - }, - "functionSelector": "1dd42f60", - "id": 10230, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 10223, - "kind": "modifierInvocation", - "modifierName": { - "id": 10222, - "name": "onlyOwner", - "nameLocations": [ - "16143:9:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "16143:9:50" - }, - "nodeType": "ModifierInvocation", - "src": "16143:9:50" - } - ], - "name": "setDelegationRatio", - "nameLocation": "16082:18:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10221, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "16134:8:50" - }, - "parameters": { - "id": 10220, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10219, - "mutability": "mutable", - "name": "delegationRatio", - "nameLocation": "16108:15:50", - "nodeType": "VariableDeclaration", - "scope": 10230, - "src": "16101:22:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10218, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "16101:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "16100:24:50" - }, - "returnParameters": { - "id": 10224, - "nodeType": "ParameterList", - "parameters": [], - "src": "16153:0:50" - }, - "scope": 10684, - "src": "16073:133:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11217 - ], - "body": { - "id": 10243, - "nodeType": "Block", - "src": "16370:56:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 10240, - "name": "stakeToFeesRatio_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10233, - "src": "16401:17:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10239, - "name": "_setStakeToFeesRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10683, - "src": "16380:20:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16380:39:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10242, - "nodeType": "ExpressionStatement", - "src": "16380:39:50" - } - ] - }, - "documentation": { - "id": 10231, - "nodeType": "StructuredDocumentation", - "src": "16212:69:50", - "text": " @notice See {ISubgraphService.setStakeToFeesRatio}" - }, - "functionSelector": "e6f50054", - "id": 10244, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 10237, - "kind": "modifierInvocation", - "modifierName": { - "id": 10236, - "name": "onlyOwner", - "nameLocations": [ - "16360:9:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "16360:9:50" - }, - "nodeType": "ModifierInvocation", - "src": "16360:9:50" - } - ], - "name": "setStakeToFeesRatio", - "nameLocation": "16295:19:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10235, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "16351:8:50" - }, - "parameters": { - "id": 10234, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10233, - "mutability": "mutable", - "name": "stakeToFeesRatio_", - "nameLocation": "16323:17:50", - "nodeType": "VariableDeclaration", - "scope": 10244, - "src": "16315:25:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10232, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16315:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "16314:27:50" - }, - "returnParameters": { - "id": 10238, - "nodeType": "ParameterList", - "parameters": [], - "src": "16370:0:50" - }, - "scope": 10684, - "src": "16286:140:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11223 - ], - "body": { - "id": 10257, - "nodeType": "Block", - "src": "16586:53:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 10254, - "name": "maxPOIStaleness", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10247, - "src": "16616:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10253, - "name": "_setMaxPOIStaleness", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12925, - "src": "16596:19:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16596:36:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10256, - "nodeType": "ExpressionStatement", - "src": "16596:36:50" - } - ] - }, - "documentation": { - "id": 10245, - "nodeType": "StructuredDocumentation", - "src": "16432:68:50", - "text": " @notice See {ISubgraphService.setMaxPOIStaleness}" - }, - "functionSelector": "7aa31bce", - "id": 10258, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 10251, - "kind": "modifierInvocation", - "modifierName": { - "id": 10250, - "name": "onlyOwner", - "nameLocations": [ - "16576:9:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "16576:9:50" - }, - "nodeType": "ModifierInvocation", - "src": "16576:9:50" - } - ], - "name": "setMaxPOIStaleness", - "nameLocation": "16514:18:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10249, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "16567:8:50" - }, - "parameters": { - "id": 10248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10247, - "mutability": "mutable", - "name": "maxPOIStaleness", - "nameLocation": "16541:15:50", - "nodeType": "VariableDeclaration", - "scope": 10258, - "src": "16533:23:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10246, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16533:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "16532:25:50" - }, - "returnParameters": { - "id": 10252, - "nodeType": "ParameterList", - "parameters": [], - "src": "16586:0:50" - }, - "scope": 10684, - "src": "16505:134:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11229 - ], - "body": { - "id": 10285, - "nodeType": "Block", - "src": "16787:186:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 10270, - "name": "curationCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10261, - "src": "16824:11:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 10268, - "name": "PPMMath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4262, - "src": "16805:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PPMMath_$4262_$", - "typeString": "type(library PPMMath)" - } - }, - "id": 10269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16813:10:50", - "memberName": "isValidPPM", - "nodeType": "MemberAccess", - "referencedDeclaration": 4261, - "src": "16805:18:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 10271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16805:31:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 10273, - "name": "curationCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10261, - "src": "16872:11:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10272, - "name": "SubgraphServiceInvalidCurationCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11102, - "src": "16838:33:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256) pure returns (error)" - } - }, - "id": 10274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16838:46:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 10267, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "16797:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 10275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16797:88:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10276, - "nodeType": "ExpressionStatement", - "src": "16797:88:50" - }, - { - "expression": { - "id": 10279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 10277, - "name": "curationFeesCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10700, - "src": "16895:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 10278, - "name": "curationCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10261, - "src": "16913:11:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16895:29:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10280, - "nodeType": "ExpressionStatement", - "src": "16895:29:50" - }, - { - "eventCall": { - "arguments": [ - { - "id": 10282, - "name": "curationCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10261, - "src": "16954:11:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10281, - "name": "CurationCutSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11097, - "src": "16939:14:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16939:27:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10284, - "nodeType": "EmitStatement", - "src": "16934:32:50" - } - ] - }, - "documentation": { - "id": 10259, - "nodeType": "StructuredDocumentation", - "src": "16645:64:50", - "text": " @notice See {ISubgraphService.setCurationCut}" - }, - "functionSelector": "7e89bac3", - "id": 10286, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 10265, - "kind": "modifierInvocation", - "modifierName": { - "id": 10264, - "name": "onlyOwner", - "nameLocations": [ - "16777:9:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4743, - "src": "16777:9:50" - }, - "nodeType": "ModifierInvocation", - "src": "16777:9:50" - } - ], - "name": "setCurationCut", - "nameLocation": "16723:14:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10263, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "16768:8:50" - }, - "parameters": { - "id": 10262, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10261, - "mutability": "mutable", - "name": "curationCut", - "nameLocation": "16746:11:50", - "nodeType": "VariableDeclaration", - "scope": 10286, - "src": "16738:19:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10260, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16738:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "16737:21:50" - }, - "returnParameters": { - "id": 10266, - "nodeType": "ParameterList", - "parameters": [], - "src": "16787:0:50" - }, - "scope": 10684, - "src": "16714:259:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11244 - ], - "body": { - "id": 10300, - "nodeType": "Block", - "src": "17149:49:50", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 10296, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "17166:11:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 10298, - "indexExpression": { - "id": 10297, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10289, - "src": "17178:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17166:25:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage", - "typeString": "struct Allocation.State storage ref" - } - }, - "functionReturnParameters": 10295, - "id": 10299, - "nodeType": "Return", - "src": "17159:32:50" - } - ] - }, - "documentation": { - "id": 10287, - "nodeType": "StructuredDocumentation", - "src": "16979:63:50", - "text": " @notice See {ISubgraphService.getAllocation}" - }, - "functionSelector": "0e022923", - "id": 10301, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAllocation", - "nameLocation": "17056:13:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10291, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "17106:8:50" - }, - "parameters": { - "id": 10290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10289, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "17078:12:50", - "nodeType": "VariableDeclaration", - "scope": 10301, - "src": "17070:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10288, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17070:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "17069:22:50" - }, - "returnParameters": { - "id": 10295, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10294, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10301, - "src": "17124:23:50", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 10293, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 10292, - "name": "Allocation.State", - "nameLocations": [ - "17124:10:50", - "17135:5:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "17124:16:50" - }, - "referencedDeclaration": 11307, - "src": "17124:16:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "17123:25:50" - }, - "scope": 10684, - "src": "17047:151:50", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 297 - ], - "body": { - "id": 10339, - "nodeType": "Block", - "src": "18007:272:50", - "statements": [ - { - "assignments": [ - 10322 - ], - "declarations": [ - { - "constant": false, - "id": 10322, - "mutability": "mutable", - "name": "allo", - "nameLocation": "18041:4:50", - "nodeType": "VariableDeclaration", - "scope": 10339, - "src": "18017:28:50", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 10321, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 10320, - "name": "Allocation.State", - "nameLocations": [ - "18017:10:50", - "18028:5:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "18017:16:50" - }, - "referencedDeclaration": 11307, - "src": "18017:16:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 10326, - "initialValue": { - "baseExpression": { - "id": 10323, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "18048:11:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 10325, - "indexExpression": { - "id": 10324, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "18060:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18048:25:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage", - "typeString": "struct Allocation.State storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18017:56:50" - }, - { - "expression": { - "components": [ - { - "expression": { - "id": 10327, - "name": "allo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10322, - "src": "18104:4:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10328, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18109:7:50", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "18104:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 10329, - "name": "allo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10322, - "src": "18130:4:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10330, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18135:20:50", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "18130:25:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 10331, - "name": "allo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10322, - "src": "18169:4:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10332, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18174:6:50", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11296, - "src": "18169:11:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 10333, - "name": "allo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10322, - "src": "18194:4:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10334, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18199:27:50", - "memberName": "accRewardsPerAllocatedToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 11304, - "src": "18194:32:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 10335, - "name": "allo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10322, - "src": "18240:4:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10336, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18245:17:50", - "memberName": "accRewardsPending", - "nodeType": "MemberAccess", - "referencedDeclaration": 11306, - "src": "18240:22:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10337, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18090:182:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(address,bytes32,uint256,uint256,uint256)" - } - }, - "functionReturnParameters": 10317, - "id": 10338, - "nodeType": "Return", - "src": "18083:189:50" - } - ] - }, - "documentation": { - "id": 10302, - "nodeType": "StructuredDocumentation", - "src": "17204:658:50", - "text": " @notice Get allocation data to calculate rewards issuance\n @dev Implements {IRewardsIssuer.getAllocationData}\n @dev Note that this is slightly different than {getAllocation}. It returns an\n unstructured subset of the allocation data, which is the minimum required to mint rewards.\n Should only be used by the {RewardsManager}.\n @param allocationId The allocation Id\n @return indexer The indexer address\n @return subgraphDeploymentId Subgraph deployment id for the allocation\n @return tokens Amount of allocated tokens\n @return accRewardsPerAllocatedToken Rewards snapshot" - }, - "functionSelector": "55c85269", - "id": 10340, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAllocationData", - "nameLocation": "17876:17:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10306, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "17944:8:50" - }, - "parameters": { - "id": 10305, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10304, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "17911:12:50", - "nodeType": "VariableDeclaration", - "scope": 10340, - "src": "17903:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10303, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17903:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "17893:36:50" - }, - "returnParameters": { - "id": 10317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10308, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10340, - "src": "17962:7:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10307, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17962:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10310, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10340, - "src": "17971:7:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10309, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "17971:7:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10312, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10340, - "src": "17980:7:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10311, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17980:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10314, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10340, - "src": "17989:7:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10313, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10316, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10340, - "src": "17998:7:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17998:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "17961:45:50" - }, - "scope": 10684, - "src": "17867:412:50", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 305 - ], - "body": { - "id": 10353, - "nodeType": "Block", - "src": "18711:69:50", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 10349, - "name": "subgraphAllocatedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13066, - "src": "18728:23:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 10351, - "indexExpression": { - "id": 10350, - "name": "subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10343, - "src": "18752:20:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18728:45:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10348, - "id": 10352, - "nodeType": "Return", - "src": "18721:52:50" - } - ] - }, - "documentation": { - "id": 10341, - "nodeType": "StructuredDocumentation", - "src": "18285:314:50", - "text": " @notice Return the total amount of tokens allocated to subgraph.\n @dev Implements {IRewardsIssuer.getSubgraphAllocatedTokens}\n @dev To be used by the {RewardsManager}.\n @param subgraphDeploymentId Deployment Id for the subgraph\n @return Total tokens allocated to subgraph" - }, - "functionSelector": "e2e1e8e9", - "id": 10354, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getSubgraphAllocatedTokens", - "nameLocation": "18613:26:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10345, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "18684:8:50" - }, - "parameters": { - "id": 10344, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10343, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "18648:20:50", - "nodeType": "VariableDeclaration", - "scope": 10354, - "src": "18640:28:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10342, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "18640:7:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "18639:30:50" - }, - "returnParameters": { - "id": 10348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10347, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10354, - "src": "18702:7:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10346, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18702:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "18701:9:50" - }, - "scope": 10684, - "src": "18604:176:50", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 313 - ], - "body": { - "id": 10369, - "nodeType": "Block", - "src": "19149:58:50", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "baseExpression": { - "id": 10363, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "19166:11:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 10365, - "indexExpression": { - "id": 10364, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10357, - "src": "19178:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19166:25:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage", - "typeString": "struct Allocation.State storage ref" - } - }, - "id": 10366, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19192:6:50", - "memberName": "isOpen", - "nodeType": "MemberAccess", - "referencedDeclaration": 11621, - "src": "19166:32:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 10367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19166:34:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10362, - "id": 10368, - "nodeType": "Return", - "src": "19159:41:50" - } - ] - }, - "documentation": { - "id": 10355, - "nodeType": "StructuredDocumentation", - "src": "18786:270:50", - "text": " @notice Check if an allocation is open\n @dev Implements {IRewardsIssuer.isAllocationActive}\n @dev To be used by the {RewardsManager}.\n @param allocationId The allocation Id\n @return Wether or not the allocation is active" - }, - "functionSelector": "6a3ca383", - "id": 10370, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isActiveAllocation", - "nameLocation": "19070:18:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10359, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "19125:8:50" - }, - "parameters": { - "id": 10358, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10357, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "19097:12:50", - "nodeType": "VariableDeclaration", - "scope": 10370, - "src": "19089:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10356, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19089:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "19088:22:50" - }, - "returnParameters": { - "id": 10362, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10361, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10370, - "src": "19143:4:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10360, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19143:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "19142:6:50" - }, - "scope": 10684, - "src": "19061:146:50", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11253 - ], - "body": { - "id": 10384, - "nodeType": "Block", - "src": "19401:55:50", - "statements": [ - { - "expression": { - "baseExpression": { - "id": 10380, - "name": "legacyAllocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13048, - "src": "19418:17:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" - } - }, - "id": 10382, - "indexExpression": { - "id": 10381, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10373, - "src": "19436:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19418:31:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage", - "typeString": "struct LegacyAllocation.State storage ref" - } - }, - "functionReturnParameters": 10379, - "id": 10383, - "nodeType": "Return", - "src": "19411:38:50" - } - ] - }, - "documentation": { - "id": 10371, - "nodeType": "StructuredDocumentation", - "src": "19213:69:50", - "text": " @notice See {ISubgraphService.getLegacyAllocation}" - }, - "functionSelector": "6d9a3951", - "id": 10385, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getLegacyAllocation", - "nameLocation": "19296:19:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10375, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "19352:8:50" - }, - "parameters": { - "id": 10374, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10373, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "19324:12:50", - "nodeType": "VariableDeclaration", - "scope": 10385, - "src": "19316:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10372, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19316:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "19315:22:50" - }, - "returnParameters": { - "id": 10379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10378, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10385, - "src": "19370:29:50", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_memory_ptr", - "typeString": "struct LegacyAllocation.State" - }, - "typeName": { - "id": 10377, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 10376, - "name": "LegacyAllocation.State", - "nameLocations": [ - "19370:16:50", - "19387:5:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "19370:22:50" - }, - "referencedDeclaration": 11933, - "src": "19370:22:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "19369:31:50" - }, - "scope": 10684, - "src": "19287:169:50", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11263 - ], - "body": { - "id": 10401, - "nodeType": "Block", - "src": "19649:69:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 10397, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10388, - "src": "19689:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10398, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10390, - "src": "19698:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10396, - "name": "_encodeAllocationProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12977, - "src": "19666:22:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bytes32_$", - "typeString": "function (address,address) view returns (bytes32)" - } - }, - "id": 10399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19666:45:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 10395, - "id": 10400, - "nodeType": "Return", - "src": "19659:52:50" - } - ] - }, - "documentation": { - "id": 10386, - "nodeType": "StructuredDocumentation", - "src": "19462:71:50", - "text": " @notice See {ISubgraphService.encodeAllocationProof}" - }, - "functionSelector": "ce56c98b", - "id": 10402, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "encodeAllocationProof", - "nameLocation": "19547:21:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10392, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "19622:8:50" - }, - "parameters": { - "id": 10391, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10388, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "19577:7:50", - "nodeType": "VariableDeclaration", - "scope": 10402, - "src": "19569:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10387, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19569:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10390, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "19594:12:50", - "nodeType": "VariableDeclaration", - "scope": 10402, - "src": "19586:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19586:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "19568:39:50" - }, - "returnParameters": { - "id": 10395, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10394, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10402, - "src": "19640:7:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10393, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "19640:7:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "19639:9:50" - }, - "scope": 10684, - "src": "19538:180:50", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11271 - ], - "body": { - "id": 10419, - "nodeType": "Block", - "src": "19883:78:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 10416, - "name": "maxPOIStaleness", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13056, - "src": "19938:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 10413, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "19916:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 10411, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "19900:11:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 10412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19912:3:50", - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 11554, - "src": "19900:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" - } - }, - "id": 10414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19900:29:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10415, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19930:7:50", - "memberName": "isStale", - "nodeType": "MemberAccess", - "referencedDeclaration": 11587, - "src": "19900:37:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_State_$11307_memory_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory,uint256) view returns (bool)" - } - }, - "id": 10417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19900:54:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10410, - "id": 10418, - "nodeType": "Return", - "src": "19893:61:50" - } - ] - }, - "documentation": { - "id": 10403, - "nodeType": "StructuredDocumentation", - "src": "19724:67:50", - "text": " @notice See {ISubgraphService.isStaleAllocation}" - }, - "functionSelector": "3f0ed79d", - "id": 10420, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isStaleAllocation", - "nameLocation": "19805:17:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10407, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "19859:8:50" - }, - "parameters": { - "id": 10406, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10405, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "19831:12:50", - "nodeType": "VariableDeclaration", - "scope": 10420, - "src": "19823:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19823:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "19822:22:50" - }, - "returnParameters": { - "id": 10410, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10409, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10420, - "src": "19877:4:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10408, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19877:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "19876:6:50" - }, - "scope": 10684, - "src": "19796:165:50", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 11279 - ], - "body": { - "id": 10434, - "nodeType": "Block", - "src": "20117:66:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 10430, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10423, - "src": "20151:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10431, - "name": "delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2152, - "src": "20160:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 10429, - "name": "_isOverAllocated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12997, - "src": "20134:16:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint32_$returns$_t_bool_$", - "typeString": "function (address,uint32) view returns (bool)" - } - }, - "id": 10432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20134:42:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10428, - "id": 10433, - "nodeType": "Return", - "src": "20127:49:50" - } - ] - }, - "documentation": { - "id": 10421, - "nodeType": "StructuredDocumentation", - "src": "19967:65:50", - "text": " @notice See {ISubgraphService.isOverAllocated}" - }, - "functionSelector": "ba38f67d", - "id": 10435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isOverAllocated", - "nameLocation": "20046:15:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10425, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "20093:8:50" - }, - "parameters": { - "id": 10424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10423, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "20070:7:50", - "nodeType": "VariableDeclaration", - "scope": 10435, - "src": "20062:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20062:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "20061:17:50" - }, - "returnParameters": { - "id": 10428, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10427, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10435, - "src": "20111:4:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10426, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20111:4:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "20110:6:50" - }, - "scope": 10684, - "src": "20037:146:50", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "baseFunctions": [ - 2050 - ], - "body": { - "id": 10451, - "nodeType": "Block", - "src": "20661:90:50", - "statements": [ - { - "expression": { - "components": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10444, - "name": "_disputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13369, - "src": "20679:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IDisputeManager_$11057_$", - "typeString": "function () view returns (contract IDisputeManager)" - } - }, - "id": 10445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20679:17:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - }, - "id": 10446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20697:16:50", - "memberName": "getDisputePeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 11015, - "src": "20679:34:50", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint64_$", - "typeString": "function () view external returns (uint64)" - } - }, - "id": 10447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20679:36:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "id": 10448, - "name": "DEFAULT_MAX_THAWING_PERIOD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1607, - "src": "20717:26:50", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "id": 10449, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "20678:66:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint64_$_t_uint64_$", - "typeString": "tuple(uint64,uint64)" - } - }, - "functionReturnParameters": 10443, - "id": 10450, - "nodeType": "Return", - "src": "20671:73:50" - } - ] - }, - "documentation": { - "id": 10436, - "nodeType": "StructuredDocumentation", - "src": "20233:333:50", - "text": " @notice Getter for the accepted thawing period range for provisions\n @dev This override ensures {ProvisionManager} uses the thawing period from the {DisputeManager}\n @return min The minimum thawing period which is defined by {DisputeManager-getDisputePeriod}\n @return max The maximum is unbounded" - }, - "id": 10452, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getThawingPeriodRange", - "nameLocation": "20580:22:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10438, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "20619:8:50" - }, - "parameters": { - "id": 10437, - "nodeType": "ParameterList", - "parameters": [], - "src": "20602:2:50" - }, - "returnParameters": { - "id": 10443, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10440, - "mutability": "mutable", - "name": "min", - "nameLocation": "20644:3:50", - "nodeType": "VariableDeclaration", - "scope": 10452, - "src": "20637:10:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 10439, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "20637:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10442, - "mutability": "mutable", - "name": "max", - "nameLocation": "20656:3:50", - "nodeType": "VariableDeclaration", - "scope": 10452, - "src": "20649:10:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 10441, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "20649:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "20636:24:50" - }, - "scope": 10684, - "src": "20571:180:50", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "baseFunctions": [ - 2063 - ], - "body": { - "id": 10468, - "nodeType": "Block", - "src": "21076:86:50", - "statements": [ - { - "expression": { - "components": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10461, - "name": "_disputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13369, - "src": "21094:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IDisputeManager_$11057_$", - "typeString": "function () view returns (contract IDisputeManager)" - } - }, - "id": 10462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21094:17:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - }, - "id": 10463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21112:14:50", - "memberName": "getVerifierCut", - "nodeType": "MemberAccess", - "referencedDeclaration": 11010, - "src": "21094:32:50", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", - "typeString": "function () view external returns (uint32)" - } - }, - "id": 10464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21094:34:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "id": 10465, - "name": "DEFAULT_MAX_VERIFIER_CUT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1593, - "src": "21130:24:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "id": 10466, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "21093:62:50", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", - "typeString": "tuple(uint32,uint32)" - } - }, - "functionReturnParameters": 10460, - "id": 10467, - "nodeType": "Return", - "src": "21086:69:50" - } - ] - }, - "documentation": { - "id": 10453, - "nodeType": "StructuredDocumentation", - "src": "20757:226:50", - "text": " @notice Getter for the accepted verifier cut range for provisions\n @return min The minimum verifier cut which is defined by {DisputeManager-getVerifierCut}\n @return max The maximum is 100% in PPM" - }, - "id": 10469, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getVerifierCutRange", - "nameLocation": "20997:20:50", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 10455, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "21034:8:50" - }, - "parameters": { - "id": 10454, - "nodeType": "ParameterList", - "parameters": [], - "src": "21017:2:50" - }, - "returnParameters": { - "id": 10460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10457, - "mutability": "mutable", - "name": "min", - "nameLocation": "21059:3:50", - "nodeType": "VariableDeclaration", - "scope": 10469, - "src": "21052:10:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10456, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "21052:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10459, - "mutability": "mutable", - "name": "max", - "nameLocation": "21071:3:50", - "nodeType": "VariableDeclaration", - "scope": 10469, - "src": "21064:10:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10458, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "21064:6:50", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "21051:24:50" - }, - "scope": 10684, - "src": "20988:174:50", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 10660, - "nodeType": "Block", - "src": "22613:2203:50", - "statements": [ - { - "assignments": [ - 10479 - ], - "declarations": [ - { - "constant": false, - "id": 10479, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "22631:7:50", - "nodeType": "VariableDeclaration", - "scope": 10660, - "src": "22623:15:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10478, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22623:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 10483, - "initialValue": { - "expression": { - "expression": { - "id": 10480, - "name": "_signedRav", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10473, - "src": "22641:10:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_memory_ptr", - "typeString": "struct ITAPCollector.SignedRAV memory" - } - }, - "id": 10481, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22652:3:50", - "memberName": "rav", - "nodeType": "MemberAccess", - "referencedDeclaration": 2543, - "src": "22641:14:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2539_memory_ptr", - "typeString": "struct ITAPCollector.ReceiptAggregateVoucher memory" - } - }, - "id": 10482, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22656:15:50", - "memberName": "serviceProvider", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "22641:30:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22623:48:50" - }, - { - "assignments": [ - 10485 - ], - "declarations": [ - { - "constant": false, - "id": 10485, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "22689:12:50", - "nodeType": "VariableDeclaration", - "scope": 10660, - "src": "22681:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10484, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22681:7:50", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 10495, - "initialValue": { - "arguments": [ - { - "expression": { - "expression": { - "id": 10488, - "name": "_signedRav", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10473, - "src": "22715:10:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_memory_ptr", - "typeString": "struct ITAPCollector.SignedRAV memory" - } - }, - "id": 10489, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22726:3:50", - "memberName": "rav", - "nodeType": "MemberAccess", - "referencedDeclaration": 2543, - "src": "22715:14:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ReceiptAggregateVoucher_$2539_memory_ptr", - "typeString": "struct ITAPCollector.ReceiptAggregateVoucher memory" - } - }, - "id": 10490, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22730:8:50", - "memberName": "metadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 2538, - "src": "22715:23:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 10492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22741:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 10491, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "22741:7:50", - "typeDescriptions": {} - } - } - ], - "id": 10493, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22740:9:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - } - ], - "expression": { - "id": 10486, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "22704:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 10487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "22708:6:50", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "22704:10:50", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 10494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22704:46:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22681:69:50" - }, - { - "assignments": [ - 10500 - ], - "declarations": [ - { - "constant": false, - "id": 10500, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "22784:10:50", - "nodeType": "VariableDeclaration", - "scope": 10660, - "src": "22760:34:50", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 10499, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 10498, - "name": "Allocation.State", - "nameLocations": [ - "22760:10:50", - "22771:5:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "22760:16:50" - }, - "referencedDeclaration": 11307, - "src": "22760:16:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 10505, - "initialValue": { - "arguments": [ - { - "id": 10503, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10485, - "src": "22813:12:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 10501, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "22797:11:50", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 10502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22809:3:50", - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 11554, - "src": "22797:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" - } - }, - "id": 10504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22797:29:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22760:66:50" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 10507, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10500, - "src": "22930:10:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10508, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22941:7:50", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "22930:18:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 10509, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10479, - "src": "22952:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "22930:29:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 10512, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10479, - "src": "22987:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 10513, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10500, - "src": "22996:10:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10514, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23007:7:50", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "22996:18:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10511, - "name": "SubgraphServiceInvalidRAV", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11152, - "src": "22961:25:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", - "typeString": "function (address,address) pure returns (error)" - } - }, - "id": 10515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22961:54:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 10506, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "22922:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 10516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22922:94:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10517, - "nodeType": "ExpressionStatement", - "src": "22922:94:50" - }, - { - "assignments": [ - 10519 - ], - "declarations": [ - { - "constant": false, - "id": 10519, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "23034:20:50", - "nodeType": "VariableDeclaration", - "scope": 10660, - "src": "23026:28:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10518, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "23026:7:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 10522, - "initialValue": { - "expression": { - "id": 10520, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10500, - "src": "23057:10:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 10521, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23068:20:50", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "23057:31:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23026:62:50" - }, - { - "expression": { - "arguments": [ - { - "id": 10524, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10479, - "src": "23153:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "hexValue": "30", - "id": 10525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23162:1:50", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 10523, - "name": "_releaseStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 880, - "src": "23139:13:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23139:25:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10527, - "nodeType": "ExpressionStatement", - "src": "23139:25:50" - }, - { - "assignments": [ - 10529 - ], - "declarations": [ - { - "constant": false, - "id": 10529, - "mutability": "mutable", - "name": "balanceBefore", - "nameLocation": "23278:13:50", - "nodeType": "VariableDeclaration", - "scope": 10660, - "src": "23270:21:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10528, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23270:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 10538, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 10535, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "23326:4:50", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SubgraphService_$10684", - "typeString": "contract SubgraphService" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SubgraphService_$10684", - "typeString": "contract SubgraphService" - } - ], - "id": 10534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23318:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 10533, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23318:7:50", - "typeDescriptions": {} - } - }, - "id": 10536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23318:13:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10530, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4530, - "src": "23294:11:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$518_$", - "typeString": "function () view returns (contract IGraphToken)" - } - }, - "id": 10531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23294:13:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 10532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23308:9:50", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 5831, - "src": "23294:23:50", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 10537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23294:38:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23270:62:50" - }, - { - "assignments": [ - 10540 - ], - "declarations": [ - { - "constant": false, - "id": 10540, - "mutability": "mutable", - "name": "curationCut", - "nameLocation": "23351:11:50", - "nodeType": "VariableDeclaration", - "scope": 10660, - "src": "23343:19:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23343:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 10549, - "initialValue": { - "condition": { - "arguments": [ - { - "id": 10544, - "name": "subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10519, - "src": "23387:20:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10541, - "name": "_curation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13389, - "src": "23365:9:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ICuration_$165_$", - "typeString": "function () view returns (contract ICuration)" - } - }, - "id": 10542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23365:11:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "id": 10543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23377:9:50", - "memberName": "isCurated", - "nodeType": "MemberAccess", - "referencedDeclaration": 110, - "src": "23365:21:50", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view external returns (bool)" - } - }, - "id": 10545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23365:43:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "hexValue": "30", - "id": 10547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23429:1:50", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 10548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "23365:65:50", - "trueExpression": { - "id": 10546, - "name": "curationFeesCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10700, - "src": "23411:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23343:87:50" - }, - { - "assignments": [ - 10551 - ], - "declarations": [ - { - "constant": false, - "id": 10551, - "mutability": "mutable", - "name": "tokensCollected", - "nameLocation": "23448:15:50", - "nodeType": "VariableDeclaration", - "scope": 10660, - "src": "23440:23:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10550, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23440:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 10564, - "initialValue": { - "arguments": [ - { - "expression": { - "expression": { - "id": 10555, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "23503:14:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGraphPayments_$2211_$", - "typeString": "type(contract IGraphPayments)" - } - }, - "id": 10556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23518:12:50", - "memberName": "PaymentTypes", - "nodeType": "MemberAccess", - "referencedDeclaration": 2166, - "src": "23503:27:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_PaymentTypes_$2166_$", - "typeString": "type(enum IGraphPayments.PaymentTypes)" - } - }, - "id": 10557, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "23531:8:50", - "memberName": "QueryFee", - "nodeType": "MemberAccess", - "referencedDeclaration": 2163, - "src": "23503:36:50", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - { - "arguments": [ - { - "id": 10560, - "name": "_signedRav", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10473, - "src": "23564:10:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_memory_ptr", - "typeString": "struct ITAPCollector.SignedRAV memory" - } - }, - { - "id": 10561, - "name": "curationCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10540, - "src": "23576:11:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_SignedRAV_$2546_memory_ptr", - "typeString": "struct ITAPCollector.SignedRAV memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 10558, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "23553:3:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 10559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "23557:6:50", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "23553:10:50", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 10562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23553:35:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10552, - "name": "_tapCollector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13379, - "src": "23466:13:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ITAPCollector_$2695_$", - "typeString": "function () view returns (contract ITAPCollector)" - } - }, - "id": 10553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23466:15:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITAPCollector_$2695", - "typeString": "contract ITAPCollector" - } - }, - "id": 10554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23482:7:50", - "memberName": "collect", - "nodeType": "MemberAccess", - "referencedDeclaration": 2267, - "src": "23466:23:50", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_enum$_PaymentTypes_$2166_$_t_bytes_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (enum IGraphPayments.PaymentTypes,bytes memory) external returns (uint256)" - } - }, - "id": 10563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23466:132:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23440:158:50" - }, - { - "assignments": [ - 10566 - ], - "declarations": [ - { - "constant": false, - "id": 10566, - "mutability": "mutable", - "name": "tokensCurators", - "nameLocation": "23616:14:50", - "nodeType": "VariableDeclaration", - "scope": 10660, - "src": "23608:22:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10565, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23608:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 10571, - "initialValue": { - "arguments": [ - { - "id": 10569, - "name": "curationCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10540, - "src": "23656:11:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 10567, - "name": "tokensCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10551, - "src": "23633:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23649:6:50", - "memberName": "mulPPM", - "nodeType": "MemberAccess", - "referencedDeclaration": 4219, - "src": "23633:22:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 10570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23633:35:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23608:60:50" - }, - { - "assignments": [ - 10573 - ], - "declarations": [ - { - "constant": false, - "id": 10573, - "mutability": "mutable", - "name": "balanceAfter", - "nameLocation": "23687:12:50", - "nodeType": "VariableDeclaration", - "scope": 10660, - "src": "23679:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10572, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23679:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 10582, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 10579, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "23734:4:50", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SubgraphService_$10684", - "typeString": "contract SubgraphService" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SubgraphService_$10684", - "typeString": "contract SubgraphService" - } - ], - "id": 10578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "23726:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 10577, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23726:7:50", - "typeDescriptions": {} - } - }, - "id": 10580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23726:13:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10574, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4530, - "src": "23702:11:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$518_$", - "typeString": "function () view returns (contract IGraphToken)" - } - }, - "id": 10575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23702:13:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 10576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23716:9:50", - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 5831, - "src": "23702:23:50", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 10581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23702:38:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23679:61:50" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 10584, - "name": "balanceBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10529, - "src": "23771:13:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 10585, - "name": "tokensCurators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10566, - "src": "23787:14:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23771:30:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 10587, - "name": "balanceAfter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10573, - "src": "23805:12:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23771:46:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 10590, - "name": "balanceBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10529, - "src": "23869:13:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 10591, - "name": "balanceAfter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10573, - "src": "23884:12:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 10592, - "name": "tokensCurators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10566, - "src": "23898:14:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10589, - "name": "SubgraphServiceInconsistentCollection", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11131, - "src": "23831:37:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256,uint256) pure returns (error)" - } - }, - "id": 10593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23831:82:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 10583, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "23750:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 10594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23750:173:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10595, - "nodeType": "ExpressionStatement", - "src": "23750:173:50" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 10596, - "name": "tokensCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10551, - "src": "23938:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 10597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23956:1:50", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "23938:19:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 10651, - "nodeType": "IfStatement", - "src": "23934:768:50", - "trueBody": { - "id": 10650, - "nodeType": "Block", - "src": "23959:743:50", - "statements": [ - { - "assignments": [ - 10600 - ], - "declarations": [ - { - "constant": false, - "id": 10600, - "mutability": "mutable", - "name": "tokensToLock", - "nameLocation": "24037:12:50", - "nodeType": "VariableDeclaration", - "scope": 10650, - "src": "24029:20:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24029:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 10604, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 10601, - "name": "tokensCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10551, - "src": "24052:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 10602, - "name": "stakeToFeesRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10697, - "src": "24070:16:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24052:34:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24029:57:50" - }, - { - "assignments": [ - 10606 - ], - "declarations": [ - { - "constant": false, - "id": 10606, - "mutability": "mutable", - "name": "unlockTimestamp", - "nameLocation": "24108:15:50", - "nodeType": "VariableDeclaration", - "scope": 10650, - "src": "24100:23:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10605, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24100:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 10614, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 10607, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "24126:5:50", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 10608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24132:9:50", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "24126:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10609, - "name": "_disputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13369, - "src": "24144:15:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IDisputeManager_$11057_$", - "typeString": "function () view returns (contract IDisputeManager)" - } - }, - "id": 10610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24144:17:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - }, - "id": 10611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24162:16:50", - "memberName": "getDisputePeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 11015, - "src": "24144:34:50", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint64_$", - "typeString": "function () view external returns (uint64)" - } - }, - "id": 10612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24144:36:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "24126:54:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24100:80:50" - }, - { - "expression": { - "arguments": [ - { - "id": 10616, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10479, - "src": "24205:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10617, - "name": "tokensToLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10600, - "src": "24214:12:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 10618, - "name": "unlockTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10606, - "src": "24228:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10615, - "name": "_lockStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 833, - "src": "24194:10:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 10619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24194:50:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10620, - "nodeType": "ExpressionStatement", - "src": "24194:50:50" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 10621, - "name": "tokensCurators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10566, - "src": "24263:14:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 10622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24280:1:50", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "24263:18:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 10649, - "nodeType": "IfStatement", - "src": "24259:433:50", - "trueBody": { - "id": 10648, - "nodeType": "Block", - "src": "24283:409:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 10627, - "name": "subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10519, - "src": "24438:20:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10624, - "name": "_graphRewardsManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4590, - "src": "24392:20:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$438_$", - "typeString": "function () view returns (contract IRewardsManager)" - } - }, - "id": 10625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24392:22:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "id": 10626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24415:22:50", - "memberName": "onSubgraphSignalUpdate", - "nodeType": "MemberAccess", - "referencedDeclaration": 430, - "src": "24392:45:50", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) external returns (uint256)" - } - }, - "id": 10628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24392:67:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10629, - "nodeType": "ExpressionStatement", - "src": "24392:67:50" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10635, - "name": "_curation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13389, - "src": "24573:9:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ICuration_$165_$", - "typeString": "function () view returns (contract ICuration)" - } - }, - "id": 10636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24573:11:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - ], - "id": 10634, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "24565:7:50", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 10633, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24565:7:50", - "typeDescriptions": {} - } - }, - "id": 10637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24565:20:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10638, - "name": "tokensCurators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10566, - "src": "24587:14:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10630, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4530, - "src": "24540:11:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$518_$", - "typeString": "function () view returns (contract IGraphToken)" - } - }, - "id": 10631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24540:13:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 10632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24554:10:50", - "memberName": "pushTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 578, - "src": "24540:24:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$518_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$518_$", - "typeString": "function (contract IGraphToken,address,uint256)" - } - }, - "id": 10639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24540:62:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10640, - "nodeType": "ExpressionStatement", - "src": "24540:62:50" - }, - { - "expression": { - "arguments": [ - { - "id": 10644, - "name": "subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10519, - "src": "24640:20:50", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 10645, - "name": "tokensCurators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10566, - "src": "24662:14:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10641, - "name": "_curation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13389, - "src": "24620:9:50", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ICuration_$165_$", - "typeString": "function () view returns (contract ICuration)" - } - }, - "id": 10642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24620:11:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "id": 10643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24632:7:50", - "memberName": "collect", - "nodeType": "MemberAccess", - "referencedDeclaration": 102, - "src": "24620:19:50", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (bytes32,uint256) external" - } - }, - "id": 10646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24620:57:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10647, - "nodeType": "ExpressionStatement", - "src": "24620:57:50" - } - ] - } - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "id": 10653, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10479, - "src": "24736:7:50", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 10654, - "name": "tokensCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10551, - "src": "24745:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 10655, - "name": "tokensCurators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10566, - "src": "24762:14:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10652, - "name": "QueryFeesCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11087, - "src": "24717:18:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 10656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24717:60:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10657, - "nodeType": "EmitStatement", - "src": "24712:65:50" - }, - { - "expression": { - "id": 10658, - "name": "tokensCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10551, - "src": "24794:15:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10477, - "id": 10659, - "nodeType": "Return", - "src": "24787:22:50" - } - ] - }, - "documentation": { - "id": 10470, - "nodeType": "StructuredDocumentation", - "src": "21168:1330:50", - "text": " @notice Collect query fees\n Stake equal to the amount being collected times the `stakeToFeesRatio` is locked into a stake claim.\n This claim can be released at a later stage once expired.\n It's important to note that before collecting this function will attempt to release any expired stake claims.\n This could lead to an out of gas error if there are too many expired claims. In that case, the indexer will need to\n manually release the claims, see {IDataServiceFees-releaseStake}, before attempting to collect again.\n @dev This function is the equivalent of the legacy `collect` function for query fees.\n @dev Uses the {TAPCollector} to collect payment from Graph Horizon payments protocol.\n Fees are distributed to service provider and delegators by {GraphPayments}, though curators\n share is distributed by this function.\n Query fees can be collected on closed allocations.\n Requirements:\n - Indexer must have enough available tokens to lock as economic security for fees\n Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.\n Emits a {StakeClaimLocked} event.\n Emits a {QueryFeesCollected} event.\n @param _signedRav Signed RAV" - }, - "id": 10661, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_collectQueryFees", - "nameLocation": "22512:17:50", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10474, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10473, - "mutability": "mutable", - "name": "_signedRav", - "nameLocation": "22561:10:50", - "nodeType": "VariableDeclaration", - "scope": 10661, - "src": "22530:41:50", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_memory_ptr", - "typeString": "struct ITAPCollector.SignedRAV" - }, - "typeName": { - "id": 10472, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 10471, - "name": "ITAPCollector.SignedRAV", - "nameLocations": [ - "22530:13:50", - "22544:9:50" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2546, - "src": "22530:23:50" - }, - "referencedDeclaration": 2546, - "src": "22530:23:50", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedRAV_$2546_storage_ptr", - "typeString": "struct ITAPCollector.SignedRAV" - } - }, - "visibility": "internal" - } - ], - "src": "22529:43:50" - }, - "returnParameters": { - "id": 10477, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10476, - "mutability": "mutable", - "name": "feesCollected", - "nameLocation": "22598:13:50", - "nodeType": "VariableDeclaration", - "scope": 10661, - "src": "22590:21:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10475, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22590:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "22589:23:50" - }, - "scope": 10684, - "src": "22503:2313:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 10682, - "nodeType": "Block", - "src": "24887:193:50", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 10667, - "name": "_stakeToFeesRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10663, - "src": "24905:17:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 10668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24926:1:50", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "24905:22:50", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10670, - "name": "SubgraphServiceInvalidZeroStakeToFeesRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11165, - "src": "24929:42:50", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 10671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24929:44:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 10666, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "24897:7:50", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 10672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24897:77:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10673, - "nodeType": "ExpressionStatement", - "src": "24897:77:50" - }, - { - "expression": { - "id": 10676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 10674, - "name": "stakeToFeesRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10697, - "src": "24984:16:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 10675, - "name": "_stakeToFeesRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10663, - "src": "25003:17:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24984:36:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10677, - "nodeType": "ExpressionStatement", - "src": "24984:36:50" - }, - { - "eventCall": { - "arguments": [ - { - "id": 10679, - "name": "_stakeToFeesRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10663, - "src": "25055:17:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10678, - "name": "StakeToFeesRatioSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11092, - "src": "25035:19:50", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25035:38:50", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10681, - "nodeType": "EmitStatement", - "src": "25030:43:50" - } - ] - }, - "id": 10683, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setStakeToFeesRatio", - "nameLocation": "24831:20:50", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10664, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10663, - "mutability": "mutable", - "name": "_stakeToFeesRatio", - "nameLocation": "24860:17:50", - "nodeType": "VariableDeclaration", - "scope": 10683, - "src": "24852:25:50", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10662, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24852:7:50", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "24851:27:50" - }, - "returnParameters": { - "id": 10665, - "nodeType": "ParameterList", - "parameters": [], - "src": "24887:0:50" - }, - "scope": 10684, - "src": "24822:258:50", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - } - ], - "scope": 10685, - "src": "1852:23230:50", - "usedErrors": [ - 1371, - 1374, - 1400, - 1421, - 1658, - 1665, - 1672, - 1677, - 3827, - 3830, - 3833, - 3836, - 4187, - 4380, - 4684, - 4689, - 4865, - 4868, - 5290, - 5293, - 5887, - 5890, - 6393, - 6398, - 6403, - 11102, - 11105, - 11108, - 11111, - 11116, - 11122, - 11131, - 11138, - 11145, - 11152, - 11157, - 11162, - 11165, - 11312, - 11317, - 11324, - 11938, - 11948, - 12235, - 12238, - 12243, - 12250, - 13282 - ], - "usedEvents": [ - 1198, - 1203, - 1210, - 1217, - 1227, - 1234, - 1346, - 1357, - 1366, - 1395, - 1628, - 1633, - 1640, - 1647, - 4375, - 4695, - 4873, - 5282, - 5287, - 5776, - 11087, - 11092, - 11097, - 12164, - 12183, - 12196, - 12207, - 12216, - 12223, - 12228, - 13275 - ] - } - ], - "src": "45:25038:50" - }, - "id": 50 - }, - "contracts/SubgraphServiceStorage.sol": { - "ast": { - "absolutePath": "contracts/SubgraphServiceStorage.sol", - "exportedSymbols": { - "ISubgraphService": [ - 11280 - ], - "SubgraphServiceV1Storage": [ - 10701 - ] - }, - "id": 10702, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10686, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:51" - }, - { - "absolutePath": "contracts/interfaces/ISubgraphService.sol", - "file": "./interfaces/ISubgraphService.sol", - "id": 10688, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 10702, - "sourceUnit": 11281, - "src": "70:69:51", - "symbolAliases": [ - { - "foreign": { - "id": 10687, - "name": "ISubgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11280, - "src": "79:16:51", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "SubgraphServiceV1Storage", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 10701, - "linearizedBaseContracts": [ - 10701 - ], - "name": "SubgraphServiceV1Storage", - "nameLocation": "159:24:51", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "documentation": { - "id": 10689, - "nodeType": "StructuredDocumentation", - "src": "190:60:51", - "text": "@notice Service providers registered in the data service" - }, - "functionSelector": "4f793cdc", - "id": 10694, - "mutability": "mutable", - "name": "indexers", - "nameLocation": "323:8:51", - "nodeType": "VariableDeclaration", - "scope": 10701, - "src": "255:76:51", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Indexer_$11078_storage_$", - "typeString": "mapping(address => struct ISubgraphService.Indexer)" - }, - "typeName": { - "id": 10693, - "keyName": "indexer", - "keyNameLocation": "271:7:51", - "keyType": { - "id": 10690, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "263:7:51", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "255:60:51", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Indexer_$11078_storage_$", - "typeString": "mapping(address => struct ISubgraphService.Indexer)" - }, - "valueName": "details", - "valueNameLocation": "307:7:51", - "valueType": { - "id": 10692, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 10691, - "name": "ISubgraphService.Indexer", - "nameLocations": [ - "282:16:51", - "299:7:51" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11078, - "src": "282:24:51" - }, - "referencedDeclaration": 11078, - "src": "282:24:51", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Indexer_$11078_storage_ptr", - "typeString": "struct ISubgraphService.Indexer" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 10695, - "nodeType": "StructuredDocumentation", - "src": "338:67:51", - "text": "@notice Multiplier for how many tokens back collected query fees" - }, - "functionSelector": "d07a7a84", - "id": 10697, - "mutability": "mutable", - "name": "stakeToFeesRatio", - "nameLocation": "425:16:51", - "nodeType": "VariableDeclaration", - "scope": 10701, - "src": "410:31:51", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10696, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "410:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 10698, - "nodeType": "StructuredDocumentation", - "src": "448:57:51", - "text": "@notice The cut curators take from query fee payments" - }, - "functionSelector": "138dea08", - "id": 10700, - "mutability": "mutable", - "name": "curationFeesCut", - "nameLocation": "525:15:51", - "nodeType": "VariableDeclaration", - "scope": 10701, - "src": "510:30:51", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10699, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "510:7:51", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - } - ], - "scope": 10702, - "src": "141:402:51", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "45:499:51" - }, - "id": 51 - }, - "contracts/interfaces/IDisputeManager.sol": { - "ast": { - "absolutePath": "contracts/interfaces/IDisputeManager.sol", - "exportedSymbols": { - "Attestation": [ - 11920 - ], - "IDisputeManager": [ - 11057 - ] - }, - "id": 11058, - "license": "GPL-2.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10703, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "46:23:52" - }, - { - "absolutePath": "contracts/libraries/Attestation.sol", - "file": "../libraries/Attestation.sol", - "id": 10705, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 11058, - "sourceUnit": 11921, - "src": "71:59:52", - "symbolAliases": [ - { - "foreign": { - "id": 10704, - "name": "Attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11920, - "src": "80:11:52", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "IDisputeManager", - "contractDependencies": [], - "contractKind": "interface", - "fullyImplemented": false, - "id": 11057, - "linearizedBaseContracts": [ - 11057 - ], - "name": "IDisputeManager", - "nameLocation": "142:15:52", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "IDisputeManager.DisputeType", - "documentation": { - "id": 10706, - "nodeType": "StructuredDocumentation", - "src": "164:49:52", - "text": "@notice Types of disputes that can be created" - }, - "id": 10710, - "members": [ - { - "id": 10707, - "name": "Null", - "nameLocation": "245:4:52", - "nodeType": "EnumValue", - "src": "245:4:52" - }, - { - "id": 10708, - "name": "IndexingDispute", - "nameLocation": "259:15:52", - "nodeType": "EnumValue", - "src": "259:15:52" - }, - { - "id": 10709, - "name": "QueryDispute", - "nameLocation": "284:12:52", - "nodeType": "EnumValue", - "src": "284:12:52" - } - ], - "name": "DisputeType", - "nameLocation": "223:11:52", - "nodeType": "EnumDefinition", - "src": "218:84:52" - }, - { - "canonicalName": "IDisputeManager.DisputeStatus", - "documentation": { - "id": 10711, - "nodeType": "StructuredDocumentation", - "src": "308:31:52", - "text": "@notice Status of a dispute" - }, - "id": 10718, - "members": [ - { - "id": 10712, - "name": "Null", - "nameLocation": "373:4:52", - "nodeType": "EnumValue", - "src": "373:4:52" - }, - { - "id": 10713, - "name": "Accepted", - "nameLocation": "387:8:52", - "nodeType": "EnumValue", - "src": "387:8:52" - }, - { - "id": 10714, - "name": "Rejected", - "nameLocation": "405:8:52", - "nodeType": "EnumValue", - "src": "405:8:52" - }, - { - "id": 10715, - "name": "Drawn", - "nameLocation": "423:5:52", - "nodeType": "EnumValue", - "src": "423:5:52" - }, - { - "id": 10716, - "name": "Pending", - "nameLocation": "438:7:52", - "nodeType": "EnumValue", - "src": "438:7:52" - }, - { - "id": 10717, - "name": "Cancelled", - "nameLocation": "455:9:52", - "nodeType": "EnumValue", - "src": "455:9:52" - } - ], - "name": "DisputeStatus", - "nameLocation": "349:13:52", - "nodeType": "EnumDefinition", - "src": "344:126:52" - }, - { - "canonicalName": "IDisputeManager.Dispute", - "documentation": { - "id": 10719, - "nodeType": "StructuredDocumentation", - "src": "476:84:52", - "text": "@notice Disputes contain info necessary for the Arbitrator to verify and resolve" - }, - "id": 10738, - "members": [ - { - "constant": false, - "id": 10721, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "640:7:52", - "nodeType": "VariableDeclaration", - "scope": 10738, - "src": "632:15:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10720, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "632:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10723, - "mutability": "mutable", - "name": "fisherman", - "nameLocation": "711:9:52", - "nodeType": "VariableDeclaration", - "scope": 10738, - "src": "703:17:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10722, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "703:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10725, - "mutability": "mutable", - "name": "deposit", - "nameLocation": "793:7:52", - "nodeType": "VariableDeclaration", - "scope": 10738, - "src": "785:15:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10724, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "785:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10727, - "mutability": "mutable", - "name": "relatedDisputeId", - "nameLocation": "912:16:52", - "nodeType": "VariableDeclaration", - "scope": 10738, - "src": "904:24:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10726, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "904:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10730, - "mutability": "mutable", - "name": "disputeType", - "nameLocation": "977:11:52", - "nodeType": "VariableDeclaration", - "scope": 10738, - "src": "965:23:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeType_$10710", - "typeString": "enum IDisputeManager.DisputeType" - }, - "typeName": { - "id": 10729, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 10728, - "name": "DisputeType", - "nameLocations": [ - "965:11:52" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10710, - "src": "965:11:52" - }, - "referencedDeclaration": 10710, - "src": "965:11:52", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeType_$10710", - "typeString": "enum IDisputeManager.DisputeType" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10733, - "mutability": "mutable", - "name": "status", - "nameLocation": "1045:6:52", - "nodeType": "VariableDeclaration", - "scope": 10738, - "src": "1031:20:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - }, - "typeName": { - "id": 10732, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 10731, - "name": "DisputeStatus", - "nameLocations": [ - "1031:13:52" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10718, - "src": "1031:13:52" - }, - "referencedDeclaration": 10718, - "src": "1031:13:52", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10735, - "mutability": "mutable", - "name": "createdAt", - "nameLocation": "1119:9:52", - "nodeType": "VariableDeclaration", - "scope": 10738, - "src": "1111:17:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10734, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1111:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10737, - "mutability": "mutable", - "name": "stakeSnapshot", - "nameLocation": "1263:13:52", - "nodeType": "VariableDeclaration", - "scope": 10738, - "src": "1255:21:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10736, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1255:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "Dispute", - "nameLocation": "572:7:52", - "nodeType": "StructDefinition", - "scope": 11057, - "src": "565:718:52", - "visibility": "public" - }, - { - "anonymous": false, - "documentation": { - "id": 10739, - "nodeType": "StructuredDocumentation", - "src": "1289:114:52", - "text": " @notice Emitted when arbitrator is set.\n @param arbitrator The address of the arbitrator." - }, - "eventSelector": "51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e", - "id": 10743, - "name": "ArbitratorSet", - "nameLocation": "1414:13:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10742, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10741, - "indexed": true, - "mutability": "mutable", - "name": "arbitrator", - "nameLocation": "1444:10:52", - "nodeType": "VariableDeclaration", - "scope": 10743, - "src": "1428:26:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1428:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1427:28:52" - }, - "src": "1408:48:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10744, - "nodeType": "StructuredDocumentation", - "src": "1462:121:52", - "text": " @notice Emitted when dispute period is set.\n @param disputePeriod The dispute period in seconds." - }, - "eventSelector": "310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e6", - "id": 10748, - "name": "DisputePeriodSet", - "nameLocation": "1594:16:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10746, - "indexed": false, - "mutability": "mutable", - "name": "disputePeriod", - "nameLocation": "1618:13:52", - "nodeType": "VariableDeclaration", - "scope": 10748, - "src": "1611:20:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 10745, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1611:6:52", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "1610:22:52" - }, - "src": "1588:45:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10749, - "nodeType": "StructuredDocumentation", - "src": "1639:142:52", - "text": " @notice Emitted when dispute deposit is set.\n @param disputeDeposit The dispute deposit required to create a dispute." - }, - "eventSelector": "97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f8", - "id": 10753, - "name": "DisputeDepositSet", - "nameLocation": "1792:17:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10752, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10751, - "indexed": false, - "mutability": "mutable", - "name": "disputeDeposit", - "nameLocation": "1818:14:52", - "nodeType": "VariableDeclaration", - "scope": 10753, - "src": "1810:22:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10750, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1810:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1809:24:52" - }, - "src": "1786:48:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10754, - "nodeType": "StructuredDocumentation", - "src": "1840:135:52", - "text": " @notice Emitted when max slashing cut is set.\n @param maxSlashingCut The maximum slashing cut that can be set." - }, - "eventSelector": "7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d680502", - "id": 10758, - "name": "MaxSlashingCutSet", - "nameLocation": "1986:17:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10756, - "indexed": false, - "mutability": "mutable", - "name": "maxSlashingCut", - "nameLocation": "2011:14:52", - "nodeType": "VariableDeclaration", - "scope": 10758, - "src": "2004:21:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10755, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2004:6:52", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "2003:23:52" - }, - "src": "1980:47:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10759, - "nodeType": "StructuredDocumentation", - "src": "2033:127:52", - "text": " @notice Emitted when fisherman reward cut is set.\n @param fishermanRewardCut The fisherman reward cut." - }, - "eventSelector": "c573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab", - "id": 10763, - "name": "FishermanRewardCutSet", - "nameLocation": "2171:21:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10762, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10761, - "indexed": false, - "mutability": "mutable", - "name": "fishermanRewardCut", - "nameLocation": "2200:18:52", - "nodeType": "VariableDeclaration", - "scope": 10763, - "src": "2193:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10760, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2193:6:52", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "2192:27:52" - }, - "src": "2165:55:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10764, - "nodeType": "StructuredDocumentation", - "src": "2226:131:52", - "text": " @notice Emitted when subgraph service is set.\n @param subgraphService The address of the subgraph service." - }, - "eventSelector": "81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c7", - "id": 10768, - "name": "SubgraphServiceSet", - "nameLocation": "2368:18:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10766, - "indexed": true, - "mutability": "mutable", - "name": "subgraphService", - "nameLocation": "2403:15:52", - "nodeType": "VariableDeclaration", - "scope": 10768, - "src": "2387:31:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10765, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2387:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2386:33:52" - }, - "src": "2362:58:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10769, - "nodeType": "StructuredDocumentation", - "src": "2426:229:52", - "text": " @dev Emitted when a query dispute is created for `subgraphDeploymentId` and `indexer`\n by `fisherman`.\n The event emits the amount of `tokens` deposited by the fisherman and `attestation` submitted." - }, - "eventSelector": "fb609a7fd5eb7947365d2f96d051030cac33a27e3e4923f97ea4e03aaa2bcb14", - "id": 10785, - "name": "QueryDisputeCreated", - "nameLocation": "2666:19:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10771, - "indexed": true, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "2711:9:52", - "nodeType": "VariableDeclaration", - "scope": 10785, - "src": "2695:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10770, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2695:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10773, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "2746:7:52", - "nodeType": "VariableDeclaration", - "scope": 10785, - "src": "2730:23:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10772, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2730:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10775, - "indexed": true, - "mutability": "mutable", - "name": "fisherman", - "nameLocation": "2779:9:52", - "nodeType": "VariableDeclaration", - "scope": 10785, - "src": "2763:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10774, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2763:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10777, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2806:6:52", - "nodeType": "VariableDeclaration", - "scope": 10785, - "src": "2798:14:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10776, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2798:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10779, - "indexed": false, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "2830:20:52", - "nodeType": "VariableDeclaration", - "scope": 10785, - "src": "2822:28:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10778, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2822:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10781, - "indexed": false, - "mutability": "mutable", - "name": "attestation", - "nameLocation": "2866:11:52", - "nodeType": "VariableDeclaration", - "scope": 10785, - "src": "2860:17:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10780, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2860:5:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10783, - "indexed": false, - "mutability": "mutable", - "name": "stakeSnapshot", - "nameLocation": "2895:13:52", - "nodeType": "VariableDeclaration", - "scope": 10785, - "src": "2887:21:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2887:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2685:229:52" - }, - "src": "2660:255:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10786, - "nodeType": "StructuredDocumentation", - "src": "2921:197:52", - "text": " @dev Emitted when an indexing dispute is created for `allocationId` and `indexer`\n by `fisherman`.\n The event emits the amount of `tokens` deposited by the fisherman." - }, - "eventSelector": "bfd6e5f61b4aa04b088a513a833705c7c703b907516c1dbfa66f93d1f725d33d", - "id": 10802, - "name": "IndexingDisputeCreated", - "nameLocation": "3129:22:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10788, - "indexed": true, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "3177:9:52", - "nodeType": "VariableDeclaration", - "scope": 10802, - "src": "3161:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10787, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3161:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10790, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "3212:7:52", - "nodeType": "VariableDeclaration", - "scope": 10802, - "src": "3196:23:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10789, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3196:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10792, - "indexed": true, - "mutability": "mutable", - "name": "fisherman", - "nameLocation": "3245:9:52", - "nodeType": "VariableDeclaration", - "scope": 10802, - "src": "3229:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10791, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3229:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10794, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "3272:6:52", - "nodeType": "VariableDeclaration", - "scope": 10802, - "src": "3264:14:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10793, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3264:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10796, - "indexed": false, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "3296:12:52", - "nodeType": "VariableDeclaration", - "scope": 10802, - "src": "3288:20:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10795, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3288:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10798, - "indexed": false, - "mutability": "mutable", - "name": "poi", - "nameLocation": "3326:3:52", - "nodeType": "VariableDeclaration", - "scope": 10802, - "src": "3318:11:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10797, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3318:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10800, - "indexed": false, - "mutability": "mutable", - "name": "stakeSnapshot", - "nameLocation": "3347:13:52", - "nodeType": "VariableDeclaration", - "scope": 10802, - "src": "3339:21:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10799, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3339:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3151:215:52" - }, - "src": "3123:244:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10803, - "nodeType": "StructuredDocumentation", - "src": "3373:204:52", - "text": " @dev Emitted when arbitrator accepts a `disputeId` to `indexer` created by `fisherman`.\n The event emits the amount `tokens` transferred to the fisherman, the deposit plus reward." - }, - "eventSelector": "6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c4", - "id": 10813, - "name": "DisputeAccepted", - "nameLocation": "3588:15:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10812, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10805, - "indexed": true, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "3629:9:52", - "nodeType": "VariableDeclaration", - "scope": 10813, - "src": "3613:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10804, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3613:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10807, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "3664:7:52", - "nodeType": "VariableDeclaration", - "scope": 10813, - "src": "3648:23:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10806, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3648:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10809, - "indexed": true, - "mutability": "mutable", - "name": "fisherman", - "nameLocation": "3697:9:52", - "nodeType": "VariableDeclaration", - "scope": 10813, - "src": "3681:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10808, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3681:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10811, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "3724:6:52", - "nodeType": "VariableDeclaration", - "scope": 10813, - "src": "3716:14:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10810, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3716:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3603:133:52" - }, - "src": "3582:155:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10814, - "nodeType": "StructuredDocumentation", - "src": "3743:185:52", - "text": " @dev Emitted when arbitrator rejects a `disputeId` for `indexer` created by `fisherman`.\n The event emits the amount `tokens` burned from the fisherman deposit." - }, - "eventSelector": "2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d", - "id": 10824, - "name": "DisputeRejected", - "nameLocation": "3939:15:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10823, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10816, - "indexed": true, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "3980:9:52", - "nodeType": "VariableDeclaration", - "scope": 10824, - "src": "3964:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10815, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3964:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10818, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "4015:7:52", - "nodeType": "VariableDeclaration", - "scope": 10824, - "src": "3999:23:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10817, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3999:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10820, - "indexed": true, - "mutability": "mutable", - "name": "fisherman", - "nameLocation": "4048:9:52", - "nodeType": "VariableDeclaration", - "scope": 10824, - "src": "4032:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10819, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4032:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10822, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "4075:6:52", - "nodeType": "VariableDeclaration", - "scope": 10824, - "src": "4067:14:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10821, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4067:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3954:133:52" - }, - "src": "3933:155:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10825, - "nodeType": "StructuredDocumentation", - "src": "4094:194:52", - "text": " @dev Emitted when arbitrator draw a `disputeId` for `indexer` created by `fisherman`.\n The event emits the amount `tokens` used as deposit and returned to the fisherman." - }, - "eventSelector": "f0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b7", - "id": 10835, - "name": "DisputeDrawn", - "nameLocation": "4299:12:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10834, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10827, - "indexed": true, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "4328:9:52", - "nodeType": "VariableDeclaration", - "scope": 10835, - "src": "4312:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10826, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4312:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10829, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "4355:7:52", - "nodeType": "VariableDeclaration", - "scope": 10835, - "src": "4339:23:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10828, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4339:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10831, - "indexed": true, - "mutability": "mutable", - "name": "fisherman", - "nameLocation": "4380:9:52", - "nodeType": "VariableDeclaration", - "scope": 10835, - "src": "4364:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10830, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4364:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10833, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "4399:6:52", - "nodeType": "VariableDeclaration", - "scope": 10835, - "src": "4391:14:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10832, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4391:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4311:95:52" - }, - "src": "4293:114:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10836, - "nodeType": "StructuredDocumentation", - "src": "4413:200:52", - "text": " @dev Emitted when two disputes are in conflict to link them.\n This event will be emitted after each DisputeCreated event is emitted\n for each of the individual disputes." - }, - "eventSelector": "fec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba81407", - "id": 10842, - "name": "DisputeLinked", - "nameLocation": "4624:13:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10841, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10838, - "indexed": true, - "mutability": "mutable", - "name": "disputeId1", - "nameLocation": "4654:10:52", - "nodeType": "VariableDeclaration", - "scope": 10842, - "src": "4638:26:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10837, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4638:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10840, - "indexed": true, - "mutability": "mutable", - "name": "disputeId2", - "nameLocation": "4682:10:52", - "nodeType": "VariableDeclaration", - "scope": 10842, - "src": "4666:26:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10839, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4666:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4637:56:52" - }, - "src": "4618:76:52" - }, - { - "anonymous": false, - "documentation": { - "id": 10843, - "nodeType": "StructuredDocumentation", - "src": "4700:147:52", - "text": " @dev Emitted when a dispute is cancelled by the fisherman.\n The event emits the amount `tokens` returned to the fisherman." - }, - "eventSelector": "223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2", - "id": 10853, - "name": "DisputeCancelled", - "nameLocation": "4858:16:52", - "nodeType": "EventDefinition", - "parameters": { - "id": 10852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10845, - "indexed": true, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "4900:9:52", - "nodeType": "VariableDeclaration", - "scope": 10853, - "src": "4884:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10844, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4884:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10847, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "4935:7:52", - "nodeType": "VariableDeclaration", - "scope": 10853, - "src": "4919:23:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10846, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4919:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10849, - "indexed": true, - "mutability": "mutable", - "name": "fisherman", - "nameLocation": "4968:9:52", - "nodeType": "VariableDeclaration", - "scope": 10853, - "src": "4952:25:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10848, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4952:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10851, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "4995:6:52", - "nodeType": "VariableDeclaration", - "scope": 10853, - "src": "4987:14:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10850, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4987:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4874:133:52" - }, - "src": "4852:156:52" - }, - { - "errorSelector": "a8baf3bb", - "id": 10855, - "name": "DisputeManagerNotArbitrator", - "nameLocation": "5041:27:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10854, - "nodeType": "ParameterList", - "parameters": [], - "src": "5068:2:52" - }, - "src": "5035:36:52" - }, - { - "errorSelector": "82c00550", - "id": 10857, - "name": "DisputeManagerNotFisherman", - "nameLocation": "5082:26:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10856, - "nodeType": "ParameterList", - "parameters": [], - "src": "5108:2:52" - }, - "src": "5076:35:52" - }, - { - "errorSelector": "c2d78882", - "id": 10859, - "name": "DisputeManagerInvalidZeroAddress", - "nameLocation": "5122:32:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10858, - "nodeType": "ParameterList", - "parameters": [], - "src": "5154:2:52" - }, - "src": "5116:41:52" - }, - { - "errorSelector": "c4411f11", - "id": 10861, - "name": "DisputeManagerDisputePeriodZero", - "nameLocation": "5168:31:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10860, - "nodeType": "ParameterList", - "parameters": [], - "src": "5199:2:52" - }, - "src": "5162:40:52" - }, - { - "errorSelector": "60fdfb6e", - "id": 10863, - "name": "DisputeManagerZeroTokens", - "nameLocation": "5213:24:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10862, - "nodeType": "ParameterList", - "parameters": [], - "src": "5237:2:52" - }, - "src": "5207:33:52" - }, - { - "errorSelector": "5280eef4", - "id": 10867, - "name": "DisputeManagerInvalidDispute", - "nameLocation": "5251:28:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10866, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10865, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "5288:9:52", - "nodeType": "VariableDeclaration", - "scope": 10867, - "src": "5280:17:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10864, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5280:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5279:19:52" - }, - "src": "5245:54:52" - }, - { - "errorSelector": "033f4e05", - "id": 10871, - "name": "DisputeManagerInvalidDisputeDeposit", - "nameLocation": "5310:35:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10870, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10869, - "mutability": "mutable", - "name": "disputeDeposit", - "nameLocation": "5354:14:52", - "nodeType": "VariableDeclaration", - "scope": 10871, - "src": "5346:22:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10868, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5346:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5345:24:52" - }, - "src": "5304:66:52" - }, - { - "errorSelector": "865ccc86", - "id": 10875, - "name": "DisputeManagerInvalidFishermanReward", - "nameLocation": "5381:36:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10874, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10873, - "mutability": "mutable", - "name": "cut", - "nameLocation": "5425:3:52", - "nodeType": "VariableDeclaration", - "scope": 10875, - "src": "5418:10:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10872, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5418:6:52", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "5417:12:52" - }, - "src": "5375:55:52" - }, - { - "errorSelector": "9d26e9f6", - "id": 10879, - "name": "DisputeManagerInvalidMaxSlashingCut", - "nameLocation": "5441:35:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10878, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10877, - "mutability": "mutable", - "name": "maxSlashingCut", - "nameLocation": "5484:14:52", - "nodeType": "VariableDeclaration", - "scope": 10879, - "src": "5477:21:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10876, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5477:6:52", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "5476:23:52" - }, - "src": "5435:65:52" - }, - { - "errorSelector": "cc6b7c41", - "id": 10885, - "name": "DisputeManagerInvalidTokensSlash", - "nameLocation": "5511:32:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10881, - "mutability": "mutable", - "name": "tokensSlash", - "nameLocation": "5552:11:52", - "nodeType": "VariableDeclaration", - "scope": 10885, - "src": "5544:19:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10880, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5544:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10883, - "mutability": "mutable", - "name": "maxTokensSlash", - "nameLocation": "5573:14:52", - "nodeType": "VariableDeclaration", - "scope": 10885, - "src": "5565:22:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10882, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5565:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5543:45:52" - }, - "src": "5505:84:52" - }, - { - "errorSelector": "51b9503c", - "id": 10890, - "name": "DisputeManagerDisputeNotPending", - "nameLocation": "5600:31:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10889, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10888, - "mutability": "mutable", - "name": "status", - "nameLocation": "5662:6:52", - "nodeType": "VariableDeclaration", - "scope": 10890, - "src": "5632:36:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - }, - "typeName": { - "id": 10887, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 10886, - "name": "IDisputeManager.DisputeStatus", - "nameLocations": [ - "5632:15:52", - "5648:13:52" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 10718, - "src": "5632:29:52" - }, - "referencedDeclaration": 10718, - "src": "5632:29:52", - "typeDescriptions": { - "typeIdentifier": "t_enum$_DisputeStatus_$10718", - "typeString": "enum IDisputeManager.DisputeStatus" - } - }, - "visibility": "internal" - } - ], - "src": "5631:38:52" - }, - "src": "5594:76:52" - }, - { - "errorSelector": "249447e2", - "id": 10894, - "name": "DisputeManagerDisputeAlreadyCreated", - "nameLocation": "5681:35:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10893, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10892, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "5725:9:52", - "nodeType": "VariableDeclaration", - "scope": 10894, - "src": "5717:17:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10891, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5717:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5716:19:52" - }, - "src": "5675:61:52" - }, - { - "errorSelector": "3aeea7aa", - "id": 10896, - "name": "DisputeManagerDisputePeriodNotFinished", - "nameLocation": "5747:38:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10895, - "nodeType": "ParameterList", - "parameters": [], - "src": "5785:2:52" - }, - "src": "5741:47:52" - }, - { - "errorSelector": "826e2b26", - "id": 10902, - "name": "DisputeManagerMustAcceptRelatedDispute", - "nameLocation": "5799:38:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10901, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10898, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "5846:9:52", - "nodeType": "VariableDeclaration", - "scope": 10902, - "src": "5838:17:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10897, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5838:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10900, - "mutability": "mutable", - "name": "relatedDisputeId", - "nameLocation": "5865:16:52", - "nodeType": "VariableDeclaration", - "scope": 10902, - "src": "5857:24:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10899, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5857:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "5837:45:52" - }, - "src": "5793:90:52" - }, - { - "errorSelector": "d1e2762c", - "id": 10906, - "name": "DisputeManagerIndexerNotFound", - "nameLocation": "5894:29:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10904, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "5932:12:52", - "nodeType": "VariableDeclaration", - "scope": 10906, - "src": "5924:20:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10903, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5924:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5923:22:52" - }, - "src": "5888:58:52" - }, - { - "errorSelector": "28933f94", - "id": 10912, - "name": "DisputeManagerNonMatchingSubgraphDeployment", - "nameLocation": "5957:43:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10911, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10908, - "mutability": "mutable", - "name": "subgraphDeploymentId1", - "nameLocation": "6009:21:52", - "nodeType": "VariableDeclaration", - "scope": 10912, - "src": "6001:29:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10907, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6001:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10910, - "mutability": "mutable", - "name": "subgraphDeploymentId2", - "nameLocation": "6040:21:52", - "nodeType": "VariableDeclaration", - "scope": 10912, - "src": "6032:29:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10909, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6032:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "6000:62:52" - }, - "src": "5951:112:52" - }, - { - "errorSelector": "d574a52e", - "id": 10926, - "name": "DisputeManagerNonConflictingAttestations", - "nameLocation": "6074:40:52", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 10925, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10914, - "mutability": "mutable", - "name": "requestCID1", - "nameLocation": "6132:11:52", - "nodeType": "VariableDeclaration", - "scope": 10926, - "src": "6124:19:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10913, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6124:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10916, - "mutability": "mutable", - "name": "responseCID1", - "nameLocation": "6161:12:52", - "nodeType": "VariableDeclaration", - "scope": 10926, - "src": "6153:20:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10915, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6153:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10918, - "mutability": "mutable", - "name": "subgraphDeploymentId1", - "nameLocation": "6191:21:52", - "nodeType": "VariableDeclaration", - "scope": 10926, - "src": "6183:29:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10917, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6183:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10920, - "mutability": "mutable", - "name": "requestCID2", - "nameLocation": "6230:11:52", - "nodeType": "VariableDeclaration", - "scope": 10926, - "src": "6222:19:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10919, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6222:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10922, - "mutability": "mutable", - "name": "responseCID2", - "nameLocation": "6259:12:52", - "nodeType": "VariableDeclaration", - "scope": 10926, - "src": "6251:20:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10921, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6251:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10924, - "mutability": "mutable", - "name": "subgraphDeploymentId2", - "nameLocation": "6289:21:52", - "nodeType": "VariableDeclaration", - "scope": 10926, - "src": "6281:29:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10923, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6281:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "6114:202:52" - }, - "src": "6068:249:52" - }, - { - "functionSelector": "d76f62d1", - "id": 10931, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setDisputePeriod", - "nameLocation": "6332:16:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10929, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10928, - "mutability": "mutable", - "name": "disputePeriod", - "nameLocation": "6356:13:52", - "nodeType": "VariableDeclaration", - "scope": 10931, - "src": "6349:20:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 10927, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "6349:6:52", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "6348:22:52" - }, - "returnParameters": { - "id": 10930, - "nodeType": "ParameterList", - "parameters": [], - "src": "6379:0:52" - }, - "scope": 11057, - "src": "6323:57:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "b0eefabe", - "id": 10936, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setArbitrator", - "nameLocation": "6395:13:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10933, - "mutability": "mutable", - "name": "arbitrator", - "nameLocation": "6417:10:52", - "nodeType": "VariableDeclaration", - "scope": 10936, - "src": "6409:18:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10932, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6409:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6408:20:52" - }, - "returnParameters": { - "id": 10935, - "nodeType": "ParameterList", - "parameters": [], - "src": "6437:0:52" - }, - "scope": 11057, - "src": "6386:52:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "16972978", - "id": 10941, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setDisputeDeposit", - "nameLocation": "6453:17:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10939, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10938, - "mutability": "mutable", - "name": "disputeDeposit", - "nameLocation": "6479:14:52", - "nodeType": "VariableDeclaration", - "scope": 10941, - "src": "6471:22:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6471:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6470:24:52" - }, - "returnParameters": { - "id": 10940, - "nodeType": "ParameterList", - "parameters": [], - "src": "6503:0:52" - }, - "scope": 11057, - "src": "6444:60:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "76c993ae", - "id": 10946, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setFishermanRewardCut", - "nameLocation": "6519:21:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10944, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10943, - "mutability": "mutable", - "name": "cut", - "nameLocation": "6548:3:52", - "nodeType": "VariableDeclaration", - "scope": 10946, - "src": "6541:10:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10942, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6541:6:52", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "6540:12:52" - }, - "returnParameters": { - "id": 10945, - "nodeType": "ParameterList", - "parameters": [], - "src": "6561:0:52" - }, - "scope": 11057, - "src": "6510:52:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "9f81a7cf", - "id": 10951, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setMaxSlashingCut", - "nameLocation": "6577:17:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10949, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10948, - "mutability": "mutable", - "name": "maxCut", - "nameLocation": "6602:6:52", - "nodeType": "VariableDeclaration", - "scope": 10951, - "src": "6595:13:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 10947, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "6595:6:52", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "6594:15:52" - }, - "returnParameters": { - "id": 10950, - "nodeType": "ParameterList", - "parameters": [], - "src": "6618:0:52" - }, - "scope": 11057, - "src": "6568:51:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "c50a77b1", - "id": 10958, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "createQueryDispute", - "nameLocation": "6656:18:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10954, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10953, - "mutability": "mutable", - "name": "attestationData", - "nameLocation": "6690:15:52", - "nodeType": "VariableDeclaration", - "scope": 10958, - "src": "6675:30:52", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10952, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6675:5:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6674:32:52" - }, - "returnParameters": { - "id": 10957, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10956, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10958, - "src": "6725:7:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10955, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6725:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "6724:9:52" - }, - "scope": 11057, - "src": "6647:87:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "c894222e", - "id": 10969, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "createQueryDisputeConflict", - "nameLocation": "6749:26:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10960, - "mutability": "mutable", - "name": "attestationData1", - "nameLocation": "6800:16:52", - "nodeType": "VariableDeclaration", - "scope": 10969, - "src": "6785:31:52", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10959, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6785:5:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10962, - "mutability": "mutable", - "name": "attestationData2", - "nameLocation": "6841:16:52", - "nodeType": "VariableDeclaration", - "scope": 10969, - "src": "6826:31:52", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10961, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6826:5:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6775:88:52" - }, - "returnParameters": { - "id": 10968, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10965, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10969, - "src": "6882:7:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10964, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6882:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10967, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10969, - "src": "6891:7:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10966, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6891:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "6881:18:52" - }, - "scope": 11057, - "src": "6740:160:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "4bc5839a", - "id": 10978, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "createIndexingDispute", - "nameLocation": "6915:21:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10974, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10971, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "6945:12:52", - "nodeType": "VariableDeclaration", - "scope": 10978, - "src": "6937:20:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10970, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6937:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10973, - "mutability": "mutable", - "name": "poi", - "nameLocation": "6967:3:52", - "nodeType": "VariableDeclaration", - "scope": 10978, - "src": "6959:11:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10972, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6959:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "6936:35:52" - }, - "returnParameters": { - "id": 10977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10976, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 10978, - "src": "6990:7:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10975, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6990:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "6989:9:52" - }, - "scope": 11057, - "src": "6906:93:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "050b17ad", - "id": 10985, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "acceptDispute", - "nameLocation": "7014:13:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10983, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10980, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "7036:9:52", - "nodeType": "VariableDeclaration", - "scope": 10985, - "src": "7028:17:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10979, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7028:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10982, - "mutability": "mutable", - "name": "tokensSlash", - "nameLocation": "7055:11:52", - "nodeType": "VariableDeclaration", - "scope": 10985, - "src": "7047:19:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10981, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7047:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7027:40:52" - }, - "returnParameters": { - "id": 10984, - "nodeType": "ParameterList", - "parameters": [], - "src": "7076:0:52" - }, - "scope": 11057, - "src": "7005:72:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "36167e03", - "id": 10990, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "rejectDispute", - "nameLocation": "7092:13:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10987, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "7114:9:52", - "nodeType": "VariableDeclaration", - "scope": 10990, - "src": "7106:17:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10986, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7106:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "7105:19:52" - }, - "returnParameters": { - "id": 10989, - "nodeType": "ParameterList", - "parameters": [], - "src": "7133:0:52" - }, - "scope": 11057, - "src": "7083:51:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "9334ea52", - "id": 10995, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "drawDispute", - "nameLocation": "7149:11:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10993, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10992, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "7169:9:52", - "nodeType": "VariableDeclaration", - "scope": 10995, - "src": "7161:17:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10991, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7161:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "7160:19:52" - }, - "returnParameters": { - "id": 10994, - "nodeType": "ParameterList", - "parameters": [], - "src": "7188:0:52" - }, - "scope": 11057, - "src": "7140:49:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "1792f194", - "id": 11000, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "cancelDispute", - "nameLocation": "7204:13:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10997, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "7226:9:52", - "nodeType": "VariableDeclaration", - "scope": 11000, - "src": "7218:17:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 10996, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7218:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "7217:19:52" - }, - "returnParameters": { - "id": 10999, - "nodeType": "ParameterList", - "parameters": [], - "src": "7245:0:52" - }, - "scope": 11057, - "src": "7195:51:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "93a90a1e", - "id": 11005, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setSubgraphService", - "nameLocation": "7261:18:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11002, - "mutability": "mutable", - "name": "subgraphService", - "nameLocation": "7288:15:52", - "nodeType": "VariableDeclaration", - "scope": 11005, - "src": "7280:23:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11001, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7280:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "7279:25:52" - }, - "returnParameters": { - "id": 11004, - "nodeType": "ParameterList", - "parameters": [], - "src": "7313:0:52" - }, - "scope": 11057, - "src": "7252:62:52", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "84633713", - "id": 11010, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getVerifierCut", - "nameLocation": "7351:14:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11006, - "nodeType": "ParameterList", - "parameters": [], - "src": "7365:2:52" - }, - "returnParameters": { - "id": 11009, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11008, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11010, - "src": "7391:6:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11007, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "7391:6:52", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "7390:8:52" - }, - "scope": 11057, - "src": "7342:57:52", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "5aea0ec4", - "id": 11015, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getDisputePeriod", - "nameLocation": "7414:16:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11011, - "nodeType": "ParameterList", - "parameters": [], - "src": "7430:2:52" - }, - "returnParameters": { - "id": 11014, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11013, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11015, - "src": "7456:6:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 11012, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "7456:6:52", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "visibility": "internal" - } - ], - "src": "7455:8:52" - }, - "scope": 11057, - "src": "7405:59:52", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "be41f384", - "id": 11022, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isDisputeCreated", - "nameLocation": "7479:16:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11018, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11017, - "mutability": "mutable", - "name": "disputeId", - "nameLocation": "7504:9:52", - "nodeType": "VariableDeclaration", - "scope": 11022, - "src": "7496:17:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11016, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7496:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "7495:19:52" - }, - "returnParameters": { - "id": 11021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11020, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11022, - "src": "7538:4:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11019, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7538:4:52", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "7537:6:52" - }, - "scope": 11057, - "src": "7470:74:52", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "6369df6b", - "id": 11030, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "encodeReceipt", - "nameLocation": "7559:13:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11026, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11025, - "mutability": "mutable", - "name": "receipt", - "nameLocation": "7600:7:52", - "nodeType": "VariableDeclaration", - "scope": 11030, - "src": "7573:34:52", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt" - }, - "typeName": { - "id": 11024, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11023, - "name": "Attestation.Receipt", - "nameLocations": [ - "7573:11:52", - "7585:7:52" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11685, - "src": "7573:19:52" - }, - "referencedDeclaration": 11685, - "src": "7573:19:52", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_storage_ptr", - "typeString": "struct Attestation.Receipt" - } - }, - "visibility": "internal" - } - ], - "src": "7572:36:52" - }, - "returnParameters": { - "id": 11029, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11028, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11030, - "src": "7632:7:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11027, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7632:7:52", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "7631:9:52" - }, - "scope": 11057, - "src": "7550:91:52", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "c9747f51", - "id": 11038, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAttestationIndexer", - "nameLocation": "7656:21:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11034, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11033, - "mutability": "mutable", - "name": "attestation", - "nameLocation": "7703:11:52", - "nodeType": "VariableDeclaration", - "scope": 11038, - "src": "7678:36:52", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 11032, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11031, - "name": "Attestation.State", - "nameLocations": [ - "7678:11:52", - "7690:5:52" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "7678:17:52" - }, - "referencedDeclaration": 11699, - "src": "7678:17:52", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - } - ], - "src": "7677:38:52" - }, - "returnParameters": { - "id": 11037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11036, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11038, - "src": "7739:7:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11035, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7739:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "7738:9:52" - }, - "scope": 11057, - "src": "7647:101:52", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "c133b429", - "id": 11045, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getStakeSnapshot", - "nameLocation": "7763:16:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11041, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11040, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "7788:7:52", - "nodeType": "VariableDeclaration", - "scope": 11045, - "src": "7780:15:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11039, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7780:7:52", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "7779:17:52" - }, - "returnParameters": { - "id": 11044, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11043, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11045, - "src": "7820:7:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11042, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7820:7:52", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7819:9:52" - }, - "scope": 11057, - "src": "7754:75:52", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "d36fc9d4", - "id": 11056, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "areConflictingAttestations", - "nameLocation": "7844:26:52", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11052, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11048, - "mutability": "mutable", - "name": "attestation1", - "nameLocation": "7905:12:52", - "nodeType": "VariableDeclaration", - "scope": 11056, - "src": "7880:37:52", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 11047, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11046, - "name": "Attestation.State", - "nameLocations": [ - "7880:11:52", - "7892:5:52" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "7880:17:52" - }, - "referencedDeclaration": 11699, - "src": "7880:17:52", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11051, - "mutability": "mutable", - "name": "attestation2", - "nameLocation": "7952:12:52", - "nodeType": "VariableDeclaration", - "scope": 11056, - "src": "7927:37:52", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 11050, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11049, - "name": "Attestation.State", - "nameLocations": [ - "7927:11:52", - "7939:5:52" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "7927:17:52" - }, - "referencedDeclaration": 11699, - "src": "7927:17:52", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - } - ], - "src": "7870:100:52" - }, - "returnParameters": { - "id": 11055, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11054, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11056, - "src": "7994:4:52", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11053, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7994:4:52", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "7993:6:52" - }, - "scope": 11057, - "src": "7835:165:52", - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - } - ], - "scope": 11058, - "src": "132:7870:52", - "usedErrors": [ - 10855, - 10857, - 10859, - 10861, - 10863, - 10867, - 10871, - 10875, - 10879, - 10885, - 10890, - 10894, - 10896, - 10902, - 10906, - 10912, - 10926 - ], - "usedEvents": [ - 10743, - 10748, - 10753, - 10758, - 10763, - 10768, - 10785, - 10802, - 10813, - 10824, - 10835, - 10842, - 10853 - ] - } - ], - "src": "46:7957:52" - }, - "id": 52 - }, - "contracts/interfaces/ISubgraphService.sol": { - "ast": { - "absolutePath": "contracts/interfaces/ISubgraphService.sol", - "exportedSymbols": { - "Allocation": [ - 11674 - ], - "IDataServiceFees": [ - 1381 - ], - "IGraphPayments": [ - 2211 - ], - "ISubgraphService": [ - 11280 - ], - "LegacyAllocation": [ - 12086 - ] - }, - "id": 11281, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11059, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:53" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol", - "file": "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol", - "id": 11061, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 11281, - "sourceUnit": 1382, - "src": "70:113:53", - "symbolAliases": [ - { - "foreign": { - "id": 11060, - "name": "IDataServiceFees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1381, - "src": "79:16:53", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "file": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "id": 11063, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 11281, - "sourceUnit": 2212, - "src": "184:96:53", - "symbolAliases": [ - { - "foreign": { - "id": 11062, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "193:14:53", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/Allocation.sol", - "file": "../libraries/Allocation.sol", - "id": 11065, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 11281, - "sourceUnit": 11675, - "src": "282:57:53", - "symbolAliases": [ - { - "foreign": { - "id": 11064, - "name": "Allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11674, - "src": "291:10:53", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/LegacyAllocation.sol", - "file": "../libraries/LegacyAllocation.sol", - "id": 11067, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 11281, - "sourceUnit": 12087, - "src": "340:69:53", - "symbolAliases": [ - { - "foreign": { - "id": 11066, - "name": "LegacyAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12086, - "src": "349:16:53", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 11069, - "name": "IDataServiceFees", - "nameLocations": [ - "998:16:53" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1381, - "src": "998:16:53" - }, - "id": 11070, - "nodeType": "InheritanceSpecifier", - "src": "998:16:53" - } - ], - "canonicalName": "ISubgraphService", - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 11068, - "nodeType": "StructuredDocumentation", - "src": "411:556:53", - "text": " @title Interface for the {SubgraphService} contract\n @dev This interface extends {IDataServiceFees} and {IDataService}.\n @notice The Subgraph Service is a data service built on top of Graph Horizon that supports the use case of\n subgraph indexing and querying. The {SubgraphService} contract implements the flows described in the Data\n Service framework to allow indexers to register as subgraph service providers, create allocations to signal\n their commitment to index a subgraph, and collect fees for indexing and querying services." - }, - "fullyImplemented": false, - "id": 11280, - "linearizedBaseContracts": [ - 11280, - 1381, - 1318 - ], - "name": "ISubgraphService", - "nameLocation": "978:16:53", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "ISubgraphService.Indexer", - "documentation": { - "id": 11071, - "nodeType": "StructuredDocumentation", - "src": "1021:45:53", - "text": "@notice Contains details for each indexer" - }, - "id": 11078, - "members": [ - { - "constant": false, - "id": 11073, - "mutability": "mutable", - "name": "registeredAt", - "nameLocation": "1153:12:53", - "nodeType": "VariableDeclaration", - "scope": 11078, - "src": "1145:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11072, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1145:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11075, - "mutability": "mutable", - "name": "url", - "nameLocation": "1249:3:53", - "nodeType": "VariableDeclaration", - "scope": 11078, - "src": "1242:10:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11074, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1242:6:53", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11077, - "mutability": "mutable", - "name": "geoHash", - "nameLocation": "1332:7:53", - "nodeType": "VariableDeclaration", - "scope": 11078, - "src": "1325:14:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11076, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1325:6:53", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "Indexer", - "nameLocation": "1078:7:53", - "nodeType": "StructDefinition", - "scope": 11280, - "src": "1071:275:53", - "visibility": "public" - }, - { - "anonymous": false, - "documentation": { - "id": 11079, - "nodeType": "StructuredDocumentation", - "src": "1352:292:53", - "text": " @notice Emitted when a subgraph service collects query fees from Graph Payments\n @param serviceProvider The address of the service provider\n @param tokensCollected The amount of tokens collected\n @param tokensCurators The amount of tokens curators receive" - }, - "eventSelector": "60a56d4d503735b4848feb6f491f14d7415262346b820d3b5a3d2733201bda36", - "id": 11087, - "name": "QueryFeesCollected", - "nameLocation": "1655:18:53", - "nodeType": "EventDefinition", - "parameters": { - "id": 11086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11081, - "indexed": true, - "mutability": "mutable", - "name": "serviceProvider", - "nameLocation": "1690:15:53", - "nodeType": "VariableDeclaration", - "scope": 11087, - "src": "1674:31:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11080, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11083, - "indexed": false, - "mutability": "mutable", - "name": "tokensCollected", - "nameLocation": "1715:15:53", - "nodeType": "VariableDeclaration", - "scope": 11087, - "src": "1707:23:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11082, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1707:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11085, - "indexed": false, - "mutability": "mutable", - "name": "tokensCurators", - "nameLocation": "1740:14:53", - "nodeType": "VariableDeclaration", - "scope": 11087, - "src": "1732:22:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11084, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1732:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1673:82:53" - }, - "src": "1649:107:53" - }, - { - "anonymous": false, - "documentation": { - "id": 11088, - "nodeType": "StructuredDocumentation", - "src": "1762:115:53", - "text": " @notice Emitted when the stake to fees ratio is set.\n @param ratio The stake to fees ratio" - }, - "eventSelector": "2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23", - "id": 11092, - "name": "StakeToFeesRatioSet", - "nameLocation": "1888:19:53", - "nodeType": "EventDefinition", - "parameters": { - "id": 11091, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11090, - "indexed": false, - "mutability": "mutable", - "name": "ratio", - "nameLocation": "1916:5:53", - "nodeType": "VariableDeclaration", - "scope": 11092, - "src": "1908:13:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11089, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1908:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1907:15:53" - }, - "src": "1882:41:53" - }, - { - "anonymous": false, - "documentation": { - "id": 11093, - "nodeType": "StructuredDocumentation", - "src": "1929:103:53", - "text": " @notice Emitted when curator cuts are set\n @param curationCut The curation cut" - }, - "eventSelector": "6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9", - "id": 11097, - "name": "CurationCutSet", - "nameLocation": "2043:14:53", - "nodeType": "EventDefinition", - "parameters": { - "id": 11096, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11095, - "indexed": false, - "mutability": "mutable", - "name": "curationCut", - "nameLocation": "2066:11:53", - "nodeType": "VariableDeclaration", - "scope": 11097, - "src": "2058:19:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11094, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2058:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2057:21:53" - }, - "src": "2037:42:53" - }, - { - "documentation": { - "id": 11098, - "nodeType": "StructuredDocumentation", - "src": "2085:138:53", - "text": " Thrown when trying to set a curation cut that is not a valid PPM value\n @param curationCut The curation cut value" - }, - "errorSelector": "1c9c717b", - "id": 11102, - "name": "SubgraphServiceInvalidCurationCut", - "nameLocation": "2234:33:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11100, - "mutability": "mutable", - "name": "curationCut", - "nameLocation": "2276:11:53", - "nodeType": "VariableDeclaration", - "scope": 11102, - "src": "2268:19:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11099, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2268:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2267:21:53" - }, - "src": "2228:61:53" - }, - { - "documentation": { - "id": 11103, - "nodeType": "StructuredDocumentation", - "src": "2295:85:53", - "text": " @notice Thrown when an indexer tries to register with an empty URL" - }, - "errorSelector": "f0708720", - "id": 11105, - "name": "SubgraphServiceEmptyUrl", - "nameLocation": "2391:23:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11104, - "nodeType": "ParameterList", - "parameters": [], - "src": "2414:2:53" - }, - "src": "2385:32:53" - }, - { - "documentation": { - "id": 11106, - "nodeType": "StructuredDocumentation", - "src": "2423:89:53", - "text": " @notice Thrown when an indexer tries to register with an empty geohash" - }, - "errorSelector": "798ef654", - "id": 11108, - "name": "SubgraphServiceEmptyGeohash", - "nameLocation": "2523:27:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11107, - "nodeType": "ParameterList", - "parameters": [], - "src": "2550:2:53" - }, - "src": "2517:36:53" - }, - { - "documentation": { - "id": 11109, - "nodeType": "StructuredDocumentation", - "src": "2559:99:53", - "text": " @notice Thrown when an indexer tries to register but they are already registered" - }, - "errorSelector": "341a19b4", - "id": 11111, - "name": "SubgraphServiceIndexerAlreadyRegistered", - "nameLocation": "2669:39:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11110, - "nodeType": "ParameterList", - "parameters": [], - "src": "2708:2:53" - }, - "src": "2663:48:53" - }, - { - "documentation": { - "id": 11112, - "nodeType": "StructuredDocumentation", - "src": "2717:179:53", - "text": " @notice Thrown when an indexer tries to perform an operation but they are not registered\n @param indexer The address of the indexer that is not registered" - }, - "errorSelector": "ee271899", - "id": 11116, - "name": "SubgraphServiceIndexerNotRegistered", - "nameLocation": "2907:35:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11114, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "2951:7:53", - "nodeType": "VariableDeclaration", - "scope": 11116, - "src": "2943:15:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2943:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2942:17:53" - }, - "src": "2901:59:53" - }, - { - "documentation": { - "id": 11117, - "nodeType": "StructuredDocumentation", - "src": "2966:168:53", - "text": " @notice Thrown when an indexer tries to collect fees for an unsupported payment type\n @param paymentType The payment type that is not supported" - }, - "errorSelector": "47031cf0", - "id": 11122, - "name": "SubgraphServiceInvalidPaymentType", - "nameLocation": "3145:33:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11120, - "mutability": "mutable", - "name": "paymentType", - "nameLocation": "3207:11:53", - "nodeType": "VariableDeclaration", - "scope": 11122, - "src": "3179:39:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - }, - "typeName": { - "id": 11119, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11118, - "name": "IGraphPayments.PaymentTypes", - "nameLocations": [ - "3179:14:53", - "3194:12:53" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2166, - "src": "3179:27:53" - }, - "referencedDeclaration": 2166, - "src": "3179:27:53", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - }, - "visibility": "internal" - } - ], - "src": "3178:41:53" - }, - "src": "3139:81:53" - }, - { - "documentation": { - "id": 11123, - "nodeType": "StructuredDocumentation", - "src": "3226:370:53", - "text": " @notice Thrown when the contract GRT balance is inconsistent with the payment amount collected\n from Graph Payments\n @param balanceBefore The contract GRT balance before the collection\n @param balanceAfter The contract GRT balance after the collection\n @param tokensDataService The amount of tokens sent to the subgraph service" - }, - "errorSelector": "361af23e", - "id": 11131, - "name": "SubgraphServiceInconsistentCollection", - "nameLocation": "3607:37:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11125, - "mutability": "mutable", - "name": "balanceBefore", - "nameLocation": "3653:13:53", - "nodeType": "VariableDeclaration", - "scope": 11131, - "src": "3645:21:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11124, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3645:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11127, - "mutability": "mutable", - "name": "balanceAfter", - "nameLocation": "3676:12:53", - "nodeType": "VariableDeclaration", - "scope": 11131, - "src": "3668:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11126, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3668:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11129, - "mutability": "mutable", - "name": "tokensDataService", - "nameLocation": "3698:17:53", - "nodeType": "VariableDeclaration", - "scope": 11131, - "src": "3690:25:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11128, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3690:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3644:72:53" - }, - "src": "3601:116:53" - }, - { - "documentation": { - "id": 11132, - "nodeType": "StructuredDocumentation", - "src": "3723:249:53", - "text": " @notice @notice Thrown when the service provider in the RAV does not match the expected indexer.\n @param providedIndexer The address of the provided indexer.\n @param expectedIndexer The address of the expected indexer." - }, - "errorSelector": "1a071d07", - "id": 11138, - "name": "SubgraphServiceIndexerMismatch", - "nameLocation": "3983:30:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11134, - "mutability": "mutable", - "name": "providedIndexer", - "nameLocation": "4022:15:53", - "nodeType": "VariableDeclaration", - "scope": 11138, - "src": "4014:23:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11133, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4014:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11136, - "mutability": "mutable", - "name": "expectedIndexer", - "nameLocation": "4047:15:53", - "nodeType": "VariableDeclaration", - "scope": 11138, - "src": "4039:23:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4039:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4013:50:53" - }, - "src": "3977:87:53" - }, - { - "documentation": { - "id": 11139, - "nodeType": "StructuredDocumentation", - "src": "4070:223:53", - "text": " @notice Thrown when the indexer in the allocation state does not match the expected indexer.\n @param indexer The address of the expected indexer.\n @param allocationId The id of the allocation." - }, - "errorSelector": "c0bbff13", - "id": 11145, - "name": "SubgraphServiceAllocationNotAuthorized", - "nameLocation": "4304:38:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11141, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "4351:7:53", - "nodeType": "VariableDeclaration", - "scope": 11145, - "src": "4343:15:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4343:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11143, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "4368:12:53", - "nodeType": "VariableDeclaration", - "scope": 11145, - "src": "4360:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4360:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4342:39:53" - }, - "src": "4298:84:53" - }, - { - "documentation": { - "id": 11146, - "nodeType": "StructuredDocumentation", - "src": "4388:245:53", - "text": " @notice Thrown when collecting a RAV where the RAV indexer is not the same as the allocation indexer\n @param ravIndexer The address of the RAV indexer\n @param allocationIndexer The address of the allocation indexer" - }, - "errorSelector": "8a11f7ee", - "id": 11152, - "name": "SubgraphServiceInvalidRAV", - "nameLocation": "4644:25:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11148, - "mutability": "mutable", - "name": "ravIndexer", - "nameLocation": "4678:10:53", - "nodeType": "VariableDeclaration", - "scope": 11152, - "src": "4670:18:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11147, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4670:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11150, - "mutability": "mutable", - "name": "allocationIndexer", - "nameLocation": "4698:17:53", - "nodeType": "VariableDeclaration", - "scope": 11152, - "src": "4690:25:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4690:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4669:47:53" - }, - "src": "4638:79:53" - }, - { - "documentation": { - "id": 11153, - "nodeType": "StructuredDocumentation", - "src": "4723:182:53", - "text": " @notice Thrown when trying to force close an allocation that is not stale and the indexer is not over-allocated\n @param allocationId The id of the allocation" - }, - "errorSelector": "068ef6a0", - "id": 11157, - "name": "SubgraphServiceCannotForceCloseAllocation", - "nameLocation": "4916:41:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11155, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "4966:12:53", - "nodeType": "VariableDeclaration", - "scope": 11157, - "src": "4958:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11154, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4958:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4957:22:53" - }, - "src": "4910:70:53" - }, - { - "documentation": { - "id": 11158, - "nodeType": "StructuredDocumentation", - "src": "4986:137:53", - "text": " @notice Thrown when trying to force close an altruistic allocation\n @param allocationId The id of the allocation" - }, - "errorSelector": "be3d9ae8", - "id": 11162, - "name": "SubgraphServiceAllocationIsAltruistic", - "nameLocation": "5134:37:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11161, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11160, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "5180:12:53", - "nodeType": "VariableDeclaration", - "scope": 11162, - "src": "5172:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11159, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5172:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5171:22:53" - }, - "src": "5128:66:53" - }, - { - "documentation": { - "id": 11163, - "nodeType": "StructuredDocumentation", - "src": "5200:80:53", - "text": " @notice Thrown when trying to set stake to fees ratio to zero" - }, - "errorSelector": "bc71a043", - "id": 11165, - "name": "SubgraphServiceInvalidZeroStakeToFeesRatio", - "nameLocation": "5291:42:53", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11164, - "nodeType": "ParameterList", - "parameters": [], - "src": "5333:2:53" - }, - "src": "5285:51:53" - }, - { - "documentation": { - "id": 11166, - "nodeType": "StructuredDocumentation", - "src": "5342:676:53", - "text": " @notice Force close an allocation\n @dev This function can be permissionlessly called when the allocation is stale or\n if the indexer is over-allocated. This ensures that rewards for other allocations are\n not diluted by an inactive allocation, and that over-allocated indexers stop accumulating\n rewards with tokens they no longer have allocated.\n Requirements:\n - Allocation must exist and be open\n - Allocation must be stale or indexer must be over-allocated\n - Allocation cannot be altruistic\n Emits a {AllocationClosed} event.\n @param allocationId The id of the allocation" - }, - "functionSelector": "a827a90c", - "id": 11171, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "forceCloseAllocation", - "nameLocation": "6032:20:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11169, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11168, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "6061:12:53", - "nodeType": "VariableDeclaration", - "scope": 11171, - "src": "6053:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6053:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6052:22:53" - }, - "returnParameters": { - "id": 11170, - "nodeType": "ParameterList", - "parameters": [], - "src": "6083:0:53" - }, - "scope": 11280, - "src": "6023:61:53", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11172, - "nodeType": "StructuredDocumentation", - "src": "6090:681:53", - "text": " @notice Change the amount of tokens in an allocation\n @dev Requirements:\n - The indexer must be registered\n - The provision must be valid according to the subgraph service rules\n - `tokens` must be different from the current allocation size\n - The indexer must have enough available tokens to allocate if they are upsizing the allocation\n Emits a {AllocationResized} event.\n See {AllocationManager-_resizeAllocation} for more details.\n @param indexer The address of the indexer\n @param allocationId The id of the allocation\n @param tokens The new amount of tokens in the allocation" - }, - "functionSelector": "81e777a7", - "id": 11181, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "resizeAllocation", - "nameLocation": "6785:16:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11174, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "6810:7:53", - "nodeType": "VariableDeclaration", - "scope": 11181, - "src": "6802:15:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11173, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6802:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11176, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "6827:12:53", - "nodeType": "VariableDeclaration", - "scope": 11181, - "src": "6819:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11175, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6819:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11178, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "6849:6:53", - "nodeType": "VariableDeclaration", - "scope": 11181, - "src": "6841:14:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6841:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6801:55:53" - }, - "returnParameters": { - "id": 11180, - "nodeType": "ParameterList", - "parameters": [], - "src": "6865:0:53" - }, - "scope": 11280, - "src": "6776:90:53", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11182, - "nodeType": "StructuredDocumentation", - "src": "6872:398:53", - "text": " @notice Imports a legacy allocation id into the subgraph service\n This is a governor only action that is required to prevent indexers from re-using allocation ids from the\n legacy staking contract.\n @param indexer The address of the indexer\n @param allocationId The id of the allocation\n @param subgraphDeploymentId The id of the subgraph deployment" - }, - "functionSelector": "7dfe6d28", - "id": 11191, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "migrateLegacyAllocation", - "nameLocation": "7284:23:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11189, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11184, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "7316:7:53", - "nodeType": "VariableDeclaration", - "scope": 11191, - "src": "7308:15:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11183, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7308:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11186, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "7333:12:53", - "nodeType": "VariableDeclaration", - "scope": 11191, - "src": "7325:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11185, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7325:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11188, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "7355:20:53", - "nodeType": "VariableDeclaration", - "scope": 11191, - "src": "7347:28:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11187, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7347:7:53", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "7307:69:53" - }, - "returnParameters": { - "id": 11190, - "nodeType": "ParameterList", - "parameters": [], - "src": "7385:0:53" - }, - "scope": 11280, - "src": "7275:111:53", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11192, - "nodeType": "StructuredDocumentation", - "src": "7392:209:53", - "text": " @notice Sets a pause guardian\n @param pauseGuardian The address of the pause guardian\n @param allowed True if the pause guardian is allowed to pause the contract, false otherwise" - }, - "functionSelector": "35577962", - "id": 11199, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setPauseGuardian", - "nameLocation": "7615:16:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11197, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11194, - "mutability": "mutable", - "name": "pauseGuardian", - "nameLocation": "7640:13:53", - "nodeType": "VariableDeclaration", - "scope": 11199, - "src": "7632:21:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11193, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7632:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11196, - "mutability": "mutable", - "name": "allowed", - "nameLocation": "7660:7:53", - "nodeType": "VariableDeclaration", - "scope": 11199, - "src": "7655:12:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11195, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7655:4:53", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "7631:37:53" - }, - "returnParameters": { - "id": 11198, - "nodeType": "ParameterList", - "parameters": [], - "src": "7677:0:53" - }, - "scope": 11280, - "src": "7606:72:53", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11200, - "nodeType": "StructuredDocumentation", - "src": "7684:216:53", - "text": " @notice Sets the minimum amount of provisioned tokens required to create an allocation\n @param minimumProvisionTokens The minimum amount of provisioned tokens required to create an allocation" - }, - "functionSelector": "832bc923", - "id": 11205, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setMinimumProvisionTokens", - "nameLocation": "7914:25:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11203, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11202, - "mutability": "mutable", - "name": "minimumProvisionTokens", - "nameLocation": "7948:22:53", - "nodeType": "VariableDeclaration", - "scope": 11205, - "src": "7940:30:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11201, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7940:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7939:32:53" - }, - "returnParameters": { - "id": 11204, - "nodeType": "ParameterList", - "parameters": [], - "src": "7980:0:53" - }, - "scope": 11280, - "src": "7905:76:53", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11206, - "nodeType": "StructuredDocumentation", - "src": "7987:103:53", - "text": " @notice Sets the delegation ratio\n @param delegationRatio The delegation ratio" - }, - "functionSelector": "1dd42f60", - "id": 11211, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setDelegationRatio", - "nameLocation": "8104:18:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11208, - "mutability": "mutable", - "name": "delegationRatio", - "nameLocation": "8130:15:53", - "nodeType": "VariableDeclaration", - "scope": 11211, - "src": "8123:22:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 11207, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "8123:6:53", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "8122:24:53" - }, - "returnParameters": { - "id": 11210, - "nodeType": "ParameterList", - "parameters": [], - "src": "8155:0:53" - }, - "scope": 11280, - "src": "8095:61:53", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11212, - "nodeType": "StructuredDocumentation", - "src": "8162:110:53", - "text": " @notice Sets the stake to fees ratio\n @param stakeToFeesRatio The stake to fees ratio" - }, - "functionSelector": "e6f50054", - "id": 11217, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setStakeToFeesRatio", - "nameLocation": "8286:19:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11214, - "mutability": "mutable", - "name": "stakeToFeesRatio", - "nameLocation": "8314:16:53", - "nodeType": "VariableDeclaration", - "scope": 11217, - "src": "8306:24:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11213, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8306:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8305:26:53" - }, - "returnParameters": { - "id": 11216, - "nodeType": "ParameterList", - "parameters": [], - "src": "8340:0:53" - }, - "scope": 11280, - "src": "8277:64:53", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11218, - "nodeType": "StructuredDocumentation", - "src": "8347:190:53", - "text": " @notice Sets the max POI staleness\n See {AllocationManagerV1Storage-maxPOIStaleness} for more details.\n @param maxPOIStaleness The max POI staleness in seconds" - }, - "functionSelector": "7aa31bce", - "id": 11223, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setMaxPOIStaleness", - "nameLocation": "8551:18:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11221, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11220, - "mutability": "mutable", - "name": "maxPOIStaleness", - "nameLocation": "8578:15:53", - "nodeType": "VariableDeclaration", - "scope": 11223, - "src": "8570:23:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11219, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8570:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8569:25:53" - }, - "returnParameters": { - "id": 11222, - "nodeType": "ParameterList", - "parameters": [], - "src": "8603:0:53" - }, - "scope": 11280, - "src": "8542:62:53", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11224, - "nodeType": "StructuredDocumentation", - "src": "8610:177:53", - "text": " @notice Sets the curators payment cut for query fees\n @dev Emits a {CuratorCutSet} event\n @param curationCut The curation cut for the payment type" - }, - "functionSelector": "7e89bac3", - "id": 11229, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setCurationCut", - "nameLocation": "8801:14:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11226, - "mutability": "mutable", - "name": "curationCut", - "nameLocation": "8824:11:53", - "nodeType": "VariableDeclaration", - "scope": 11229, - "src": "8816:19:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8816:7:53", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8815:21:53" - }, - "returnParameters": { - "id": 11228, - "nodeType": "ParameterList", - "parameters": [], - "src": "8845:0:53" - }, - "scope": 11280, - "src": "8792:54:53", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11230, - "nodeType": "StructuredDocumentation", - "src": "8852:231:53", - "text": " @notice Sets the rewards destination for an indexer to receive indexing rewards\n @dev Emits a {RewardsDestinationSet} event\n @param rewardsDestination The address where indexing rewards should be sent" - }, - "functionSelector": "772495c3", - "id": 11235, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setRewardsDestination", - "nameLocation": "9097:21:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11232, - "mutability": "mutable", - "name": "rewardsDestination", - "nameLocation": "9127:18:53", - "nodeType": "VariableDeclaration", - "scope": 11235, - "src": "9119:26:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11231, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9119:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "9118:28:53" - }, - "returnParameters": { - "id": 11234, - "nodeType": "ParameterList", - "parameters": [], - "src": "9155:0:53" - }, - "scope": 11280, - "src": "9088:68:53", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11236, - "nodeType": "StructuredDocumentation", - "src": "9162:168:53", - "text": " @notice Gets the details of an allocation\n For legacy allocations use {getLegacyAllocation}\n @param allocationId The id of the allocation" - }, - "functionSelector": "0e022923", - "id": 11244, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getAllocation", - "nameLocation": "9344:13:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11238, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "9366:12:53", - "nodeType": "VariableDeclaration", - "scope": 11244, - "src": "9358:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11237, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9358:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "9357:22:53" - }, - "returnParameters": { - "id": 11243, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11242, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11244, - "src": "9403:23:53", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11241, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11240, - "name": "Allocation.State", - "nameLocations": [ - "9403:10:53", - "9414:5:53" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "9403:16:53" - }, - "referencedDeclaration": 11307, - "src": "9403:16:53", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "9402:25:53" - }, - "scope": 11280, - "src": "9335:93:53", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11245, - "nodeType": "StructuredDocumentation", - "src": "9434:172:53", - "text": " @notice Gets the details of a legacy allocation\n For non-legacy allocations use {getAllocation}\n @param allocationId The id of the allocation" - }, - "functionSelector": "6d9a3951", - "id": 11253, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getLegacyAllocation", - "nameLocation": "9620:19:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11247, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "9648:12:53", - "nodeType": "VariableDeclaration", - "scope": 11253, - "src": "9640:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11246, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9640:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "9639:22:53" - }, - "returnParameters": { - "id": 11252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11251, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11253, - "src": "9685:29:53", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_memory_ptr", - "typeString": "struct LegacyAllocation.State" - }, - "typeName": { - "id": 11250, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11249, - "name": "LegacyAllocation.State", - "nameLocations": [ - "9685:16:53", - "9702:5:53" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "9685:22:53" - }, - "referencedDeclaration": 11933, - "src": "9685:22:53", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "9684:31:53" - }, - "scope": 11280, - "src": "9611:105:53", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11254, - "nodeType": "StructuredDocumentation", - "src": "9722:175:53", - "text": " @notice Encodes the allocation proof for EIP712 signing\n @param indexer The address of the indexer\n @param allocationId The id of the allocation" - }, - "functionSelector": "ce56c98b", - "id": 11263, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "encodeAllocationProof", - "nameLocation": "9911:21:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11259, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11256, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "9941:7:53", - "nodeType": "VariableDeclaration", - "scope": 11263, - "src": "9933:15:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11255, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9933:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11258, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "9958:12:53", - "nodeType": "VariableDeclaration", - "scope": 11263, - "src": "9950:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11257, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9950:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "9932:39:53" - }, - "returnParameters": { - "id": 11262, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11261, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11263, - "src": "9995:7:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11260, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9995:7:53", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "9994:9:53" - }, - "scope": 11280, - "src": "9902:102:53", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11264, - "nodeType": "StructuredDocumentation", - "src": "10010:175:53", - "text": " @notice Checks if an allocation is stale\n @param allocationId The id of the allocation\n @return True if the allocation is stale, false otherwise" - }, - "functionSelector": "3f0ed79d", - "id": 11271, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isStaleAllocation", - "nameLocation": "10199:17:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11267, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11266, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "10225:12:53", - "nodeType": "VariableDeclaration", - "scope": 11271, - "src": "10217:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11265, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10217:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "10216:22:53" - }, - "returnParameters": { - "id": 11270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11269, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11271, - "src": "10262:4:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11268, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10262:4:53", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "10261:6:53" - }, - "scope": 11280, - "src": "10190:78:53", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 11272, - "nodeType": "StructuredDocumentation", - "src": "10274:187:53", - "text": " @notice Checks if an indexer is over-allocated\n @param allocationId The id of the allocation\n @return True if the indexer is over-allocated, false otherwise" - }, - "functionSelector": "ba38f67d", - "id": 11279, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isOverAllocated", - "nameLocation": "10475:15:53", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11275, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11274, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "10499:12:53", - "nodeType": "VariableDeclaration", - "scope": 11279, - "src": "10491:20:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11273, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10491:7:53", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "10490:22:53" - }, - "returnParameters": { - "id": 11278, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11277, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11279, - "src": "10536:4:53", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11276, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10536:4:53", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "10535:6:53" - }, - "scope": 11280, - "src": "10466:76:53", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - } - ], - "scope": 11281, - "src": "968:9576:53", - "usedErrors": [ - 1371, - 1374, - 11102, - 11105, - 11108, - 11111, - 11116, - 11122, - 11131, - 11138, - 11145, - 11152, - 11157, - 11162, - 11165 - ], - "usedEvents": [ - 1198, - 1203, - 1210, - 1217, - 1227, - 1234, - 1346, - 1357, - 1366, - 11087, - 11092, - 11097 - ] - } - ], - "src": "45:10500:53" - }, - "id": 53 - }, - "contracts/libraries/Allocation.sol": { - "ast": { - "absolutePath": "contracts/libraries/Allocation.sol", - "exportedSymbols": { - "Allocation": [ - 11674 - ], - "Math": [ - 7858 - ] - }, - "id": 11675, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11282, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:54" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", - "file": "@openzeppelin/contracts/utils/math/Math.sol", - "id": 11284, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 11675, - "sourceUnit": 7859, - "src": "70:67:54", - "symbolAliases": [ - { - "foreign": { - "id": 11283, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7858, - "src": "79:4:54", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Allocation", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 11285, - "nodeType": "StructuredDocumentation", - "src": "139:80:54", - "text": " @title Allocation library\n @notice A library to handle Allocations." - }, - "fullyImplemented": true, - "id": 11674, - "linearizedBaseContracts": [ - 11674 - ], - "name": "Allocation", - "nameLocation": "228:10:54", - "nodeType": "ContractDefinition", - "nodes": [ - { - "global": false, - "id": 11289, - "libraryName": { - "id": 11286, - "name": "Allocation", - "nameLocations": [ - "251:10:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11674, - "src": "251:10:54" - }, - "nodeType": "UsingForDirective", - "src": "245:27:54", - "typeName": { - "id": 11288, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11287, - "name": "State", - "nameLocations": [ - "266:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "266:5:54" - }, - "referencedDeclaration": 11307, - "src": "266:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - }, - { - "canonicalName": "Allocation.State", - "documentation": { - "id": 11290, - "nodeType": "StructuredDocumentation", - "src": "278:45:54", - "text": " @notice Allocation details" - }, - "id": 11307, - "members": [ - { - "constant": false, - "id": 11292, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "403:7:54", - "nodeType": "VariableDeclaration", - "scope": 11307, - "src": "395:15:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "395:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11294, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "484:20:54", - "nodeType": "VariableDeclaration", - "scope": 11307, - "src": "476:28:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11293, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "476:7:54", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11296, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "560:6:54", - "nodeType": "VariableDeclaration", - "scope": 11307, - "src": "552:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11295, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "552:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11298, - "mutability": "mutable", - "name": "createdAt", - "nameLocation": "637:9:54", - "nodeType": "VariableDeclaration", - "scope": 11307, - "src": "629:17:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11297, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "629:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11300, - "mutability": "mutable", - "name": "closedAt", - "nameLocation": "716:8:54", - "nodeType": "VariableDeclaration", - "scope": 11307, - "src": "708:16:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11299, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "708:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11302, - "mutability": "mutable", - "name": "lastPOIPresentedAt", - "nameLocation": "795:18:54", - "nodeType": "VariableDeclaration", - "scope": 11307, - "src": "787:26:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11301, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "787:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11304, - "mutability": "mutable", - "name": "accRewardsPerAllocatedToken", - "nameLocation": "882:27:54", - "nodeType": "VariableDeclaration", - "scope": 11307, - "src": "874:35:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "874:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11306, - "mutability": "mutable", - "name": "accRewardsPending", - "nameLocation": "1011:17:54", - "nodeType": "VariableDeclaration", - "scope": 11307, - "src": "1003:25:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11305, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1003:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "name": "State", - "nameLocation": "335:5:54", - "nodeType": "StructDefinition", - "scope": 11674, - "src": "328:707:54", - "visibility": "public" - }, - { - "documentation": { - "id": 11308, - "nodeType": "StructuredDocumentation", - "src": "1041:138:54", - "text": " @notice Thrown when attempting to create an allocation with an existing id\n @param allocationId The allocation id" - }, - "errorSelector": "0bc4def5", - "id": 11312, - "name": "AllocationAlreadyExists", - "nameLocation": "1190:23:54", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11311, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11310, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "1222:12:54", - "nodeType": "VariableDeclaration", - "scope": 11312, - "src": "1214:20:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1214:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1213:22:54" - }, - "src": "1184:52:54" - }, - { - "documentation": { - "id": 11313, - "nodeType": "StructuredDocumentation", - "src": "1242:143:54", - "text": " @notice Thrown when trying to perform an operation on a non-existent allocation\n @param allocationId The allocation id" - }, - "errorSelector": "42daadaf", - "id": 11317, - "name": "AllocationDoesNotExist", - "nameLocation": "1396:22:54", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11315, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "1427:12:54", - "nodeType": "VariableDeclaration", - "scope": 11317, - "src": "1419:20:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11314, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1419:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1418:22:54" - }, - "src": "1390:51:54" - }, - { - "documentation": { - "id": 11318, - "nodeType": "StructuredDocumentation", - "src": "1447:205:54", - "text": " @notice Thrown when trying to perform an operation on a closed allocation\n @param allocationId The allocation id\n @param closedAt The timestamp when the allocation was closed" - }, - "errorSelector": "61b66e0d", - "id": 11324, - "name": "AllocationClosed", - "nameLocation": "1663:16:54", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11323, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11320, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "1688:12:54", - "nodeType": "VariableDeclaration", - "scope": 11324, - "src": "1680:20:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11319, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1680:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11322, - "mutability": "mutable", - "name": "closedAt", - "nameLocation": "1710:8:54", - "nodeType": "VariableDeclaration", - "scope": 11324, - "src": "1702:16:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11321, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1702:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1679:40:54" - }, - "src": "1657:63:54" - }, - { - "body": { - "id": 11381, - "nodeType": "Block", - "src": "2491:535:54", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 11352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2509:28:54", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "baseExpression": { - "id": 11347, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11330, - "src": "2510:4:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 11349, - "indexExpression": { - "id": 11348, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11334, - "src": "2515:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2510:18:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage", - "typeString": "struct Allocation.State storage ref" - } - }, - "id": 11350, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2529:6:54", - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 11602, - "src": "2510:25:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 11351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2510:27:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 11354, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11334, - "src": "2563:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11353, - "name": "AllocationAlreadyExists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11312, - "src": "2539:23:54", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 11355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2539:37:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 11346, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2501:7:54", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 11356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2501:76:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11357, - "nodeType": "ExpressionStatement", - "src": "2501:76:54" - }, - { - "assignments": [ - 11360 - ], - "declarations": [ - { - "constant": false, - "id": 11360, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "2601:10:54", - "nodeType": "VariableDeclaration", - "scope": 11381, - "src": "2588:23:54", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11359, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11358, - "name": "State", - "nameLocations": [ - "2588:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "2588:5:54" - }, - "referencedDeclaration": 11307, - "src": "2588:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 11372, - "initialValue": { - "arguments": [ - { - "id": 11362, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11332, - "src": "2643:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 11363, - "name": "subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11336, - "src": "2686:20:54", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 11364, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11338, - "src": "2728:6:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 11365, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "2759:5:54", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 11366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2765:9:54", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "2759:15:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "30", - "id": 11367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2798:1:54", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "hexValue": "30", - "id": 11368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2833:1:54", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "id": 11369, - "name": "accRewardsPerAllocatedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11340, - "src": "2877:27:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "30", - "id": 11370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2937:1:54", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 11361, - "name": "State", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11307, - "src": "2614:5:54", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_State_$11307_storage_ptr_$", - "typeString": "type(struct Allocation.State storage pointer)" - } - }, - "id": 11371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2634:7:54", - "2664:20:54", - "2720:6:54", - "2748:9:54", - "2788:8:54", - "2813:18:54", - "2848:27:54", - "2918:17:54" - ], - "names": [ - "indexer", - "subgraphDeploymentId", - "tokens", - "createdAt", - "closedAt", - "lastPOIPresentedAt", - "accRewardsPerAllocatedToken", - "accRewardsPending" - ], - "nodeType": "FunctionCall", - "src": "2614:335:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2588:361:54" - }, - { - "expression": { - "id": 11377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 11373, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11330, - "src": "2960:4:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 11375, - "indexExpression": { - "id": 11374, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11334, - "src": "2965:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2960:18:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage", - "typeString": "struct Allocation.State storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 11376, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11360, - "src": "2981:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "src": "2960:31:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage", - "typeString": "struct Allocation.State storage ref" - } - }, - "id": 11378, - "nodeType": "ExpressionStatement", - "src": "2960:31:54" - }, - { - "expression": { - "id": 11379, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11360, - "src": "3009:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "functionReturnParameters": 11345, - "id": 11380, - "nodeType": "Return", - "src": "3002:17:54" - } - ] - }, - "documentation": { - "id": 11325, - "nodeType": "StructuredDocumentation", - "src": "1726:496:54", - "text": " @notice Create a new allocation\n @dev Requirements:\n - The allocation must not exist\n @param self The allocation list mapping\n @param indexer The indexer that owns the allocation\n @param allocationId The allocation id\n @param subgraphDeploymentId The subgraph deployment id the allocation is for\n @param tokens The number of tokens allocated\n @param accRewardsPerAllocatedToken The initial accumulated rewards per allocated token" - }, - "id": 11382, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "create", - "nameLocation": "2236:6:54", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11330, - "mutability": "mutable", - "name": "self", - "nameLocation": "2286:4:54", - "nodeType": "VariableDeclaration", - "scope": 11382, - "src": "2252:38:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "typeName": { - "id": 11329, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 11326, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2260:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2252:25:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 11328, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11327, - "name": "State", - "nameLocations": [ - "2271:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "2271:5:54" - }, - "referencedDeclaration": 11307, - "src": "2271:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11332, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "2308:7:54", - "nodeType": "VariableDeclaration", - "scope": 11382, - "src": "2300:15:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11331, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2300:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11334, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "2333:12:54", - "nodeType": "VariableDeclaration", - "scope": 11382, - "src": "2325:20:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2325:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11336, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "2363:20:54", - "nodeType": "VariableDeclaration", - "scope": 11382, - "src": "2355:28:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11335, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2355:7:54", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11338, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2401:6:54", - "nodeType": "VariableDeclaration", - "scope": 11382, - "src": "2393:14:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11337, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2393:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11340, - "mutability": "mutable", - "name": "accRewardsPerAllocatedToken", - "nameLocation": "2425:27:54", - "nodeType": "VariableDeclaration", - "scope": 11382, - "src": "2417:35:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2417:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2242:216:54" - }, - "returnParameters": { - "id": 11345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11344, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11382, - "src": "2477:12:54", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11343, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11342, - "name": "State", - "nameLocations": [ - "2477:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "2477:5:54" - }, - "referencedDeclaration": 11307, - "src": "2477:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "2476:14:54" - }, - "scope": 11674, - "src": "2227:799:54", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11419, - "nodeType": "Block", - "src": "3398:216:54", - "statements": [ - { - "assignments": [ - 11395 - ], - "declarations": [ - { - "constant": false, - "id": 11395, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "3422:10:54", - "nodeType": "VariableDeclaration", - "scope": 11419, - "src": "3408:24:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11394, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11393, - "name": "State", - "nameLocations": [ - "3408:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "3408:5:54" - }, - "referencedDeclaration": 11307, - "src": "3408:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 11400, - "initialValue": { - "arguments": [ - { - "id": 11397, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11388, - "src": "3440:4:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - { - "id": 11398, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11390, - "src": "3446:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11396, - "name": "_get", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11673, - "src": "3435:4:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_storage_ptr_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State storage pointer)" - } - }, - "id": 11399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3435:24:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3408:51:54" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 11402, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11395, - "src": "3477:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11403, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3488:6:54", - "memberName": "isOpen", - "nodeType": "MemberAccess", - "referencedDeclaration": 11621, - "src": "3477:17:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 11404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3477:19:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 11406, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11390, - "src": "3515:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 11407, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11395, - "src": "3529:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11408, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3540:8:54", - "memberName": "closedAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11300, - "src": "3529:19:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11405, - "name": "AllocationClosed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11324, - "src": "3498:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", - "typeString": "function (address,uint256) pure returns (error)" - } - }, - "id": 11409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3498:51:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 11401, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3469:7:54", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 11410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3469:81:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11411, - "nodeType": "ExpressionStatement", - "src": "3469:81:54" - }, - { - "expression": { - "id": 11417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 11412, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11395, - "src": "3560:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11414, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "3571:18:54", - "memberName": "lastPOIPresentedAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11302, - "src": "3560:29:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 11415, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "3592:5:54", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 11416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3598:9:54", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "3592:15:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3560:47:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11418, - "nodeType": "ExpressionStatement", - "src": "3560:47:54" - } - ] - }, - "documentation": { - "id": 11383, - "nodeType": "StructuredDocumentation", - "src": "3032:270:54", - "text": " @notice Present a POI for an allocation\n @dev It only updates the last POI presented timestamp.\n Requirements:\n - The allocation must be open\n @param self The allocation list mapping\n @param allocationId The allocation id" - }, - "id": 11420, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "presentPOI", - "nameLocation": "3316:10:54", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11391, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11388, - "mutability": "mutable", - "name": "self", - "nameLocation": "3361:4:54", - "nodeType": "VariableDeclaration", - "scope": 11420, - "src": "3327:38:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "typeName": { - "id": 11387, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 11384, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3335:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3327:25:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 11386, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11385, - "name": "State", - "nameLocations": [ - "3346:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "3346:5:54" - }, - "referencedDeclaration": 11307, - "src": "3346:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11390, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "3375:12:54", - "nodeType": "VariableDeclaration", - "scope": 11420, - "src": "3367:20:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3367:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3326:62:54" - }, - "returnParameters": { - "id": 11392, - "nodeType": "ParameterList", - "parameters": [], - "src": "3398:0:54" - }, - "scope": 11674, - "src": "3307:307:54", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11458, - "nodeType": "Block", - "src": "4128:237:54", - "statements": [ - { - "assignments": [ - 11435 - ], - "declarations": [ - { - "constant": false, - "id": 11435, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "4152:10:54", - "nodeType": "VariableDeclaration", - "scope": 11458, - "src": "4138:24:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11434, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11433, - "name": "State", - "nameLocations": [ - "4138:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "4138:5:54" - }, - "referencedDeclaration": 11307, - "src": "4138:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 11440, - "initialValue": { - "arguments": [ - { - "id": 11437, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11426, - "src": "4170:4:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - { - "id": 11438, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11428, - "src": "4176:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11436, - "name": "_get", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11673, - "src": "4165:4:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_storage_ptr_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State storage pointer)" - } - }, - "id": 11439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4165:24:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4138:51:54" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 11442, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11435, - "src": "4207:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11443, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4218:6:54", - "memberName": "isOpen", - "nodeType": "MemberAccess", - "referencedDeclaration": 11621, - "src": "4207:17:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 11444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4207:19:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 11446, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11428, - "src": "4245:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 11447, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11435, - "src": "4259:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11448, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4270:8:54", - "memberName": "closedAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11300, - "src": "4259:19:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11445, - "name": "AllocationClosed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11324, - "src": "4228:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", - "typeString": "function (address,uint256) pure returns (error)" - } - }, - "id": 11449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4228:51:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 11441, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4199:7:54", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 11450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4199:81:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11451, - "nodeType": "ExpressionStatement", - "src": "4199:81:54" - }, - { - "expression": { - "id": 11456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 11452, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11435, - "src": "4290:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11454, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "4301:27:54", - "memberName": "accRewardsPerAllocatedToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 11304, - "src": "4290:38:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 11455, - "name": "accRewardsPerAllocatedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11430, - "src": "4331:27:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4290:68:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11457, - "nodeType": "ExpressionStatement", - "src": "4290:68:54" - } - ] - }, - "documentation": { - "id": 11421, - "nodeType": "StructuredDocumentation", - "src": "3620:340:54", - "text": " @notice Update the accumulated rewards per allocated token for an allocation\n @dev Requirements:\n - The allocation must be open\n @param self The allocation list mapping\n @param allocationId The allocation id\n @param accRewardsPerAllocatedToken The new accumulated rewards per allocated token" - }, - "id": 11459, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "snapshotRewards", - "nameLocation": "3974:15:54", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11431, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11426, - "mutability": "mutable", - "name": "self", - "nameLocation": "4033:4:54", - "nodeType": "VariableDeclaration", - "scope": 11459, - "src": "3999:38:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "typeName": { - "id": 11425, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 11422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4007:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3999:25:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 11424, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11423, - "name": "State", - "nameLocations": [ - "4018:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "4018:5:54" - }, - "referencedDeclaration": 11307, - "src": "4018:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11428, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "4055:12:54", - "nodeType": "VariableDeclaration", - "scope": 11459, - "src": "4047:20:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11427, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4047:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11430, - "mutability": "mutable", - "name": "accRewardsPerAllocatedToken", - "nameLocation": "4085:27:54", - "nodeType": "VariableDeclaration", - "scope": 11459, - "src": "4077:35:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11429, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4077:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3989:129:54" - }, - "returnParameters": { - "id": 11432, - "nodeType": "ParameterList", - "parameters": [], - "src": "4128:0:54" - }, - "scope": 11674, - "src": "3965:400:54", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11495, - "nodeType": "Block", - "src": "4728:201:54", - "statements": [ - { - "assignments": [ - 11472 - ], - "declarations": [ - { - "constant": false, - "id": 11472, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "4752:10:54", - "nodeType": "VariableDeclaration", - "scope": 11495, - "src": "4738:24:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11471, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11470, - "name": "State", - "nameLocations": [ - "4738:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "4738:5:54" - }, - "referencedDeclaration": 11307, - "src": "4738:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 11477, - "initialValue": { - "arguments": [ - { - "id": 11474, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11465, - "src": "4770:4:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - { - "id": 11475, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11467, - "src": "4776:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11473, - "name": "_get", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11673, - "src": "4765:4:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_storage_ptr_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State storage pointer)" - } - }, - "id": 11476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4765:24:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4738:51:54" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 11479, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11472, - "src": "4807:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11480, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4818:6:54", - "memberName": "isOpen", - "nodeType": "MemberAccess", - "referencedDeclaration": 11621, - "src": "4807:17:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 11481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4807:19:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 11483, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11467, - "src": "4845:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 11484, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11472, - "src": "4859:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11485, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4870:8:54", - "memberName": "closedAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11300, - "src": "4859:19:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11482, - "name": "AllocationClosed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11324, - "src": "4828:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", - "typeString": "function (address,uint256) pure returns (error)" - } - }, - "id": 11486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4828:51:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 11478, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4799:7:54", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 11487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4799:81:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11488, - "nodeType": "ExpressionStatement", - "src": "4799:81:54" - }, - { - "expression": { - "id": 11493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 11489, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11472, - "src": "4890:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11491, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "4901:17:54", - "memberName": "accRewardsPending", - "nodeType": "MemberAccess", - "referencedDeclaration": 11306, - "src": "4890:28:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "30", - "id": 11492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4921:1:54", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4890:32:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11494, - "nodeType": "ExpressionStatement", - "src": "4890:32:54" - } - ] - }, - "documentation": { - "id": 11460, - "nodeType": "StructuredDocumentation", - "src": "4371:252:54", - "text": " @notice Update the accumulated rewards pending to be claimed for an allocation\n @dev Requirements:\n - The allocation must be open\n @param self The allocation list mapping\n @param allocationId The allocation id" - }, - "id": 11496, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearPendingRewards", - "nameLocation": "4637:19:54", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11465, - "mutability": "mutable", - "name": "self", - "nameLocation": "4691:4:54", - "nodeType": "VariableDeclaration", - "scope": 11496, - "src": "4657:38:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "typeName": { - "id": 11464, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 11461, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4665:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "4657:25:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 11463, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11462, - "name": "State", - "nameLocations": [ - "4676:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "4676:5:54" - }, - "referencedDeclaration": 11307, - "src": "4676:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11467, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "4705:12:54", - "nodeType": "VariableDeclaration", - "scope": 11496, - "src": "4697:20:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11466, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4697:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "4656:62:54" - }, - "returnParameters": { - "id": 11469, - "nodeType": "ParameterList", - "parameters": [], - "src": "4728:0:54" - }, - "scope": 11674, - "src": "4628:301:54", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11533, - "nodeType": "Block", - "src": "5227:206:54", - "statements": [ - { - "assignments": [ - 11509 - ], - "declarations": [ - { - "constant": false, - "id": 11509, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "5251:10:54", - "nodeType": "VariableDeclaration", - "scope": 11533, - "src": "5237:24:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11508, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11507, - "name": "State", - "nameLocations": [ - "5237:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "5237:5:54" - }, - "referencedDeclaration": 11307, - "src": "5237:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 11514, - "initialValue": { - "arguments": [ - { - "id": 11511, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11502, - "src": "5269:4:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - { - "id": 11512, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11504, - "src": "5275:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11510, - "name": "_get", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11673, - "src": "5264:4:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_storage_ptr_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State storage pointer)" - } - }, - "id": 11513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5264:24:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5237:51:54" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 11516, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11509, - "src": "5306:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11517, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5317:6:54", - "memberName": "isOpen", - "nodeType": "MemberAccess", - "referencedDeclaration": 11621, - "src": "5306:17:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 11518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5306:19:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 11520, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11504, - "src": "5344:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 11521, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11509, - "src": "5358:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11522, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5369:8:54", - "memberName": "closedAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11300, - "src": "5358:19:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11519, - "name": "AllocationClosed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11324, - "src": "5327:16:54", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", - "typeString": "function (address,uint256) pure returns (error)" - } - }, - "id": 11523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5327:51:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 11515, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5298:7:54", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 11524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5298:81:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11525, - "nodeType": "ExpressionStatement", - "src": "5298:81:54" - }, - { - "expression": { - "id": 11531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 11526, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11509, - "src": "5389:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11528, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "5400:8:54", - "memberName": "closedAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11300, - "src": "5389:19:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 11529, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "5411:5:54", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 11530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "5417:9:54", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "5411:15:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5389:37:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 11532, - "nodeType": "ExpressionStatement", - "src": "5389:37:54" - } - ] - }, - "documentation": { - "id": 11497, - "nodeType": "StructuredDocumentation", - "src": "4935:201:54", - "text": " @notice Close an allocation\n @dev Requirements:\n - The allocation must be open\n @param self The allocation list mapping\n @param allocationId The allocation id" - }, - "id": 11534, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "close", - "nameLocation": "5150:5:54", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11502, - "mutability": "mutable", - "name": "self", - "nameLocation": "5190:4:54", - "nodeType": "VariableDeclaration", - "scope": 11534, - "src": "5156:38:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "typeName": { - "id": 11501, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 11498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5164:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "5156:25:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 11500, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11499, - "name": "State", - "nameLocations": [ - "5175:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "5175:5:54" - }, - "referencedDeclaration": 11307, - "src": "5175:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11504, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "5204:12:54", - "nodeType": "VariableDeclaration", - "scope": 11534, - "src": "5196:20:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11503, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5196:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5155:62:54" - }, - "returnParameters": { - "id": 11506, - "nodeType": "ParameterList", - "parameters": [], - "src": "5227:0:54" - }, - "scope": 11674, - "src": "5141:292:54", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11553, - "nodeType": "Block", - "src": "5692:48:54", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 11549, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11540, - "src": "5714:4:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - { - "id": 11550, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11542, - "src": "5720:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11548, - "name": "_get", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11673, - "src": "5709:4:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_storage_ptr_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State storage pointer)" - } - }, - "id": 11551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5709:24:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "functionReturnParameters": 11547, - "id": 11552, - "nodeType": "Return", - "src": "5702:31:54" - } - ] - }, - "documentation": { - "id": 11535, - "nodeType": "StructuredDocumentation", - "src": "5439:136:54", - "text": " @notice Get an allocation\n @param self The allocation list mapping\n @param allocationId The allocation id" - }, - "id": 11554, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "get", - "nameLocation": "5589:3:54", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11540, - "mutability": "mutable", - "name": "self", - "nameLocation": "5627:4:54", - "nodeType": "VariableDeclaration", - "scope": 11554, - "src": "5593:38:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "typeName": { - "id": 11539, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 11536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5601:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "5593:25:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 11538, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11537, - "name": "State", - "nameLocations": [ - "5612:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "5612:5:54" - }, - "referencedDeclaration": 11307, - "src": "5612:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11542, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "5641:12:54", - "nodeType": "VariableDeclaration", - "scope": 11554, - "src": "5633:20:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11541, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5633:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5592:62:54" - }, - "returnParameters": { - "id": 11547, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11546, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11554, - "src": "5678:12:54", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11545, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11544, - "name": "State", - "nameLocations": [ - "5678:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "5678:5:54" - }, - "referencedDeclaration": 11307, - "src": "5678:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "5677:14:54" - }, - "scope": 11674, - "src": "5580:160:54", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11586, - "nodeType": "Block", - "src": "6013:178:54", - "statements": [ - { - "assignments": [ - 11566 - ], - "declarations": [ - { - "constant": false, - "id": 11566, - "mutability": "mutable", - "name": "timeSinceLastPOI", - "nameLocation": "6031:16:54", - "nodeType": "VariableDeclaration", - "scope": 11586, - "src": "6023:24:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11565, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6023:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 11577, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 11567, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "6050:5:54", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 11568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6056:9:54", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "6050:15:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "arguments": [ - { - "expression": { - "id": 11571, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11558, - "src": "6077:4:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 11572, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6082:9:54", - "memberName": "createdAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11298, - "src": "6077:14:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 11573, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11558, - "src": "6093:4:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 11574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6098:18:54", - "memberName": "lastPOIPresentedAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11302, - "src": "6093:23:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 11569, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7858, - "src": "6068:4:54", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$7858_$", - "typeString": "type(library Math)" - } - }, - "id": 11570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6073:3:54", - "memberName": "max", - "nodeType": "MemberAccess", - "referencedDeclaration": 6991, - "src": "6068:8:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 11575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6068:49:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6050:67:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6023:94:54" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 11584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 11578, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11558, - "src": "6134:4:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 11579, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6139:6:54", - "memberName": "isOpen", - "nodeType": "MemberAccess", - "referencedDeclaration": 11621, - "src": "6134:11:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 11580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6134:13:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 11581, - "name": "timeSinceLastPOI", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11566, - "src": "6151:16:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 11582, - "name": "staleThreshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11560, - "src": "6170:14:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6151:33:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6134:50:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 11564, - "id": 11585, - "nodeType": "Return", - "src": "6127:57:54" - } - ] - }, - "documentation": { - "id": 11555, - "nodeType": "StructuredDocumentation", - "src": "5746:173:54", - "text": " @notice Checks if an allocation is stale\n @param self The allocation\n @param staleThreshold The time in blocks to consider an allocation stale" - }, - "id": 11587, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isStale", - "nameLocation": "5933:7:54", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11558, - "mutability": "mutable", - "name": "self", - "nameLocation": "5954:4:54", - "nodeType": "VariableDeclaration", - "scope": 11587, - "src": "5941:17:54", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11557, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11556, - "name": "State", - "nameLocations": [ - "5941:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "5941:5:54" - }, - "referencedDeclaration": 11307, - "src": "5941:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11560, - "mutability": "mutable", - "name": "staleThreshold", - "nameLocation": "5968:14:54", - "nodeType": "VariableDeclaration", - "scope": 11587, - "src": "5960:22:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11559, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5960:7:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5940:43:54" - }, - "returnParameters": { - "id": 11564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11563, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11587, - "src": "6007:4:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11562, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6007:4:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "6006:6:54" - }, - "scope": 11674, - "src": "5924:267:54", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11601, - "nodeType": "Block", - "src": "6357:43:54", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 11596, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11591, - "src": "6374:4:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 11597, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6379:9:54", - "memberName": "createdAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11298, - "src": "6374:14:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 11598, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6392:1:54", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6374:19:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 11595, - "id": 11600, - "nodeType": "Return", - "src": "6367:26:54" - } - ] - }, - "documentation": { - "id": 11588, - "nodeType": "StructuredDocumentation", - "src": "6197:91:54", - "text": " @notice Checks if an allocation exists\n @param self The allocation" - }, - "id": 11602, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nameLocation": "6302:6:54", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11592, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11591, - "mutability": "mutable", - "name": "self", - "nameLocation": "6322:4:54", - "nodeType": "VariableDeclaration", - "scope": 11602, - "src": "6309:17:54", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11590, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11589, - "name": "State", - "nameLocations": [ - "6309:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "6309:5:54" - }, - "referencedDeclaration": 11307, - "src": "6309:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "6308:19:54" - }, - "returnParameters": { - "id": 11595, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11594, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11602, - "src": "6351:4:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11593, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6351:4:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "6350:6:54" - }, - "scope": 11674, - "src": "6293:107:54", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11620, - "nodeType": "Block", - "src": "6567:59:54", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 11618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 11611, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11606, - "src": "6584:4:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 11612, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6589:6:54", - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 11602, - "src": "6584:11:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 11613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6584:13:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 11614, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11606, - "src": "6601:4:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 11615, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6606:8:54", - "memberName": "closedAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11300, - "src": "6601:13:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 11616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6618:1:54", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6601:18:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6584:35:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 11610, - "id": 11619, - "nodeType": "Return", - "src": "6577:42:54" - } - ] - }, - "documentation": { - "id": 11603, - "nodeType": "StructuredDocumentation", - "src": "6406:92:54", - "text": " @notice Checks if an allocation is open\n @param self The allocation" - }, - "id": 11621, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isOpen", - "nameLocation": "6512:6:54", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11607, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11606, - "mutability": "mutable", - "name": "self", - "nameLocation": "6532:4:54", - "nodeType": "VariableDeclaration", - "scope": 11621, - "src": "6519:17:54", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11605, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11604, - "name": "State", - "nameLocations": [ - "6519:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "6519:5:54" - }, - "referencedDeclaration": 11307, - "src": "6519:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "6518:19:54" - }, - "returnParameters": { - "id": 11610, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11609, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11621, - "src": "6561:4:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11608, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6561:4:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "6560:6:54" - }, - "scope": 11674, - "src": "6503:123:54", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11639, - "nodeType": "Block", - "src": "6805:57:54", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 11637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 11630, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11625, - "src": "6822:4:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 11631, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6827:6:54", - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 11602, - "src": "6822:11:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 11632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6822:13:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 11633, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11625, - "src": "6839:4:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 11634, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "6844:6:54", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11296, - "src": "6839:11:54", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 11635, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6854:1:54", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6839:16:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6822:33:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 11629, - "id": 11638, - "nodeType": "Return", - "src": "6815:40:54" - } - ] - }, - "documentation": { - "id": 11622, - "nodeType": "StructuredDocumentation", - "src": "6632:98:54", - "text": " @notice Checks if an allocation is alturistic\n @param self The allocation" - }, - "id": 11640, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isAltruistic", - "nameLocation": "6744:12:54", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11625, - "mutability": "mutable", - "name": "self", - "nameLocation": "6770:4:54", - "nodeType": "VariableDeclaration", - "scope": 11640, - "src": "6757:17:54", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11624, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11623, - "name": "State", - "nameLocations": [ - "6757:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "6757:5:54" - }, - "referencedDeclaration": 11307, - "src": "6757:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "6756:19:54" - }, - "returnParameters": { - "id": 11629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11628, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11640, - "src": "6799:4:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11627, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6799:4:54", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "6798:6:54" - }, - "scope": 11674, - "src": "6735:127:54", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11672, - "nodeType": "Block", - "src": "7197:165:54", - "statements": [ - { - "assignments": [ - 11656 - ], - "declarations": [ - { - "constant": false, - "id": 11656, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "7221:10:54", - "nodeType": "VariableDeclaration", - "scope": 11672, - "src": "7207:24:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11655, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11654, - "name": "State", - "nameLocations": [ - "7207:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "7207:5:54" - }, - "referencedDeclaration": 11307, - "src": "7207:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 11660, - "initialValue": { - "baseExpression": { - "id": 11657, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11646, - "src": "7234:4:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 11659, - "indexExpression": { - "id": 11658, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11648, - "src": "7239:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7234:18:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage", - "typeString": "struct Allocation.State storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7207:45:54" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 11662, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11656, - "src": "7270:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "id": 11663, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7281:6:54", - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 11602, - "src": "7270:17:54", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 11664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7270:19:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 11666, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11648, - "src": "7314:12:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11665, - "name": "AllocationDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11317, - "src": "7291:22:54", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 11667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7291:36:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 11661, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7262:7:54", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 11668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7262:66:54", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11669, - "nodeType": "ExpressionStatement", - "src": "7262:66:54" - }, - { - "expression": { - "id": 11670, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11656, - "src": "7345:10:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State storage pointer" - } - }, - "functionReturnParameters": 11653, - "id": 11671, - "nodeType": "Return", - "src": "7338:17:54" - } - ] - }, - "documentation": { - "id": 11641, - "nodeType": "StructuredDocumentation", - "src": "6868:211:54", - "text": " @notice Get the allocation for an allocation id\n @dev Reverts if the allocation does not exist\n @param self The allocation list mapping\n @param allocationId The allocation id" - }, - "id": 11673, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_get", - "nameLocation": "7093:4:54", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11649, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11646, - "mutability": "mutable", - "name": "self", - "nameLocation": "7132:4:54", - "nodeType": "VariableDeclaration", - "scope": 11673, - "src": "7098:38:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "typeName": { - "id": 11645, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 11642, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7106:7:54", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "7098:25:54", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 11644, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11643, - "name": "State", - "nameLocations": [ - "7117:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "7117:5:54" - }, - "referencedDeclaration": 11307, - "src": "7117:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11648, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "7146:12:54", - "nodeType": "VariableDeclaration", - "scope": 11673, - "src": "7138:20:54", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11647, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7138:7:54", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "7097:62:54" - }, - "returnParameters": { - "id": 11653, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11652, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11673, - "src": "7182:13:54", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 11651, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11650, - "name": "State", - "nameLocations": [ - "7182:5:54" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "7182:5:54" - }, - "referencedDeclaration": 11307, - "src": "7182:5:54", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "7181:15:54" - }, - "scope": 11674, - "src": "7084:278:54", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "scope": 11675, - "src": "220:7144:54", - "usedErrors": [ - 11312, - 11317, - 11324 - ], - "usedEvents": [] - } - ], - "src": "45:7320:54" - }, - "id": 54 - }, - "contracts/libraries/Attestation.sol": { - "ast": { - "absolutePath": "contracts/libraries/Attestation.sol", - "exportedSymbols": { - "Attestation": [ - 11920 - ] - }, - "id": 11921, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11676, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:55" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Attestation", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 11677, - "nodeType": "StructuredDocumentation", - "src": "70:81:55", - "text": " @title Attestation library\n @notice A library to handle Attestation." - }, - "fullyImplemented": true, - "id": 11920, - "linearizedBaseContracts": [ - 11920 - ], - "name": "Attestation", - "nameLocation": "160:11:55", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Attestation.Receipt", - "documentation": { - "id": 11678, - "nodeType": "StructuredDocumentation", - "src": "178:81:55", - "text": "@notice Receipt content sent from the service provider in response to request" - }, - "id": 11685, - "members": [ - { - "constant": false, - "id": 11680, - "mutability": "mutable", - "name": "requestCID", - "nameLocation": "297:10:55", - "nodeType": "VariableDeclaration", - "scope": 11685, - "src": "289:18:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11679, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "289:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11682, - "mutability": "mutable", - "name": "responseCID", - "nameLocation": "325:11:55", - "nodeType": "VariableDeclaration", - "scope": 11685, - "src": "317:19:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11681, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "317:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11684, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "354:20:55", - "nodeType": "VariableDeclaration", - "scope": 11685, - "src": "346:28:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11683, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "346:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "name": "Receipt", - "nameLocation": "271:7:55", - "nodeType": "StructDefinition", - "scope": 11920, - "src": "264:117:55", - "visibility": "public" - }, - { - "canonicalName": "Attestation.State", - "documentation": { - "id": 11686, - "nodeType": "StructuredDocumentation", - "src": "387:79:55", - "text": "@notice Attestation sent from the service provider in response to a request" - }, - "id": 11699, - "members": [ - { - "constant": false, - "id": 11688, - "mutability": "mutable", - "name": "requestCID", - "nameLocation": "502:10:55", - "nodeType": "VariableDeclaration", - "scope": 11699, - "src": "494:18:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11687, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "494:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11690, - "mutability": "mutable", - "name": "responseCID", - "nameLocation": "530:11:55", - "nodeType": "VariableDeclaration", - "scope": 11699, - "src": "522:19:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11689, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "522:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11692, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "559:20:55", - "nodeType": "VariableDeclaration", - "scope": 11699, - "src": "551:28:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11691, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "551:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11694, - "mutability": "mutable", - "name": "r", - "nameLocation": "597:1:55", - "nodeType": "VariableDeclaration", - "scope": 11699, - "src": "589:9:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11693, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "589:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11696, - "mutability": "mutable", - "name": "s", - "nameLocation": "616:1:55", - "nodeType": "VariableDeclaration", - "scope": 11699, - "src": "608:9:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11695, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "608:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11698, - "mutability": "mutable", - "name": "v", - "nameLocation": "633:1:55", - "nodeType": "VariableDeclaration", - "scope": 11699, - "src": "627:7:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 11697, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "627:5:55", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "name": "State", - "nameLocation": "478:5:55", - "nodeType": "StructDefinition", - "scope": 11920, - "src": "471:170:55", - "visibility": "public" - }, - { - "constant": true, - "documentation": { - "id": 11700, - "nodeType": "StructuredDocumentation", - "src": "647:76:55", - "text": "@notice Attestation size is the sum of the receipt (96) + signature (65)" - }, - "id": 11703, - "mutability": "constant", - "name": "RECEIPT_SIZE_BYTES", - "nameLocation": "753:18:55", - "nodeType": "VariableDeclaration", - "scope": 11920, - "src": "728:48:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11701, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "728:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "3936", - "id": 11702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "774:2:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_96_by_1", - "typeString": "int_const 96" - }, - "value": "96" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 11706, - "mutability": "constant", - "name": "SIG_R_LENGTH", - "nameLocation": "808:12:55", - "nodeType": "VariableDeclaration", - "scope": 11920, - "src": "783:42:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11704, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "783:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "3332", - "id": 11705, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "823:2:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 11709, - "mutability": "constant", - "name": "SIG_S_LENGTH", - "nameLocation": "856:12:55", - "nodeType": "VariableDeclaration", - "scope": 11920, - "src": "831:42:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11707, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "831:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "3332", - "id": 11708, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "871:2:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 11712, - "mutability": "constant", - "name": "SIG_V_LENGTH", - "nameLocation": "904:12:55", - "nodeType": "VariableDeclaration", - "scope": 11920, - "src": "879:41:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11710, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "879:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31", - "id": 11711, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "919:1:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 11715, - "mutability": "constant", - "name": "SIG_R_OFFSET", - "nameLocation": "951:12:55", - "nodeType": "VariableDeclaration", - "scope": 11920, - "src": "926:58:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11713, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "926:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "id": 11714, - "name": "RECEIPT_SIZE_BYTES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11703, - "src": "966:18:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "private" - }, - { - "constant": true, - "id": 11720, - "mutability": "constant", - "name": "SIG_S_OFFSET", - "nameLocation": "1015:12:55", - "nodeType": "VariableDeclaration", - "scope": 11920, - "src": "990:73:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11716, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "990:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "id": 11717, - "name": "RECEIPT_SIZE_BYTES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11703, - "src": "1030:18:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 11718, - "name": "SIG_R_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11706, - "src": "1051:12:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1030:33:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "private" - }, - { - "constant": true, - "id": 11727, - "mutability": "constant", - "name": "SIG_V_OFFSET", - "nameLocation": "1094:12:55", - "nodeType": "VariableDeclaration", - "scope": 11920, - "src": "1069:88:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11721, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1069:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11726, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "id": 11722, - "name": "RECEIPT_SIZE_BYTES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11703, - "src": "1109:18:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 11723, - "name": "SIG_R_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11706, - "src": "1130:12:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1109:33:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 11725, - "name": "SIG_S_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11709, - "src": "1145:12:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1109:48:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "private" - }, - { - "constant": true, - "id": 11734, - "mutability": "constant", - "name": "SIG_SIZE_BYTES", - "nameLocation": "1188:14:55", - "nodeType": "VariableDeclaration", - "scope": 11920, - "src": "1163:84:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11728, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1163:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11733, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11731, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "id": 11729, - "name": "SIG_R_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11706, - "src": "1205:12:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 11730, - "name": "SIG_S_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11709, - "src": "1220:12:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1205:27:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 11732, - "name": "SIG_V_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11712, - "src": "1235:12:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1205:42:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "private" - }, - { - "constant": true, - "id": 11739, - "mutability": "constant", - "name": "ATTESTATION_SIZE_BYTES", - "nameLocation": "1279:22:55", - "nodeType": "VariableDeclaration", - "scope": 11920, - "src": "1254:85:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11735, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1254:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "id": 11736, - "name": "RECEIPT_SIZE_BYTES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11703, - "src": "1304:18:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 11737, - "name": "SIG_SIZE_BYTES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11734, - "src": "1325:14:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1304:35:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "private" - }, - { - "constant": true, - "id": 11742, - "mutability": "constant", - "name": "UINT8_BYTE_LENGTH", - "nameLocation": "1371:17:55", - "nodeType": "VariableDeclaration", - "scope": 11920, - "src": "1346:46:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1346:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31", - "id": 11741, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1391:1:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 11745, - "mutability": "constant", - "name": "BYTES32_BYTE_LENGTH", - "nameLocation": "1423:19:55", - "nodeType": "VariableDeclaration", - "scope": 11920, - "src": "1398:49:55", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11743, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1398:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "3332", - "id": 11744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1445:2:55", - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "visibility": "private" - }, - { - "errorSelector": "3fdf3423", - "id": 11751, - "name": "AttestationInvalidBytesLength", - "nameLocation": "1460:29:55", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11750, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11747, - "mutability": "mutable", - "name": "length", - "nameLocation": "1498:6:55", - "nodeType": "VariableDeclaration", - "scope": 11751, - "src": "1490:14:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11746, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1490:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11749, - "mutability": "mutable", - "name": "expectedLength", - "nameLocation": "1514:14:55", - "nodeType": "VariableDeclaration", - "scope": 11751, - "src": "1506:22:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11748, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1506:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "1489:40:55" - }, - "src": "1454:76:55" - }, - { - "body": { - "id": 11782, - "nodeType": "Block", - "src": "1960:236:55", - "statements": [ - { - "expression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 11779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 11773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 11767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 11763, - "name": "_attestation1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11755, - "src": "1978:13:55", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 11764, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1992:10:55", - "memberName": "requestCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11688, - "src": "1978:24:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 11765, - "name": "_attestation2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11758, - "src": "2006:13:55", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 11766, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2020:10:55", - "memberName": "requestCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11688, - "src": "2006:24:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "1978:52:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 11772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 11768, - "name": "_attestation1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11755, - "src": "2046:13:55", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 11769, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2060:20:55", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11692, - "src": "2046:34:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 11770, - "name": "_attestation2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11758, - "src": "2084:13:55", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 11771, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2098:20:55", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11692, - "src": "2084:34:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2046:72:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1978:140:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 11778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 11774, - "name": "_attestation1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11755, - "src": "2134:13:55", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 11775, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2148:11:55", - "memberName": "responseCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11690, - "src": "2134:25:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 11776, - "name": "_attestation2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11758, - "src": "2163:13:55", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 11777, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2177:11:55", - "memberName": "responseCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11690, - "src": "2163:25:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "2134:54:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1978:210:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 11780, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1977:212:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 11762, - "id": 11781, - "nodeType": "Return", - "src": "1970:219:55" - } - ] - }, - "documentation": { - "id": 11752, - "nodeType": "StructuredDocumentation", - "src": "1536:264:55", - "text": " @dev Returns if two attestations are conflicting.\n Everything must match except for the responseId.\n @param _attestation1 Attestation\n @param _attestation2 Attestation\n @return True if the two attestations are conflicting" - }, - "id": 11783, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "areConflicting", - "nameLocation": "1814:14:55", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11759, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11755, - "mutability": "mutable", - "name": "_attestation1", - "nameLocation": "1863:13:55", - "nodeType": "VariableDeclaration", - "scope": 11783, - "src": "1838:38:55", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 11754, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11753, - "name": "Attestation.State", - "nameLocations": [ - "1838:11:55", - "1850:5:55" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "1838:17:55" - }, - "referencedDeclaration": 11699, - "src": "1838:17:55", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11758, - "mutability": "mutable", - "name": "_attestation2", - "nameLocation": "1911:13:55", - "nodeType": "VariableDeclaration", - "scope": 11783, - "src": "1886:38:55", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 11757, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11756, - "name": "Attestation.State", - "nameLocations": [ - "1886:11:55", - "1898:5:55" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "1886:17:55" - }, - "referencedDeclaration": 11699, - "src": "1886:17:55", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - } - ], - "src": "1828:102:55" - }, - "returnParameters": { - "id": 11762, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11761, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11783, - "src": "1954:4:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 11760, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1954:4:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "1953:6:55" - }, - "scope": 11920, - "src": "1805:391:55", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11852, - "nodeType": "Block", - "src": "2392:748:55", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 11793, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11786, - "src": "2464:5:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 11794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2470:6:55", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2464:12:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 11795, - "name": "ATTESTATION_SIZE_BYTES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11739, - "src": "2480:22:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2464:38:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "expression": { - "id": 11798, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11786, - "src": "2546:5:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 11799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2552:6:55", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "2546:12:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 11800, - "name": "ATTESTATION_SIZE_BYTES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11739, - "src": "2560:22:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11797, - "name": "AttestationInvalidBytesLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11751, - "src": "2516:29:55", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 11801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2516:67:55", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 11792, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2443:7:55", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 11802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2443:150:55", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11803, - "nodeType": "ExpressionStatement", - "src": "2443:150:55" - }, - { - "assignments": [ - 11805, - 11807, - 11809 - ], - "declarations": [ - { - "constant": false, - "id": 11805, - "mutability": "mutable", - "name": "requestCID", - "nameLocation": "2639:10:55", - "nodeType": "VariableDeclaration", - "scope": 11852, - "src": "2631:18:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11804, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2631:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11807, - "mutability": "mutable", - "name": "responseCID", - "nameLocation": "2659:11:55", - "nodeType": "VariableDeclaration", - "scope": 11852, - "src": "2651:19:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11806, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2651:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11809, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "2680:20:55", - "nodeType": "VariableDeclaration", - "scope": 11852, - "src": "2672:28:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11808, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2672:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 11821, - "initialValue": { - "arguments": [ - { - "id": 11812, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11786, - "src": "2728:5:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 11814, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2748:7:55", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 11813, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2748:7:55", - "typeDescriptions": {} - } - }, - { - "id": 11816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2757:7:55", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 11815, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2757:7:55", - "typeDescriptions": {} - } - }, - { - "id": 11818, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2766:7:55", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 11817, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2766:7:55", - "typeDescriptions": {} - } - } - ], - "id": 11819, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2747:27:55", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$", - "typeString": "tuple(type(bytes32),type(bytes32),type(bytes32))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$", - "typeString": "tuple(type(bytes32),type(bytes32),type(bytes32))" - } - ], - "expression": { - "id": 11810, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2704:3:55", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 11811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "2708:6:55", - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "2704:10:55", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 11820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2704:80:55", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$", - "typeString": "tuple(bytes32,bytes32,bytes32)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2630:154:55" - }, - { - "assignments": [ - 11823 - ], - "declarations": [ - { - "constant": false, - "id": 11823, - "mutability": "mutable", - "name": "r", - "nameLocation": "2917:1:55", - "nodeType": "VariableDeclaration", - "scope": 11852, - "src": "2909:9:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11822, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2909:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 11828, - "initialValue": { - "arguments": [ - { - "id": 11825, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11786, - "src": "2932:5:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 11826, - "name": "SIG_R_OFFSET", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11715, - "src": "2939:12:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11824, - "name": "_toBytes32", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11919, - "src": "2921:10:55", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (bytes memory,uint256) pure returns (bytes32)" - } - }, - "id": 11827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2921:31:55", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2909:43:55" - }, - { - "assignments": [ - 11830 - ], - "declarations": [ - { - "constant": false, - "id": 11830, - "mutability": "mutable", - "name": "s", - "nameLocation": "2970:1:55", - "nodeType": "VariableDeclaration", - "scope": 11852, - "src": "2962:9:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11829, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2962:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 11835, - "initialValue": { - "arguments": [ - { - "id": 11832, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11786, - "src": "2985:5:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 11833, - "name": "SIG_S_OFFSET", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11720, - "src": "2992:12:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11831, - "name": "_toBytes32", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11919, - "src": "2974:10:55", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (bytes memory,uint256) pure returns (bytes32)" - } - }, - "id": 11834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2974:31:55", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2962:43:55" - }, - { - "assignments": [ - 11837 - ], - "declarations": [ - { - "constant": false, - "id": 11837, - "mutability": "mutable", - "name": "v", - "nameLocation": "3021:1:55", - "nodeType": "VariableDeclaration", - "scope": 11852, - "src": "3015:7:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 11836, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3015:5:55", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 11842, - "initialValue": { - "arguments": [ - { - "id": 11839, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11786, - "src": "3034:5:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 11840, - "name": "SIG_V_OFFSET", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11727, - "src": "3041:12:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11838, - "name": "_toUint8", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11886, - "src": "3025:8:55", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$", - "typeString": "function (bytes memory,uint256) pure returns (uint8)" - } - }, - "id": 11841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3025:29:55", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3015:39:55" - }, - { - "expression": { - "arguments": [ - { - "id": 11844, - "name": "requestCID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11805, - "src": "3078:10:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 11845, - "name": "responseCID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11807, - "src": "3090:11:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 11846, - "name": "subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11809, - "src": "3103:20:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 11847, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11823, - "src": "3125:1:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 11848, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11830, - "src": "3128:1:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 11849, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11837, - "src": "3131:1:55", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 11843, - "name": "State", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11699, - "src": "3072:5:55", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_State_$11699_storage_ptr_$", - "typeString": "type(struct Attestation.State storage pointer)" - } - }, - "id": 11850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3072:61:55", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "functionReturnParameters": 11791, - "id": 11851, - "nodeType": "Return", - "src": "3065:68:55" - } - ] - }, - "documentation": { - "id": 11784, - "nodeType": "StructuredDocumentation", - "src": "2202:113:55", - "text": " @dev Parse the bytes attestation into a struct from `_data`.\n @return Attestation struct" - }, - "id": 11853, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "parse", - "nameLocation": "2329:5:55", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11787, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11786, - "mutability": "mutable", - "name": "_data", - "nameLocation": "2348:5:55", - "nodeType": "VariableDeclaration", - "scope": 11853, - "src": "2335:18:55", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 11785, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2335:5:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "2334:20:55" - }, - "returnParameters": { - "id": 11791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11790, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11853, - "src": "2378:12:55", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 11789, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11788, - "name": "State", - "nameLocations": [ - "2378:5:55" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "2378:5:55" - }, - "referencedDeclaration": 11699, - "src": "2378:5:55", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - } - ], - "src": "2377:14:55" - }, - "scope": 11920, - "src": "2320:820:55", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 11885, - "nodeType": "Block", - "src": "3342:584:55", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 11864, - "name": "_bytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11856, - "src": "3373:6:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 11865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3380:6:55", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "3373:13:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 11866, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11858, - "src": "3390:6:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 11867, - "name": "UINT8_BYTE_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11742, - "src": "3399:17:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3390:26:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3373:43:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "expression": { - "id": 11871, - "name": "_bytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11856, - "src": "3460:6:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 11872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3467:6:55", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "3460:13:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 11873, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11858, - "src": "3475:6:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 11874, - "name": "UINT8_BYTE_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11742, - "src": "3484:17:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3475:26:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11870, - "name": "AttestationInvalidBytesLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11751, - "src": "3430:29:55", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 11876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3430:72:55", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 11863, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3352:7:55", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 11877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3352:160:55", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11878, - "nodeType": "ExpressionStatement", - "src": "3352:160:55" - }, - { - "assignments": [ - 11880 - ], - "declarations": [ - { - "constant": false, - "id": 11880, - "mutability": "mutable", - "name": "tempUint", - "nameLocation": "3528:8:55", - "nodeType": "VariableDeclaration", - "scope": 11885, - "src": "3522:14:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 11879, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3522:5:55", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 11881, - "nodeType": "VariableDeclarationStatement", - "src": "3522:14:55" - }, - { - "AST": { - "nativeSrc": "3612:282:55", - "nodeType": "YulBlock", - "src": "3612:282:55", - "statements": [ - { - "nativeSrc": "3836:48:55", - "nodeType": "YulAssignment", - "src": "3836:48:55", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_bytes", - "nativeSrc": "3862:6:55", - "nodeType": "YulIdentifier", - "src": "3862:6:55" - }, - { - "kind": "number", - "nativeSrc": "3870:3:55", - "nodeType": "YulLiteral", - "src": "3870:3:55", - "type": "", - "value": "0x1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3858:3:55", - "nodeType": "YulIdentifier", - "src": "3858:3:55" - }, - "nativeSrc": "3858:16:55", - "nodeType": "YulFunctionCall", - "src": "3858:16:55" - }, - { - "name": "_start", - "nativeSrc": "3876:6:55", - "nodeType": "YulIdentifier", - "src": "3876:6:55" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3854:3:55", - "nodeType": "YulIdentifier", - "src": "3854:3:55" - }, - "nativeSrc": "3854:29:55", - "nodeType": "YulFunctionCall", - "src": "3854:29:55" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3848:5:55", - "nodeType": "YulIdentifier", - "src": "3848:5:55" - }, - "nativeSrc": "3848:36:55", - "nodeType": "YulFunctionCall", - "src": "3848:36:55" - }, - "variableNames": [ - { - "name": "tempUint", - "nativeSrc": "3836:8:55", - "nodeType": "YulIdentifier", - "src": "3836:8:55" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 11856, - "isOffset": false, - "isSlot": false, - "src": "3862:6:55", - "valueSize": 1 - }, - { - "declaration": 11858, - "isOffset": false, - "isSlot": false, - "src": "3876:6:55", - "valueSize": 1 - }, - { - "declaration": 11880, - "isOffset": false, - "isSlot": false, - "src": "3836:8:55", - "valueSize": 1 - } - ], - "id": 11882, - "nodeType": "InlineAssembly", - "src": "3603:291:55" - }, - { - "expression": { - "id": 11883, - "name": "tempUint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11880, - "src": "3911:8:55", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 11862, - "id": 11884, - "nodeType": "Return", - "src": "3904:15:55" - } - ] - }, - "documentation": { - "id": 11854, - "nodeType": "StructuredDocumentation", - "src": "3146:107:55", - "text": " @dev Parse a uint8 from `_bytes` starting at offset `_start`.\n @return uint8 value" - }, - "id": 11886, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_toUint8", - "nameLocation": "3267:8:55", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11859, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11856, - "mutability": "mutable", - "name": "_bytes", - "nameLocation": "3289:6:55", - "nodeType": "VariableDeclaration", - "scope": 11886, - "src": "3276:19:55", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 11855, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3276:5:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11858, - "mutability": "mutable", - "name": "_start", - "nameLocation": "3305:6:55", - "nodeType": "VariableDeclaration", - "scope": 11886, - "src": "3297:14:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11857, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3297:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3275:37:55" - }, - "returnParameters": { - "id": 11862, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11861, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11886, - "src": "3335:5:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 11860, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3335:5:55", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "3334:7:55" - }, - "scope": 11920, - "src": "3258:668:55", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - }, - { - "body": { - "id": 11918, - "nodeType": "Block", - "src": "4136:390:55", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 11897, - "name": "_bytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11889, - "src": "4167:6:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 11898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4174:6:55", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4167:13:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 11899, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11891, - "src": "4184:6:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 11900, - "name": "BYTES32_BYTE_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11745, - "src": "4193:19:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4184:28:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4167:45:55", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "expression": { - "id": 11904, - "name": "_bytes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11889, - "src": "4256:6:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 11905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4263:6:55", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "4256:13:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 11908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 11906, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11891, - "src": "4271:6:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 11907, - "name": "BYTES32_BYTE_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11745, - "src": "4280:19:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4271:28:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 11903, - "name": "AttestationInvalidBytesLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11751, - "src": "4226:29:55", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", - "typeString": "function (uint256,uint256) pure returns (error)" - } - }, - "id": 11909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4226:74:55", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 11896, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4146:7:55", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 11910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4146:164:55", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11911, - "nodeType": "ExpressionStatement", - "src": "4146:164:55" - }, - { - "assignments": [ - 11913 - ], - "declarations": [ - { - "constant": false, - "id": 11913, - "mutability": "mutable", - "name": "tempBytes32", - "nameLocation": "4328:11:55", - "nodeType": "VariableDeclaration", - "scope": 11918, - "src": "4320:19:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11912, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4320:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 11914, - "nodeType": "VariableDeclarationStatement", - "src": "4320:19:55" - }, - { - "AST": { - "nativeSrc": "4415:76:55", - "nodeType": "YulBlock", - "src": "4415:76:55", - "statements": [ - { - "nativeSrc": "4429:52:55", - "nodeType": "YulAssignment", - "src": "4429:52:55", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_bytes", - "nativeSrc": "4458:6:55", - "nodeType": "YulIdentifier", - "src": "4458:6:55" - }, - { - "kind": "number", - "nativeSrc": "4466:4:55", - "nodeType": "YulLiteral", - "src": "4466:4:55", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4454:3:55", - "nodeType": "YulIdentifier", - "src": "4454:3:55" - }, - "nativeSrc": "4454:17:55", - "nodeType": "YulFunctionCall", - "src": "4454:17:55" - }, - { - "name": "_start", - "nativeSrc": "4473:6:55", - "nodeType": "YulIdentifier", - "src": "4473:6:55" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4450:3:55", - "nodeType": "YulIdentifier", - "src": "4450:3:55" - }, - "nativeSrc": "4450:30:55", - "nodeType": "YulFunctionCall", - "src": "4450:30:55" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4444:5:55", - "nodeType": "YulIdentifier", - "src": "4444:5:55" - }, - "nativeSrc": "4444:37:55", - "nodeType": "YulFunctionCall", - "src": "4444:37:55" - }, - "variableNames": [ - { - "name": "tempBytes32", - "nativeSrc": "4429:11:55", - "nodeType": "YulIdentifier", - "src": "4429:11:55" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 11889, - "isOffset": false, - "isSlot": false, - "src": "4458:6:55", - "valueSize": 1 - }, - { - "declaration": 11891, - "isOffset": false, - "isSlot": false, - "src": "4473:6:55", - "valueSize": 1 - }, - { - "declaration": 11913, - "isOffset": false, - "isSlot": false, - "src": "4429:11:55", - "valueSize": 1 - } - ], - "id": 11915, - "nodeType": "InlineAssembly", - "src": "4406:85:55" - }, - { - "expression": { - "id": 11916, - "name": "tempBytes32", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11913, - "src": "4508:11:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 11895, - "id": 11917, - "nodeType": "Return", - "src": "4501:18:55" - } - ] - }, - "documentation": { - "id": 11887, - "nodeType": "StructuredDocumentation", - "src": "3932:111:55", - "text": " @dev Parse a bytes32 from `_bytes` starting at offset `_start`.\n @return bytes32 value" - }, - "id": 11919, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_toBytes32", - "nameLocation": "4057:10:55", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11889, - "mutability": "mutable", - "name": "_bytes", - "nameLocation": "4081:6:55", - "nodeType": "VariableDeclaration", - "scope": 11919, - "src": "4068:19:55", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 11888, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4068:5:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11891, - "mutability": "mutable", - "name": "_start", - "nameLocation": "4097:6:55", - "nodeType": "VariableDeclaration", - "scope": 11919, - "src": "4089:14:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 11890, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4089:7:55", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4067:37:55" - }, - "returnParameters": { - "id": 11895, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11894, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 11919, - "src": "4127:7:55", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11893, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4127:7:55", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4126:9:55" - }, - "scope": 11920, - "src": "4048:478:55", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "scope": 11921, - "src": "152:4376:55", - "usedErrors": [ - 11751 - ], - "usedEvents": [] - } - ], - "src": "45:4484:55" - }, - "id": 55 - }, - "contracts/libraries/LegacyAllocation.sol": { - "ast": { - "absolutePath": "contracts/libraries/LegacyAllocation.sol", - "exportedSymbols": { - "LegacyAllocation": [ - 12086 - ] - }, - "id": 12087, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 11922, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:56" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "LegacyAllocation", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 11923, - "nodeType": "StructuredDocumentation", - "src": "70:93:56", - "text": " @title LegacyAllocation library\n @notice A library to handle legacy Allocations." - }, - "fullyImplemented": true, - "id": 12086, - "linearizedBaseContracts": [ - 12086 - ], - "name": "LegacyAllocation", - "nameLocation": "172:16:56", - "nodeType": "ContractDefinition", - "nodes": [ - { - "global": false, - "id": 11927, - "libraryName": { - "id": 11924, - "name": "LegacyAllocation", - "nameLocations": [ - "201:16:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 12086, - "src": "201:16:56" - }, - "nodeType": "UsingForDirective", - "src": "195:33:56", - "typeName": { - "id": 11926, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11925, - "name": "State", - "nameLocations": [ - "222:5:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "222:5:56" - }, - "referencedDeclaration": 11933, - "src": "222:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - } - }, - { - "canonicalName": "LegacyAllocation.State", - "documentation": { - "id": 11928, - "nodeType": "StructuredDocumentation", - "src": "234:307:56", - "text": " @notice Legacy allocation details\n @dev Note that we are only storing the indexer and subgraphDeploymentId. The main point of tracking legacy allocations\n is to prevent them from being re used on the Subgraph Service. We don't need to store the rest of the allocation details." - }, - "id": 11933, - "members": [ - { - "constant": false, - "id": 11930, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "577:7:56", - "nodeType": "VariableDeclaration", - "scope": 11933, - "src": "569:15:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11929, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "569:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11932, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "602:20:56", - "nodeType": "VariableDeclaration", - "scope": 11933, - "src": "594:28:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11931, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "594:7:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "name": "State", - "nameLocation": "553:5:56", - "nodeType": "StructDefinition", - "scope": 12086, - "src": "546:83:56", - "visibility": "public" - }, - { - "documentation": { - "id": 11934, - "nodeType": "StructuredDocumentation", - "src": "635:139:56", - "text": " @notice Thrown when attempting to migrate an allocation with an existing id\n @param allocationId The allocation id" - }, - "errorSelector": "81736271", - "id": 11938, - "name": "LegacyAllocationExists", - "nameLocation": "785:22:56", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11936, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "816:12:56", - "nodeType": "VariableDeclaration", - "scope": 11938, - "src": "808:20:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "808:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "807:22:56" - }, - "src": "779:51:56" - }, - { - "documentation": { - "id": 11939, - "nodeType": "StructuredDocumentation", - "src": "836:123:56", - "text": " @notice Thrown when trying to get a non-existent allocation\n @param allocationId The allocation id" - }, - "errorSelector": "40e1fd4a", - "id": 11943, - "name": "LegacyAllocationDoesNotExist", - "nameLocation": "970:28:56", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11942, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11941, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "1007:12:56", - "nodeType": "VariableDeclaration", - "scope": 11943, - "src": "999:20:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11940, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "999:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "998:22:56" - }, - "src": "964:57:56" - }, - { - "documentation": { - "id": 11944, - "nodeType": "StructuredDocumentation", - "src": "1027:146:56", - "text": " @notice Thrown when trying to migrate an allocation that has already been migrated\n @param allocationId The allocation id" - }, - "errorSelector": "2d3e5fb9", - "id": 11948, - "name": "LegacyAllocationAlreadyMigrated", - "nameLocation": "1184:31:56", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 11947, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11946, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "1224:12:56", - "nodeType": "VariableDeclaration", - "scope": 11948, - "src": "1216:20:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11945, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1216:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1215:22:56" - }, - "src": "1178:60:56" - }, - { - "body": { - "id": 11989, - "nodeType": "Block", - "src": "1904:250:56", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 11969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1922:28:56", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "baseExpression": { - "id": 11964, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11954, - "src": "1923:4:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" - } - }, - "id": 11966, - "indexExpression": { - "id": 11965, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11958, - "src": "1928:12:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1923:18:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage", - "typeString": "struct LegacyAllocation.State storage ref" - } - }, - "id": 11967, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1942:6:56", - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 12052, - "src": "1923:25:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11933_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11933_memory_ptr_$", - "typeString": "function (struct LegacyAllocation.State memory) pure returns (bool)" - } - }, - "id": 11968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1923:27:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 11971, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11958, - "src": "1984:12:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 11970, - "name": "LegacyAllocationAlreadyMigrated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11948, - "src": "1952:31:56", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 11972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1952:45:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 11963, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1914:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 11973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1914:84:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 11974, - "nodeType": "ExpressionStatement", - "src": "1914:84:56" - }, - { - "assignments": [ - 11977 - ], - "declarations": [ - { - "constant": false, - "id": 11977, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "2022:10:56", - "nodeType": "VariableDeclaration", - "scope": 11989, - "src": "2009:23:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_memory_ptr", - "typeString": "struct LegacyAllocation.State" - }, - "typeName": { - "id": 11976, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11975, - "name": "State", - "nameLocations": [ - "2009:5:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "2009:5:56" - }, - "referencedDeclaration": 11933, - "src": "2009:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 11982, - "initialValue": { - "arguments": [ - { - "id": 11979, - "name": "indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11956, - "src": "2052:7:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 11980, - "name": "subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11960, - "src": "2083:20:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 11978, - "name": "State", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11933, - "src": "2035:5:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_State_$11933_storage_ptr_$", - "typeString": "type(struct LegacyAllocation.State storage pointer)" - } - }, - "id": 11981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [ - "2043:7:56", - "2061:20:56" - ], - "names": [ - "indexer", - "subgraphDeploymentId" - ], - "nodeType": "FunctionCall", - "src": "2035:71:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_memory_ptr", - "typeString": "struct LegacyAllocation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2009:97:56" - }, - { - "expression": { - "id": 11987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 11983, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11954, - "src": "2116:4:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" - } - }, - "id": 11985, - "indexExpression": { - "id": 11984, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11958, - "src": "2121:12:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2116:18:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage", - "typeString": "struct LegacyAllocation.State storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 11986, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11977, - "src": "2137:10:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_memory_ptr", - "typeString": "struct LegacyAllocation.State memory" - } - }, - "src": "2116:31:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage", - "typeString": "struct LegacyAllocation.State storage ref" - } - }, - "id": 11988, - "nodeType": "ExpressionStatement", - "src": "2116:31:56" - } - ] - }, - "documentation": { - "id": 11949, - "nodeType": "StructuredDocumentation", - "src": "1244:482:56", - "text": " @notice Migrate a legacy allocation\n @dev Requirements:\n - The allocation must not have been previously migrated\n @param self The legacy allocation list mapping\n @param indexer The indexer that owns the allocation\n @param allocationId The allocation id\n @param subgraphDeploymentId The subgraph deployment id the allocation is for\n @custom:error LegacyAllocationAlreadyMigrated if the allocation has already been migrated" - }, - "id": 11990, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "migrate", - "nameLocation": "1740:7:56", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11954, - "mutability": "mutable", - "name": "self", - "nameLocation": "1791:4:56", - "nodeType": "VariableDeclaration", - "scope": 11990, - "src": "1757:38:56", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State)" - }, - "typeName": { - "id": 11953, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 11950, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1765:7:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1757:25:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 11952, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11951, - "name": "State", - "nameLocations": [ - "1776:5:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "1776:5:56" - }, - "referencedDeclaration": 11933, - "src": "1776:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11956, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "1813:7:56", - "nodeType": "VariableDeclaration", - "scope": 11990, - "src": "1805:15:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1805:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11958, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "1838:12:56", - "nodeType": "VariableDeclaration", - "scope": 11990, - "src": "1830:20:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1830:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11960, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "1868:20:56", - "nodeType": "VariableDeclaration", - "scope": 11990, - "src": "1860:28:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 11959, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1860:7:56", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "1747:147:56" - }, - "returnParameters": { - "id": 11962, - "nodeType": "ParameterList", - "parameters": [], - "src": "1904:0:56" - }, - "scope": 12086, - "src": "1731:423:56", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12009, - "nodeType": "Block", - "src": "2426:48:56", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 12005, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11996, - "src": "2448:4:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" - } - }, - { - "id": 12006, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11998, - "src": "2454:12:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12004, - "name": "_get", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12085, - "src": "2443:4:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11933_storage_$_$_t_address_$returns$_t_struct$_State_$11933_storage_ptr_$", - "typeString": "function (mapping(address => struct LegacyAllocation.State storage ref),address) view returns (struct LegacyAllocation.State storage pointer)" - } - }, - "id": 12007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2443:24:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State storage pointer" - } - }, - "functionReturnParameters": 12003, - "id": 12008, - "nodeType": "Return", - "src": "2436:31:56" - } - ] - }, - "documentation": { - "id": 11991, - "nodeType": "StructuredDocumentation", - "src": "2160:149:56", - "text": " @notice Get a legacy allocation\n @param self The legacy allocation list mapping\n @param allocationId The allocation id" - }, - "id": 12010, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "get", - "nameLocation": "2323:3:56", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 11999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 11996, - "mutability": "mutable", - "name": "self", - "nameLocation": "2361:4:56", - "nodeType": "VariableDeclaration", - "scope": 12010, - "src": "2327:38:56", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State)" - }, - "typeName": { - "id": 11995, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 11992, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2335:7:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2327:25:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 11994, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 11993, - "name": "State", - "nameLocations": [ - "2346:5:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "2346:5:56" - }, - "referencedDeclaration": 11933, - "src": "2346:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 11998, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "2375:12:56", - "nodeType": "VariableDeclaration", - "scope": 12010, - "src": "2367:20:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 11997, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2367:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2326:62:56" - }, - "returnParameters": { - "id": 12003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12002, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12010, - "src": "2412:12:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_memory_ptr", - "typeString": "struct LegacyAllocation.State" - }, - "typeName": { - "id": 12001, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12000, - "name": "State", - "nameLocations": [ - "2412:5:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "2412:5:56" - }, - "referencedDeclaration": 11933, - "src": "2412:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "2411:14:56" - }, - "scope": 12086, - "src": "2314:160:56", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12033, - "nodeType": "Block", - "src": "2747:92:56", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 12027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2765:28:56", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "baseExpression": { - "id": 12022, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12016, - "src": "2766:4:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" - } - }, - "id": 12024, - "indexExpression": { - "id": 12023, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12018, - "src": "2771:12:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2766:18:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage", - "typeString": "struct LegacyAllocation.State storage ref" - } - }, - "id": 12025, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2785:6:56", - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 12052, - "src": "2766:25:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11933_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11933_memory_ptr_$", - "typeString": "function (struct LegacyAllocation.State memory) pure returns (bool)" - } - }, - "id": 12026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2766:27:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 12029, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12018, - "src": "2818:12:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12028, - "name": "LegacyAllocationExists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11938, - "src": "2795:22:56", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 12030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2795:36:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 12021, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2757:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 12031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2757:75:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12032, - "nodeType": "ExpressionStatement", - "src": "2757:75:56" - } - ] - }, - "documentation": { - "id": 12011, - "nodeType": "StructuredDocumentation", - "src": "2480:162:56", - "text": " @notice Revert if a legacy allocation exists\n @param self The legacy allocation list mapping\n @param allocationId The allocation id" - }, - "id": 12034, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "revertIfExists", - "nameLocation": "2656:14:56", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12016, - "mutability": "mutable", - "name": "self", - "nameLocation": "2705:4:56", - "nodeType": "VariableDeclaration", - "scope": 12034, - "src": "2671:38:56", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State)" - }, - "typeName": { - "id": 12015, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 12012, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2679:7:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2671:25:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 12014, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12013, - "name": "State", - "nameLocations": [ - "2690:5:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "2690:5:56" - }, - "referencedDeclaration": 11933, - "src": "2690:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12018, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "2719:12:56", - "nodeType": "VariableDeclaration", - "scope": 12034, - "src": "2711:20:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2711:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2670:62:56" - }, - "returnParameters": { - "id": 12020, - "nodeType": "ParameterList", - "parameters": [], - "src": "2747:0:56" - }, - "scope": 12086, - "src": "2647:192:56", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12051, - "nodeType": "Block", - "src": "3017:50:56", - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 12049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 12043, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12038, - "src": "3034:4:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_memory_ptr", - "typeString": "struct LegacyAllocation.State memory" - } - }, - "id": 12044, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3039:7:56", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11930, - "src": "3034:12:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 12047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3058:1:56", - "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": 12046, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3050:7:56", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3050:7:56", - "typeDescriptions": {} - } - }, - "id": 12048, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3050:10:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3034:26:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 12042, - "id": 12050, - "nodeType": "Return", - "src": "3027:33:56" - } - ] - }, - "documentation": { - "id": 12035, - "nodeType": "StructuredDocumentation", - "src": "2845:103:56", - "text": " @notice Check if a legacy allocation exists\n @param self The legacy allocation" - }, - "id": 12052, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nameLocation": "2962:6:56", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12039, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12038, - "mutability": "mutable", - "name": "self", - "nameLocation": "2982:4:56", - "nodeType": "VariableDeclaration", - "scope": 12052, - "src": "2969:17:56", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_memory_ptr", - "typeString": "struct LegacyAllocation.State" - }, - "typeName": { - "id": 12037, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12036, - "name": "State", - "nameLocations": [ - "2969:5:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "2969:5:56" - }, - "referencedDeclaration": 11933, - "src": "2969:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "2968:19:56" - }, - "returnParameters": { - "id": 12042, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12041, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12052, - "src": "3011:4:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12040, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3011:4:56", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "3010:6:56" - }, - "scope": 12086, - "src": "2953:114:56", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12084, - "nodeType": "Block", - "src": "3340:171:56", - "statements": [ - { - "assignments": [ - 12068 - ], - "declarations": [ - { - "constant": false, - "id": 12068, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "3364:10:56", - "nodeType": "VariableDeclaration", - "scope": 12084, - "src": "3350:24:56", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - }, - "typeName": { - "id": 12067, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12066, - "name": "State", - "nameLocations": [ - "3350:5:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "3350:5:56" - }, - "referencedDeclaration": 11933, - "src": "3350:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 12072, - "initialValue": { - "baseExpression": { - "id": 12069, - "name": "self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12058, - "src": "3377:4:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" - } - }, - "id": 12071, - "indexExpression": { - "id": 12070, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12060, - "src": "3382:12:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3377:18:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage", - "typeString": "struct LegacyAllocation.State storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3350:45:56" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 12074, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12068, - "src": "3413:10:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State storage pointer" - } - }, - "id": 12075, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3424:6:56", - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 12052, - "src": "3413:17:56", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11933_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11933_memory_ptr_$", - "typeString": "function (struct LegacyAllocation.State memory) pure returns (bool)" - } - }, - "id": 12076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3413:19:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 12078, - "name": "allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12060, - "src": "3463:12:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12077, - "name": "LegacyAllocationDoesNotExist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11943, - "src": "3434:28:56", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 12079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3434:42:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 12073, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3405:7:56", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 12080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3405:72:56", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12081, - "nodeType": "ExpressionStatement", - "src": "3405:72:56" - }, - { - "expression": { - "id": 12082, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12068, - "src": "3494:10:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State storage pointer" - } - }, - "functionReturnParameters": 12065, - "id": 12083, - "nodeType": "Return", - "src": "3487:17:56" - } - ] - }, - "documentation": { - "id": 12053, - "nodeType": "StructuredDocumentation", - "src": "3073:149:56", - "text": " @notice Get a legacy allocation\n @param self The legacy allocation list mapping\n @param allocationId The allocation id" - }, - "id": 12085, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_get", - "nameLocation": "3236:4:56", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12061, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12058, - "mutability": "mutable", - "name": "self", - "nameLocation": "3275:4:56", - "nodeType": "VariableDeclaration", - "scope": 12085, - "src": "3241:38:56", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State)" - }, - "typeName": { - "id": 12057, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 12054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3249:7:56", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3241:25:56", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 12056, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12055, - "name": "State", - "nameLocations": [ - "3260:5:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "3260:5:56" - }, - "referencedDeclaration": 11933, - "src": "3260:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12060, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "3289:12:56", - "nodeType": "VariableDeclaration", - "scope": 12085, - "src": "3281:20:56", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12059, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3281:7:56", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3240:62:56" - }, - "returnParameters": { - "id": 12065, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12064, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12085, - "src": "3325:13:56", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - }, - "typeName": { - "id": 12063, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12062, - "name": "State", - "nameLocations": [ - "3325:5:56" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "3325:5:56" - }, - "referencedDeclaration": 11933, - "src": "3325:5:56", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "3324:15:56" - }, - "scope": 12086, - "src": "3227:284:56", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "scope": 12087, - "src": "164:3349:56", - "usedErrors": [ - 11938, - 11943, - 11948 - ], - "usedEvents": [] - } - ], - "src": "45:3469:56" - }, - "id": 56 - }, - "contracts/utilities/AllocationManager.sol": { - "ast": { - "absolutePath": "contracts/utilities/AllocationManager.sol", - "exportedSymbols": { - "Allocation": [ - 11674 - ], - "AllocationManager": [ - 13030 - ], - "AllocationManagerV1Storage": [ - 13072 - ], - "ECDSA": [ - 6730 - ], - "EIP712Upgradeable": [ - 5771 - ], - "GraphDirectory": [ - 4653 - ], - "IGraphPayments": [ - 2211 - ], - "IGraphToken": [ - 518 - ], - "IHorizonStakingTypes": [ - 3796 - ], - "LegacyAllocation": [ - 12086 - ], - "PPMMath": [ - 4262 - ], - "ProvisionTracker": [ - 1555 - ], - "TokenUtils": [ - 600 - ] - }, - "id": 13031, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12088, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:57" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "file": "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol", - "id": 12090, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 2212, - "src": "70:96:57", - "symbolAliases": [ - { - "foreign": { - "id": 12089, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "79:14:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", - "file": "@graphprotocol/contracts/contracts/token/IGraphToken.sol", - "id": 12092, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 519, - "src": "167:87:57", - "symbolAliases": [ - { - "foreign": { - "id": 12091, - "name": "IGraphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 518, - "src": "176:11:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", - "file": "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol", - "id": 12094, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 3797, - "src": "255:117:57", - "symbolAliases": [ - { - "foreign": { - "id": 12093, - "name": "IHorizonStakingTypes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3796, - "src": "264:20:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", - "file": "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol", - "id": 12096, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 4654, - "src": "374:95:57", - "symbolAliases": [ - { - "foreign": { - "id": 12095, - "name": "GraphDirectory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4653, - "src": "383:14:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/utilities/AllocationManagerStorage.sol", - "file": "./AllocationManagerStorage.sol", - "id": 12098, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 13073, - "src": "470:76:57", - "symbolAliases": [ - { - "foreign": { - "id": 12097, - "name": "AllocationManagerV1Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13072, - "src": "479:26:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", - "file": "@graphprotocol/contracts/contracts/utils/TokenUtils.sol", - "id": 12100, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 601, - "src": "548:85:57", - "symbolAliases": [ - { - "foreign": { - "id": 12099, - "name": "TokenUtils", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "557:10:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "file": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "id": 12102, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 6731, - "src": "634:77:57", - "symbolAliases": [ - { - "foreign": { - "id": 12101, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6730, - "src": "643:5:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol", - "file": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol", - "id": 12104, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 5772, - "src": "712:113:57", - "symbolAliases": [ - { - "foreign": { - "id": 12103, - "name": "EIP712Upgradeable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5771, - "src": "721:17:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/Allocation.sol", - "file": "../libraries/Allocation.sol", - "id": 12106, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 11675, - "src": "826:57:57", - "symbolAliases": [ - { - "foreign": { - "id": 12105, - "name": "Allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11674, - "src": "835:10:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/LegacyAllocation.sol", - "file": "../libraries/LegacyAllocation.sol", - "id": 12108, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 12087, - "src": "884:69:57", - "symbolAliases": [ - { - "foreign": { - "id": 12107, - "name": "LegacyAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12086, - "src": "893:16:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", - "file": "@graphprotocol/horizon/contracts/libraries/PPMMath.sol", - "id": 12110, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 4263, - "src": "954:81:57", - "symbolAliases": [ - { - "foreign": { - "id": 12109, - "name": "PPMMath", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4262, - "src": "963:7:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol", - "file": "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol", - "id": 12112, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13031, - "sourceUnit": 1556, - "src": "1036:112:57", - "symbolAliases": [ - { - "foreign": { - "id": 12111, - "name": "ProvisionTracker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1555, - "src": "1045:16:57", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 12114, - "name": "EIP712Upgradeable", - "nameLocations": [ - "1446:17:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5771, - "src": "1446:17:57" - }, - "id": 12115, - "nodeType": "InheritanceSpecifier", - "src": "1446:17:57" - }, - { - "baseName": { - "id": 12116, - "name": "GraphDirectory", - "nameLocations": [ - "1465:14:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4653, - "src": "1465:14:57" - }, - "id": 12117, - "nodeType": "InheritanceSpecifier", - "src": "1465:14:57" - }, - { - "baseName": { - "id": 12118, - "name": "AllocationManagerV1Storage", - "nameLocations": [ - "1481:26:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 13072, - "src": "1481:26:57" - }, - "id": 12119, - "nodeType": "InheritanceSpecifier", - "src": "1481:26:57" - } - ], - "canonicalName": "AllocationManager", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 12113, - "nodeType": "StructuredDocumentation", - "src": "1150:256:57", - "text": " @title AllocationManager contract\n @notice A helper contract implementing allocation lifecycle management.\n Allows opening, resizing, and closing allocations, as well as collecting indexing rewards by presenting a Proof\n of Indexing (POI)." - }, - "fullyImplemented": true, - "id": 13030, - "linearizedBaseContracts": [ - 13030, - 13072, - 4653, - 5771, - 5796, - 5102 - ], - "name": "AllocationManager", - "nameLocation": "1425:17:57", - "nodeType": "ContractDefinition", - "nodes": [ - { - "global": false, - "id": 12124, - "libraryName": { - "id": 12120, - "name": "ProvisionTracker", - "nameLocations": [ - "1520:16:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1555, - "src": "1520:16:57" - }, - "nodeType": "UsingForDirective", - "src": "1514:55:57", - "typeName": { - "id": 12123, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 12121, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1549:7:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1541:27:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 12122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1560:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - { - "global": false, - "id": 12130, - "libraryName": { - "id": 12125, - "name": "Allocation", - "nameLocations": [ - "1580:10:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11674, - "src": "1580:10:57" - }, - "nodeType": "UsingForDirective", - "src": "1574:58:57", - "typeName": { - "id": 12129, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 12126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1603:7:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1595:36:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 12128, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12127, - "name": "Allocation.State", - "nameLocations": [ - "1614:10:57", - "1625:5:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "1614:16:57" - }, - "referencedDeclaration": 11307, - "src": "1614:16:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - } - }, - { - "global": false, - "id": 12134, - "libraryName": { - "id": 12131, - "name": "Allocation", - "nameLocations": [ - "1643:10:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11674, - "src": "1643:10:57" - }, - "nodeType": "UsingForDirective", - "src": "1637:38:57", - "typeName": { - "id": 12133, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12132, - "name": "Allocation.State", - "nameLocations": [ - "1658:10:57", - "1669:5:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "1658:16:57" - }, - "referencedDeclaration": 11307, - "src": "1658:16:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - }, - { - "global": false, - "id": 12140, - "libraryName": { - "id": 12135, - "name": "LegacyAllocation", - "nameLocations": [ - "1686:16:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 12086, - "src": "1686:16:57" - }, - "nodeType": "UsingForDirective", - "src": "1680:70:57", - "typeName": { - "id": 12139, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 12136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1715:7:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1707:42:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 12138, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12137, - "name": "LegacyAllocation.State", - "nameLocations": [ - "1726:16:57", - "1743:5:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "1726:22:57" - }, - "referencedDeclaration": 11933, - "src": "1726:22:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - } - } - }, - { - "global": false, - "id": 12143, - "libraryName": { - "id": 12141, - "name": "PPMMath", - "nameLocations": [ - "1761:7:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 4262, - "src": "1761:7:57" - }, - "nodeType": "UsingForDirective", - "src": "1755:26:57", - "typeName": { - "id": 12142, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1773:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "global": false, - "id": 12147, - "libraryName": { - "id": 12144, - "name": "TokenUtils", - "nameLocations": [ - "1792:10:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 600, - "src": "1792:10:57" - }, - "nodeType": "UsingForDirective", - "src": "1786:33:57", - "typeName": { - "id": 12146, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12145, - "name": "IGraphToken", - "nameLocations": [ - "1807:11:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 518, - "src": "1807:11:57" - }, - "referencedDeclaration": 518, - "src": "1807:11:57", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - } - }, - { - "constant": true, - "documentation": { - "id": 12148, - "nodeType": "StructuredDocumentation", - "src": "1825:44:57", - "text": "@dev EIP712 typehash for allocation proof" - }, - "id": 12153, - "mutability": "constant", - "name": "EIP712_ALLOCATION_PROOF_TYPEHASH", - "nameLocation": "1899:32:57", - "nodeType": "VariableDeclaration", - "scope": 13030, - "src": "1874:136:57", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12149, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1874:7:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "416c6c6f636174696f6e496450726f6f66286164647265737320696e64657865722c6164647265737320616c6c6f636174696f6e496429", - "id": 12151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1952:57:57", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f74673", - "typeString": "literal_string \"AllocationIdProof(address indexer,address allocationId)\"" - }, - "value": "AllocationIdProof(address indexer,address allocationId)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f74673", - "typeString": "literal_string \"AllocationIdProof(address indexer,address allocationId)\"" - } - ], - "id": 12150, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1942:9:57", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 12152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1942:68:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": { - "id": 12154, - "nodeType": "StructuredDocumentation", - "src": "2017:294:57", - "text": " @notice Emitted when an indexer creates an allocation\n @param indexer The address of the indexer\n @param allocationId The id of the allocation\n @param subgraphDeploymentId The id of the subgraph deployment\n @param tokens The amount of tokens allocated" - }, - "eventSelector": "3bd4419f8defec88dd042e31b8e8743f00803aed288fe7c31c9cf0689d295cf2", - "id": 12164, - "name": "AllocationCreated", - "nameLocation": "2322:17:57", - "nodeType": "EventDefinition", - "parameters": { - "id": 12163, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12156, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "2365:7:57", - "nodeType": "VariableDeclaration", - "scope": 12164, - "src": "2349:23:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2349:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12158, - "indexed": true, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "2398:12:57", - "nodeType": "VariableDeclaration", - "scope": 12164, - "src": "2382:28:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12157, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2382:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12160, - "indexed": true, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "2436:20:57", - "nodeType": "VariableDeclaration", - "scope": 12164, - "src": "2420:36:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12159, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2420:7:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12162, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "2474:6:57", - "nodeType": "VariableDeclaration", - "scope": 12164, - "src": "2466:14:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12161, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2466:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2339:147:57" - }, - "src": "2316:171:57" - }, - { - "anonymous": false, - "documentation": { - "id": 12165, - "nodeType": "StructuredDocumentation", - "src": "2493:570:57", - "text": " @notice Emitted when an indexer collects indexing rewards for an allocation\n @param indexer The address of the indexer\n @param allocationId The id of the allocation\n @param subgraphDeploymentId The id of the subgraph deployment\n @param tokensRewards The amount of tokens collected\n @param tokensIndexerRewards The amount of tokens collected for the indexer\n @param tokensDelegationRewards The amount of tokens collected for delegators\n @param poi The POI presented\n @param currentEpoch The current epoch" - }, - "eventSelector": "7df4dbb3b3c999ca3e143d3fe67abfa22078fd572d49d411278648c773912e31", - "id": 12183, - "name": "IndexingRewardsCollected", - "nameLocation": "3074:24:57", - "nodeType": "EventDefinition", - "parameters": { - "id": 12182, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12167, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "3124:7:57", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "3108:23:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3108:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12169, - "indexed": true, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "3157:12:57", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "3141:28:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12168, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3141:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12171, - "indexed": true, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "3195:20:57", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "3179:36:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12170, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3179:7:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12173, - "indexed": false, - "mutability": "mutable", - "name": "tokensRewards", - "nameLocation": "3233:13:57", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "3225:21:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12172, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3225:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12175, - "indexed": false, - "mutability": "mutable", - "name": "tokensIndexerRewards", - "nameLocation": "3264:20:57", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "3256:28:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3256:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12177, - "indexed": false, - "mutability": "mutable", - "name": "tokensDelegationRewards", - "nameLocation": "3302:23:57", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "3294:31:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12176, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3294:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12179, - "indexed": false, - "mutability": "mutable", - "name": "poi", - "nameLocation": "3343:3:57", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "3335:11:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12178, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3335:7:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12181, - "indexed": false, - "mutability": "mutable", - "name": "currentEpoch", - "nameLocation": "3364:12:57", - "nodeType": "VariableDeclaration", - "scope": 12183, - "src": "3356:20:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3356:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3098:284:57" - }, - "src": "3068:315:57" - }, - { - "anonymous": false, - "documentation": { - "id": 12184, - "nodeType": "StructuredDocumentation", - "src": "3389:360:57", - "text": " @notice Emitted when an indexer resizes an allocation\n @param indexer The address of the indexer\n @param allocationId The id of the allocation\n @param subgraphDeploymentId The id of the subgraph deployment\n @param newTokens The new amount of tokens allocated\n @param oldTokens The old amount of tokens allocated" - }, - "eventSelector": "6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f", - "id": 12196, - "name": "AllocationResized", - "nameLocation": "3760:17:57", - "nodeType": "EventDefinition", - "parameters": { - "id": 12195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12186, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "3803:7:57", - "nodeType": "VariableDeclaration", - "scope": 12196, - "src": "3787:23:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12185, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3787:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12188, - "indexed": true, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "3836:12:57", - "nodeType": "VariableDeclaration", - "scope": 12196, - "src": "3820:28:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12187, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3820:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12190, - "indexed": true, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "3874:20:57", - "nodeType": "VariableDeclaration", - "scope": 12196, - "src": "3858:36:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12189, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3858:7:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12192, - "indexed": false, - "mutability": "mutable", - "name": "newTokens", - "nameLocation": "3912:9:57", - "nodeType": "VariableDeclaration", - "scope": 12196, - "src": "3904:17:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12191, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3904:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12194, - "indexed": false, - "mutability": "mutable", - "name": "oldTokens", - "nameLocation": "3939:9:57", - "nodeType": "VariableDeclaration", - "scope": 12196, - "src": "3931:17:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3931:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3777:177:57" - }, - "src": "3754:201:57" - }, - { - "anonymous": false, - "documentation": { - "id": 12197, - "nodeType": "StructuredDocumentation", - "src": "3961:290:57", - "text": " @dev Emitted when an indexer closes an allocation\n @param indexer The address of the indexer\n @param allocationId The id of the allocation\n @param subgraphDeploymentId The id of the subgraph deployment\n @param tokens The amount of tokens allocated" - }, - "eventSelector": "663a6f978de61dc3e2441026c082be709377b083ab642a8ce71386f8b91c710b", - "id": 12207, - "name": "AllocationClosed", - "nameLocation": "4262:16:57", - "nodeType": "EventDefinition", - "parameters": { - "id": 12206, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12199, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "4304:7:57", - "nodeType": "VariableDeclaration", - "scope": 12207, - "src": "4288:23:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12198, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4288:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12201, - "indexed": true, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "4337:12:57", - "nodeType": "VariableDeclaration", - "scope": 12207, - "src": "4321:28:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12200, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4321:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12203, - "indexed": true, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "4375:20:57", - "nodeType": "VariableDeclaration", - "scope": 12207, - "src": "4359:36:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12202, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4359:7:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12205, - "indexed": false, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "4413:6:57", - "nodeType": "VariableDeclaration", - "scope": 12207, - "src": "4405:14:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12204, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4405:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4278:147:57" - }, - "src": "4256:170:57" - }, - { - "anonymous": false, - "documentation": { - "id": 12208, - "nodeType": "StructuredDocumentation", - "src": "4432:267:57", - "text": " @notice Emitted when a legacy allocation is migrated into the subgraph service\n @param indexer The address of the indexer\n @param allocationId The id of the allocation\n @param subgraphDeploymentId The id of the subgraph deployment" - }, - "eventSelector": "d54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e19", - "id": 12216, - "name": "LegacyAllocationMigrated", - "nameLocation": "4710:24:57", - "nodeType": "EventDefinition", - "parameters": { - "id": 12215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12210, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "4760:7:57", - "nodeType": "VariableDeclaration", - "scope": 12216, - "src": "4744:23:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12209, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4744:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12212, - "indexed": true, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "4793:12:57", - "nodeType": "VariableDeclaration", - "scope": 12216, - "src": "4777:28:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12211, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4777:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12214, - "indexed": true, - "mutability": "mutable", - "name": "subgraphDeploymentId", - "nameLocation": "4831:20:57", - "nodeType": "VariableDeclaration", - "scope": 12216, - "src": "4815:36:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12213, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4815:7:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "4734:123:57" - }, - "src": "4704:154:57" - }, - { - "anonymous": false, - "documentation": { - "id": 12217, - "nodeType": "StructuredDocumentation", - "src": "4864:222:57", - "text": " @notice Emitted when an indexer sets a new indexing rewards destination\n @param indexer The address of the indexer\n @param rewardsDestination The address where indexing rewards should be sent" - }, - "eventSelector": "3349d2e561f8c23a3ff42257745c8fb53e4bf3cbd4046672a3c4a0c7ee8a7b31", - "id": 12223, - "name": "RewardsDestinationSet", - "nameLocation": "5097:21:57", - "nodeType": "EventDefinition", - "parameters": { - "id": 12222, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12219, - "indexed": true, - "mutability": "mutable", - "name": "indexer", - "nameLocation": "5135:7:57", - "nodeType": "VariableDeclaration", - "scope": 12223, - "src": "5119:23:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12218, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5119:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12221, - "indexed": true, - "mutability": "mutable", - "name": "rewardsDestination", - "nameLocation": "5160:18:57", - "nodeType": "VariableDeclaration", - "scope": 12223, - "src": "5144:34:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5144:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5118:61:57" - }, - "src": "5091:89:57" - }, - { - "anonymous": false, - "documentation": { - "id": 12224, - "nodeType": "StructuredDocumentation", - "src": "5186:139:57", - "text": " @notice Emitted when the maximum POI staleness is updated\n @param maxPOIStaleness The max POI staleness in seconds" - }, - "eventSelector": "21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba", - "id": 12228, - "name": "MaxPOIStalenessSet", - "nameLocation": "5336:18:57", - "nodeType": "EventDefinition", - "parameters": { - "id": 12227, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12226, - "indexed": false, - "mutability": "mutable", - "name": "maxPOIStaleness", - "nameLocation": "5363:15:57", - "nodeType": "VariableDeclaration", - "scope": 12228, - "src": "5355:23:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5355:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "5354:25:57" - }, - "src": "5330:50:57" - }, - { - "documentation": { - "id": 12229, - "nodeType": "StructuredDocumentation", - "src": "5386:248:57", - "text": " @notice Thrown when an allocation proof is invalid\n Both `signer` and `allocationId` should match for a valid proof.\n @param signer The address that signed the proof\n @param allocationId The id of the allocation" - }, - "errorSelector": "8c5b935d", - "id": 12235, - "name": "AllocationManagerInvalidAllocationProof", - "nameLocation": "5645:39:57", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 12234, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12231, - "mutability": "mutable", - "name": "signer", - "nameLocation": "5693:6:57", - "nodeType": "VariableDeclaration", - "scope": 12235, - "src": "5685:14:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12230, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5685:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12233, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "5709:12:57", - "nodeType": "VariableDeclaration", - "scope": 12235, - "src": "5701:20:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12232, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5701:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "5684:38:57" - }, - "src": "5639:84:57" - }, - { - "documentation": { - "id": 12236, - "nodeType": "StructuredDocumentation", - "src": "5729:99:57", - "text": " @notice Thrown when attempting to create an allocation with a zero allocation id" - }, - "errorSelector": "9ffbebde", - "id": 12238, - "name": "AllocationManagerInvalidZeroAllocationId", - "nameLocation": "5839:40:57", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 12237, - "nodeType": "ParameterList", - "parameters": [], - "src": "5879:2:57" - }, - "src": "5833:49:57" - }, - { - "documentation": { - "id": 12239, - "nodeType": "StructuredDocumentation", - "src": "5888:153:57", - "text": " @notice Thrown when attempting to collect indexing rewards on a closed allocationl\n @param allocationId The id of the allocation" - }, - "errorSelector": "1eb5ff95", - "id": 12243, - "name": "AllocationManagerAllocationClosed", - "nameLocation": "6052:33:57", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 12242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12241, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "6094:12:57", - "nodeType": "VariableDeclaration", - "scope": 12243, - "src": "6086:20:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12240, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6086:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "6085:22:57" - }, - "src": "6046:62:57" - }, - { - "documentation": { - "id": 12244, - "nodeType": "StructuredDocumentation", - "src": "6114:186:57", - "text": " @notice Thrown when attempting to resize an allocation with the same size\n @param allocationId The id of the allocation\n @param tokens The amount of tokens" - }, - "errorSelector": "f32518cd", - "id": 12250, - "name": "AllocationManagerAllocationSameSize", - "nameLocation": "6311:35:57", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 12249, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12246, - "mutability": "mutable", - "name": "allocationId", - "nameLocation": "6355:12:57", - "nodeType": "VariableDeclaration", - "scope": 12250, - "src": "6347:20:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6347:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12248, - "mutability": "mutable", - "name": "tokens", - "nameLocation": "6377:6:57", - "nodeType": "VariableDeclaration", - "scope": 12250, - "src": "6369:14:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12247, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6369:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "6346:38:57" - }, - "src": "6305:80:57" - }, - { - "body": { - "id": 12270, - "nodeType": "Block", - "src": "6626:108:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 12261, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12253, - "src": "6650:5:57", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 12262, - "name": "_version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12255, - "src": "6657:8:57", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 12260, - "name": "__EIP712_init", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5484, - "src": "6636:13:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory,string memory)" - } - }, - "id": 12263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6636:30:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12264, - "nodeType": "ExpressionStatement", - "src": "6636:30:57" - }, - { - "expression": { - "arguments": [ - { - "id": 12266, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12253, - "src": "6711:5:57", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "id": 12267, - "name": "_version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12255, - "src": "6718:8:57", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 12265, - "name": "__AllocationManager_init_unchained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12282, - "src": "6676:34:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory,string memory)" - } - }, - "id": 12268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "6676:51:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12269, - "nodeType": "ExpressionStatement", - "src": "6676:51:57" - } - ] - }, - "documentation": { - "id": 12251, - "nodeType": "StructuredDocumentation", - "src": "6391:72:57", - "text": " @notice Initializes the contract and parent contracts" - }, - "id": 12271, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 12258, - "kind": "modifierInvocation", - "modifierName": { - "id": 12257, - "name": "onlyInitializing", - "nameLocations": [ - "6609:16:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "6609:16:57" - }, - "nodeType": "ModifierInvocation", - "src": "6609:16:57" - } - ], - "name": "__AllocationManager_init", - "nameLocation": "6530:24:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12256, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12253, - "mutability": "mutable", - "name": "_name", - "nameLocation": "6569:5:57", - "nodeType": "VariableDeclaration", - "scope": 12271, - "src": "6555:19:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12252, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6555:6:57", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12255, - "mutability": "mutable", - "name": "_version", - "nameLocation": "6590:8:57", - "nodeType": "VariableDeclaration", - "scope": 12271, - "src": "6576:22:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12254, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6576:6:57", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "6554:45:57" - }, - "returnParameters": { - "id": 12259, - "nodeType": "ParameterList", - "parameters": [], - "src": "6626:0:57" - }, - "scope": 13030, - "src": "6521:213:57", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12281, - "nodeType": "Block", - "src": "6986:2:57", - "statements": [] - }, - "documentation": { - "id": 12272, - "nodeType": "StructuredDocumentation", - "src": "6740:51:57", - "text": " @notice Initializes the contract" - }, - "id": 12282, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 12279, - "kind": "modifierInvocation", - "modifierName": { - "id": 12278, - "name": "onlyInitializing", - "nameLocations": [ - "6969:16:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "6969:16:57" - }, - "nodeType": "ModifierInvocation", - "src": "6969:16:57" - } - ], - "name": "__AllocationManager_init_unchained", - "nameLocation": "6858:34:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12277, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12274, - "mutability": "mutable", - "name": "_name", - "nameLocation": "6916:5:57", - "nodeType": "VariableDeclaration", - "scope": 12282, - "src": "6902:19:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12273, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6902:6:57", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12276, - "mutability": "mutable", - "name": "_version", - "nameLocation": "6945:8:57", - "nodeType": "VariableDeclaration", - "scope": 12282, - "src": "6931:22:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 12275, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6931:6:57", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "6892:67:57" - }, - "returnParameters": { - "id": 12280, - "nodeType": "ParameterList", - "parameters": [], - "src": "6986:0:57" - }, - "scope": 13030, - "src": "6849:139:57", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12306, - "nodeType": "Block", - "src": "7612:177:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 12295, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12285, - "src": "7648:8:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12296, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12287, - "src": "7658:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12297, - "name": "_subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12289, - "src": "7673:21:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 12292, - "name": "legacyAllocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13048, - "src": "7622:17:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" - } - }, - "id": 12294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "7640:7:57", - "memberName": "migrate", - "nodeType": "MemberAccess", - "referencedDeclaration": 11990, - "src": "7622:25:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$11933_storage_$_$_t_address_$_t_address_$_t_bytes32_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11933_storage_$_$", - "typeString": "function (mapping(address => struct LegacyAllocation.State storage ref),address,address,bytes32)" - } - }, - "id": 12298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7622:73:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12299, - "nodeType": "ExpressionStatement", - "src": "7622:73:57" - }, - { - "eventCall": { - "arguments": [ - { - "id": 12301, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12285, - "src": "7735:8:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12302, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12287, - "src": "7745:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12303, - "name": "_subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12289, - "src": "7760:21:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 12300, - "name": "LegacyAllocationMigrated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12216, - "src": "7710:24:57", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,bytes32)" - } - }, - "id": 12304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "7710:72:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12305, - "nodeType": "EmitStatement", - "src": "7705:77:57" - } - ] - }, - "documentation": { - "id": 12283, - "nodeType": "StructuredDocumentation", - "src": "6994:498:57", - "text": " @notice Imports a legacy allocation id into the subgraph service\n This is a governor only action that is required to prevent indexers from re-using allocation ids from the\n legacy staking contract. It will revert with LegacyAllocationAlreadyMigrated if the allocation has already been migrated.\n @param _indexer The address of the indexer\n @param _allocationId The id of the allocation\n @param _subgraphDeploymentId The id of the subgraph deployment" - }, - "id": 12307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_migrateLegacyAllocation", - "nameLocation": "7506:24:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12285, - "mutability": "mutable", - "name": "_indexer", - "nameLocation": "7539:8:57", - "nodeType": "VariableDeclaration", - "scope": 12307, - "src": "7531:16:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7531:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12287, - "mutability": "mutable", - "name": "_allocationId", - "nameLocation": "7557:13:57", - "nodeType": "VariableDeclaration", - "scope": 12307, - "src": "7549:21:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12286, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7549:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12289, - "mutability": "mutable", - "name": "_subgraphDeploymentId", - "nameLocation": "7580:21:57", - "nodeType": "VariableDeclaration", - "scope": 12307, - "src": "7572:29:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12288, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7572:7:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "7530:72:57" - }, - "returnParameters": { - "id": 12291, - "nodeType": "ParameterList", - "parameters": [], - "src": "7612:0:57" - }, - "scope": 13030, - "src": "7497:292:57", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12400, - "nodeType": "Block", - "src": "8760:1243:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 12332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12327, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12312, - "src": "8778:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 12330, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8803:1:57", - "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": 12329, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8795:7:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12328, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8795:7:57", - "typeDescriptions": {} - } - }, - "id": 12331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8795:10:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8778:27:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12333, - "name": "AllocationManagerInvalidZeroAllocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12238, - "src": "8807:40:57", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", - "typeString": "function () pure returns (error)" - } - }, - "id": 12334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8807:42:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 12326, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8770:7:57", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 12335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8770:80:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12336, - "nodeType": "ExpressionStatement", - "src": "8770:80:57" - }, - { - "expression": { - "arguments": [ - { - "id": 12338, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12310, - "src": "8884:8:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12339, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12312, - "src": "8894:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12340, - "name": "_allocationProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12318, - "src": "8909:16:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 12337, - "name": "_verifyAllocationProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13029, - "src": "8861:22:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes memory) view" - } - }, - "id": 12341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8861:65:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12342, - "nodeType": "ExpressionStatement", - "src": "8861:65:57" - }, - { - "expression": { - "arguments": [ - { - "id": 12346, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12312, - "src": "9112:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 12343, - "name": "legacyAllocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13048, - "src": "9079:17:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" - } - }, - "id": 12345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9097:14:57", - "memberName": "revertIfExists", - "nodeType": "MemberAccess", - "referencedDeclaration": 12034, - "src": "9079:32:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11933_storage_$_$_t_address_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11933_storage_$_$", - "typeString": "function (mapping(address => struct LegacyAllocation.State storage ref),address) view" - } - }, - "id": 12347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9079:47:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12348, - "nodeType": "ExpressionStatement", - "src": "9079:47:57" - }, - { - "assignments": [ - 12353 - ], - "declarations": [ - { - "constant": false, - "id": 12353, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "9160:10:57", - "nodeType": "VariableDeclaration", - "scope": 12400, - "src": "9136:34:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 12352, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12351, - "name": "Allocation.State", - "nameLocations": [ - "9136:10:57", - "9147:5:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "9136:16:57" - }, - "referencedDeclaration": 11307, - "src": "9136:16:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 12366, - "initialValue": { - "arguments": [ - { - "id": 12356, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12310, - "src": "9205:8:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12357, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12312, - "src": "9227:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12358, - "name": "_subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12314, - "src": "9254:21:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 12359, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12316, - "src": "9289:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 12363, - "name": "_subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12314, - "src": "9360:21:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12360, - "name": "_graphRewardsManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4590, - "src": "9310:20:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$438_$", - "typeString": "function () view returns (contract IRewardsManager)" - } - }, - "id": 12361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9310:22:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "id": 12362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9333:26:57", - "memberName": "onSubgraphAllocationUpdate", - "nodeType": "MemberAccess", - "referencedDeclaration": 437, - "src": "9310:49:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) external returns (uint256)" - } - }, - "id": 12364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9310:72:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 12354, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "9173:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9185:6:57", - "memberName": "create", - "nodeType": "MemberAccess", - "referencedDeclaration": 11382, - "src": "9173:18:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_struct$_State_$11307_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address,address,bytes32,uint256,uint256) returns (struct Allocation.State memory)" - } - }, - "id": 12365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9173:219:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9136:256:57" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12370, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "9577:13:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 12371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9577:15:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - { - "id": 12372, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12310, - "src": "9594:8:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12373, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12316, - "src": "9604:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 12374, - "name": "_delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12320, - "src": "9613:16:57", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 12367, - "name": "allocationProvisionTracker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13053, - "src": "9545:26:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9572:4:57", - "memberName": "lock", - "nodeType": "MemberAccess", - "referencedDeclaration": 1480, - "src": "9545:31:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_uint256_$_$_t_contract$_IHorizonStaking_$2235_$_t_address_$_t_uint256_$_t_uint32_$returns$__$attached_to$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "function (mapping(address => uint256),contract IHorizonStaking,address,uint256,uint32)" - } - }, - "id": 12375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9545:85:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12376, - "nodeType": "ExpressionStatement", - "src": "9545:85:57" - }, - { - "expression": { - "id": 12388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 12377, - "name": "subgraphAllocatedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13066, - "src": "9710:23:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 12380, - "indexExpression": { - "expression": { - "id": 12378, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12353, - "src": "9734:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12379, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9745:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "9734:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9710:56:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 12381, - "name": "subgraphAllocatedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13066, - "src": "9781:23:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 12384, - "indexExpression": { - "expression": { - "id": 12382, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12353, - "src": "9805:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12383, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9816:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "9805:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9781:56:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "expression": { - "id": 12385, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12353, - "src": "9852:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12386, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9863:6:57", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11296, - "src": "9852:17:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9781:88:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9710:159:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12389, - "nodeType": "ExpressionStatement", - "src": "9710:159:57" - }, - { - "eventCall": { - "arguments": [ - { - "id": 12391, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12310, - "src": "9903:8:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12392, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12312, - "src": "9913:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12393, - "name": "_subgraphDeploymentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12314, - "src": "9928:21:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 12394, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12353, - "src": "9951:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12395, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "9962:6:57", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11296, - "src": "9951:17:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12390, - "name": "AllocationCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12164, - "src": "9885:17:57", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (address,address,bytes32,uint256)" - } - }, - "id": 12396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "9885:84:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12397, - "nodeType": "EmitStatement", - "src": "9880:89:57" - }, - { - "expression": { - "id": 12398, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12353, - "src": "9986:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "functionReturnParameters": 12325, - "id": 12399, - "nodeType": "Return", - "src": "9979:17:57" - } - ] - }, - "documentation": { - "id": 12308, - "nodeType": "StructuredDocumentation", - "src": "7795:699:57", - "text": " @notice Create an allocation\n @dev The `_allocationProof` is a 65-bytes Ethereum signed message of `keccak256(indexerAddress,allocationId)`\n Requirements:\n - `_allocationId` must not be the zero address\n Emits a {AllocationCreated} event\n @param _indexer The address of the indexer\n @param _allocationId The id of the allocation to be created\n @param _subgraphDeploymentId The subgraph deployment Id\n @param _tokens The amount of tokens to allocate\n @param _allocationProof Signed proof of allocation id address ownership\n @param _delegationRatio The delegation ratio to consider when locking tokens" - }, - "id": 12401, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_allocate", - "nameLocation": "8508:9:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12310, - "mutability": "mutable", - "name": "_indexer", - "nameLocation": "8535:8:57", - "nodeType": "VariableDeclaration", - "scope": 12401, - "src": "8527:16:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8527:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12312, - "mutability": "mutable", - "name": "_allocationId", - "nameLocation": "8561:13:57", - "nodeType": "VariableDeclaration", - "scope": 12401, - "src": "8553:21:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8553:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12314, - "mutability": "mutable", - "name": "_subgraphDeploymentId", - "nameLocation": "8592:21:57", - "nodeType": "VariableDeclaration", - "scope": 12401, - "src": "8584:29:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12313, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8584:7:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12316, - "mutability": "mutable", - "name": "_tokens", - "nameLocation": "8631:7:57", - "nodeType": "VariableDeclaration", - "scope": 12401, - "src": "8623:15:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8623:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12318, - "mutability": "mutable", - "name": "_allocationProof", - "nameLocation": "8661:16:57", - "nodeType": "VariableDeclaration", - "scope": 12401, - "src": "8648:29:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 12317, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8648:5:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12320, - "mutability": "mutable", - "name": "_delegationRatio", - "nameLocation": "8694:16:57", - "nodeType": "VariableDeclaration", - "scope": 12401, - "src": "8687:23:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12319, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "8687:6:57", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "8517:199:57" - }, - "returnParameters": { - "id": 12325, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12324, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12401, - "src": "8735:23:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 12323, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12322, - "name": "Allocation.State", - "nameLocations": [ - "8735:10:57", - "8746:5:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "8735:16:57" - }, - "referencedDeclaration": 11307, - "src": "8735:16:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "8734:25:57" - }, - "scope": 13030, - "src": "8499:1504:57", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12656, - "nodeType": "Block", - "src": "11103:3179:57", - "statements": [ - { - "assignments": [ - 12417 - ], - "declarations": [ - { - "constant": false, - "id": 12417, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "11137:10:57", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "11113:34:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 12416, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12415, - "name": "Allocation.State", - "nameLocations": [ - "11113:10:57", - "11124:5:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "11113:16:57" - }, - "referencedDeclaration": 11307, - "src": "11113:16:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 12422, - "initialValue": { - "arguments": [ - { - "id": 12420, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12404, - "src": "11166:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 12418, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "11150:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11162:3:57", - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 11554, - "src": "11150:15:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" - } - }, - "id": 12421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11150:30:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11113:67:57" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 12424, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "11198:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12425, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11209:6:57", - "memberName": "isOpen", - "nodeType": "MemberAccess", - "referencedDeclaration": 11621, - "src": "11198:17:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 12426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11198:19:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 12428, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12404, - "src": "11253:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12427, - "name": "AllocationManagerAllocationClosed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12243, - "src": "11219:33:57", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 12429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11219:48:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 12423, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11190:7:57", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 12430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11190:78:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12431, - "nodeType": "ExpressionStatement", - "src": "11190:78:57" - }, - { - "assignments": [ - 12433 - ], - "declarations": [ - { - "constant": false, - "id": 12433, - "mutability": "mutable", - "name": "tokensRewards", - "nameLocation": "11346:13:57", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "11338:21:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12432, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11338:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 12459, - "initialValue": { - "condition": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 12443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11363:36:57", - "subExpression": { - "arguments": [ - { - "id": 12436, - "name": "maxPOIStaleness", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13056, - "src": "11383:15:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 12434, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "11364:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12435, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11375:7:57", - "memberName": "isStale", - "nodeType": "MemberAccess", - "referencedDeclaration": 11587, - "src": "11364:18:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_State_$11307_memory_ptr_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory,uint256) view returns (bool)" - } - }, - "id": 12437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11364:35:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "id": 12442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11415:26:57", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 12439, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "11416:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12440, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11427:12:57", - "memberName": "isAltruistic", - "nodeType": "MemberAccess", - "referencedDeclaration": 11640, - "src": "11416:23:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 12441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11416:25:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11363:78:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 12449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12444, - "name": "_poi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12406, - "src": "11457:4:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 12447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11473:1:57", - "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": 12446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11465:7:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 12445, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11465:7:57", - "typeDescriptions": {} - } - }, - "id": 12448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11465:10:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "11457:18:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11363:112:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 12451, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11362:114:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "hexValue": "30", - "id": 12457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11555:1:57", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 12458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "11362:194:57", - "trueExpression": { - "arguments": [ - { - "id": 12455, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12404, - "src": "11526:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12452, - "name": "_graphRewardsManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4590, - "src": "11491:20:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$438_$", - "typeString": "function () view returns (contract IRewardsManager)" - } - }, - "id": 12453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11491:22:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "id": 12454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11514:11:57", - "memberName": "takeRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 423, - "src": "11491:34:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) external returns (uint256)" - } - }, - "id": 12456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11491:49:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11338:218:57" - }, - { - "expression": { - "arguments": [ - { - "id": 12463, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12404, - "src": "11717:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "expression": { - "id": 12467, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "11794:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12468, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11805:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "11794:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12464, - "name": "_graphRewardsManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4590, - "src": "11744:20:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$438_$", - "typeString": "function () view returns (contract IRewardsManager)" - } - }, - "id": 12465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11744:22:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "id": 12466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11767:26:57", - "memberName": "onSubgraphAllocationUpdate", - "nodeType": "MemberAccess", - "referencedDeclaration": 437, - "src": "11744:49:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) external returns (uint256)" - } - }, - "id": 12469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11744:82:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 12460, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "11676:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11688:15:57", - "memberName": "snapshotRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 11459, - "src": "11676:27:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$_t_uint256_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address,uint256)" - } - }, - "id": 12470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11676:160:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12471, - "nodeType": "ExpressionStatement", - "src": "11676:160:57" - }, - { - "expression": { - "arguments": [ - { - "id": 12475, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12404, - "src": "11869:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 12472, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "11846:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11858:10:57", - "memberName": "presentPOI", - "nodeType": "MemberAccess", - "referencedDeclaration": 11420, - "src": "11846:22:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address)" - } - }, - "id": 12476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11846:37:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12477, - "nodeType": "ExpressionStatement", - "src": "11846:37:57" - }, - { - "expression": { - "arguments": [ - { - "id": 12481, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12404, - "src": "11988:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 12478, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "11956:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "11968:19:57", - "memberName": "clearPendingRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 11496, - "src": "11956:31:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address)" - } - }, - "id": 12482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "11956:46:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12483, - "nodeType": "ExpressionStatement", - "src": "11956:46:57" - }, - { - "assignments": [ - 12485 - ], - "declarations": [ - { - "constant": false, - "id": 12485, - "mutability": "mutable", - "name": "tokensIndexerRewards", - "nameLocation": "12021:20:57", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "12013:28:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12484, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12013:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 12487, - "initialValue": { - "hexValue": "30", - "id": 12486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12044:1:57", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12013:32:57" - }, - { - "assignments": [ - 12489 - ], - "declarations": [ - { - "constant": false, - "id": 12489, - "mutability": "mutable", - "name": "tokensDelegationRewards", - "nameLocation": "12063:23:57", - "nodeType": "VariableDeclaration", - "scope": 12656, - "src": "12055:31:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12488, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12055:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 12491, - "initialValue": { - "hexValue": "30", - "id": 12490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12089:1:57", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12055:35:57" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12492, - "name": "tokensRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12433, - "src": "12104:13:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 12493, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12121:1:57", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12104:18:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 12626, - "nodeType": "IfStatement", - "src": "12100:1612:57", - "trueBody": { - "id": 12625, - "nodeType": "Block", - "src": "12124:1588:57", - "statements": [ - { - "assignments": [ - 12496 - ], - "declarations": [ - { - "constant": false, - "id": 12496, - "mutability": "mutable", - "name": "delegatorCut", - "nameLocation": "12194:12:57", - "nodeType": "VariableDeclaration", - "scope": 12625, - "src": "12186:20:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12495, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12186:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 12510, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 12500, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "12262:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12501, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12273:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "12262:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 12504, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "12306:4:57", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AllocationManager_$13030", - "typeString": "contract AllocationManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AllocationManager_$13030", - "typeString": "contract AllocationManager" - } - ], - "id": 12503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12298:7:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12502, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12298:7:57", - "typeDescriptions": {} - } - }, - "id": 12505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12298:13:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "expression": { - "id": 12506, - "name": "IGraphPayments", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2211, - "src": "12329:14:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IGraphPayments_$2211_$", - "typeString": "type(contract IGraphPayments)" - } - }, - "id": 12507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12344:12:57", - "memberName": "PaymentTypes", - "nodeType": "MemberAccess", - "referencedDeclaration": 2166, - "src": "12329:27:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_PaymentTypes_$2166_$", - "typeString": "type(enum IGraphPayments.PaymentTypes)" - } - }, - "id": 12508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "12357:15:57", - "memberName": "IndexingRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 2165, - "src": "12329:43:57", - "typeDescriptions": { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_enum$_PaymentTypes_$2166", - "typeString": "enum IGraphPayments.PaymentTypes" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12497, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "12209:13:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 12498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12209:15:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 12499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12225:19:57", - "memberName": "getDelegationFeeCut", - "nodeType": "MemberAccess", - "referencedDeclaration": 2773, - "src": "12209:35:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$_t_enum$_PaymentTypes_$2166_$returns$_t_uint256_$", - "typeString": "function (address,address,enum IGraphPayments.PaymentTypes) view external returns (uint256)" - } - }, - "id": 12509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12209:177:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12186:200:57" - }, - { - "assignments": [ - 12515 - ], - "declarations": [ - { - "constant": false, - "id": 12515, - "mutability": "mutable", - "name": "delegationPool", - "nameLocation": "12443:14:57", - "nodeType": "VariableDeclaration", - "scope": 12625, - "src": "12400:57:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DelegationPool_$3748_memory_ptr", - "typeString": "struct IHorizonStakingTypes.DelegationPool" - }, - "typeName": { - "id": 12514, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12513, - "name": "IHorizonStakingTypes.DelegationPool", - "nameLocations": [ - "12400:20:57", - "12421:14:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 3748, - "src": "12400:35:57" - }, - "referencedDeclaration": 3748, - "src": "12400:35:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DelegationPool_$3748_storage_ptr", - "typeString": "struct IHorizonStakingTypes.DelegationPool" - } - }, - "visibility": "internal" - } - ], - "id": 12526, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 12519, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "12511:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12520, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12522:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "12511:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 12523, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "12555:4:57", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AllocationManager_$13030", - "typeString": "contract AllocationManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AllocationManager_$13030", - "typeString": "contract AllocationManager" - } - ], - "id": 12522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12547:7:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12521, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12547:7:57", - "typeDescriptions": {} - } - }, - "id": 12524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12547:13:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12516, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "12460:13:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 12517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12460:15:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 12518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12476:17:57", - "memberName": "getDelegationPool", - "nodeType": "MemberAccess", - "referencedDeclaration": 2747, - "src": "12460:33:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_struct$_DelegationPool_$3748_memory_ptr_$", - "typeString": "function (address,address) view external returns (struct IHorizonStakingTypes.DelegationPool memory)" - } - }, - "id": 12525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12460:114:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_DelegationPool_$3748_memory_ptr", - "typeString": "struct IHorizonStakingTypes.DelegationPool memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12400:174:57" - }, - { - "expression": { - "id": 12538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 12527, - "name": "tokensDelegationRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12489, - "src": "12691:23:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 12528, - "name": "delegationPool", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12515, - "src": "12717:14:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DelegationPool_$3748_memory_ptr", - "typeString": "struct IHorizonStakingTypes.DelegationPool memory" - } - }, - "id": 12529, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12732:6:57", - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 3741, - "src": "12717:21:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 12530, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12741:1:57", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12717:25:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "hexValue": "30", - "id": 12536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12782:1:57", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 12537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "12717:66:57", - "trueExpression": { - "arguments": [ - { - "id": 12534, - "name": "delegatorCut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12496, - "src": "12766:12:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 12532, - "name": "tokensRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12433, - "src": "12745:13:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12759:6:57", - "memberName": "mulPPM", - "nodeType": "MemberAccess", - "referencedDeclaration": 4219, - "src": "12745:20:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 12535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12745:34:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12691:92:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12539, - "nodeType": "ExpressionStatement", - "src": "12691:92:57" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12540, - "name": "tokensDelegationRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12489, - "src": "12801:23:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 12541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12827:1:57", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12801:27:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 12567, - "nodeType": "IfStatement", - "src": "12797:251:57", - "trueBody": { - "id": 12566, - "nodeType": "Block", - "src": "12830:218:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12548, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "12878:13:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 12549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12878:15:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - ], - "id": 12547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12870:7:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12870:7:57", - "typeDescriptions": {} - } - }, - "id": 12550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12870:24:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12551, - "name": "tokensDelegationRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12489, - "src": "12896:23:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12543, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4530, - "src": "12848:11:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$518_$", - "typeString": "function () view returns (contract IGraphToken)" - } - }, - "id": 12544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12848:13:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 12545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12862:7:57", - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 5861, - "src": "12848:21:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 12552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12848:72:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 12553, - "nodeType": "ExpressionStatement", - "src": "12848:72:57" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 12557, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "12974:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12558, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12985:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "12974:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 12561, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "13002:4:57", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AllocationManager_$13030", - "typeString": "contract AllocationManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AllocationManager_$13030", - "typeString": "contract AllocationManager" - } - ], - "id": 12560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12994:7:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12559, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12994:7:57", - "typeDescriptions": {} - } - }, - "id": 12562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12994:13:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12563, - "name": "tokensDelegationRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12489, - "src": "13009:23:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12554, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "12938:13:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 12555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12938:15:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 12556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "12954:19:57", - "memberName": "addToDelegationPool", - "nodeType": "MemberAccess", - "referencedDeclaration": 3525, - "src": "12938:35:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 12564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "12938:95:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12565, - "nodeType": "ExpressionStatement", - "src": "12938:95:57" - } - ] - } - }, - { - "expression": { - "id": 12572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 12568, - "name": "tokensIndexerRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12485, - "src": "13107:20:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12569, - "name": "tokensRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12433, - "src": "13130:13:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 12570, - "name": "tokensDelegationRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12489, - "src": "13146:23:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13130:39:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13107:62:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12573, - "nodeType": "ExpressionStatement", - "src": "13107:62:57" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12574, - "name": "tokensIndexerRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12485, - "src": "13187:20:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 12575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13210:1:57", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13187:24:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 12624, - "nodeType": "IfStatement", - "src": "13183:519:57", - "trueBody": { - "id": 12623, - "nodeType": "Block", - "src": "13213:489:57", - "statements": [ - { - "assignments": [ - 12578 - ], - "declarations": [ - { - "constant": false, - "id": 12578, - "mutability": "mutable", - "name": "rewardsDestination", - "nameLocation": "13239:18:57", - "nodeType": "VariableDeclaration", - "scope": 12623, - "src": "13231:26:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12577, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13231:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 12583, - "initialValue": { - "baseExpression": { - "id": 12579, - "name": "rewardsDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13061, - "src": "13260:18:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 12582, - "indexExpression": { - "expression": { - "id": 12580, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "13279:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12581, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13290:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "13279:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13260:38:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13231:67:57" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 12589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12584, - "name": "rewardsDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12578, - "src": "13320:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "hexValue": "30", - "id": 12587, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13350:1:57", - "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": 12586, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13342:7:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12585, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13342:7:57", - "typeDescriptions": {} - } - }, - "id": 12588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13342:10:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "13320:32:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 12621, - "nodeType": "Block", - "src": "13581:107:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 12617, - "name": "rewardsDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12578, - "src": "13628:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12618, - "name": "tokensIndexerRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12485, - "src": "13648:20:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12614, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4530, - "src": "13603:11:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$518_$", - "typeString": "function () view returns (contract IGraphToken)" - } - }, - "id": 12615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13603:13:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 12616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13617:10:57", - "memberName": "pushTokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 578, - "src": "13603:24:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IGraphToken_$518_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IGraphToken_$518_$", - "typeString": "function (contract IGraphToken,address,uint256)" - } - }, - "id": 12619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13603:66:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12620, - "nodeType": "ExpressionStatement", - "src": "13603:66:57" - } - ] - }, - "id": 12622, - "nodeType": "IfStatement", - "src": "13316:372:57", - "trueBody": { - "id": 12613, - "nodeType": "Block", - "src": "13354:221:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12595, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "13406:13:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 12596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13406:15:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - ], - "id": 12594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13398:7:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12593, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13398:7:57", - "typeDescriptions": {} - } - }, - "id": 12597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13398:24:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12598, - "name": "tokensIndexerRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12485, - "src": "13424:20:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12590, - "name": "_graphToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4530, - "src": "13376:11:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IGraphToken_$518_$", - "typeString": "function () view returns (contract IGraphToken)" - } - }, - "id": 12591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13376:13:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IGraphToken_$518", - "typeString": "contract IGraphToken" - } - }, - "id": 12592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13390:7:57", - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 5861, - "src": "13376:21:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 12599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13376:69:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 12600, - "nodeType": "ExpressionStatement", - "src": "13376:69:57" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 12604, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "13500:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13511:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "13500:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 12608, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "13528:4:57", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AllocationManager_$13030", - "typeString": "contract AllocationManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AllocationManager_$13030", - "typeString": "contract AllocationManager" - } - ], - "id": 12607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13520:7:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 12606, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13520:7:57", - "typeDescriptions": {} - } - }, - "id": 12609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13520:13:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12610, - "name": "tokensIndexerRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12485, - "src": "13535:20:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12601, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "13467:13:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 12602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13467:15:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - "id": 12603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13483:16:57", - "memberName": "stakeToProvision", - "nodeType": "MemberAccess", - "referencedDeclaration": 3417, - "src": "13467:32:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 12611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13467:89:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12612, - "nodeType": "ExpressionStatement", - "src": "13467:89:57" - } - ] - } - } - ] - } - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 12628, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "13765:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12629, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13776:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "13765:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12630, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12404, - "src": "13797:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 12631, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "13824:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12632, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13835:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "13824:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 12633, - "name": "tokensRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12433, - "src": "13869:13:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 12634, - "name": "tokensIndexerRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12485, - "src": "13896:20:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 12635, - "name": "tokensDelegationRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12489, - "src": "13930:23:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 12636, - "name": "_poi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12406, - "src": "13967:4:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12637, - "name": "_graphEpochManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4580, - "src": "13985:18:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IEpochManager_$220_$", - "typeString": "function () view returns (contract IEpochManager)" - } - }, - "id": 12638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13985:20:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IEpochManager_$220", - "typeString": "contract IEpochManager" - } - }, - "id": 12639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14006:12:57", - "memberName": "currentEpoch", - "nodeType": "MemberAccess", - "referencedDeclaration": 197, - "src": "13985:33:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 12640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13985:35:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12627, - "name": "IndexingRewardsCollected", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12183, - "src": "13727:24:57", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (address,address,bytes32,uint256,uint256,uint256,bytes32,uint256)" - } - }, - "id": 12641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13727:303:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12642, - "nodeType": "EmitStatement", - "src": "13722:308:57" - }, - { - "condition": { - "arguments": [ - { - "expression": { - "id": 12644, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12417, - "src": "14150:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12645, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14161:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "14150:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12646, - "name": "_delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12408, - "src": "14170:16:57", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 12643, - "name": "_isOverAllocated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12997, - "src": "14133:16:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint32_$returns$_t_bool_$", - "typeString": "function (address,uint32) view returns (bool)" - } - }, - "id": 12647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14133:54:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 12653, - "nodeType": "IfStatement", - "src": "14129:116:57", - "trueBody": { - "id": 12652, - "nodeType": "Block", - "src": "14189:56:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 12649, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12404, - "src": "14220:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12648, - "name": "_closeAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12890, - "src": "14203:16:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 12650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14203:31:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12651, - "nodeType": "ExpressionStatement", - "src": "14203:31:57" - } - ] - } - }, - { - "expression": { - "id": 12654, - "name": "tokensRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12433, - "src": "14262:13:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 12412, - "id": 12655, - "nodeType": "Return", - "src": "14255:20:57" - } - ] - }, - "documentation": { - "id": 12402, - "nodeType": "StructuredDocumentation", - "src": "10009:937:57", - "text": " @notice Present a POI to collect indexing rewards for an allocation\n This function will mint indexing rewards using the {RewardsManager} and distribute them to the indexer and delegators.\n To qualify for indexing rewards:\n - POI must be non-zero\n - POI must not be stale, i.e: older than `maxPOIStaleness`\n - allocation must not be altruistic (allocated tokens = 0)\n Note that indexers are required to periodically (at most every `maxPOIStaleness`) present POIs to collect rewards.\n Rewards will not be issued to stale POIs, which means that indexers are advised to present a zero POI if they are\n unable to present a valid one to prevent being locked out of future rewards.\n Emits a {IndexingRewardsCollected} event.\n @param _allocationId The id of the allocation to collect rewards for\n @param _poi The POI being presented" - }, - "id": 12657, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_collectIndexingRewards", - "nameLocation": "10960:23:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12409, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12404, - "mutability": "mutable", - "name": "_allocationId", - "nameLocation": "11001:13:57", - "nodeType": "VariableDeclaration", - "scope": 12657, - "src": "10993:21:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10993:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12406, - "mutability": "mutable", - "name": "_poi", - "nameLocation": "11032:4:57", - "nodeType": "VariableDeclaration", - "scope": 12657, - "src": "11024:12:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12405, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11024:7:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12408, - "mutability": "mutable", - "name": "_delegationRatio", - "nameLocation": "11053:16:57", - "nodeType": "VariableDeclaration", - "scope": 12657, - "src": "11046:23:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12407, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "11046:6:57", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "10983:92:57" - }, - "returnParameters": { - "id": 12412, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12411, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12657, - "src": "11094:7:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11094:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11093:9:57" - }, - "scope": 13030, - "src": "10951:3331:57", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12822, - "nodeType": "Block", - "src": "15222:1904:57", - "statements": [ - { - "assignments": [ - 12674 - ], - "declarations": [ - { - "constant": false, - "id": 12674, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "15256:10:57", - "nodeType": "VariableDeclaration", - "scope": 12822, - "src": "15232:34:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 12673, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12672, - "name": "Allocation.State", - "nameLocations": [ - "15232:10:57", - "15243:5:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "15232:16:57" - }, - "referencedDeclaration": 11307, - "src": "15232:16:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 12679, - "initialValue": { - "arguments": [ - { - "id": 12677, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "15285:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 12675, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "15269:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15281:3:57", - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 11554, - "src": "15269:15:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" - } - }, - "id": 12678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15269:30:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15232:67:57" - }, - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 12681, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "15317:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12682, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15328:6:57", - "memberName": "isOpen", - "nodeType": "MemberAccess", - "referencedDeclaration": 11621, - "src": "15317:17:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 12683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15317:19:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 12685, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "15372:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12684, - "name": "AllocationManagerAllocationClosed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12243, - "src": "15338:33:57", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", - "typeString": "function (address) pure returns (error)" - } - }, - "id": 12686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15338:48:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 12680, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "15309:7:57", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 12687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15309:78:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12688, - "nodeType": "ExpressionStatement", - "src": "15309:78:57" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12690, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "15405:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 12691, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "15416:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12692, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15427:6:57", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11296, - "src": "15416:17:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15405:28:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 12695, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "15471:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12696, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "15486:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12694, - "name": "AllocationManagerAllocationSameSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12250, - "src": "15435:35:57", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", - "typeString": "function (address,uint256) pure returns (error)" - } - }, - "id": 12697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15435:59:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 12689, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "15397:7:57", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 12698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15397:98:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12699, - "nodeType": "ExpressionStatement", - "src": "15397:98:57" - }, - { - "assignments": [ - 12701 - ], - "declarations": [ - { - "constant": false, - "id": 12701, - "mutability": "mutable", - "name": "oldTokens", - "nameLocation": "15550:9:57", - "nodeType": "VariableDeclaration", - "scope": 12822, - "src": "15542:17:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12700, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15542:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 12704, - "initialValue": { - "expression": { - "id": 12702, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "15562:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12703, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15573:6:57", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11296, - "src": "15562:17:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15542:37:57" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12705, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "15593:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 12706, - "name": "oldTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12701, - "src": "15603:9:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15593:19:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 12732, - "nodeType": "Block", - "src": "15752:100:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 12725, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "15801:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12726, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15812:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "15801:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12727, - "name": "oldTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12701, - "src": "15821:9:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 12728, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "15833:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15821:19:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 12722, - "name": "allocationProvisionTracker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13053, - "src": "15766:26:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15793:7:57", - "memberName": "release", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "15766:34:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_uint256_$_$_t_address_$_t_uint256_$returns$__$attached_to$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "function (mapping(address => uint256),address,uint256)" - } - }, - "id": 12730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15766:75:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12731, - "nodeType": "ExpressionStatement", - "src": "15766:75:57" - } - ] - }, - "id": 12733, - "nodeType": "IfStatement", - "src": "15589:263:57", - "trueBody": { - "id": 12721, - "nodeType": "Block", - "src": "15614:132:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12711, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "15660:13:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 12712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15660:15:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - { - "expression": { - "id": 12713, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "15677:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12714, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15688:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "15677:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12715, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "15697:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 12716, - "name": "oldTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12701, - "src": "15707:9:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15697:19:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 12718, - "name": "_delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12664, - "src": "15718:16:57", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 12708, - "name": "allocationProvisionTracker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13053, - "src": "15628:26:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15655:4:57", - "memberName": "lock", - "nodeType": "MemberAccess", - "referencedDeclaration": 1480, - "src": "15628:31:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_uint256_$_$_t_contract$_IHorizonStaking_$2235_$_t_address_$_t_uint256_$_t_uint32_$returns$__$attached_to$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "function (mapping(address => uint256),contract IHorizonStaking,address,uint256,uint32)" - } - }, - "id": 12719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15628:107:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12720, - "nodeType": "ExpressionStatement", - "src": "15628:107:57" - } - ] - } - }, - { - "assignments": [ - 12735 - ], - "declarations": [ - { - "constant": false, - "id": 12735, - "mutability": "mutable", - "name": "accRewardsPerAllocatedToken", - "nameLocation": "15965:27:57", - "nodeType": "VariableDeclaration", - "scope": 12822, - "src": "15957:35:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12734, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15957:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 12742, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 12739, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "16058:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12740, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16069:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "16058:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12736, - "name": "_graphRewardsManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4590, - "src": "15995:20:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$438_$", - "typeString": "function () view returns (contract IRewardsManager)" - } - }, - "id": 12737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15995:22:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "id": 12738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16018:26:57", - "memberName": "onSubgraphAllocationUpdate", - "nodeType": "MemberAccess", - "referencedDeclaration": 437, - "src": "15995:49:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) external returns (uint256)" - } - }, - "id": 12741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15995:104:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15957:142:57" - }, - { - "assignments": [ - 12744 - ], - "declarations": [ - { - "constant": false, - "id": 12744, - "mutability": "mutable", - "name": "accRewardsPerAllocatedTokenPending", - "nameLocation": "16117:34:57", - "nodeType": "VariableDeclaration", - "scope": 12822, - "src": "16109:42:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12743, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16109:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 12755, - "initialValue": { - "condition": { - "id": 12748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16154:26:57", - "subExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 12745, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "16155:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12746, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16166:12:57", - "memberName": "isAltruistic", - "nodeType": "MemberAccess", - "referencedDeclaration": 11640, - "src": "16155:23:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_State_$11307_memory_ptr_$returns$_t_bool_$attached_to$_t_struct$_State_$11307_memory_ptr_$", - "typeString": "function (struct Allocation.State memory) pure returns (bool)" - } - }, - "id": 12747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16155:25:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "hexValue": "30", - "id": 12753, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16278:1:57", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "id": 12754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "16154:125:57", - "trueExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12749, - "name": "accRewardsPerAllocatedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12735, - "src": "16195:27:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "expression": { - "id": 12750, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "16225:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12751, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16236:27:57", - "memberName": "accRewardsPerAllocatedToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 11304, - "src": "16225:38:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16195:68:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16109:170:57" - }, - { - "expression": { - "id": 12761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 12756, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "16323:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12758, - "indexExpression": { - "id": 12757, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "16335:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16323:26:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage", - "typeString": "struct Allocation.State storage ref" - } - }, - "id": 12759, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "16350:6:57", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11296, - "src": "16323:33:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 12760, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "16359:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16323:43:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12762, - "nodeType": "ExpressionStatement", - "src": "16323:43:57" - }, - { - "expression": { - "id": 12768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 12763, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "16376:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12765, - "indexExpression": { - "id": 12764, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "16388:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16376:26:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage", - "typeString": "struct Allocation.State storage ref" - } - }, - "id": 12766, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "16403:27:57", - "memberName": "accRewardsPerAllocatedToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 11304, - "src": "16376:54:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 12767, - "name": "accRewardsPerAllocatedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12735, - "src": "16433:27:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16376:84:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12769, - "nodeType": "ExpressionStatement", - "src": "16376:84:57" - }, - { - "expression": { - "id": 12780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "baseExpression": { - "id": 12770, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "16470:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12772, - "indexExpression": { - "id": 12771, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "16482:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16470:26:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage", - "typeString": "struct Allocation.State storage ref" - } - }, - "id": 12773, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "16497:17:57", - "memberName": "accRewardsPending", - "nodeType": "MemberAccess", - "referencedDeclaration": 11306, - "src": "16470:44:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "arguments": [ - { - "id": 12777, - "name": "oldTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12701, - "src": "16566:9:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 12778, - "name": "accRewardsPerAllocatedTokenPending", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12744, - "src": "16589:34:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12774, - "name": "_graphRewardsManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4590, - "src": "16518:20:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$438_$", - "typeString": "function () view returns (contract IRewardsManager)" - } - }, - "id": 12775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16518:22:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "id": 12776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16541:11:57", - "memberName": "calcRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 411, - "src": "16518:34:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure external returns (uint256)" - } - }, - "id": 12779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16518:115:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16470:163:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12781, - "nodeType": "ExpressionStatement", - "src": "16470:163:57" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12782, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "16717:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 12783, - "name": "oldTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12701, - "src": "16727:9:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16717:19:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 12806, - "nodeType": "Block", - "src": "16850:106:57", - "statements": [ - { - "expression": { - "id": 12804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 12796, - "name": "subgraphAllocatedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13066, - "src": "16864:23:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 12799, - "indexExpression": { - "expression": { - "id": 12797, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "16888:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12798, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16899:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "16888:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16864:56:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12800, - "name": "oldTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12701, - "src": "16925:9:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 12801, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "16937:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16925:19:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 12803, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16924:21:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16864:81:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12805, - "nodeType": "ExpressionStatement", - "src": "16864:81:57" - } - ] - }, - "id": 12807, - "nodeType": "IfStatement", - "src": "16713:243:57", - "trueBody": { - "id": 12795, - "nodeType": "Block", - "src": "16738:106:57", - "statements": [ - { - "expression": { - "id": 12793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 12785, - "name": "subgraphAllocatedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13066, - "src": "16752:23:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 12788, - "indexExpression": { - "expression": { - "id": 12786, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "16776:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12787, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16787:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "16776:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16752:56:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 12789, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "16813:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 12790, - "name": "oldTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12701, - "src": "16823:9:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16813:19:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 12792, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "16812:21:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16752:81:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12794, - "nodeType": "ExpressionStatement", - "src": "16752:81:57" - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 12809, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "16989:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12810, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17000:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "16989:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12811, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "17009:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 12812, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12674, - "src": "17024:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12813, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17035:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "17024:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 12814, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12662, - "src": "17057:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 12815, - "name": "oldTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12701, - "src": "17066:9:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12808, - "name": "AllocationResized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12196, - "src": "16971:17:57", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,bytes32,uint256,uint256)" - } - }, - "id": 12816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16971:105:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12817, - "nodeType": "EmitStatement", - "src": "16966:110:57" - }, - { - "expression": { - "baseExpression": { - "id": 12818, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "17093:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12820, - "indexExpression": { - "id": 12819, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12660, - "src": "17105:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17093:26:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage", - "typeString": "struct Allocation.State storage ref" - } - }, - "functionReturnParameters": 12669, - "id": 12821, - "nodeType": "Return", - "src": "17086:33:57" - } - ] - }, - "documentation": { - "id": 12658, - "nodeType": "StructuredDocumentation", - "src": "14288:764:57", - "text": " @notice Resize an allocation\n @dev Will lock or release tokens in the provision tracker depending on the new allocation size.\n Rewards accrued but not issued before the resize will be accounted for as pending rewards.\n These will be paid out when the indexer presents a POI.\n Requirements:\n - `_indexer` must be the owner of the allocation\n - Allocation must be open\n - `_tokens` must be different from the current allocation size\n Emits a {AllocationResized} event.\n @param _allocationId The id of the allocation to be resized\n @param _tokens The new amount of tokens to allocate\n @param _delegationRatio The delegation ratio to consider when locking tokens" - }, - "id": 12823, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_resizeAllocation", - "nameLocation": "15066:17:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12665, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12660, - "mutability": "mutable", - "name": "_allocationId", - "nameLocation": "15101:13:57", - "nodeType": "VariableDeclaration", - "scope": 12823, - "src": "15093:21:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12659, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15093:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12662, - "mutability": "mutable", - "name": "_tokens", - "nameLocation": "15132:7:57", - "nodeType": "VariableDeclaration", - "scope": 12823, - "src": "15124:15:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12661, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15124:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12664, - "mutability": "mutable", - "name": "_delegationRatio", - "nameLocation": "15156:16:57", - "nodeType": "VariableDeclaration", - "scope": 12823, - "src": "15149:23:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12663, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "15149:6:57", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "15083:95:57" - }, - "returnParameters": { - "id": 12669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12668, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12823, - "src": "15197:23:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 12667, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12666, - "name": "Allocation.State", - "nameLocations": [ - "15197:10:57", - "15208:5:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "15197:16:57" - }, - "referencedDeclaration": 11307, - "src": "15197:16:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "15196:25:57" - }, - "scope": 13030, - "src": "15057:2069:57", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12889, - "nodeType": "Block", - "src": "17769:831:57", - "statements": [ - { - "assignments": [ - 12833 - ], - "declarations": [ - { - "constant": false, - "id": 12833, - "mutability": "mutable", - "name": "allocation", - "nameLocation": "17803:10:57", - "nodeType": "VariableDeclaration", - "scope": 12889, - "src": "17779:34:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 12832, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12831, - "name": "Allocation.State", - "nameLocations": [ - "17779:10:57", - "17790:5:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "17779:16:57" - }, - "referencedDeclaration": 11307, - "src": "17779:16:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "id": 12838, - "initialValue": { - "arguments": [ - { - "id": 12836, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12826, - "src": "17832:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 12834, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "17816:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17828:3:57", - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 11554, - "src": "17816:15:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" - } - }, - "id": 12837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17816:30:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17779:67:57" - }, - { - "expression": { - "arguments": [ - { - "id": 12842, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12826, - "src": "17990:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "expression": { - "id": 12846, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12833, - "src": "18067:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12847, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18078:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "18067:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12843, - "name": "_graphRewardsManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4590, - "src": "18017:20:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IRewardsManager_$438_$", - "typeString": "function () view returns (contract IRewardsManager)" - } - }, - "id": 12844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18017:22:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IRewardsManager_$438", - "typeString": "contract IRewardsManager" - } - }, - "id": 12845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18040:26:57", - "memberName": "onSubgraphAllocationUpdate", - "nodeType": "MemberAccess", - "referencedDeclaration": 437, - "src": "18017:49:57", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) external returns (uint256)" - } - }, - "id": 12848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18017:82:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 12839, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "17949:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17961:15:57", - "memberName": "snapshotRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 11459, - "src": "17949:27:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$_t_uint256_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address,uint256)" - } - }, - "id": 12849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17949:160:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12850, - "nodeType": "ExpressionStatement", - "src": "17949:160:57" - }, - { - "expression": { - "arguments": [ - { - "id": 12854, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12826, - "src": "18138:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 12851, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "18120:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18132:5:57", - "memberName": "close", - "nodeType": "MemberAccess", - "referencedDeclaration": 11534, - "src": "18120:17:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$__$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address)" - } - }, - "id": 12855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18120:32:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12856, - "nodeType": "ExpressionStatement", - "src": "18120:32:57" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 12860, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12833, - "src": "18197:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12861, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18208:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "18197:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 12862, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12833, - "src": "18217:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12863, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18228:6:57", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11296, - "src": "18217:17:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 12857, - "name": "allocationProvisionTracker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13053, - "src": "18162:26:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18189:7:57", - "memberName": "release", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "18162:34:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_mapping$_t_address_$_t_uint256_$_$_t_address_$_t_uint256_$returns$__$attached_to$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "function (mapping(address => uint256),address,uint256)" - } - }, - "id": 12864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18162:73:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12865, - "nodeType": "ExpressionStatement", - "src": "18162:73:57" - }, - { - "expression": { - "id": 12877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 12866, - "name": "subgraphAllocatedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13066, - "src": "18315:23:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 12869, - "indexExpression": { - "expression": { - "id": 12867, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12833, - "src": "18339:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12868, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18350:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "18339:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18315:56:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 12876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 12870, - "name": "subgraphAllocatedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13066, - "src": "18386:23:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 12873, - "indexExpression": { - "expression": { - "id": 12871, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12833, - "src": "18410:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12872, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18421:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "18410:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18386:56:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "expression": { - "id": 12874, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12833, - "src": "18457:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12875, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18468:6:57", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11296, - "src": "18457:17:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18386:88:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18315:159:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12878, - "nodeType": "ExpressionStatement", - "src": "18315:159:57" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 12880, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12833, - "src": "18507:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12881, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18518:7:57", - "memberName": "indexer", - "nodeType": "MemberAccess", - "referencedDeclaration": 11292, - "src": "18507:18:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12882, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12826, - "src": "18527:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 12883, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12833, - "src": "18542:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12884, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18553:20:57", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11294, - "src": "18542:31:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 12885, - "name": "allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12833, - "src": "18575:10:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "id": 12886, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18586:6:57", - "memberName": "tokens", - "nodeType": "MemberAccess", - "referencedDeclaration": 11296, - "src": "18575:17:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12879, - "name": "AllocationClosed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12207, - "src": "18490:16:57", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (address,address,bytes32,uint256)" - } - }, - "id": 12887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18490:103:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12888, - "nodeType": "EmitStatement", - "src": "18485:108:57" - } - ] - }, - "documentation": { - "id": 12824, - "nodeType": "StructuredDocumentation", - "src": "17132:574:57", - "text": " @notice Close an allocation\n Does not require presenting a POI, use {_collectIndexingRewards} to present a POI and collect rewards\n @dev Note that allocations are nowlong lived. All service payments, including indexing rewards, should be collected periodically\n without the need of closing the allocation. Allocations should only be closed when indexers want to reclaim the allocated\n tokens for other purposes.\n Emits a {AllocationClosed} event\n @param _allocationId The id of the allocation to be closed" - }, - "id": 12890, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_closeAllocation", - "nameLocation": "17720:16:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12827, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12826, - "mutability": "mutable", - "name": "_allocationId", - "nameLocation": "17745:13:57", - "nodeType": "VariableDeclaration", - "scope": 12890, - "src": "17737:21:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12825, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17737:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "17736:23:57" - }, - "returnParameters": { - "id": 12828, - "nodeType": "ParameterList", - "parameters": [], - "src": "17769:0:57" - }, - "scope": 13030, - "src": "17711:889:57", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12909, - "nodeType": "Block", - "src": "18931:134:57", - "statements": [ - { - "expression": { - "id": 12902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 12898, - "name": "rewardsDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13061, - "src": "18941:18:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 12900, - "indexExpression": { - "id": 12899, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12893, - "src": "18960:8:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18941:28:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 12901, - "name": "_rewardsDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12895, - "src": "18972:19:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18941:50:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 12903, - "nodeType": "ExpressionStatement", - "src": "18941:50:57" - }, - { - "eventCall": { - "arguments": [ - { - "id": 12905, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12893, - "src": "19028:8:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12906, - "name": "_rewardsDestination", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12895, - "src": "19038:19:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 12904, - "name": "RewardsDestinationSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12223, - "src": "19006:21:57", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 12907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19006:52:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12908, - "nodeType": "EmitStatement", - "src": "19001:57:57" - } - ] - }, - "documentation": { - "id": 12891, - "nodeType": "StructuredDocumentation", - "src": "18606:232:57", - "text": " @notice Sets the rewards destination for an indexer to receive indexing rewards\n @dev Emits a {RewardsDestinationSet} event\n @param _rewardsDestination The address where indexing rewards should be sent" - }, - "id": 12910, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setRewardsDestination", - "nameLocation": "18852:22:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12896, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12893, - "mutability": "mutable", - "name": "_indexer", - "nameLocation": "18883:8:57", - "nodeType": "VariableDeclaration", - "scope": 12910, - "src": "18875:16:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12892, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18875:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12895, - "mutability": "mutable", - "name": "_rewardsDestination", - "nameLocation": "18901:19:57", - "nodeType": "VariableDeclaration", - "scope": 12910, - "src": "18893:27:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12894, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18893:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "18874:47:57" - }, - "returnParameters": { - "id": 12897, - "nodeType": "ParameterList", - "parameters": [], - "src": "18931:0:57" - }, - "scope": 13030, - "src": "18843:222:57", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12924, - "nodeType": "Block", - "src": "19386:102:57", - "statements": [ - { - "expression": { - "id": 12918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 12916, - "name": "maxPOIStaleness", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13056, - "src": "19396:15:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 12917, - "name": "_maxPOIStaleness", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12913, - "src": "19414:16:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19396:34:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 12919, - "nodeType": "ExpressionStatement", - "src": "19396:34:57" - }, - { - "eventCall": { - "arguments": [ - { - "id": 12921, - "name": "_maxPOIStaleness", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12913, - "src": "19464:16:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 12920, - "name": "MaxPOIStalenessSet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12228, - "src": "19445:18:57", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 12922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19445:36:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 12923, - "nodeType": "EmitStatement", - "src": "19440:41:57" - } - ] - }, - "documentation": { - "id": 12911, - "nodeType": "StructuredDocumentation", - "src": "19071:246:57", - "text": " @notice Sets the maximum amount of time, in seconds, allowed between presenting POIs to qualify for indexing rewards\n @dev Emits a {MaxPOIStalenessSet} event\n @param _maxPOIStaleness The max POI staleness in seconds" - }, - "id": 12925, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_setMaxPOIStaleness", - "nameLocation": "19331:19:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12914, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12913, - "mutability": "mutable", - "name": "_maxPOIStaleness", - "nameLocation": "19359:16:57", - "nodeType": "VariableDeclaration", - "scope": 12925, - "src": "19351:24:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19351:7:57", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "19350:26:57" - }, - "returnParameters": { - "id": 12915, - "nodeType": "ParameterList", - "parameters": [], - "src": "19386:0:57" - }, - "scope": 13030, - "src": "19322:166:57", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12939, - "nodeType": "Block", - "src": "19707:54:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 12936, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12928, - "src": "19740:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 12934, - "name": "allocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13042, - "src": "19724:11:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State storage ref)" - } - }, - "id": 12935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19736:3:57", - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 11554, - "src": "19724:15:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$_t_address_$returns$_t_struct$_State_$11307_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11307_storage_$_$", - "typeString": "function (mapping(address => struct Allocation.State storage ref),address) view returns (struct Allocation.State memory)" - } - }, - "id": 12937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19724:30:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State memory" - } - }, - "functionReturnParameters": 12933, - "id": 12938, - "nodeType": "Return", - "src": "19717:37:57" - } - ] - }, - "documentation": { - "id": 12926, - "nodeType": "StructuredDocumentation", - "src": "19494:113:57", - "text": " @notice Gets the details of an allocation\n @param _allocationId The id of the allocation" - }, - "id": 12940, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getAllocation", - "nameLocation": "19621:14:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12929, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12928, - "mutability": "mutable", - "name": "_allocationId", - "nameLocation": "19644:13:57", - "nodeType": "VariableDeclaration", - "scope": 12940, - "src": "19636:21:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12927, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19636:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "19635:23:57" - }, - "returnParameters": { - "id": 12933, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12932, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12940, - "src": "19682:23:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_memory_ptr", - "typeString": "struct Allocation.State" - }, - "typeName": { - "id": 12931, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12930, - "name": "Allocation.State", - "nameLocations": [ - "19682:10:57", - "19693:5:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "19682:16:57" - }, - "referencedDeclaration": 11307, - "src": "19682:16:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "19681:25:57" - }, - "scope": 13030, - "src": "19612:149:57", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12954, - "nodeType": "Block", - "src": "20005:60:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 12951, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12943, - "src": "20044:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 12949, - "name": "legacyAllocations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13048, - "src": "20022:17:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State storage ref)" - } - }, - "id": 12950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20040:3:57", - "memberName": "get", - "nodeType": "MemberAccess", - "referencedDeclaration": 12010, - "src": "20022:21:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_struct$_State_$11933_storage_$_$_t_address_$returns$_t_struct$_State_$11933_memory_ptr_$attached_to$_t_mapping$_t_address_$_t_struct$_State_$11933_storage_$_$", - "typeString": "function (mapping(address => struct LegacyAllocation.State storage ref),address) view returns (struct LegacyAllocation.State memory)" - } - }, - "id": 12952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20022:36:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_memory_ptr", - "typeString": "struct LegacyAllocation.State memory" - } - }, - "functionReturnParameters": 12948, - "id": 12953, - "nodeType": "Return", - "src": "20015:43:57" - } - ] - }, - "documentation": { - "id": 12941, - "nodeType": "StructuredDocumentation", - "src": "19767:126:57", - "text": " @notice Gets the details of a legacy allocation\n @param _allocationId The id of the legacy allocation" - }, - "id": 12955, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_getLegacyAllocation", - "nameLocation": "19907:20:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12944, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12943, - "mutability": "mutable", - "name": "_allocationId", - "nameLocation": "19936:13:57", - "nodeType": "VariableDeclaration", - "scope": 12955, - "src": "19928:21:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12942, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19928:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "19927:23:57" - }, - "returnParameters": { - "id": 12948, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12947, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12955, - "src": "19974:29:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_memory_ptr", - "typeString": "struct LegacyAllocation.State" - }, - "typeName": { - "id": 12946, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 12945, - "name": "LegacyAllocation.State", - "nameLocations": [ - "19974:16:57", - "19991:5:57" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "19974:22:57" - }, - "referencedDeclaration": 11933, - "src": "19974:22:57", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - }, - "visibility": "internal" - } - ], - "src": "19973:31:57" - }, - "scope": 13030, - "src": "19898:167:57", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12976, - "nodeType": "Block", - "src": "20358:122:57", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "id": 12969, - "name": "EIP712_ALLOCATION_PROOF_TYPEHASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12153, - "src": "20413:32:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 12970, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12958, - "src": "20447:8:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12971, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12960, - "src": "20457:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 12967, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "20402:3:57", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 12968, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "20406:6:57", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "20402:10:57", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 12972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20402:69:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 12966, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "20392:9:57", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 12973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20392:80:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 12965, - "name": "_hashTypedDataV4", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5573, - "src": "20375:16:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32) view returns (bytes32)" - } - }, - "id": 12974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20375:98:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 12964, - "id": 12975, - "nodeType": "Return", - "src": "20368:105:57" - } - ] - }, - "documentation": { - "id": 12956, - "nodeType": "StructuredDocumentation", - "src": "20071:177:57", - "text": " @notice Encodes the allocation proof for EIP712 signing\n @param _indexer The address of the indexer\n @param _allocationId The id of the allocation" - }, - "id": 12977, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_encodeAllocationProof", - "nameLocation": "20262:22:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12958, - "mutability": "mutable", - "name": "_indexer", - "nameLocation": "20293:8:57", - "nodeType": "VariableDeclaration", - "scope": 12977, - "src": "20285:16:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20285:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12960, - "mutability": "mutable", - "name": "_allocationId", - "nameLocation": "20311:13:57", - "nodeType": "VariableDeclaration", - "scope": 12977, - "src": "20303:21:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20303:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "20284:41:57" - }, - "returnParameters": { - "id": 12964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12963, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12977, - "src": "20349:7:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 12962, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "20349:7:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "20348:9:57" - }, - "scope": 13030, - "src": "20253:227:57", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 12996, - "nodeType": "Block", - "src": "20864:102:57", - "statements": [ - { - "expression": { - "id": 12994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20881:78:57", - "subExpression": { - "arguments": [ - { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 12989, - "name": "_graphStaking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4540, - "src": "20915:13:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_IHorizonStaking_$2235_$", - "typeString": "function () view returns (contract IHorizonStaking)" - } - }, - "id": 12990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20915:15:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - } - }, - { - "id": 12991, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12980, - "src": "20932:8:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 12992, - "name": "_delegationRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12982, - "src": "20942:16:57", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IHorizonStaking_$2235", - "typeString": "contract IHorizonStaking" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "id": 12987, - "name": "allocationProvisionTracker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13053, - "src": "20882:26:57", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 12988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20909:5:57", - "memberName": "check", - "nodeType": "MemberAccess", - "referencedDeclaration": 1554, - "src": "20882:32:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_mapping$_t_address_$_t_uint256_$_$_t_contract$_IHorizonStaking_$2235_$_t_address_$_t_uint32_$returns$_t_bool_$attached_to$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "function (mapping(address => uint256),contract IHorizonStaking,address,uint32) view returns (bool)" - } - }, - "id": 12993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20882:77:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 12986, - "id": 12995, - "nodeType": "Return", - "src": "20874:85:57" - } - ] - }, - "documentation": { - "id": 12978, - "nodeType": "StructuredDocumentation", - "src": "20486:275:57", - "text": " @notice Checks if an allocation is over-allocated\n @param _indexer The address of the indexer\n @param _delegationRatio The delegation ratio to consider when locking tokens\n @return True if the allocation is over-allocated, false otherwise" - }, - "id": 12997, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isOverAllocated", - "nameLocation": "20775:16:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 12983, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12980, - "mutability": "mutable", - "name": "_indexer", - "nameLocation": "20800:8:57", - "nodeType": "VariableDeclaration", - "scope": 12997, - "src": "20792:16:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12979, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20792:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 12982, - "mutability": "mutable", - "name": "_delegationRatio", - "nameLocation": "20817:16:57", - "nodeType": "VariableDeclaration", - "scope": 12997, - "src": "20810:23:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 12981, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "20810:6:57", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "src": "20791:43:57" - }, - "returnParameters": { - "id": 12986, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 12985, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 12997, - "src": "20858:4:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 12984, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20858:4:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "20857:6:57" - }, - "scope": 13030, - "src": "20766:200:57", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 13028, - "nodeType": "Block", - "src": "21458:210:57", - "statements": [ - { - "assignments": [ - 13008 - ], - "declarations": [ - { - "constant": false, - "id": 13008, - "mutability": "mutable", - "name": "signer", - "nameLocation": "21476:6:57", - "nodeType": "VariableDeclaration", - "scope": 13028, - "src": "21468:14:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13007, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21468:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 13017, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 13012, - "name": "_indexer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13000, - "src": "21522:8:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 13013, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13002, - "src": "21532:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13011, - "name": "_encodeAllocationProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12977, - "src": "21499:22:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bytes32_$", - "typeString": "function (address,address) view returns (bytes32)" - } - }, - "id": 13014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21499:47:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 13015, - "name": "_proof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13004, - "src": "21548:6:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 13009, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6730, - "src": "21485:5:57", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$6730_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 13010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21491:7:57", - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 6486, - "src": "21485:13:57", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 13016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21485:70:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21468:87:57" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 13019, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13008, - "src": "21573:6:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 13020, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13002, - "src": "21583:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21573:23:57", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 13023, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13008, - "src": "21638:6:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 13024, - "name": "_allocationId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13002, - "src": "21646:13:57", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13022, - "name": "AllocationManagerInvalidAllocationProof", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12235, - "src": "21598:39:57", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", - "typeString": "function (address,address) pure returns (error)" - } - }, - "id": 13025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21598:62:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 13018, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "21565:7:57", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 13026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21565:96:57", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13027, - "nodeType": "ExpressionStatement", - "src": "21565:96:57" - } - ] - }, - "documentation": { - "id": 12998, - "nodeType": "StructuredDocumentation", - "src": "20972:374:57", - "text": " @notice Verifies ownership of an allocation id by verifying an EIP712 allocation proof\n @dev Requirements:\n - Signer must be the allocation id address\n @param _indexer The address of the indexer\n @param _allocationId The id of the allocation\n @param _proof The EIP712 proof, an EIP712 signed message of (indexer,allocationId)" - }, - "id": 13029, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_verifyAllocationProof", - "nameLocation": "21360:22:57", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13005, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13000, - "mutability": "mutable", - "name": "_indexer", - "nameLocation": "21391:8:57", - "nodeType": "VariableDeclaration", - "scope": 13029, - "src": "21383:16:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 12999, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21383:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13002, - "mutability": "mutable", - "name": "_allocationId", - "nameLocation": "21409:13:57", - "nodeType": "VariableDeclaration", - "scope": 13029, - "src": "21401:21:57", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13001, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21401:7:57", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13004, - "mutability": "mutable", - "name": "_proof", - "nameLocation": "21437:6:57", - "nodeType": "VariableDeclaration", - "scope": 13029, - "src": "21424:19:57", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 13003, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "21424:5:57", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "21382:62:57" - }, - "returnParameters": { - "id": 13006, - "nodeType": "ParameterList", - "parameters": [], - "src": "21458:0:57" - }, - "scope": 13030, - "src": "21351:317:57", - "stateMutability": "view", - "virtual": false, - "visibility": "private" - } - ], - "scope": 13031, - "src": "1407:20263:57", - "usedErrors": [ - 4380, - 4865, - 4868, - 12235, - 12238, - 12243, - 12250 - ], - "usedEvents": [ - 4375, - 4873, - 5776, - 12164, - 12183, - 12196, - 12207, - 12216, - 12223, - 12228 - ] - } - ], - "src": "45:21626:57" - }, - "id": 57 - }, - "contracts/utilities/AllocationManagerStorage.sol": { - "ast": { - "absolutePath": "contracts/utilities/AllocationManagerStorage.sol", - "exportedSymbols": { - "Allocation": [ - 11674 - ], - "AllocationManagerV1Storage": [ - 13072 - ], - "LegacyAllocation": [ - 12086 - ] - }, - "id": 13073, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 13032, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:58" - }, - { - "absolutePath": "contracts/libraries/Allocation.sol", - "file": "../libraries/Allocation.sol", - "id": 13034, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13073, - "sourceUnit": 11675, - "src": "70:57:58", - "symbolAliases": [ - { - "foreign": { - "id": 13033, - "name": "Allocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11674, - "src": "79:10:58", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/LegacyAllocation.sol", - "file": "../libraries/LegacyAllocation.sol", - "id": 13036, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13073, - "sourceUnit": 12087, - "src": "128:69:58", - "symbolAliases": [ - { - "foreign": { - "id": 13035, - "name": "LegacyAllocation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 12086, - "src": "137:16:58", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "AllocationManagerV1Storage", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 13072, - "linearizedBaseContracts": [ - 13072 - ], - "name": "AllocationManagerV1Storage", - "nameLocation": "217:26:58", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "documentation": { - "id": 13037, - "nodeType": "StructuredDocumentation", - "src": "250:30:58", - "text": "@notice Allocation details" - }, - "functionSelector": "52a9039c", - "id": 13042, - "mutability": "mutable", - "name": "allocations", - "nameLocation": "353:11:58", - "nodeType": "VariableDeclaration", - "scope": 13072, - "src": "285:79:58", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "typeName": { - "id": 13041, - "keyName": "allocationId", - "keyNameLocation": "301:12:58", - "keyType": { - "id": 13038, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "293:7:58", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "285:60:58", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11307_storage_$", - "typeString": "mapping(address => struct Allocation.State)" - }, - "valueName": "allocation", - "valueNameLocation": "334:10:58", - "valueType": { - "id": 13040, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13039, - "name": "Allocation.State", - "nameLocations": [ - "317:10:58", - "328:5:58" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11307, - "src": "317:16:58" - }, - "referencedDeclaration": 11307, - "src": "317:16:58", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11307_storage_ptr", - "typeString": "struct Allocation.State" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 13043, - "nodeType": "StructuredDocumentation", - "src": "371:37:58", - "text": "@notice Legacy allocation details" - }, - "functionSelector": "93d4e7cb", - "id": 13048, - "mutability": "mutable", - "name": "legacyAllocations", - "nameLocation": "487:17:58", - "nodeType": "VariableDeclaration", - "scope": 13072, - "src": "413:91:58", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State)" - }, - "typeName": { - "id": 13047, - "keyName": "allocationId", - "keyNameLocation": "429:12:58", - "keyType": { - "id": 13044, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "421:7:58", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "413:66:58", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_State_$11933_storage_$", - "typeString": "mapping(address => struct LegacyAllocation.State)" - }, - "valueName": "allocation", - "valueNameLocation": "468:10:58", - "valueType": { - "id": 13046, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13045, - "name": "LegacyAllocation.State", - "nameLocations": [ - "445:16:58", - "462:5:58" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11933, - "src": "445:22:58" - }, - "referencedDeclaration": 11933, - "src": "445:22:58", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11933_storage_ptr", - "typeString": "struct LegacyAllocation.State" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 13049, - "nodeType": "StructuredDocumentation", - "src": "511:47:58", - "text": "@notice Tracks allocated tokens per indexer" - }, - "functionSelector": "6234e216", - "id": 13053, - "mutability": "mutable", - "name": "allocationProvisionTracker", - "nameLocation": "613:26:58", - "nodeType": "VariableDeclaration", - "scope": 13072, - "src": "563:76:58", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 13052, - "keyName": "indexer", - "keyNameLocation": "579:7:58", - "keyType": { - "id": 13050, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "571:7:58", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "563:42:58", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueName": "tokens", - "valueNameLocation": "598:6:58", - "valueType": { - "id": 13051, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "590:7:58", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 13054, - "nodeType": "StructuredDocumentation", - "src": "646:111:58", - "text": "@notice Maximum amount of time, in seconds, allowed between presenting POIs to qualify for indexing rewards" - }, - "functionSelector": "85e82baf", - "id": 13056, - "mutability": "mutable", - "name": "maxPOIStaleness", - "nameLocation": "777:15:58", - "nodeType": "VariableDeclaration", - "scope": 13072, - "src": "762:30:58", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 13055, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "762:7:58", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 13057, - "nodeType": "StructuredDocumentation", - "src": "799:51:58", - "text": "@notice Destination of accrued indexing rewards" - }, - "functionSelector": "7203ca78", - "id": 13061, - "mutability": "mutable", - "name": "rewardsDestination", - "nameLocation": "910:18:58", - "nodeType": "VariableDeclaration", - "scope": 13072, - "src": "855:73:58", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 13060, - "keyName": "indexer", - "keyNameLocation": "871:7:58", - "keyType": { - "id": 13058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "863:7:58", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "855:47:58", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueName": "destination", - "valueNameLocation": "890:11:58", - "valueType": { - "id": 13059, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "882:7:58", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 13062, - "nodeType": "StructuredDocumentation", - "src": "935:112:58", - "text": "@notice Track total tokens allocated per subgraph deployment\n @dev Used to calculate indexing rewards" - }, - "functionSelector": "3afd23fe", - "id": 13066, - "mutability": "mutable", - "name": "subgraphAllocatedTokens", - "nameLocation": "1115:23:58", - "nodeType": "VariableDeclaration", - "scope": 13072, - "src": "1052:86:58", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 13065, - "keyName": "subgraphDeploymentId", - "keyNameLocation": "1068:20:58", - "keyType": { - "id": 13063, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1060:7:58", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1052:55:58", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueName": "tokens", - "valueNameLocation": "1100:6:58", - "valueType": { - "id": 13064, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1092:7:58", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "public" - }, - { - "constant": false, - "documentation": { - "id": 13067, - "nodeType": "StructuredDocumentation", - "src": "1145:57:58", - "text": "@dev Gap to allow adding variables in future upgrades" - }, - "id": 13071, - "mutability": "mutable", - "name": "__gap", - "nameLocation": "1227:5:58", - "nodeType": "VariableDeclaration", - "scope": 13072, - "src": "1207:25:58", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage", - "typeString": "uint256[50]" - }, - "typeName": { - "baseType": { - "id": 13068, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1207:7:58", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13070, - "length": { - "hexValue": "3530", - "id": 13069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1215:2:58", - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "50" - }, - "nodeType": "ArrayTypeName", - "src": "1207:11:58", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", - "typeString": "uint256[50]" - } - }, - "visibility": "private" - } - ], - "scope": 13073, - "src": "199:1036:58", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "45:1191:58" - }, - "id": 58 - }, - "contracts/utilities/AttestationManager.sol": { - "ast": { - "absolutePath": "contracts/utilities/AttestationManager.sol", - "exportedSymbols": { - "Attestation": [ - 11920 - ], - "AttestationManager": [ - 13226 - ], - "AttestationManagerV1Storage": [ - 13237 - ], - "ECDSA": [ - 6730 - ], - "Initializable": [ - 5102 - ] - }, - "id": 13227, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 13074, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:59" - }, - { - "absolutePath": "contracts/utilities/AttestationManagerStorage.sol", - "file": "./AttestationManagerStorage.sol", - "id": 13076, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13227, - "sourceUnit": 13238, - "src": "70:78:59", - "symbolAliases": [ - { - "foreign": { - "id": 13075, - "name": "AttestationManagerV1Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13237, - "src": "79:27:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "file": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "id": 13078, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13227, - "sourceUnit": 6731, - "src": "150:77:59", - "symbolAliases": [ - { - "foreign": { - "id": 13077, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6730, - "src": "159:5:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", - "id": 13080, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13227, - "sourceUnit": 5103, - "src": "228:98:59", - "symbolAliases": [ - { - "foreign": { - "id": 13079, - "name": "Initializable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5102, - "src": "237:13:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/libraries/Attestation.sol", - "file": "../libraries/Attestation.sol", - "id": 13082, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13227, - "sourceUnit": 11921, - "src": "327:59:59", - "symbolAliases": [ - { - "foreign": { - "id": 13081, - "name": "Attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11920, - "src": "336:11:59", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [ - { - "baseName": { - "id": 13084, - "name": "Initializable", - "nameLocations": [ - "631:13:59" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5102, - "src": "631:13:59" - }, - "id": 13085, - "nodeType": "InheritanceSpecifier", - "src": "631:13:59" - }, - { - "baseName": { - "id": 13086, - "name": "AttestationManagerV1Storage", - "nameLocations": [ - "646:27:59" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 13237, - "src": "646:27:59" - }, - "id": 13087, - "nodeType": "InheritanceSpecifier", - "src": "646:27:59" - } - ], - "canonicalName": "AttestationManager", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 13083, - "nodeType": "StructuredDocumentation", - "src": "388:202:59", - "text": " @title AttestationManager contract\n @notice A helper contract implementing attestation verification.\n Uses a custom implementation of EIP712 for backwards compatibility with attestations." - }, - "fullyImplemented": true, - "id": 13226, - "linearizedBaseContracts": [ - 13226, - 13237, - 5102 - ], - "name": "AttestationManager", - "nameLocation": "609:18:59", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "documentation": { - "id": 13088, - "nodeType": "StructuredDocumentation", - "src": "680:47:59", - "text": "@notice EIP712 type hash for Receipt struct" - }, - "id": 13093, - "mutability": "constant", - "name": "RECEIPT_TYPE_HASH", - "nameLocation": "757:17:59", - "nodeType": "VariableDeclaration", - "scope": 13226, - "src": "732:142:59", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13089, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "732:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "52656365697074286279746573333220726571756573744349442c6279746573333220726573706f6e73654349442c627974657333322073756267726170684465706c6f796d656e74494429", - "id": 13091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "795:78:59", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6", - "typeString": "literal_string \"Receipt(bytes32 requestCID,bytes32 responseCID,bytes32 subgraphDeploymentID)\"" - }, - "value": "Receipt(bytes32 requestCID,bytes32 responseCID,bytes32 subgraphDeploymentID)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6", - "typeString": "literal_string \"Receipt(bytes32 requestCID,bytes32 responseCID,bytes32 subgraphDeploymentID)\"" - } - ], - "id": 13090, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "785:9:59", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13092, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "785:89:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "private" - }, - { - "constant": true, - "documentation": { - "id": 13094, - "nodeType": "StructuredDocumentation", - "src": "881:35:59", - "text": "@notice EIP712 domain type hash" - }, - "id": 13099, - "mutability": "constant", - "name": "DOMAIN_TYPE_HASH", - "nameLocation": "946:16:59", - "nodeType": "VariableDeclaration", - "scope": 13226, - "src": "921:160:59", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13095, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "921:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429", - "id": 13097, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "983:97:59", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac56472", - "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract,bytes32 salt)\"" - }, - "value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract,bytes32 salt)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_d87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac56472", - "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract,bytes32 salt)\"" - } - ], - "id": 13096, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "973:9:59", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "973:108:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "private" - }, - { - "constant": true, - "documentation": { - "id": 13100, - "nodeType": "StructuredDocumentation", - "src": "1088:30:59", - "text": "@notice EIP712 domain name" - }, - "id": 13105, - "mutability": "constant", - "name": "DOMAIN_NAME_HASH", - "nameLocation": "1148:16:59", - "nodeType": "VariableDeclaration", - "scope": 13226, - "src": "1123:71:59", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13101, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1123:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "47726170682050726f746f636f6c", - "id": 13103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1177:16:59", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4", - "typeString": "literal_string \"Graph Protocol\"" - }, - "value": "Graph Protocol" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4", - "typeString": "literal_string \"Graph Protocol\"" - } - ], - "id": 13102, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1167:9:59", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1167:27:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "private" - }, - { - "constant": true, - "documentation": { - "id": 13106, - "nodeType": "StructuredDocumentation", - "src": "1201:33:59", - "text": "@notice EIP712 domain version" - }, - "id": 13111, - "mutability": "constant", - "name": "DOMAIN_VERSION_HASH", - "nameLocation": "1264:19:59", - "nodeType": "VariableDeclaration", - "scope": 13226, - "src": "1239:61:59", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13107, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1239:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "30", - "id": 13109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1296:3:59", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", - "typeString": "literal_string \"0\"" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", - "typeString": "literal_string \"0\"" - } - ], - "id": 13108, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1286:9:59", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1286:14:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "private" - }, - { - "constant": true, - "documentation": { - "id": 13112, - "nodeType": "StructuredDocumentation", - "src": "1307:30:59", - "text": "@notice EIP712 domain salt" - }, - "id": 13115, - "mutability": "constant", - "name": "DOMAIN_SALT", - "nameLocation": "1367:11:59", - "nodeType": "VariableDeclaration", - "scope": 13226, - "src": "1342:105:59", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13113, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1342:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "hexValue": "307861303730666662316364373430393634396266373738323263636537343439353436386530366462666165663039353536383338626631383836373962396332", - "id": 13114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1381:66:59", - "typeDescriptions": { - "typeIdentifier": "t_rational_72569707383443547382267636376646613935103975378761491950889697921835323734466_by_1", - "typeString": "int_const 7256...(69 digits omitted)...4466" - }, - "value": "0xa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c2" - }, - "visibility": "private" - }, - { - "body": { - "id": 13124, - "nodeType": "Block", - "src": "1662:54:59", - "statements": [ - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 13121, - "name": "__AttestationManager_init_unchained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13150, - "src": "1672:35:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 13122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1672:37:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13123, - "nodeType": "ExpressionStatement", - "src": "1672:37:59" - } - ] - }, - "documentation": { - "id": 13116, - "nodeType": "StructuredDocumentation", - "src": "1454:87:59", - "text": " @dev Initialize the AttestationManager contract and parent contracts" - }, - "id": 13125, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 13119, - "kind": "modifierInvocation", - "modifierName": { - "id": 13118, - "name": "onlyInitializing", - "nameLocations": [ - "1645:16:59" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "1645:16:59" - }, - "nodeType": "ModifierInvocation", - "src": "1645:16:59" - } - ], - "name": "__AttestationManager_init", - "nameLocation": "1608:25:59", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13117, - "nodeType": "ParameterList", - "parameters": [], - "src": "1633:2:59" - }, - "returnParameters": { - "id": 13120, - "nodeType": "ParameterList", - "parameters": [], - "src": "1662:0:59" - }, - "scope": 13226, - "src": "1599:117:59", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 13149, - "nodeType": "Block", - "src": "1919:289:59", - "statements": [ - { - "expression": { - "id": 13147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 13131, - "name": "_domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13231, - "src": "1929:16:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "id": 13135, - "name": "DOMAIN_TYPE_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13099, - "src": "1999:16:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 13136, - "name": "DOMAIN_NAME_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13105, - "src": "2033:16:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 13137, - "name": "DOMAIN_VERSION_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13111, - "src": "2067:19:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 13138, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "2104:5:59", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 13139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2110:7:59", - "memberName": "chainid", - "nodeType": "MemberAccess", - "src": "2104:13:59", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "id": 13142, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "2143:4:59", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AttestationManager_$13226", - "typeString": "contract AttestationManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AttestationManager_$13226", - "typeString": "contract AttestationManager" - } - ], - "id": 13141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2135:7:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 13140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2135:7:59", - "typeDescriptions": {} - } - }, - "id": 13143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2135:13:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 13144, - "name": "DOMAIN_SALT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13115, - "src": "2166:11:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 13133, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "1971:3:59", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13134, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "1975:6:59", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "1971:10:59", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 13145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1971:220:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 13132, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "1948:9:59", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1948:253:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "1929:272:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 13148, - "nodeType": "ExpressionStatement", - "src": "1929:272:59" - } - ] - }, - "documentation": { - "id": 13126, - "nodeType": "StructuredDocumentation", - "src": "1722:66:59", - "text": " @dev Initialize the AttestationManager contract" - }, - "id": 13150, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 13129, - "kind": "modifierInvocation", - "modifierName": { - "id": 13128, - "name": "onlyInitializing", - "nameLocations": [ - "1902:16:59" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 5011, - "src": "1902:16:59" - }, - "nodeType": "ModifierInvocation", - "src": "1902:16:59" - } - ], - "name": "__AttestationManager_init_unchained", - "nameLocation": "1855:35:59", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13127, - "nodeType": "ParameterList", - "parameters": [], - "src": "1890:2:59" - }, - "returnParameters": { - "id": 13130, - "nodeType": "ParameterList", - "parameters": [], - "src": "1919:0:59" - }, - "scope": 13226, - "src": "1846:362:59", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 13194, - "nodeType": "Block", - "src": "2467:605:59", - "statements": [ - { - "assignments": [ - 13163 - ], - "declarations": [ - { - "constant": false, - "id": 13163, - "mutability": "mutable", - "name": "receipt", - "nameLocation": "2582:7:59", - "nodeType": "VariableDeclaration", - "scope": 13194, - "src": "2555:34:59", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt" - }, - "typeName": { - "id": 13162, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13161, - "name": "Attestation.Receipt", - "nameLocations": [ - "2555:11:59", - "2567:7:59" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11685, - "src": "2555:19:59" - }, - "referencedDeclaration": 11685, - "src": "2555:19:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_storage_ptr", - "typeString": "struct Attestation.Receipt" - } - }, - "visibility": "internal" - } - ], - "id": 13173, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 13166, - "name": "_attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13154, - "src": "2625:12:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 13167, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2638:10:59", - "memberName": "requestCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11688, - "src": "2625:23:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 13168, - "name": "_attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13154, - "src": "2662:12:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 13169, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2675:11:59", - "memberName": "responseCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11690, - "src": "2662:24:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 13170, - "name": "_attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13154, - "src": "2700:12:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 13171, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2713:20:59", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11692, - "src": "2700:33:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 13164, - "name": "Attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11920, - "src": "2592:11:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Attestation_$11920_$", - "typeString": "type(library Attestation)" - } - }, - "id": 13165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2604:7:59", - "memberName": "Receipt", - "nodeType": "MemberAccess", - "referencedDeclaration": 11685, - "src": "2592:19:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Receipt_$11685_storage_ptr_$", - "typeString": "type(struct Attestation.Receipt storage pointer)" - } - }, - "id": 13172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2592:151:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2555:188:59" - }, - { - "assignments": [ - 13175 - ], - "declarations": [ - { - "constant": false, - "id": 13175, - "mutability": "mutable", - "name": "messageHash", - "nameLocation": "2761:11:59", - "nodeType": "VariableDeclaration", - "scope": 13194, - "src": "2753:19:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13174, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2753:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 13179, - "initialValue": { - "arguments": [ - { - "id": 13177, - "name": "receipt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13163, - "src": "2790:7:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt memory" - } - ], - "id": 13176, - "name": "_encodeReceipt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13225, - "src": "2775:14:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Receipt_$11685_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (struct Attestation.Receipt memory) view returns (bytes32)" - } - }, - "id": 13178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2775:23:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2753:45:59" - }, - { - "expression": { - "arguments": [ - { - "id": 13182, - "name": "messageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13175, - "src": "2987:11:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "arguments": [ - { - "expression": { - "id": 13185, - "name": "_attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13154, - "src": "3017:12:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 13186, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3030:1:59", - "memberName": "r", - "nodeType": "MemberAccess", - "referencedDeclaration": 11694, - "src": "3017:14:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 13187, - "name": "_attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13154, - "src": "3033:12:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 13188, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3046:1:59", - "memberName": "s", - "nodeType": "MemberAccess", - "referencedDeclaration": 11696, - "src": "3033:14:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 13189, - "name": "_attestation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13154, - "src": "3049:12:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State memory" - } - }, - "id": 13190, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3062:1:59", - "memberName": "v", - "nodeType": "MemberAccess", - "referencedDeclaration": 11698, - "src": "3049:14:59", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "id": 13183, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3000:3:59", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3004:12:59", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "3000:16:59", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 13191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3000:64:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 13180, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6730, - "src": "2973:5:59", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$6730_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 13181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2979:7:59", - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 6486, - "src": "2973:13:59", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 13192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2973:92:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 13158, - "id": 13193, - "nodeType": "Return", - "src": "2966:99:59" - } - ] - }, - "documentation": { - "id": 13151, - "nodeType": "StructuredDocumentation", - "src": "2214:153:59", - "text": " @dev Recover the signer address of the `_attestation`.\n @param _attestation The attestation struct\n @return Signer address" - }, - "id": 13195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_recoverSigner", - "nameLocation": "2381:14:59", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13155, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13154, - "mutability": "mutable", - "name": "_attestation", - "nameLocation": "2421:12:59", - "nodeType": "VariableDeclaration", - "scope": 13195, - "src": "2396:37:59", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_memory_ptr", - "typeString": "struct Attestation.State" - }, - "typeName": { - "id": 13153, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13152, - "name": "Attestation.State", - "nameLocations": [ - "2396:11:59", - "2408:5:59" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11699, - "src": "2396:17:59" - }, - "referencedDeclaration": 11699, - "src": "2396:17:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$11699_storage_ptr", - "typeString": "struct Attestation.State" - } - }, - "visibility": "internal" - } - ], - "src": "2395:39:59" - }, - "returnParameters": { - "id": 13158, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13157, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 13195, - "src": "2458:7:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2458:7:59", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2457:9:59" - }, - "scope": 13226, - "src": "2372:700:59", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 13224, - "nodeType": "Block", - "src": "3606:576:59", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "hexValue": "1901", - "id": 13207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3700:10:59", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", - "typeString": "literal_string hex\"1901\"" - }, - "value": "\u0019\u0001" - }, - { - "id": 13208, - "name": "_domainSeparator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13231, - "src": "3775:16:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 13212, - "name": "RECEIPT_TYPE_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13093, - "src": "3888:17:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 13213, - "name": "_receipt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13199, - "src": "3935:8:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt memory" - } - }, - "id": 13214, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3944:10:59", - "memberName": "requestCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11680, - "src": "3935:19:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 13215, - "name": "_receipt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13199, - "src": "3984:8:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt memory" - } - }, - "id": 13216, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "3993:11:59", - "memberName": "responseCID", - "nodeType": "MemberAccess", - "referencedDeclaration": 11682, - "src": "3984:20:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 13217, - "name": "_receipt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13199, - "src": "4034:8:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt memory" - } - }, - "id": 13218, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "4043:20:59", - "memberName": "subgraphDeploymentId", - "nodeType": "MemberAccess", - "referencedDeclaration": 11684, - "src": "4034:29:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 13210, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3848:3:59", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13211, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3852:6:59", - "memberName": "encode", - "nodeType": "MemberAccess", - "src": "3848:10:59", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 13219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3848:241:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 13209, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "3813:9:59", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3813:330:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", - "typeString": "literal_string hex\"1901\"" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 13205, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3662:3:59", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 13206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "3666:12:59", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "3662:16:59", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 13221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3662:499:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 13204, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "3635:9:59", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 13222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "3635:540:59", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 13203, - "id": 13223, - "nodeType": "Return", - "src": "3616:559:59" - } - ] - }, - "documentation": { - "id": 13196, - "nodeType": "StructuredDocumentation", - "src": "3078:430:59", - "text": " @dev Get the message hash that a indexer used to sign the receipt.\n Encodes a receipt using a domain separator, as described on\n https://github.com/ethereum/EIPs/blob/master/EIPS/eip-712.md#specification.\n @notice Return the message hash used to sign the receipt\n @param _receipt Receipt returned by indexer and submitted by fisherman\n @return Message hash used to sign the receipt" - }, - "id": 13225, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_encodeReceipt", - "nameLocation": "3522:14:59", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13199, - "mutability": "mutable", - "name": "_receipt", - "nameLocation": "3564:8:59", - "nodeType": "VariableDeclaration", - "scope": 13225, - "src": "3537:35:59", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_memory_ptr", - "typeString": "struct Attestation.Receipt" - }, - "typeName": { - "id": 13198, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13197, - "name": "Attestation.Receipt", - "nameLocations": [ - "3537:11:59", - "3549:7:59" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11685, - "src": "3537:19:59" - }, - "referencedDeclaration": 11685, - "src": "3537:19:59", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Receipt_$11685_storage_ptr", - "typeString": "struct Attestation.Receipt" - } - }, - "visibility": "internal" - } - ], - "src": "3536:37:59" - }, - "returnParameters": { - "id": 13203, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13202, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 13225, - "src": "3597:7:59", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13201, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3597:7:59", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "3596:9:59" - }, - "scope": 13226, - "src": "3513:669:59", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 13227, - "src": "591:3593:59", - "usedErrors": [ - 4865, - 4868 - ], - "usedEvents": [ - 4873 - ] - } - ], - "src": "45:4140:59" - }, - "id": 59 - }, - "contracts/utilities/AttestationManagerStorage.sol": { - "ast": { - "absolutePath": "contracts/utilities/AttestationManagerStorage.sol", - "exportedSymbols": { - "AttestationManagerV1Storage": [ - 13237 - ] - }, - "id": 13238, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 13228, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:60" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "AttestationManagerV1Storage", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 13237, - "linearizedBaseContracts": [ - 13237 - ], - "name": "AttestationManagerV1Storage", - "nameLocation": "88:27:60", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "documentation": { - "id": 13229, - "nodeType": "StructuredDocumentation", - "src": "122:32:60", - "text": "@dev EIP712 domain separator" - }, - "id": 13231, - "mutability": "mutable", - "name": "_domainSeparator", - "nameLocation": "176:16:60", - "nodeType": "VariableDeclaration", - "scope": 13237, - "src": "159:33:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 13230, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "159:7:60", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "documentation": { - "id": 13232, - "nodeType": "StructuredDocumentation", - "src": "199:57:60", - "text": "@dev Gap to allow adding variables in future upgrades" - }, - "id": 13236, - "mutability": "mutable", - "name": "__gap", - "nameLocation": "281:5:60", - "nodeType": "VariableDeclaration", - "scope": 13237, - "src": "261:25:60", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage", - "typeString": "uint256[50]" - }, - "typeName": { - "baseType": { - "id": 13233, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "261:7:60", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 13235, - "length": { - "hexValue": "3530", - "id": 13234, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "269:2:60", - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "50" - }, - "nodeType": "ArrayTypeName", - "src": "261:11:60", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", - "typeString": "uint256[50]" - } - }, - "visibility": "private" - } - ], - "scope": 13238, - "src": "70:219:60", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "45:245:60" - }, - "id": 60 - }, - "contracts/utilities/Directory.sol": { - "ast": { - "absolutePath": "contracts/utilities/Directory.sol", - "exportedSymbols": { - "Directory": [ - 13390 - ], - "ICuration": [ - 165 - ], - "IDisputeManager": [ - 11057 - ], - "ISubgraphService": [ - 11280 - ], - "ITAPCollector": [ - 2695 - ] - }, - "id": 13391, - "license": "GPL-3.0-or-later", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 13239, - "literals": [ - "solidity", - "0.8", - ".27" - ], - "nodeType": "PragmaDirective", - "src": "45:23:61" - }, - { - "absolutePath": "contracts/interfaces/IDisputeManager.sol", - "file": "../interfaces/IDisputeManager.sol", - "id": 13241, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13391, - "sourceUnit": 11058, - "src": "70:68:61", - "symbolAliases": [ - { - "foreign": { - "id": 13240, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "79:15:61", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "contracts/interfaces/ISubgraphService.sol", - "file": "../interfaces/ISubgraphService.sol", - "id": 13243, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13391, - "sourceUnit": 11281, - "src": "139:70:61", - "symbolAliases": [ - { - "foreign": { - "id": 13242, - "name": "ISubgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11280, - "src": "148:16:61", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol", - "file": "@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol", - "id": 13245, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13391, - "sourceUnit": 2696, - "src": "210:94:61", - "symbolAliases": [ - { - "foreign": { - "id": 13244, - "name": "ITAPCollector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "219:13:61", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "absolutePath": "@graphprotocol/contracts/contracts/curation/ICuration.sol", - "file": "@graphprotocol/contracts/contracts/curation/ICuration.sol", - "id": 13247, - "nameLocation": "-1:-1:-1", - "nodeType": "ImportDirective", - "scope": 13391, - "sourceUnit": 166, - "src": "305:86:61", - "symbolAliases": [ - { - "foreign": { - "id": 13246, - "name": "ICuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 165, - "src": "314:9:61", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "abstract": true, - "baseContracts": [], - "canonicalName": "Directory", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 13248, - "nodeType": "StructuredDocumentation", - "src": "393:248:61", - "text": " @title Directory contract\n @notice This contract is meant to be inherited by {SubgraphService} contract.\n It contains the addresses of the contracts that the contract interacts with.\n Uses immutable variables to minimize gas costs." - }, - "fullyImplemented": true, - "id": 13390, - "linearizedBaseContracts": [ - 13390 - ], - "name": "Directory", - "nameLocation": "660:9:61", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "documentation": { - "id": 13249, - "nodeType": "StructuredDocumentation", - "src": "676:49:61", - "text": "@notice The Subgraph Service contract address" - }, - "id": 13252, - "mutability": "immutable", - "name": "SUBGRAPH_SERVICE", - "nameLocation": "765:16:61", - "nodeType": "VariableDeclaration", - "scope": 13390, - "src": "730:51:61", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - }, - "typeName": { - "id": 13251, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13250, - "name": "ISubgraphService", - "nameLocations": [ - "730:16:61" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11280, - "src": "730:16:61" - }, - "referencedDeclaration": 11280, - "src": "730:16:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 13253, - "nodeType": "StructuredDocumentation", - "src": "788:48:61", - "text": "@notice The Dispute Manager contract address" - }, - "id": 13256, - "mutability": "immutable", - "name": "DISPUTE_MANAGER", - "nameLocation": "875:15:61", - "nodeType": "VariableDeclaration", - "scope": 13390, - "src": "841:49:61", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - }, - "typeName": { - "id": 13255, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13254, - "name": "IDisputeManager", - "nameLocations": [ - "841:15:61" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11057, - "src": "841:15:61" - }, - "referencedDeclaration": 11057, - "src": "841:15:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 13257, - "nodeType": "StructuredDocumentation", - "src": "897:124:61", - "text": "@notice The TAP Collector contract address\n @dev Required to collect payments via Graph Horizon payments protocol" - }, - "id": 13260, - "mutability": "immutable", - "name": "TAP_COLLECTOR", - "nameLocation": "1058:13:61", - "nodeType": "VariableDeclaration", - "scope": 13390, - "src": "1026:45:61", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITAPCollector_$2695", - "typeString": "contract ITAPCollector" - }, - "typeName": { - "id": 13259, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13258, - "name": "ITAPCollector", - "nameLocations": [ - "1026:13:61" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2695, - "src": "1026:13:61" - }, - "referencedDeclaration": 2695, - "src": "1026:13:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITAPCollector_$2695", - "typeString": "contract ITAPCollector" - } - }, - "visibility": "private" - }, - { - "constant": false, - "documentation": { - "id": 13261, - "nodeType": "StructuredDocumentation", - "src": "1078:94:61", - "text": "@notice The Curation contract address\n @dev Required for curation fees distribution" - }, - "id": 13264, - "mutability": "immutable", - "name": "CURATION", - "nameLocation": "1205:8:61", - "nodeType": "VariableDeclaration", - "scope": 13390, - "src": "1177:36:61", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - }, - "typeName": { - "id": 13263, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13262, - "name": "ICuration", - "nameLocations": [ - "1177:9:61" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 165, - "src": "1177:9:61" - }, - "referencedDeclaration": 165, - "src": "1177:9:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": { - "id": 13265, - "nodeType": "StructuredDocumentation", - "src": "1220:317:61", - "text": " @notice Emitted when the Directory is initialized\n @param subgraphService The Subgraph Service contract address\n @param disputeManager The Dispute Manager contract address\n @param tapCollector The TAP Collector contract address\n @param curation The Curation contract address" - }, - "eventSelector": "4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda7", - "id": 13275, - "name": "SubgraphServiceDirectoryInitialized", - "nameLocation": "1548:35:61", - "nodeType": "EventDefinition", - "parameters": { - "id": 13274, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13267, - "indexed": false, - "mutability": "mutable", - "name": "subgraphService", - "nameLocation": "1601:15:61", - "nodeType": "VariableDeclaration", - "scope": 13275, - "src": "1593:23:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13266, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1593:7:61", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13269, - "indexed": false, - "mutability": "mutable", - "name": "disputeManager", - "nameLocation": "1634:14:61", - "nodeType": "VariableDeclaration", - "scope": 13275, - "src": "1626:22:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1626:7:61", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13271, - "indexed": false, - "mutability": "mutable", - "name": "tapCollector", - "nameLocation": "1666:12:61", - "nodeType": "VariableDeclaration", - "scope": 13275, - "src": "1658:20:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1658:7:61", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13273, - "indexed": false, - "mutability": "mutable", - "name": "curation", - "nameLocation": "1696:8:61", - "nodeType": "VariableDeclaration", - "scope": 13275, - "src": "1688:16:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13272, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1688:7:61", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1583:127:61" - }, - "src": "1542:169:61" - }, - { - "documentation": { - "id": 13276, - "nodeType": "StructuredDocumentation", - "src": "1717:173:61", - "text": " @notice Thrown when the caller is not the Dispute Manager\n @param caller The caller address\n @param disputeManager The Dispute Manager address" - }, - "errorSelector": "cdc0567f", - "id": 13282, - "name": "DirectoryNotDisputeManager", - "nameLocation": "1901:26:61", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 13281, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13278, - "mutability": "mutable", - "name": "caller", - "nameLocation": "1936:6:61", - "nodeType": "VariableDeclaration", - "scope": 13282, - "src": "1928:14:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13277, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1928:7:61", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13280, - "mutability": "mutable", - "name": "disputeManager", - "nameLocation": "1952:14:61", - "nodeType": "VariableDeclaration", - "scope": 13282, - "src": "1944:22:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13279, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1944:7:61", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "1927:40:61" - }, - "src": "1895:73:61" - }, - { - "body": { - "id": 13304, - "nodeType": "Block", - "src": "2081:175:61", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 13292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 13286, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2112:3:61", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2116:6:61", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2112:10:61", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "id": 13290, - "name": "DISPUTE_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13256, - "src": "2134:15:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - ], - "id": 13289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2126:7:61", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 13288, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2126:7:61", - "typeDescriptions": {} - } - }, - "id": 13291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2126:24:61", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2112:38:61", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "expression": { - "id": 13294, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2191:3:61", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 13295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2195:6:61", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2191:10:61", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 13298, - "name": "DISPUTE_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13256, - "src": "2211:15:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - ], - "id": 13297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2203:7:61", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 13296, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2203:7:61", - "typeDescriptions": {} - } - }, - "id": 13299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2203:24:61", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13293, - "name": "DirectoryNotDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13282, - "src": "2164:26:61", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", - "typeString": "function (address,address) pure returns (error)" - } - }, - "id": 13300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2164:64:61", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_error", - "typeString": "error" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_error", - "typeString": "error" - } - ], - "id": 13285, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2091:7:61", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_error_$returns$__$", - "typeString": "function (bool,error) pure" - } - }, - "id": 13301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2091:147:61", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13302, - "nodeType": "ExpressionStatement", - "src": "2091:147:61" - }, - { - "id": 13303, - "nodeType": "PlaceholderStatement", - "src": "2248:1:61" - } - ] - }, - "documentation": { - "id": 13283, - "nodeType": "StructuredDocumentation", - "src": "1974:72:61", - "text": " @notice Checks that the caller is the Dispute Manager" - }, - "id": 13305, - "name": "onlyDisputeManager", - "nameLocation": "2060:18:61", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 13284, - "nodeType": "ParameterList", - "parameters": [], - "src": "2078:2:61" - }, - "src": "2051:205:61", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 13348, - "nodeType": "Block", - "src": "2682:329:61", - "statements": [ - { - "expression": { - "id": 13321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 13317, - "name": "SUBGRAPH_SERVICE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13252, - "src": "2692:16:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 13319, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13308, - "src": "2728:15:61", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13318, - "name": "ISubgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11280, - "src": "2711:16:61", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ISubgraphService_$11280_$", - "typeString": "type(contract ISubgraphService)" - } - }, - "id": 13320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2711:33:61", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "src": "2692:52:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "id": 13322, - "nodeType": "ExpressionStatement", - "src": "2692:52:61" - }, - { - "expression": { - "id": 13327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 13323, - "name": "DISPUTE_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13256, - "src": "2754:15:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 13325, - "name": "disputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13310, - "src": "2788:14:61", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13324, - "name": "IDisputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11057, - "src": "2772:15:61", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IDisputeManager_$11057_$", - "typeString": "type(contract IDisputeManager)" - } - }, - "id": 13326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2772:31:61", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - }, - "src": "2754:49:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - }, - "id": 13328, - "nodeType": "ExpressionStatement", - "src": "2754:49:61" - }, - { - "expression": { - "id": 13333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 13329, - "name": "TAP_COLLECTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13260, - "src": "2813:13:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITAPCollector_$2695", - "typeString": "contract ITAPCollector" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 13331, - "name": "tapCollector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13312, - "src": "2843:12:61", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13330, - "name": "ITAPCollector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "2829:13:61", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ITAPCollector_$2695_$", - "typeString": "type(contract ITAPCollector)" - } - }, - "id": 13332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2829:27:61", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITAPCollector_$2695", - "typeString": "contract ITAPCollector" - } - }, - "src": "2813:43:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITAPCollector_$2695", - "typeString": "contract ITAPCollector" - } - }, - "id": 13334, - "nodeType": "ExpressionStatement", - "src": "2813:43:61" - }, - { - "expression": { - "id": 13339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 13335, - "name": "CURATION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13264, - "src": "2866:8:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 13337, - "name": "curation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13314, - "src": "2887:8:61", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13336, - "name": "ICuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 165, - "src": "2877:9:61", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ICuration_$165_$", - "typeString": "type(contract ICuration)" - } - }, - "id": 13338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2877:19:61", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "src": "2866:30:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "id": 13340, - "nodeType": "ExpressionStatement", - "src": "2866:30:61" - }, - { - "eventCall": { - "arguments": [ - { - "id": 13342, - "name": "subgraphService", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13308, - "src": "2948:15:61", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 13343, - "name": "disputeManager", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13310, - "src": "2965:14:61", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 13344, - "name": "tapCollector", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13312, - "src": "2981:12:61", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 13345, - "name": "curation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13314, - "src": "2995:8:61", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 13341, - "name": "SubgraphServiceDirectoryInitialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13275, - "src": "2912:35:61", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address,address)" - } - }, - "id": 13346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2912:92:61", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 13347, - "nodeType": "EmitStatement", - "src": "2907:97:61" - } - ] - }, - "documentation": { - "id": 13306, - "nodeType": "StructuredDocumentation", - "src": "2262:314:61", - "text": " @notice Constructor for the Directory contract\n @param subgraphService The Subgraph Service contract address\n @param disputeManager The Dispute Manager contract address\n @param tapCollector The TAP Collector contract address\n @param curation The Curation contract address" - }, - "id": 13349, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13308, - "mutability": "mutable", - "name": "subgraphService", - "nameLocation": "2601:15:61", - "nodeType": "VariableDeclaration", - "scope": 13349, - "src": "2593:23:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13307, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2593:7:61", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13310, - "mutability": "mutable", - "name": "disputeManager", - "nameLocation": "2626:14:61", - "nodeType": "VariableDeclaration", - "scope": 13349, - "src": "2618:22:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2618:7:61", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13312, - "mutability": "mutable", - "name": "tapCollector", - "nameLocation": "2650:12:61", - "nodeType": "VariableDeclaration", - "scope": 13349, - "src": "2642:20:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2642:7:61", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 13314, - "mutability": "mutable", - "name": "curation", - "nameLocation": "2672:8:61", - "nodeType": "VariableDeclaration", - "scope": 13349, - "src": "2664:16:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 13313, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2664:7:61", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2592:89:61" - }, - "returnParameters": { - "id": 13316, - "nodeType": "ParameterList", - "parameters": [], - "src": "2682:0:61" - }, - "scope": 13390, - "src": "2581:430:61", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 13358, - "nodeType": "Block", - "src": "3163:40:61", - "statements": [ - { - "expression": { - "id": 13356, - "name": "SUBGRAPH_SERVICE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13252, - "src": "3180:16:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "functionReturnParameters": 13355, - "id": 13357, - "nodeType": "Return", - "src": "3173:23:61" - } - ] - }, - "documentation": { - "id": 13350, - "nodeType": "StructuredDocumentation", - "src": "3017:72:61", - "text": " @notice Returns the Subgraph Service contract address" - }, - "id": 13359, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_subgraphService", - "nameLocation": "3103:16:61", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13351, - "nodeType": "ParameterList", - "parameters": [], - "src": "3119:2:61" - }, - "returnParameters": { - "id": 13355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13354, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 13359, - "src": "3145:16:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - }, - "typeName": { - "id": 13353, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13352, - "name": "ISubgraphService", - "nameLocations": [ - "3145:16:61" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11280, - "src": "3145:16:61" - }, - "referencedDeclaration": 11280, - "src": "3145:16:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ISubgraphService_$11280", - "typeString": "contract ISubgraphService" - } - }, - "visibility": "internal" - } - ], - "src": "3144:18:61" - }, - "scope": 13390, - "src": "3094:109:61", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 13368, - "nodeType": "Block", - "src": "3352:39:61", - "statements": [ - { - "expression": { - "id": 13366, - "name": "DISPUTE_MANAGER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13256, - "src": "3369:15:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - }, - "functionReturnParameters": 13365, - "id": 13367, - "nodeType": "Return", - "src": "3362:22:61" - } - ] - }, - "documentation": { - "id": 13360, - "nodeType": "StructuredDocumentation", - "src": "3209:71:61", - "text": " @notice Returns the Dispute Manager contract address" - }, - "id": 13369, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_disputeManager", - "nameLocation": "3294:15:61", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13361, - "nodeType": "ParameterList", - "parameters": [], - "src": "3309:2:61" - }, - "returnParameters": { - "id": 13365, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13364, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 13369, - "src": "3335:15:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - }, - "typeName": { - "id": 13363, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13362, - "name": "IDisputeManager", - "nameLocations": [ - "3335:15:61" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 11057, - "src": "3335:15:61" - }, - "referencedDeclaration": 11057, - "src": "3335:15:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IDisputeManager_$11057", - "typeString": "contract IDisputeManager" - } - }, - "visibility": "internal" - } - ], - "src": "3334:17:61" - }, - "scope": 13390, - "src": "3285:106:61", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 13378, - "nodeType": "Block", - "src": "3534:37:61", - "statements": [ - { - "expression": { - "id": 13376, - "name": "TAP_COLLECTOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13260, - "src": "3551:13:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITAPCollector_$2695", - "typeString": "contract ITAPCollector" - } - }, - "functionReturnParameters": 13375, - "id": 13377, - "nodeType": "Return", - "src": "3544:20:61" - } - ] - }, - "documentation": { - "id": 13370, - "nodeType": "StructuredDocumentation", - "src": "3397:69:61", - "text": " @notice Returns the TAP Collector contract address" - }, - "id": 13379, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_tapCollector", - "nameLocation": "3480:13:61", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13371, - "nodeType": "ParameterList", - "parameters": [], - "src": "3493:2:61" - }, - "returnParameters": { - "id": 13375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13374, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 13379, - "src": "3519:13:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITAPCollector_$2695", - "typeString": "contract ITAPCollector" - }, - "typeName": { - "id": 13373, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13372, - "name": "ITAPCollector", - "nameLocations": [ - "3519:13:61" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 2695, - "src": "3519:13:61" - }, - "referencedDeclaration": 2695, - "src": "3519:13:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITAPCollector_$2695", - "typeString": "contract ITAPCollector" - } - }, - "visibility": "internal" - } - ], - "src": "3518:15:61" - }, - "scope": 13390, - "src": "3471:100:61", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 13388, - "nodeType": "Block", - "src": "3701:32:61", - "statements": [ - { - "expression": { - "id": 13386, - "name": "CURATION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13264, - "src": "3718:8:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "functionReturnParameters": 13385, - "id": 13387, - "nodeType": "Return", - "src": "3711:15:61" - } - ] - }, - "documentation": { - "id": 13380, - "nodeType": "StructuredDocumentation", - "src": "3577:64:61", - "text": " @notice Returns the Curation contract address" - }, - "id": 13389, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_curation", - "nameLocation": "3655:9:61", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 13381, - "nodeType": "ParameterList", - "parameters": [], - "src": "3664:2:61" - }, - "returnParameters": { - "id": 13385, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 13384, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 13389, - "src": "3690:9:61", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - }, - "typeName": { - "id": 13383, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 13382, - "name": "ICuration", - "nameLocations": [ - "3690:9:61" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 165, - "src": "3690:9:61" - }, - "referencedDeclaration": 165, - "src": "3690:9:61", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ICuration_$165", - "typeString": "contract ICuration" - } - }, - "visibility": "internal" - } - ], - "src": "3689:11:61" - }, - "scope": 13390, - "src": "3646:87:61", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 13391, - "src": "642:3093:61", - "usedErrors": [ - 13282 - ], - "usedEvents": [ - 13275 - ] - } - ], - "src": "45:3691:61" - }, - "id": 61 - } - }, - "contracts": { - "@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol": { - "ITokenGateway": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "l1ERC20", - "type": "address" - } - ], - "name": "calculateL2TokenAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "finalizeInboundTransfer", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amunt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPiceBid", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "outboundTransfer", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "calculateL2TokenAddress(address)": "a7e28d48", - "finalizeInboundTransfer(address,address,address,uint256,bytes)": "2e567b36", - "outboundTransfer(address,address,uint256,uint256,uint256,bytes)": "d2ce7d65" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"l1ERC20\",\"type\":\"address\"}],\"name\":\"calculateL2TokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"finalizeInboundTransfer\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amunt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPiceBid\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"outboundTransfer\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"calculateL2TokenAddress(address)\":{\"details\":\"the L1 and L2 address oracles may not always be in sync. For example, a custom token may have been registered but not deployed or the contract self destructed.\",\"params\":{\"l1ERC20\":\"address of L1 token\"},\"returns\":{\"_0\":\"L2 address of a bridged ERC20 token\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"calculateL2TokenAddress(address)\":{\"notice\":\"Calculate the address used when bridging an ERC20 token\"},\"outboundTransfer(address,address,uint256,uint256,uint256,bytes)\":{\"notice\":\"event deprecated in favor of DepositFinalized and WithdrawalFinalized\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\":\"ITokenGateway\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\":{\"keccak256\":\"0x3cbcc6e4629543a99acacc7ee4ffa6c063b9fb17d3597ccd2f9481008e3633bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d6bb0bb830b67d579e57a261e5f5d9e90b32dc006b02badbecf1f6c82c0a5100\",\"dweb:/ipfs/Qmd38iNXZpinwbNRJPEAA8r9bmmtRwjTSK1SkmH47ge4kJ\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/contracts/contracts/curation/ICuration.sol": { - "ICuration": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_signalIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_tokensOutMin", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokens", - "type": "uint256" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "curationTaxPercentage", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getCurationPoolSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getCurationPoolTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_curator", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getCuratorSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "isCurated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_signalOutMin", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_percentage", - "type": "uint32" - } - ], - "name": "setCurationTaxPercentage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_curationTokenMaster", - "type": "address" - } - ], - "name": "setCurationTokenMaster", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_defaultReserveRatio", - "type": "uint32" - } - ], - "name": "setDefaultReserveRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_minimumCurationDeposit", - "type": "uint256" - } - ], - "name": "setMinimumCurationDeposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_signalIn", - "type": "uint256" - } - ], - "name": "signalToTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_tokensIn", - "type": "uint256" - } - ], - "name": "tokensToSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "burn(bytes32,uint256,uint256)": "24bdeec7", - "collect(bytes32,uint256)": "81573288", - "curationTaxPercentage()": "f115c427", - "getCurationPoolSignal(bytes32)": "99439fee", - "getCurationPoolTokens(bytes32)": "46e855da", - "getCuratorSignal(address,bytes32)": "9f94c667", - "isCurated(bytes32)": "4c4ea0ed", - "mint(bytes32,uint256,uint256)": "375a54ab", - "setCurationTaxPercentage(uint32)": "cd18119e", - "setCurationTokenMaster(address)": "9b4d9f33", - "setDefaultReserveRatio(uint32)": "cd0ad4a2", - "setMinimumCurationDeposit(uint256)": "6536fe32", - "signalToTokens(bytes32,uint256)": "0faaf87f", - "tokensToSignal(bytes32,uint256)": "f049b900" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_signalIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_tokensOutMin\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_tokens\",\"type\":\"uint256\"}],\"name\":\"collect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"curationTaxPercentage\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"}],\"name\":\"getCurationPoolSignal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"}],\"name\":\"getCurationPoolTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_curator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"}],\"name\":\"getCuratorSignal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"}],\"name\":\"isCurated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_tokensIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_signalOutMin\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_percentage\",\"type\":\"uint32\"}],\"name\":\"setCurationTaxPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_curationTokenMaster\",\"type\":\"address\"}],\"name\":\"setCurationTokenMaster\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_defaultReserveRatio\",\"type\":\"uint32\"}],\"name\":\"setDefaultReserveRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minimumCurationDeposit\",\"type\":\"uint256\"}],\"name\":\"setMinimumCurationDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_signalIn\",\"type\":\"uint256\"}],\"name\":\"signalToTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_tokensIn\",\"type\":\"uint256\"}],\"name\":\"tokensToSignal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the Curation contract (and L2Curation too)\",\"kind\":\"dev\",\"methods\":{\"burn(bytes32,uint256,uint256)\":{\"params\":{\"_signalIn\":\"Amount of signal to return\",\"_subgraphDeploymentID\":\"SubgraphDeployment the curator is returning signal\",\"_tokensOutMin\":\"Expected minimum amount of tokens to receive\"},\"returns\":{\"_0\":\"Tokens returned\"}},\"collect(bytes32,uint256)\":{\"params\":{\"_subgraphDeploymentID\":\"SubgraphDeployment where funds should be allocated as reserves\",\"_tokens\":\"Amount of Graph Tokens to add to reserves\"}},\"curationTaxPercentage()\":{\"returns\":{\"_0\":\"Curation tax percentage expressed in PPM\"}},\"getCurationPoolSignal(bytes32)\":{\"params\":{\"_subgraphDeploymentID\":\"Subgraph deployment curation pool\"},\"returns\":{\"_0\":\"Amount of signal minted for the subgraph deployment\"}},\"getCurationPoolTokens(bytes32)\":{\"params\":{\"_subgraphDeploymentID\":\"Subgraph deployment curation pool\"},\"returns\":{\"_0\":\"Amount of token reserves in the curation pool\"}},\"getCuratorSignal(address,bytes32)\":{\"params\":{\"_curator\":\"Curator owning the signal tokens\",\"_subgraphDeploymentID\":\"Subgraph deployment curation pool\"},\"returns\":{\"_0\":\"Amount of signal owned by a curator for the subgraph deployment\"}},\"isCurated(bytes32)\":{\"params\":{\"_subgraphDeploymentID\":\"SubgraphDeployment to check if curated\"},\"returns\":{\"_0\":\"True if curated, false otherwise\"}},\"mint(bytes32,uint256,uint256)\":{\"params\":{\"_signalOutMin\":\"Expected minimum amount of signal to receive\",\"_subgraphDeploymentID\":\"Subgraph deployment pool from where to mint signal\",\"_tokensIn\":\"Amount of Graph Tokens to deposit\"},\"returns\":{\"_0\":\"Amount of signal minted\",\"_1\":\"Amount of curation tax burned\"}},\"setCurationTaxPercentage(uint32)\":{\"params\":{\"_percentage\":\"Curation tax percentage charged when depositing GRT tokens\"}},\"setCurationTokenMaster(address)\":{\"params\":{\"_curationTokenMaster\":\"Address of implementation contract to use for curation tokens\"}},\"setDefaultReserveRatio(uint32)\":{\"params\":{\"_defaultReserveRatio\":\"Reserve ratio (in PPM)\"}},\"setMinimumCurationDeposit(uint256)\":{\"params\":{\"_minimumCurationDeposit\":\"Minimum amount of tokens required deposit\"}},\"signalToTokens(bytes32,uint256)\":{\"params\":{\"_signalIn\":\"Amount of signal to burn\",\"_subgraphDeploymentID\":\"Subgraph deployment to burn signal\"},\"returns\":{\"_0\":\"Amount of tokens to get for the specified amount of signal\"}},\"tokensToSignal(bytes32,uint256)\":{\"params\":{\"_subgraphDeploymentID\":\"Subgraph deployment to mint signal\",\"_tokensIn\":\"Amount of tokens used to mint signal\"},\"returns\":{\"_0\":\"Amount of signal that can be bought\",\"_1\":\"Amount of tokens that will be burned as curation tax\"}}},\"title\":\"Curation Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"burn(bytes32,uint256,uint256)\":{\"notice\":\"Burn _signal from the SubgraphDeployment curation pool\"},\"collect(bytes32,uint256)\":{\"notice\":\"Assign Graph Tokens collected as curation fees to the curation pool reserve.\"},\"curationTaxPercentage()\":{\"notice\":\"Tax charged when curators deposit funds. Parts per million. (Allows for 4 decimal points, 999,999 = 99.9999%)\"},\"getCurationPoolSignal(bytes32)\":{\"notice\":\"Get the amount of signal in a curation pool.\"},\"getCurationPoolTokens(bytes32)\":{\"notice\":\"Get the amount of token reserves in a curation pool.\"},\"getCuratorSignal(address,bytes32)\":{\"notice\":\"Get the amount of signal a curator has in a curation pool.\"},\"isCurated(bytes32)\":{\"notice\":\"Check if any GRT tokens are deposited for a SubgraphDeployment.\"},\"mint(bytes32,uint256,uint256)\":{\"notice\":\"Deposit Graph Tokens in exchange for signal of a SubgraphDeployment curation pool.\"},\"setCurationTaxPercentage(uint32)\":{\"notice\":\"Set the curation tax percentage to charge when a curator deposits GRT tokens.\"},\"setCurationTokenMaster(address)\":{\"notice\":\"Set the master copy to use as clones for the curation token.\"},\"setDefaultReserveRatio(uint32)\":{\"notice\":\"Update the default reserve ratio to `_defaultReserveRatio`\"},\"setMinimumCurationDeposit(uint256)\":{\"notice\":\"Update the minimum deposit amount needed to intialize a new subgraph\"},\"signalToTokens(bytes32,uint256)\":{\"notice\":\"Calculate number of tokens to get when burning signal from a curation pool.\"},\"tokensToSignal(bytes32,uint256)\":{\"notice\":\"Calculate amount of signal that can be bought with tokens in a curation pool. This function considers and excludes the deposit tax.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":\"ICuration\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":{\"keccak256\":\"0x17e4db429003cab08cd2859db94b95e0cee1f9478c1881903a4104def8fdc048\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://52ed58228a0e92aeb3493473a6e02f92d26a4e4eb0c46d38dd446e3bfcb6691e\",\"dweb:/ipfs/QmZzWxHAztdz2Q7cobqVEf4ExGpNuqWJFYgs2oHCgApjW6\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/contracts/contracts/epochs/IEpochManager.sol": { - "IEpochManager": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_block", - "type": "uint256" - } - ], - "name": "blockHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "blockNum", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentEpoch", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentEpochBlock", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "currentEpochBlockSinceStart", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_epoch", - "type": "uint256" - } - ], - "name": "epochsSince", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "epochsSinceUpdate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isCurrentEpochRun", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "runEpoch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_epochLength", - "type": "uint256" - } - ], - "name": "setEpochLength", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "blockHash(uint256)": "85df51fd", - "blockNum()": "8ae63d6d", - "currentEpoch()": "76671808", - "currentEpochBlock()": "ab93122c", - "currentEpochBlockSinceStart()": "d0cfa46e", - "epochsSince(uint256)": "1b28126d", - "epochsSinceUpdate()": "19c3b82d", - "isCurrentEpochRun()": "1ce05d38", - "runEpoch()": "c46e58eb", - "setEpochLength(uint256)": "54eea796" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_block\",\"type\":\"uint256\"}],\"name\":\"blockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blockNum\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentEpochBlockSinceStart\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epoch\",\"type\":\"uint256\"}],\"name\":\"epochsSince\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"epochsSinceUpdate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCurrentEpochRun\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"runEpoch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_epochLength\",\"type\":\"uint256\"}],\"name\":\"setEpochLength\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/epochs/IEpochManager.sol\":\"IEpochManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/epochs/IEpochManager.sol\":{\"keccak256\":\"0x0f4b3a3569c023d2610d0d8b37b3ecb0b67f848d77aa063bb311756670017e85\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://df7c43568e554b301134aa2c58e4889ad0d3dcfec40e834b63621a43f39da154\",\"dweb:/ipfs/QmZeSV9AM6FKCkH9QYyF7i5nVggseEJXbvWbtrgUeXqQpo\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/contracts/contracts/governance/IController.sol": { - "IController": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_id", - "type": "bytes32" - } - ], - "name": "getContractProxy", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getGovernor", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "partialPaused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_id", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "name": "setContractProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_partialPaused", - "type": "bool" - } - ], - "name": "setPartialPaused", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newPauseGuardian", - "type": "address" - } - ], - "name": "setPauseGuardian", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_paused", - "type": "bool" - } - ], - "name": "setPaused", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_id", - "type": "bytes32" - } - ], - "name": "unsetContractProxy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_id", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_controller", - "type": "address" - } - ], - "name": "updateController", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "getContractProxy(bytes32)": "f7641a5e", - "getGovernor()": "4fc07d75", - "partialPaused()": "2e292fc7", - "paused()": "5c975abb", - "setContractProxy(bytes32,address)": "e0e99292", - "setPartialPaused(bool)": "56371bd8", - "setPauseGuardian(address)": "48bde20c", - "setPaused(bool)": "16c38b3c", - "unsetContractProxy(bytes32)": "9181df9c", - "updateController(bytes32,address)": "eb5dd94f" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"}],\"name\":\"getContractProxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGovernor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"partialPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"setContractProxy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_partialPaused\",\"type\":\"bool\"}],\"name\":\"setPartialPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newPauseGuardian\",\"type\":\"address\"}],\"name\":\"setPauseGuardian\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_paused\",\"type\":\"bool\"}],\"name\":\"setPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"}],\"name\":\"unsetContractProxy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"updateController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/governance/IController.sol\":\"IController\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/governance/IController.sol\":{\"keccak256\":\"0xe37df86cdea385d708ba00862cd9e04940e4f2aa50354fb3a9d2d4f505d5509a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0f6c9fd2b7a8c5a6b89ef12c7423144df04a5f251d5480be1b73c74a785ff12a\",\"dweb:/ipfs/QmYpiCQoxbDEYQ2FNA39Z4FGfoxfQ8jvH1Z3ccrqguQFMP\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol": { - "IRewardsIssuer": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getAllocationData", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "getSubgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allocationId", - "type": "address" - } - ], - "name": "isActiveAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "getAllocationData(address)": "55c85269", - "getSubgraphAllocatedTokens(bytes32)": "e2e1e8e9", - "isActiveAllocation(address)": "6a3ca383" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getAllocationData\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPerAllocatedToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPending\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentId\",\"type\":\"bytes32\"}],\"name\":\"getSubgraphAllocatedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allocationId\",\"type\":\"address\"}],\"name\":\"isActiveAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getAllocationData(address)\":{\"details\":\"Get allocation data to calculate rewards issuance\",\"params\":{\"allocationId\":\"The allocation Id\"},\"returns\":{\"accRewardsPending\":\"Snapshot of accumulated rewards from previous allocation resizing, pending to be claimed\",\"accRewardsPerAllocatedToken\":\"Rewards snapshot\",\"indexer\":\"The indexer address\",\"subgraphDeploymentId\":\"Subgraph deployment id for the allocation\",\"tokens\":\"Amount of allocated tokens\"}},\"getSubgraphAllocatedTokens(bytes32)\":{\"params\":{\"_subgraphDeploymentId\":\"Deployment Id for the subgraph\"},\"returns\":{\"_0\":\"Total tokens allocated to subgraph\"}},\"isActiveAllocation(address)\":{\"params\":{\"_allocationId\":\"Allocation Id\"},\"returns\":{\"_0\":\"Whether or not the allocation is active\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSubgraphAllocatedTokens(bytes32)\":{\"notice\":\"Return the total amount of tokens allocated to subgraph.\"},\"isActiveAllocation(address)\":{\"notice\":\"Whether or not an allocation is active (i.e open)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":\"IRewardsIssuer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol": { - "IRewardsManager": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_accRewardsPerAllocatedToken", - "type": "uint256" - } - ], - "name": "calcRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getAccRewardsForSubgraph", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "getAccRewardsPerAllocatedToken", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getAccRewardsPerSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getNewRewardsPerSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allocationID", - "type": "address" - } - ], - "name": "getRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "isDenied", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "onSubgraphAllocationUpdate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "onSubgraphSignalUpdate", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "bool", - "name": "_deny", - "type": "bool" - } - ], - "name": "setDenied", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32[]", - "name": "_subgraphDeploymentID", - "type": "bytes32[]" - }, - { - "internalType": "bool[]", - "name": "_deny", - "type": "bool[]" - } - ], - "name": "setDeniedMany", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_issuancePerBlock", - "type": "uint256" - } - ], - "name": "setIssuancePerBlock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_minimumSubgraphSignal", - "type": "uint256" - } - ], - "name": "setMinimumSubgraphSignal", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_subgraphAvailabilityOracle", - "type": "address" - } - ], - "name": "setSubgraphAvailabilityOracle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_subgraphService", - "type": "address" - } - ], - "name": "setSubgraphService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allocationID", - "type": "address" - } - ], - "name": "takeRewards", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "updateAccRewardsPerSignal", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "calcRewards(uint256,uint256)": "c8a5f81e", - "getAccRewardsForSubgraph(bytes32)": "5c6cbd59", - "getAccRewardsPerAllocatedToken(bytes32)": "702a280e", - "getAccRewardsPerSignal()": "a8cc0ee2", - "getNewRewardsPerSignal()": "e284f848", - "getRewards(address)": "79ee54f7", - "isDenied(bytes32)": "e820e284", - "onSubgraphAllocationUpdate(bytes32)": "eeac3e0e", - "onSubgraphSignalUpdate(bytes32)": "1d1c2fec", - "setDenied(bytes32,bool)": "1324a506", - "setDeniedMany(bytes32[],bool[])": "1debaded", - "setIssuancePerBlock(uint256)": "1156bdc1", - "setMinimumSubgraphSignal(uint256)": "4bbfc1c5", - "setSubgraphAvailabilityOracle(address)": "0903c094", - "setSubgraphService(address)": "93a90a1e", - "takeRewards(address)": "db750926", - "updateAccRewardsPerSignal()": "c7d1117d" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_accRewardsPerAllocatedToken\",\"type\":\"uint256\"}],\"name\":\"calcRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"}],\"name\":\"getAccRewardsForSubgraph\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"}],\"name\":\"getAccRewardsPerAllocatedToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAccRewardsPerSignal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNewRewardsPerSignal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allocationID\",\"type\":\"address\"}],\"name\":\"getRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"}],\"name\":\"isDenied\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"}],\"name\":\"onSubgraphAllocationUpdate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"}],\"name\":\"onSubgraphSignalUpdate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_deny\",\"type\":\"bool\"}],\"name\":\"setDenied\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_subgraphDeploymentID\",\"type\":\"bytes32[]\"},{\"internalType\":\"bool[]\",\"name\":\"_deny\",\"type\":\"bool[]\"}],\"name\":\"setDeniedMany\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_issuancePerBlock\",\"type\":\"uint256\"}],\"name\":\"setIssuancePerBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_minimumSubgraphSignal\",\"type\":\"uint256\"}],\"name\":\"setMinimumSubgraphSignal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_subgraphAvailabilityOracle\",\"type\":\"address\"}],\"name\":\"setSubgraphAvailabilityOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_subgraphService\",\"type\":\"address\"}],\"name\":\"setSubgraphService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allocationID\",\"type\":\"address\"}],\"name\":\"takeRewards\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateAccRewardsPerSignal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":\"IRewardsManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0x5b4e4b27c41121831d28a6a71ed90fcb44c34d2d3e722993dac74c239ad653fd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9312944c7b9f5f5901e6b899e11838a628c5a146b6ee70f2bd4664010d652e68\",\"dweb:/ipfs/QmYMjrhnL5pefMQfSf64wFrqmqEAYgxoyf3jb8g2jz1kMc\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/contracts/contracts/token/IGraphToken.sol": { - "IGraphToken": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "addMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "isMinter", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "address", - "name": "_spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "_v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "_r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_account", - "type": "address" - } - ], - "name": "removeMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceMinter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "addMinter(address)": "983b2d56", - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "burn(uint256)": "42966c68", - "burnFrom(address,uint256)": "79cc6790", - "decreaseAllowance(address,uint256)": "a457c2d7", - "increaseAllowance(address,uint256)": "39509351", - "isMinter(address)": "aa271e1a", - "mint(address,uint256)": "40c10f19", - "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf", - "removeMinter(address)": "3092afd5", - "renounceMinter()": "98650275", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"removeMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/token/IGraphToken.sol\":\"IGraphToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/token/IGraphToken.sol\":{\"keccak256\":\"0x2ffad6798d641c8d1288730be725c43041c803caceaf6d9985122d000ad5761c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5f782a5670037fc9223dc20fd4f99c0277a9bec7d08f7800b0a0733e819a07cb\",\"dweb:/ipfs/QmP3K2QnmukScCh1nzgphYdg7AiAuTaT914jq4txLYNpra\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/contracts/contracts/utils/TokenUtils.sol": { - "TokenUtils": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201c1aca3d33c0081dcadf834ba40cbb01ef858105de15d5ed6c82f51ded094d7564736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHR BYTE 0xCA RETURNDATASIZE CALLER 0xC0 ADDMOD SAR 0xCA 0xDF DUP4 0x4B LOG4 0xC 0xBB ADD 0xEF DUP6 DUP2 SDIV 0xDE ISZERO 0xD5 0xED PUSH13 0x82F51DED094D7564736F6C6343 STOP ADDMOD SHL STOP CALLER ", - "sourceMap": "357:1203:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;357:1203:7;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201c1aca3d33c0081dcadf834ba40cbb01ef858105de15d5ed6c82f51ded094d7564736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHR BYTE 0xCA RETURNDATASIZE CALLER 0xC0 ADDMOD SAR 0xCA 0xDF DUP4 0x4B LOG4 0xC 0xBB ADD 0xEF DUP6 DUP2 SDIV 0xDE ISZERO 0xD5 0xED PUSH13 0x82F51DED094D7564736F6C6343 STOP ADDMOD SHL STOP CALLER ", - "sourceMap": "357:1203:7:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"TokenUtils library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains utility functions for handling tokens (transfers and burns). It is specifically adapted for the GraphToken, so does not need to handle edge cases for other tokens.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/contracts/contracts/utils/TokenUtils.sol\":\"TokenUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/token/IGraphToken.sol\":{\"keccak256\":\"0x2ffad6798d641c8d1288730be725c43041c803caceaf6d9985122d000ad5761c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5f782a5670037fc9223dc20fd4f99c0277a9bec7d08f7800b0a0733e819a07cb\",\"dweb:/ipfs/QmP3K2QnmukScCh1nzgphYdg7AiAuTaT914jq4txLYNpra\"]},\"@graphprotocol/contracts/contracts/utils/TokenUtils.sol\":{\"keccak256\":\"0x7bd336193785ed6f09a3bd847f9208f64aa9b87ad67c40838d00fec41bb153d5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d96d83cdb9bbb567e4eafac8bdef3ff6bdaf426338baf76bae277c11afb33cee\",\"dweb:/ipfs/QmNjr4PiJ76Wc5mFqa9H88BjsEMrUfy1jiftNHYTgd6Mp5\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/data-service/DataService.sol": { - "DataService": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidRange", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidValue", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "ProvisionManagerNotAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionManagerProvisionNotFound", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "ratio", - "type": "uint32" - } - ], - "name": "DelegationRatioSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionPendingParametersAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionTokensRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServicePaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceProviderRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServiceProviderSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStopped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "min", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "max", - "type": "uint64" - } - ], - "name": "ThawingPeriodRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "min", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "max", - "type": "uint32" - } - ], - "name": "VerifierCutRangeSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptProvisionPendingParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "delegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDelegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProvisionTokensRange", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThawingPeriodRange", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCutRange", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "startService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "stopService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptProvisionPendingParameters(address,bytes)": "ce0fc0cc", - "collect(address,uint8,bytes)": "b15d2a2c", - "delegationRatio()": "bfdfa7af", - "getDelegationRatio()": "1ebb7c30", - "getProvisionTokensRange()": "819ba366", - "getThawingPeriodRange()": "71ce020a", - "getVerifierCutRange()": "482468b7", - "maximumProvisionTokens()": "73371823", - "maximumThawingPeriod()": "9aafa5d1", - "maximumVerifierCut()": "9249c5c1", - "minimumProvisionTokens()": "36fdd28a", - "minimumThawingPeriod()": "8d2f2948", - "minimumVerifierCut()": "88812583", - "register(address,bytes)": "24b8fbf6", - "slash(address,bytes)": "cb8347fe", - "startService(address,bytes)": "dedf6726", - "stopService(address,bytes)": "8180083b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractName\",\"type\":\"bytes\"}],\"name\":\"GraphDirectoryInvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionManagerInvalidRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionManagerInvalidValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"ProvisionManagerNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionManagerProvisionNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"ratio\",\"type\":\"uint32\"}],\"name\":\"DelegationRatioSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphStaking\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphPayments\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEscrow\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEpochManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphRewardsManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphTokenGateway\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphProxyAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphCuration\",\"type\":\"address\"}],\"name\":\"GraphDirectoryInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionPendingParametersAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionTokensRangeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServicePaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServiceProviderSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStopped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"ThawingPeriodRangeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"min\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"max\",\"type\":\"uint32\"}],\"name\":\"VerifierCutRangeSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"acceptProvisionPendingParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvisionTokensRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThawingPeriodRange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCutRange\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"startService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stopService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IDataService} interface.A note on upgradeability: this base contract can be inherited by upgradeable or non upgradeable contracts. - If the data service implementation is upgradeable, it must initialize the contract via an external initializer function with the `initializer` modifier that calls {__DataService_init} or {__DataService_init_unchained}. It's recommended the implementation constructor to also call {_disableInitializers} to prevent the implementation from being initialized. - If the data service implementation is NOT upgradeable, it must initialize the contract by calling {__DataService_init} or {__DataService_init_unchained} in the constructor. Note that the `initializer` will be required in the constructor.\",\"errors\":{\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"params\":{\"contractName\":\"The name of the contract that was not found, or the controller\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ProvisionManagerInvalidRange(uint256,uint256)\":[{\"params\":{\"max\":\"The maximum value.\",\"min\":\"The minimum value.\"}}],\"ProvisionManagerInvalidValue(bytes,uint256,uint256,uint256)\":[{\"params\":{\"max\":\"The maximum allowed value.\",\"message\":\"The error message.\",\"min\":\"The minimum allowed value.\",\"value\":\"The value that is out of range.\"}}],\"ProvisionManagerNotAuthorized(address,address)\":[{\"params\":{\"caller\":\"The address of the caller.\",\"serviceProvider\":\"The address of the serviceProvider.\"}}],\"ProvisionManagerProvisionNotFound(address)\":[{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}}]},\"events\":{\"DelegationRatioSet(uint32)\":{\"params\":{\"ratio\":\"The delegation ratio\"}},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"params\":{\"graphController\":\"The Graph Controller contract address\",\"graphCuration\":\"The Curation contract address\",\"graphEpochManager\":\"The Epoch Manager contract address\",\"graphEscrow\":\"The Payments Escrow contract address\",\"graphPayments\":\"The Graph Payments contract address\",\"graphProxyAdmin\":\"The Graph Proxy Admin contract address\",\"graphRewardsManager\":\"The Rewards Manager contract address\",\"graphStaking\":\"The Horizon Staking contract address\",\"graphToken\":\"The Graph Token contract address\",\"graphTokenGateway\":\"The Token Gateway contract address\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"ProvisionTokensRangeSet(uint256,uint256)\":{\"params\":{\"max\":\"The maximum allowed value for the provision tokens.\",\"min\":\"The minimum allowed value for the provision tokens.\"}},\"ServicePaymentCollected(address,uint8,uint256)\":{\"params\":{\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens collected.\"}},\"ServiceProviderRegistered(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceProviderSlashed(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens slashed.\"}},\"ServiceStarted(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceStopped(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ThawingPeriodRangeSet(uint64,uint64)\":{\"params\":{\"max\":\"The maximum allowed value for the thawing period.\",\"min\":\"The minimum allowed value for the thawing period.\"}},\"VerifierCutRangeSet(uint32,uint32)\":{\"params\":{\"max\":\"The maximum allowed value for the max verifier cut.\",\"min\":\"The minimum allowed value for the max verifier cut.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"details\":\"Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}. Emits a {ProvisionPendingParametersAccepted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"collect(address,uint8,bytes)\":{\"details\":\"The implementation of this function is expected to interact with {GraphPayments} to collect payment from the service payer, which is done via {IGraphPayments-collect}.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens collected.\"}},\"constructor\":{\"details\":\"Addresses in GraphDirectory are immutables, they can only be set in this constructor.\",\"params\":{\"controller\":\"The address of the Graph Horizon controller contract.\"}},\"register(address,bytes)\":{\"details\":\"Before registering, the service provider must have created a provision in the Graph Horizon staking contract with parameters that are compatible with the data service. Verifies provision parameters and rejects registration in the event they are not valid. Emits a {ServiceProviderRegistered} event. NOTE: Failing to accept the provision will result in the service provider operating on an unverified provision. Depending on of the data service this can be a security risk as the protocol won't be able to guarantee economic security for the consumer.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"slash(address,bytes)\":{\"details\":\"To slash the service provider's provision the function should call {Staking-slash}. Emits a {ServiceProviderSlashed} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"startService(address,bytes)\":{\"details\":\"Emits a {ServiceStarted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"stopService(address,bytes)\":{\"details\":\"Emits a {ServiceStopped} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"title\":\"DataService contract\",\"version\":1},\"userdoc\":{\"errors\":{\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"notice\":\"Thrown when either the controller is the zero address or a contract address is not found on the controller\"}],\"ProvisionManagerInvalidRange(uint256,uint256)\":[{\"notice\":\"Thrown when attempting to set a range where min is greater than max.\"}],\"ProvisionManagerInvalidValue(bytes,uint256,uint256,uint256)\":[{\"notice\":\"Thrown when a provision parameter is out of range.\"}],\"ProvisionManagerNotAuthorized(address,address)\":[{\"notice\":\"Thrown when the caller is not authorized to manage the provision of a service provider.\"}],\"ProvisionManagerProvisionNotFound(address)\":[{\"notice\":\"Thrown when a provision is not found.\"}]},\"events\":{\"DelegationRatioSet(uint32)\":{\"notice\":\"Emitted when the delegation ratio is set.\"},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"notice\":\"Emitted when the GraphDirectory is initialized\"},\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"ProvisionTokensRangeSet(uint256,uint256)\":{\"notice\":\"Emitted when the provision tokens range is set.\"},\"ServicePaymentCollected(address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider collects payment.\"},\"ServiceProviderRegistered(address,bytes)\":{\"notice\":\"Emitted when a service provider is registered with the data service.\"},\"ServiceProviderSlashed(address,uint256)\":{\"notice\":\"Emitted when a service provider is slashed.\"},\"ServiceStarted(address,bytes)\":{\"notice\":\"Emitted when a service provider starts providing the service.\"},\"ServiceStopped(address,bytes)\":{\"notice\":\"Emitted when a service provider stops providing the service.\"},\"ThawingPeriodRangeSet(uint64,uint64)\":{\"notice\":\"Emitted when the thawing period range is set.\"},\"VerifierCutRangeSet(uint32,uint32)\":{\"notice\":\"Emitted when the verifier cut range is set.\"}},\"kind\":\"user\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"notice\":\"Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking contract}.\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"delegationRatio()\":{\"notice\":\"How much delegation the service provider can effectively use\"},\"getDelegationRatio()\":{\"notice\":\"See {IDataService-getDelegationRatio}.\"},\"getProvisionTokensRange()\":{\"notice\":\"See {IDataService-getProvisionTokensRange}.\"},\"getThawingPeriodRange()\":{\"notice\":\"See {IDataService-getThawingPeriodRange}.\"},\"getVerifierCutRange()\":{\"notice\":\"See {IDataService-getVerifierCutRange}.\"},\"maximumProvisionTokens()\":{\"notice\":\"The maximum amount of tokens allowed to register a provision in the data service\"},\"maximumThawingPeriod()\":{\"notice\":\"The maximum thawing period allowed to register a provision in the data service\"},\"maximumVerifierCut()\":{\"notice\":\"The maximum verifier cut allowed to register a provision in the data service (in PPM)\"},\"minimumProvisionTokens()\":{\"notice\":\"The minimum amount of tokens required to register a provision in the data service\"},\"minimumThawingPeriod()\":{\"notice\":\"The minimum thawing period required to register a provision in the data service\"},\"minimumVerifierCut()\":{\"notice\":\"The minimum verifier cut required to register a provision in the data service (in PPM)\"},\"register(address,bytes)\":{\"notice\":\"Registers a service provider with the data service. The service provider can now start providing the service.\"},\"slash(address,bytes)\":{\"notice\":\"Slash a service provider for misbehaviour.\"},\"startService(address,bytes)\":{\"notice\":\"Service provider starts providing the service.\"},\"stopService(address,bytes)\":{\"notice\":\"Service provider stops providing the service.\"}},\"notice\":\"This implementation provides base functionality for a data service: - GraphDirectory, allows the data service to interact with Graph Horizon contracts - ProvisionManager, provides functionality to manage provisions The derived contract MUST implement all the interfaces described in {IDataService} and in accordance with the Data Service framework.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/DataService.sol\":\"DataService\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\":{\"keccak256\":\"0x3cbcc6e4629543a99acacc7ee4ffa6c063b9fb17d3597ccd2f9481008e3633bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d6bb0bb830b67d579e57a261e5f5d9e90b32dc006b02badbecf1f6c82c0a5100\",\"dweb:/ipfs/Qmd38iNXZpinwbNRJPEAA8r9bmmtRwjTSK1SkmH47ge4kJ\"]},\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":{\"keccak256\":\"0x17e4db429003cab08cd2859db94b95e0cee1f9478c1881903a4104def8fdc048\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://52ed58228a0e92aeb3493473a6e02f92d26a4e4eb0c46d38dd446e3bfcb6691e\",\"dweb:/ipfs/QmZzWxHAztdz2Q7cobqVEf4ExGpNuqWJFYgs2oHCgApjW6\"]},\"@graphprotocol/contracts/contracts/epochs/IEpochManager.sol\":{\"keccak256\":\"0x0f4b3a3569c023d2610d0d8b37b3ecb0b67f848d77aa063bb311756670017e85\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://df7c43568e554b301134aa2c58e4889ad0d3dcfec40e834b63621a43f39da154\",\"dweb:/ipfs/QmZeSV9AM6FKCkH9QYyF7i5nVggseEJXbvWbtrgUeXqQpo\"]},\"@graphprotocol/contracts/contracts/governance/IController.sol\":{\"keccak256\":\"0xe37df86cdea385d708ba00862cd9e04940e4f2aa50354fb3a9d2d4f505d5509a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0f6c9fd2b7a8c5a6b89ef12c7423144df04a5f251d5480be1b73c74a785ff12a\",\"dweb:/ipfs/QmYpiCQoxbDEYQ2FNA39Z4FGfoxfQ8jvH1Z3ccrqguQFMP\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0x5b4e4b27c41121831d28a6a71ed90fcb44c34d2d3e722993dac74c239ad653fd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9312944c7b9f5f5901e6b899e11838a628c5a146b6ee70f2bd4664010d652e68\",\"dweb:/ipfs/QmYMjrhnL5pefMQfSf64wFrqmqEAYgxoyf3jb8g2jz1kMc\"]},\"@graphprotocol/contracts/contracts/token/IGraphToken.sol\":{\"keccak256\":\"0x2ffad6798d641c8d1288730be725c43041c803caceaf6d9985122d000ad5761c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5f782a5670037fc9223dc20fd4f99c0277a9bec7d08f7800b0a0733e819a07cb\",\"dweb:/ipfs/QmP3K2QnmukScCh1nzgphYdg7AiAuTaT914jq4txLYNpra\"]},\"@graphprotocol/horizon/contracts/data-service/DataService.sol\":{\"keccak256\":\"0x72d1f60db2ba0d65de99869a98ee0ae43dab30a474415c3ee349458b71f97439\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f59f760342a177e107bd1323ad62a0346d2845ea49554380d625107aafd69a30\",\"dweb:/ipfs/QmaovA9tVpp3yS3KtWqsRQwWK5TNyJeF1BZFuTFR6mhCiL\"]},\"@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol\":{\"keccak256\":\"0xc291c4f4cd273f7aa4e664843207032c0cb85454c9af834940c982073309eab6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://6bf8640abd32f4b2f0700cf5fa04e22926401e7381b92e45b776b4b8cdf27219\",\"dweb:/ipfs/QmaGnVYjXx34sJw6xoLqM2Xtz8gCSiEUGKTajd5cvrmgoC\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol\":{\"keccak256\":\"0xd26e1eb1b0702f856f8489c4f5548644598a502221beece2f87ac4d01af9a609\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://69c3c34019e752bb6562c1b6709fcfd6958eb036ebe07b5c3c63ec47b4a17efc\",\"dweb:/ipfs/QmeKJuzv9Kb5TPBzpi2SoWwmPpn3Y9v3MR1g7hXoFJcwAG\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0x256512546eedbc0a954815735a5bd6d8832c465a3ce0bdc4959a6dcca3ea24ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bcd9acb66c3153a5d38888ef17a798659bae9938e998e6597fcfb8f666bd3e50\",\"dweb:/ipfs/QmfTQt588Zon3AhR1PxhkHGL8xGw5JC7DAepTLDXeMWWA1\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0xa9c752ea887bd2a3637934b5f197526b6fac46b0b924deb75a8d224290ccbc95\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0a6625b4175959cd53af91a3741c12fb1fa2e91e0ab2302dff8a06bf7a66781\",\"dweb:/ipfs/QmPMoc5DN9gZr22gWkKGQDgJ8eqK1pChGQYTbPLC9LDCiY\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0xa32bd068b2a6a6cdd3863439aa280b29718ebb0a94da59e5806455c75af7994e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d1cdd344d026af2fc6e136337f9f86354d1b2731a6076e498c2ffd370705cdb5\",\"dweb:/ipfs/QmZe4rGR9gvyWP9ENDGLWxcB5a67qvbqbFKKhr9Di7VkEN\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x04da4bb0cfc6db397d6140ae72d6a4ffcadb19b5a8fc654ae3fd1550b64526ff\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9dca21008f5cf563d1863148b151d103b92a99c7bb0fe4667fdd9236bfa9881e\",\"dweb:/ipfs/QmPBfG7s2ajEYn35oJk6TjQ6wCQ7FNVAuZnzXbAENbKF9i\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x2aa4aa3745b13f9cadcbf3f93888ebbaa8f5d1da3b6f845f1741d51b16ff9944\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://290e13fd3dc9170244aaa4c6e5f5646878d011ee25024926d4d60d40eb6cf8c9\",\"dweb:/ipfs/QmPWwXxhnxmNSUpVF6caT1cXVtV2c1ackJiMzAbUG4z6Fo\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0xbb225acac73f4245b30a8fe9c0bf4bcc8b310f40da526a0447a2303f1ca63e96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://207826b2277a0bd42b8a4d8825f6b16e46d6dc8039e4027faa22df462aa06079\",\"dweb:/ipfs/QmYS177dKBuY7iRUdwBMHxSMd6SfNpARTApLHMLgFCozTy\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd161d01d49ec47200c1c8374d11ad7d9a2c1776a2f87c546f78535ffa33b3954\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7da68f651214064c6afb1b43955879a2eaea6076c44e92975abf31735b0e1012\",\"dweb:/ipfs/QmZBHtfqhzWsv1oWy73pR8zabgLnhqpiWhknK4TzrPBhV2\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0x2bc503df758ca7fcc2a741b41350158a53e295974a37478336f2ed8b76e460a5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://24af9fe8ca1e0daae752a4b331b77c3a268a2a358e2e34a50df8ef283dd8670f\",\"dweb:/ipfs/QmYBJAMWHeiWWepGTTdkUSN4Vn2oP4GvyeqiwDK1TVdfce\"]},\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x3389a6fae8651820ced92bdc06b7168280055ea65467ac094c5c3fd950700820\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2e3756bebea135066625cba99d4d608ca1770a21abfd3cfbc05a3e1b280c688b\",\"dweb:/ipfs/QmQeebmsKNQqKpGKYPEyJqrpF3ZjP71udwPgoGEdTfvTSb\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1be743a301a082944c78ba37b48c466ebc47d2ddd94529a3e05ed828e4413c68\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://663e05ec37777a21b344acb96235db183dcfac14e42048cfc921ab2038cd77d1\",\"dweb:/ipfs/QmY5mQ2L3BLrB8TDNXadDhjR2nCb7ssNPTJ6zegJnC5bjq\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 2134, - "contract": "@graphprotocol/horizon/contracts/data-service/DataService.sol:DataService", - "label": "minimumProvisionTokens", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 2137, - "contract": "@graphprotocol/horizon/contracts/data-service/DataService.sol:DataService", - "label": "maximumProvisionTokens", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 2140, - "contract": "@graphprotocol/horizon/contracts/data-service/DataService.sol:DataService", - "label": "minimumThawingPeriod", - "offset": 0, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2143, - "contract": "@graphprotocol/horizon/contracts/data-service/DataService.sol:DataService", - "label": "maximumThawingPeriod", - "offset": 8, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2146, - "contract": "@graphprotocol/horizon/contracts/data-service/DataService.sol:DataService", - "label": "minimumVerifierCut", - "offset": 16, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2149, - "contract": "@graphprotocol/horizon/contracts/data-service/DataService.sol:DataService", - "label": "maximumVerifierCut", - "offset": 20, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2152, - "contract": "@graphprotocol/horizon/contracts/data-service/DataService.sol:DataService", - "label": "delegationRatio", - "offset": 24, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2157, - "contract": "@graphprotocol/horizon/contracts/data-service/DataService.sol:DataService", - "label": "__gap", - "offset": 0, - "slot": "3", - "type": "t_array(t_uint256)50_storage" - }, - { - "astId": 703, - "contract": "@graphprotocol/horizon/contracts/data-service/DataService.sol:DataService", - "label": "__gap", - "offset": 0, - "slot": "53", - "type": "t_array(t_uint256)50_storage" - } - ], - "types": { - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - }, - "t_uint32": { - "encoding": "inplace", - "label": "uint32", - "numberOfBytes": "4" - }, - "t_uint64": { - "encoding": "inplace", - "label": "uint64", - "numberOfBytes": "8" - } - } - } - } - }, - "@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol": { - "DataServiceV1Storage": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"Gap to allow adding variables in future upgrades\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol\":\"DataServiceV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol\":{\"keccak256\":\"0xc291c4f4cd273f7aa4e664843207032c0cb85454c9af834940c982073309eab6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://6bf8640abd32f4b2f0700cf5fa04e22926401e7381b92e45b776b4b8cdf27219\",\"dweb:/ipfs/QmaGnVYjXx34sJw6xoLqM2Xtz8gCSiEUGKTajd5cvrmgoC\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 703, - "contract": "@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol:DataServiceV1Storage", - "label": "__gap", - "offset": 0, - "slot": "0", - "type": "t_array(t_uint256)50_storage" - } - ], - "types": { - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - } - } - } - } - }, - "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol": { - "DataServiceFees": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - } - ], - "name": "DataServiceFeesClaimNotFound", - "type": "error" - }, - { - "inputs": [], - "name": "DataServiceFeesZeroTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListEmptyList", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidIterations", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidRange", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidValue", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "ProvisionManagerNotAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionManagerProvisionNotFound", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokensAvailable", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensRequired", - "type": "uint256" - } - ], - "name": "ProvisionTrackerInsufficientTokens", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "ratio", - "type": "uint32" - } - ], - "name": "DelegationRatioSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionPendingParametersAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionTokensRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServicePaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceProviderRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServiceProviderSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStopped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "unlockTimestamp", - "type": "uint256" - } - ], - "name": "StakeClaimLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "releasableAt", - "type": "uint256" - } - ], - "name": "StakeClaimReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimsCount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReleased", - "type": "uint256" - } - ], - "name": "StakeClaimsReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "min", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "max", - "type": "uint64" - } - ], - "name": "ThawingPeriodRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "min", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "max", - "type": "uint32" - } - ], - "name": "VerifierCutRangeSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptProvisionPendingParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - } - ], - "name": "claims", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "releasableAt", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "nextClaim", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "claimsLists", - "outputs": [ - { - "internalType": "bytes32", - "name": "head", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "tail", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "delegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "feesProvisionTracker", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDelegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProvisionTokensRange", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThawingPeriodRange", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCutRange", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numClaimsToRelease", - "type": "uint256" - } - ], - "name": "releaseStake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "startService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "stopService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptProvisionPendingParameters(address,bytes)": "ce0fc0cc", - "claims(bytes32)": "eff0f592", - "claimsLists(address)": "13c474c9", - "collect(address,uint8,bytes)": "b15d2a2c", - "delegationRatio()": "bfdfa7af", - "feesProvisionTracker(address)": "cbe5f3f2", - "getDelegationRatio()": "1ebb7c30", - "getProvisionTokensRange()": "819ba366", - "getThawingPeriodRange()": "71ce020a", - "getVerifierCutRange()": "482468b7", - "maximumProvisionTokens()": "73371823", - "maximumThawingPeriod()": "9aafa5d1", - "maximumVerifierCut()": "9249c5c1", - "minimumProvisionTokens()": "36fdd28a", - "minimumThawingPeriod()": "8d2f2948", - "minimumVerifierCut()": "88812583", - "register(address,bytes)": "24b8fbf6", - "releaseStake(uint256)": "45f54485", - "slash(address,bytes)": "cb8347fe", - "startService(address,bytes)": "dedf6726", - "stopService(address,bytes)": "8180083b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"DataServiceFeesClaimNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DataServiceFeesZeroTokens\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractName\",\"type\":\"bytes\"}],\"name\":\"GraphDirectoryInvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LinkedListEmptyList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LinkedListInvalidIterations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionManagerInvalidRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionManagerInvalidValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"ProvisionManagerNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionManagerProvisionNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokensAvailable\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensRequired\",\"type\":\"uint256\"}],\"name\":\"ProvisionTrackerInsufficientTokens\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"ratio\",\"type\":\"uint32\"}],\"name\":\"DelegationRatioSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphStaking\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphPayments\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEscrow\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEpochManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphRewardsManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphTokenGateway\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphProxyAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphCuration\",\"type\":\"address\"}],\"name\":\"GraphDirectoryInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionPendingParametersAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionTokensRangeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServicePaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServiceProviderSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStopped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockTimestamp\",\"type\":\"uint256\"}],\"name\":\"StakeClaimLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"releasableAt\",\"type\":\"uint256\"}],\"name\":\"StakeClaimReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensReleased\",\"type\":\"uint256\"}],\"name\":\"StakeClaimsReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"ThawingPeriodRangeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"min\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"max\",\"type\":\"uint32\"}],\"name\":\"VerifierCutRangeSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"acceptProvisionPendingParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"releasableAt\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"nextClaim\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"claimsLists\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tail\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"feesProvisionTracker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvisionTokensRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThawingPeriodRange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCutRange\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numClaimsToRelease\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"startService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stopService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IDataServiceFees} interface.\",\"errors\":{\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"params\":{\"contractName\":\"The name of the contract that was not found, or the controller\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ProvisionManagerInvalidRange(uint256,uint256)\":[{\"params\":{\"max\":\"The maximum value.\",\"min\":\"The minimum value.\"}}],\"ProvisionManagerInvalidValue(bytes,uint256,uint256,uint256)\":[{\"params\":{\"max\":\"The maximum allowed value.\",\"message\":\"The error message.\",\"min\":\"The minimum allowed value.\",\"value\":\"The value that is out of range.\"}}],\"ProvisionManagerNotAuthorized(address,address)\":[{\"params\":{\"caller\":\"The address of the caller.\",\"serviceProvider\":\"The address of the serviceProvider.\"}}],\"ProvisionManagerProvisionNotFound(address)\":[{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}}]},\"events\":{\"DelegationRatioSet(uint32)\":{\"params\":{\"ratio\":\"The delegation ratio\"}},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"params\":{\"graphController\":\"The Graph Controller contract address\",\"graphCuration\":\"The Curation contract address\",\"graphEpochManager\":\"The Epoch Manager contract address\",\"graphEscrow\":\"The Payments Escrow contract address\",\"graphPayments\":\"The Graph Payments contract address\",\"graphProxyAdmin\":\"The Graph Proxy Admin contract address\",\"graphRewardsManager\":\"The Rewards Manager contract address\",\"graphStaking\":\"The Horizon Staking contract address\",\"graphToken\":\"The Graph Token contract address\",\"graphTokenGateway\":\"The Token Gateway contract address\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"ProvisionTokensRangeSet(uint256,uint256)\":{\"params\":{\"max\":\"The maximum allowed value for the provision tokens.\",\"min\":\"The minimum allowed value for the provision tokens.\"}},\"ServicePaymentCollected(address,uint8,uint256)\":{\"params\":{\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens collected.\"}},\"ServiceProviderRegistered(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceProviderSlashed(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens slashed.\"}},\"ServiceStarted(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceStopped(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"StakeClaimLocked(address,bytes32,uint256,uint256)\":{\"params\":{\"claimId\":\"The id of the stake claim\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens to lock in the claim\",\"unlockTimestamp\":\"The timestamp when the tokens can be released\"}},\"StakeClaimReleased(address,bytes32,uint256,uint256)\":{\"params\":{\"claimId\":\"The id of the stake claim\",\"releasableAt\":\"The timestamp when the tokens were released\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens released\"}},\"StakeClaimsReleased(address,uint256,uint256)\":{\"params\":{\"claimsCount\":\"The number of stake claims being released\",\"serviceProvider\":\"The address of the service provider\",\"tokensReleased\":\"The total amount of tokens being released\"}},\"ThawingPeriodRangeSet(uint64,uint64)\":{\"params\":{\"max\":\"The maximum allowed value for the thawing period.\",\"min\":\"The minimum allowed value for the thawing period.\"}},\"VerifierCutRangeSet(uint32,uint32)\":{\"params\":{\"max\":\"The maximum allowed value for the max verifier cut.\",\"min\":\"The minimum allowed value for the max verifier cut.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"details\":\"Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}. Emits a {ProvisionPendingParametersAccepted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"collect(address,uint8,bytes)\":{\"details\":\"The implementation of this function is expected to interact with {GraphPayments} to collect payment from the service payer, which is done via {IGraphPayments-collect}.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens collected.\"}},\"register(address,bytes)\":{\"details\":\"Before registering, the service provider must have created a provision in the Graph Horizon staking contract with parameters that are compatible with the data service. Verifies provision parameters and rejects registration in the event they are not valid. Emits a {ServiceProviderRegistered} event. NOTE: Failing to accept the provision will result in the service provider operating on an unverified provision. Depending on of the data service this can be a security risk as the protocol won't be able to guarantee economic security for the consumer.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"slash(address,bytes)\":{\"details\":\"To slash the service provider's provision the function should call {Staking-slash}. Emits a {ServiceProviderSlashed} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"startService(address,bytes)\":{\"details\":\"Emits a {ServiceStarted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"stopService(address,bytes)\":{\"details\":\"Emits a {ServiceStopped} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"title\":\"DataServiceFees contract\",\"version\":1},\"userdoc\":{\"errors\":{\"DataServiceFeesClaimNotFound(bytes32)\":[{\"notice\":\"Thrown when attempting to get a stake claim that does not exist.\"}],\"DataServiceFeesZeroTokens()\":[{\"notice\":\"Emitted when trying to lock zero tokens in a stake claim\"}],\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"notice\":\"Thrown when either the controller is the zero address or a contract address is not found on the controller\"}],\"LinkedListEmptyList()\":[{\"notice\":\"Thrown when trying to remove an item from an empty list\"}],\"LinkedListInvalidIterations()\":[{\"notice\":\"Thrown when trying to traverse a list with more iterations than elements\"}],\"ProvisionManagerInvalidRange(uint256,uint256)\":[{\"notice\":\"Thrown when attempting to set a range where min is greater than max.\"}],\"ProvisionManagerInvalidValue(bytes,uint256,uint256,uint256)\":[{\"notice\":\"Thrown when a provision parameter is out of range.\"}],\"ProvisionManagerNotAuthorized(address,address)\":[{\"notice\":\"Thrown when the caller is not authorized to manage the provision of a service provider.\"}],\"ProvisionManagerProvisionNotFound(address)\":[{\"notice\":\"Thrown when a provision is not found.\"}],\"ProvisionTrackerInsufficientTokens(uint256,uint256)\":[{\"notice\":\"Thrown when trying to lock more tokens than available\"}]},\"events\":{\"DelegationRatioSet(uint32)\":{\"notice\":\"Emitted when the delegation ratio is set.\"},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"notice\":\"Emitted when the GraphDirectory is initialized\"},\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"ProvisionTokensRangeSet(uint256,uint256)\":{\"notice\":\"Emitted when the provision tokens range is set.\"},\"ServicePaymentCollected(address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider collects payment.\"},\"ServiceProviderRegistered(address,bytes)\":{\"notice\":\"Emitted when a service provider is registered with the data service.\"},\"ServiceProviderSlashed(address,uint256)\":{\"notice\":\"Emitted when a service provider is slashed.\"},\"ServiceStarted(address,bytes)\":{\"notice\":\"Emitted when a service provider starts providing the service.\"},\"ServiceStopped(address,bytes)\":{\"notice\":\"Emitted when a service provider stops providing the service.\"},\"StakeClaimLocked(address,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when a stake claim is created and stake is locked.\"},\"StakeClaimReleased(address,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when a stake claim is released and stake is unlocked.\"},\"StakeClaimsReleased(address,uint256,uint256)\":{\"notice\":\"Emitted when a series of stake claims are released.\"},\"ThawingPeriodRangeSet(uint64,uint64)\":{\"notice\":\"Emitted when the thawing period range is set.\"},\"VerifierCutRangeSet(uint32,uint32)\":{\"notice\":\"Emitted when the verifier cut range is set.\"}},\"kind\":\"user\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"notice\":\"Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking contract}.\"},\"claims(bytes32)\":{\"notice\":\"List of all locked stake claims to be released to service providers\"},\"claimsLists(address)\":{\"notice\":\"Service providers registered in the data service\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"delegationRatio()\":{\"notice\":\"How much delegation the service provider can effectively use\"},\"getDelegationRatio()\":{\"notice\":\"See {IDataService-getDelegationRatio}.\"},\"getProvisionTokensRange()\":{\"notice\":\"See {IDataService-getProvisionTokensRange}.\"},\"getThawingPeriodRange()\":{\"notice\":\"See {IDataService-getThawingPeriodRange}.\"},\"getVerifierCutRange()\":{\"notice\":\"See {IDataService-getVerifierCutRange}.\"},\"maximumProvisionTokens()\":{\"notice\":\"The maximum amount of tokens allowed to register a provision in the data service\"},\"maximumThawingPeriod()\":{\"notice\":\"The maximum thawing period allowed to register a provision in the data service\"},\"maximumVerifierCut()\":{\"notice\":\"The maximum verifier cut allowed to register a provision in the data service (in PPM)\"},\"minimumProvisionTokens()\":{\"notice\":\"The minimum amount of tokens required to register a provision in the data service\"},\"minimumThawingPeriod()\":{\"notice\":\"The minimum thawing period required to register a provision in the data service\"},\"minimumVerifierCut()\":{\"notice\":\"The minimum verifier cut required to register a provision in the data service (in PPM)\"},\"register(address,bytes)\":{\"notice\":\"Registers a service provider with the data service. The service provider can now start providing the service.\"},\"releaseStake(uint256)\":{\"notice\":\"See {IDataServiceFees-releaseStake}\"},\"slash(address,bytes)\":{\"notice\":\"Slash a service provider for misbehaviour.\"},\"startService(address,bytes)\":{\"notice\":\"Service provider starts providing the service.\"},\"stopService(address,bytes)\":{\"notice\":\"Service provider stops providing the service.\"}},\"notice\":\"Extension for the {IDataService} contract to handle payment collateralization using a Horizon provision. See {IDataServiceFees} for more details.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol\":\"DataServiceFees\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\":{\"keccak256\":\"0x3cbcc6e4629543a99acacc7ee4ffa6c063b9fb17d3597ccd2f9481008e3633bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d6bb0bb830b67d579e57a261e5f5d9e90b32dc006b02badbecf1f6c82c0a5100\",\"dweb:/ipfs/Qmd38iNXZpinwbNRJPEAA8r9bmmtRwjTSK1SkmH47ge4kJ\"]},\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":{\"keccak256\":\"0x17e4db429003cab08cd2859db94b95e0cee1f9478c1881903a4104def8fdc048\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://52ed58228a0e92aeb3493473a6e02f92d26a4e4eb0c46d38dd446e3bfcb6691e\",\"dweb:/ipfs/QmZzWxHAztdz2Q7cobqVEf4ExGpNuqWJFYgs2oHCgApjW6\"]},\"@graphprotocol/contracts/contracts/epochs/IEpochManager.sol\":{\"keccak256\":\"0x0f4b3a3569c023d2610d0d8b37b3ecb0b67f848d77aa063bb311756670017e85\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://df7c43568e554b301134aa2c58e4889ad0d3dcfec40e834b63621a43f39da154\",\"dweb:/ipfs/QmZeSV9AM6FKCkH9QYyF7i5nVggseEJXbvWbtrgUeXqQpo\"]},\"@graphprotocol/contracts/contracts/governance/IController.sol\":{\"keccak256\":\"0xe37df86cdea385d708ba00862cd9e04940e4f2aa50354fb3a9d2d4f505d5509a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0f6c9fd2b7a8c5a6b89ef12c7423144df04a5f251d5480be1b73c74a785ff12a\",\"dweb:/ipfs/QmYpiCQoxbDEYQ2FNA39Z4FGfoxfQ8jvH1Z3ccrqguQFMP\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0x5b4e4b27c41121831d28a6a71ed90fcb44c34d2d3e722993dac74c239ad653fd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9312944c7b9f5f5901e6b899e11838a628c5a146b6ee70f2bd4664010d652e68\",\"dweb:/ipfs/QmYMjrhnL5pefMQfSf64wFrqmqEAYgxoyf3jb8g2jz1kMc\"]},\"@graphprotocol/contracts/contracts/token/IGraphToken.sol\":{\"keccak256\":\"0x2ffad6798d641c8d1288730be725c43041c803caceaf6d9985122d000ad5761c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5f782a5670037fc9223dc20fd4f99c0277a9bec7d08f7800b0a0733e819a07cb\",\"dweb:/ipfs/QmP3K2QnmukScCh1nzgphYdg7AiAuTaT914jq4txLYNpra\"]},\"@graphprotocol/horizon/contracts/data-service/DataService.sol\":{\"keccak256\":\"0x72d1f60db2ba0d65de99869a98ee0ae43dab30a474415c3ee349458b71f97439\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f59f760342a177e107bd1323ad62a0346d2845ea49554380d625107aafd69a30\",\"dweb:/ipfs/QmaovA9tVpp3yS3KtWqsRQwWK5TNyJeF1BZFuTFR6mhCiL\"]},\"@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol\":{\"keccak256\":\"0xc291c4f4cd273f7aa4e664843207032c0cb85454c9af834940c982073309eab6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://6bf8640abd32f4b2f0700cf5fa04e22926401e7381b92e45b776b4b8cdf27219\",\"dweb:/ipfs/QmaGnVYjXx34sJw6xoLqM2Xtz8gCSiEUGKTajd5cvrmgoC\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol\":{\"keccak256\":\"0x136536e55b4a7ee042b368f32e771e6fe5aa512d89e3eb3e53bc65133a61ec7e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://4cd6aa727129b4d30db958f0fb814fe9313da691340af3998baa283bd0c0d3a4\",\"dweb:/ipfs/QmZfakV8Gemw3o6SLQJjZ3m4gYkaFi4VMuQ5jnDJzyhia4\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol\":{\"keccak256\":\"0xfc2ead98c0a29cf14523745ccb07cbd568ba3299bffe5f9c3bec9dad7bf00562\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1a27545f89d99c54e8acd01d510b31e97500c75a4ace58f2986ab01eb1f0ff13\",\"dweb:/ipfs/QmeBPV1QfdTM6M9q478k512hKSr7kWsKwfEESdDimHQaoH\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x8d2bed66024782e98b52836a3be855fe6ae59c9bb9ba863e3d420c6ebb80f764\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e945e02d82e8fef6cb25148533acaa6579c9e70eaac6e725eb30559ba91b3f8\",\"dweb:/ipfs/QmfUei9N9Exwwmrm2gL2FKcMuyGPqUpSVKY8pKE2QeJyuz\"]},\"@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol\":{\"keccak256\":\"0x9012127a1b1dc8a3f75ad49925632faecca8bcb46f42ab7d1ac0af83a7514f9c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b002f1f6759e7ced37f161706bc4b787ba7534fb4326ae7ab395270926292c42\",\"dweb:/ipfs/QmRVDPWMbrijk14sywXTbnKdueVBgADBB7h8F9aGA4DgSZ\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol\":{\"keccak256\":\"0xd26e1eb1b0702f856f8489c4f5548644598a502221beece2f87ac4d01af9a609\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://69c3c34019e752bb6562c1b6709fcfd6958eb036ebe07b5c3c63ec47b4a17efc\",\"dweb:/ipfs/QmeKJuzv9Kb5TPBzpi2SoWwmPpn3Y9v3MR1g7hXoFJcwAG\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0x256512546eedbc0a954815735a5bd6d8832c465a3ce0bdc4959a6dcca3ea24ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bcd9acb66c3153a5d38888ef17a798659bae9938e998e6597fcfb8f666bd3e50\",\"dweb:/ipfs/QmfTQt588Zon3AhR1PxhkHGL8xGw5JC7DAepTLDXeMWWA1\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0xa9c752ea887bd2a3637934b5f197526b6fac46b0b924deb75a8d224290ccbc95\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0a6625b4175959cd53af91a3741c12fb1fa2e91e0ab2302dff8a06bf7a66781\",\"dweb:/ipfs/QmPMoc5DN9gZr22gWkKGQDgJ8eqK1pChGQYTbPLC9LDCiY\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0xa32bd068b2a6a6cdd3863439aa280b29718ebb0a94da59e5806455c75af7994e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d1cdd344d026af2fc6e136337f9f86354d1b2731a6076e498c2ffd370705cdb5\",\"dweb:/ipfs/QmZe4rGR9gvyWP9ENDGLWxcB5a67qvbqbFKKhr9Di7VkEN\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x04da4bb0cfc6db397d6140ae72d6a4ffcadb19b5a8fc654ae3fd1550b64526ff\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9dca21008f5cf563d1863148b151d103b92a99c7bb0fe4667fdd9236bfa9881e\",\"dweb:/ipfs/QmPBfG7s2ajEYn35oJk6TjQ6wCQ7FNVAuZnzXbAENbKF9i\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x2aa4aa3745b13f9cadcbf3f93888ebbaa8f5d1da3b6f845f1741d51b16ff9944\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://290e13fd3dc9170244aaa4c6e5f5646878d011ee25024926d4d60d40eb6cf8c9\",\"dweb:/ipfs/QmPWwXxhnxmNSUpVF6caT1cXVtV2c1ackJiMzAbUG4z6Fo\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0xbb225acac73f4245b30a8fe9c0bf4bcc8b310f40da526a0447a2303f1ca63e96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://207826b2277a0bd42b8a4d8825f6b16e46d6dc8039e4027faa22df462aa06079\",\"dweb:/ipfs/QmYS177dKBuY7iRUdwBMHxSMd6SfNpARTApLHMLgFCozTy\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd161d01d49ec47200c1c8374d11ad7d9a2c1776a2f87c546f78535ffa33b3954\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7da68f651214064c6afb1b43955879a2eaea6076c44e92975abf31735b0e1012\",\"dweb:/ipfs/QmZBHtfqhzWsv1oWy73pR8zabgLnhqpiWhknK4TzrPBhV2\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0x2bc503df758ca7fcc2a741b41350158a53e295974a37478336f2ed8b76e460a5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://24af9fe8ca1e0daae752a4b331b77c3a268a2a358e2e34a50df8ef283dd8670f\",\"dweb:/ipfs/QmYBJAMWHeiWWepGTTdkUSN4Vn2oP4GvyeqiwDK1TVdfce\"]},\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x3389a6fae8651820ced92bdc06b7168280055ea65467ac094c5c3fd950700820\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2e3756bebea135066625cba99d4d608ca1770a21abfd3cfbc05a3e1b280c688b\",\"dweb:/ipfs/QmQeebmsKNQqKpGKYPEyJqrpF3ZjP71udwPgoGEdTfvTSb\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1be743a301a082944c78ba37b48c466ebc47d2ddd94529a3e05ed828e4413c68\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://663e05ec37777a21b344acb96235db183dcfac14e42048cfc921ab2038cd77d1\",\"dweb:/ipfs/QmY5mQ2L3BLrB8TDNXadDhjR2nCb7ssNPTJ6zegJnC5bjq\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 2134, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "minimumProvisionTokens", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 2137, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "maximumProvisionTokens", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 2140, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "minimumThawingPeriod", - "offset": 0, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2143, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "maximumThawingPeriod", - "offset": 8, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2146, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "minimumVerifierCut", - "offset": 16, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2149, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "maximumVerifierCut", - "offset": 20, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2152, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "delegationRatio", - "offset": 24, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2157, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "__gap", - "offset": 0, - "slot": "3", - "type": "t_array(t_uint256)50_storage" - }, - { - "astId": 703, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "__gap", - "offset": 0, - "slot": "53", - "type": "t_array(t_uint256)50_storage" - }, - { - "astId": 1063, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "feesProvisionTracker", - "offset": 0, - "slot": "103", - "type": "t_mapping(t_address,t_uint256)" - }, - { - "astId": 1069, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "claims", - "offset": 0, - "slot": "104", - "type": "t_mapping(t_bytes32,t_struct(StakeClaim)1335_storage)" - }, - { - "astId": 1075, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "claimsLists", - "offset": 0, - "slot": "105", - "type": "t_mapping(t_address,t_struct(List)3813_storage)" - }, - { - "astId": 1080, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "__gap", - "offset": 0, - "slot": "106", - "type": "t_array(t_uint256)50_storage" - } - ], - "types": { - "t_address": { - "encoding": "inplace", - "label": "address", - "numberOfBytes": "20" - }, - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_bytes32": { - "encoding": "inplace", - "label": "bytes32", - "numberOfBytes": "32" - }, - "t_mapping(t_address,t_struct(List)3813_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct LinkedList.List)", - "numberOfBytes": "32", - "value": "t_struct(List)3813_storage" - }, - "t_mapping(t_address,t_uint256)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => uint256)", - "numberOfBytes": "32", - "value": "t_uint256" - }, - "t_mapping(t_bytes32,t_struct(StakeClaim)1335_storage)": { - "encoding": "mapping", - "key": "t_bytes32", - "label": "mapping(bytes32 => struct IDataServiceFees.StakeClaim)", - "numberOfBytes": "32", - "value": "t_struct(StakeClaim)1335_storage" - }, - "t_struct(List)3813_storage": { - "encoding": "inplace", - "label": "struct LinkedList.List", - "members": [ - { - "astId": 3806, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "head", - "offset": 0, - "slot": "0", - "type": "t_bytes32" - }, - { - "astId": 3808, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "tail", - "offset": 0, - "slot": "1", - "type": "t_bytes32" - }, - { - "astId": 3810, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "nonce", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 3812, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "count", - "offset": 0, - "slot": "3", - "type": "t_uint256" - } - ], - "numberOfBytes": "128" - }, - "t_struct(StakeClaim)1335_storage": { - "encoding": "inplace", - "label": "struct IDataServiceFees.StakeClaim", - "members": [ - { - "astId": 1328, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "tokens", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 1330, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "createdAt", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 1332, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "releasableAt", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 1334, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol:DataServiceFees", - "label": "nextClaim", - "offset": 0, - "slot": "3", - "type": "t_bytes32" - } - ], - "numberOfBytes": "128" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - }, - "t_uint32": { - "encoding": "inplace", - "label": "uint32", - "numberOfBytes": "4" - }, - "t_uint64": { - "encoding": "inplace", - "label": "uint64", - "numberOfBytes": "8" - } - } - } - } - }, - "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol": { - "DataServiceFeesV1Storage": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - } - ], - "name": "claims", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "releasableAt", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "nextClaim", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "claimsLists", - "outputs": [ - { - "internalType": "bytes32", - "name": "head", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "tail", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "feesProvisionTracker", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "claims(bytes32)": "eff0f592", - "claimsLists(address)": "13c474c9", - "feesProvisionTracker(address)": "cbe5f3f2" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"releasableAt\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"nextClaim\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"claimsLists\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tail\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"feesProvisionTracker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"Gap to allow adding variables in future upgrades\"}},\"title\":\"Storage layout for the {DataServiceFees} extension contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"claims(bytes32)\":{\"notice\":\"List of all locked stake claims to be released to service providers\"},\"claimsLists(address)\":{\"notice\":\"Service providers registered in the data service\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol\":\"DataServiceFeesV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol\":{\"keccak256\":\"0xfc2ead98c0a29cf14523745ccb07cbd568ba3299bffe5f9c3bec9dad7bf00562\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1a27545f89d99c54e8acd01d510b31e97500c75a4ace58f2986ab01eb1f0ff13\",\"dweb:/ipfs/QmeBPV1QfdTM6M9q478k512hKSr7kWsKwfEESdDimHQaoH\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x8d2bed66024782e98b52836a3be855fe6ae59c9bb9ba863e3d420c6ebb80f764\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e945e02d82e8fef6cb25148533acaa6579c9e70eaac6e725eb30559ba91b3f8\",\"dweb:/ipfs/QmfUei9N9Exwwmrm2gL2FKcMuyGPqUpSVKY8pKE2QeJyuz\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 1063, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "feesProvisionTracker", - "offset": 0, - "slot": "0", - "type": "t_mapping(t_address,t_uint256)" - }, - { - "astId": 1069, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "claims", - "offset": 0, - "slot": "1", - "type": "t_mapping(t_bytes32,t_struct(StakeClaim)1335_storage)" - }, - { - "astId": 1075, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "claimsLists", - "offset": 0, - "slot": "2", - "type": "t_mapping(t_address,t_struct(List)3813_storage)" - }, - { - "astId": 1080, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "__gap", - "offset": 0, - "slot": "3", - "type": "t_array(t_uint256)50_storage" - } - ], - "types": { - "t_address": { - "encoding": "inplace", - "label": "address", - "numberOfBytes": "20" - }, - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_bytes32": { - "encoding": "inplace", - "label": "bytes32", - "numberOfBytes": "32" - }, - "t_mapping(t_address,t_struct(List)3813_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct LinkedList.List)", - "numberOfBytes": "32", - "value": "t_struct(List)3813_storage" - }, - "t_mapping(t_address,t_uint256)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => uint256)", - "numberOfBytes": "32", - "value": "t_uint256" - }, - "t_mapping(t_bytes32,t_struct(StakeClaim)1335_storage)": { - "encoding": "mapping", - "key": "t_bytes32", - "label": "mapping(bytes32 => struct IDataServiceFees.StakeClaim)", - "numberOfBytes": "32", - "value": "t_struct(StakeClaim)1335_storage" - }, - "t_struct(List)3813_storage": { - "encoding": "inplace", - "label": "struct LinkedList.List", - "members": [ - { - "astId": 3806, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "head", - "offset": 0, - "slot": "0", - "type": "t_bytes32" - }, - { - "astId": 3808, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "tail", - "offset": 0, - "slot": "1", - "type": "t_bytes32" - }, - { - "astId": 3810, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "nonce", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 3812, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "count", - "offset": 0, - "slot": "3", - "type": "t_uint256" - } - ], - "numberOfBytes": "128" - }, - "t_struct(StakeClaim)1335_storage": { - "encoding": "inplace", - "label": "struct IDataServiceFees.StakeClaim", - "members": [ - { - "astId": 1328, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "tokens", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 1330, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "createdAt", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 1332, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "releasableAt", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 1334, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol:DataServiceFeesV1Storage", - "label": "nextClaim", - "offset": 0, - "slot": "3", - "type": "t_bytes32" - } - ], - "numberOfBytes": "128" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - } - } - } - } - }, - "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol": { - "DataServicePausableUpgradeable": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "DataServicePausableNotPauseGuardian", - "type": "error" - }, - { - "inputs": [], - "name": "EnforcedPause", - "type": "error" - }, - { - "inputs": [], - "name": "ExpectedPause", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidRange", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidValue", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "ProvisionManagerNotAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionManagerProvisionNotFound", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "ratio", - "type": "uint32" - } - ], - "name": "DelegationRatioSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "PauseGuardianSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionPendingParametersAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionTokensRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServicePaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceProviderRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServiceProviderSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStopped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "min", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "max", - "type": "uint64" - } - ], - "name": "ThawingPeriodRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "min", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "max", - "type": "uint32" - } - ], - "name": "VerifierCutRangeSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptProvisionPendingParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "delegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDelegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProvisionTokensRange", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThawingPeriodRange", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCutRange", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pauseGuardian", - "type": "address" - } - ], - "name": "pauseGuardians", - "outputs": [ - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "startService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "stopService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptProvisionPendingParameters(address,bytes)": "ce0fc0cc", - "collect(address,uint8,bytes)": "b15d2a2c", - "delegationRatio()": "bfdfa7af", - "getDelegationRatio()": "1ebb7c30", - "getProvisionTokensRange()": "819ba366", - "getThawingPeriodRange()": "71ce020a", - "getVerifierCutRange()": "482468b7", - "maximumProvisionTokens()": "73371823", - "maximumThawingPeriod()": "9aafa5d1", - "maximumVerifierCut()": "9249c5c1", - "minimumProvisionTokens()": "36fdd28a", - "minimumThawingPeriod()": "8d2f2948", - "minimumVerifierCut()": "88812583", - "pause()": "8456cb59", - "pauseGuardians(address)": "9384e078", - "paused()": "5c975abb", - "register(address,bytes)": "24b8fbf6", - "slash(address,bytes)": "cb8347fe", - "startService(address,bytes)": "dedf6726", - "stopService(address,bytes)": "8180083b", - "unpause()": "3f4ba83a" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"DataServicePausableNotPauseGuardian\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractName\",\"type\":\"bytes\"}],\"name\":\"GraphDirectoryInvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionManagerInvalidRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionManagerInvalidValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"ProvisionManagerNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionManagerProvisionNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"ratio\",\"type\":\"uint32\"}],\"name\":\"DelegationRatioSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphStaking\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphPayments\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEscrow\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEpochManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphRewardsManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphTokenGateway\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphProxyAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphCuration\",\"type\":\"address\"}],\"name\":\"GraphDirectoryInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"PauseGuardianSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionPendingParametersAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionTokensRangeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServicePaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServiceProviderSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStopped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"ThawingPeriodRangeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"min\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"max\",\"type\":\"uint32\"}],\"name\":\"VerifierCutRangeSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"acceptProvisionPendingParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvisionTokensRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThawingPeriodRange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCutRange\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pauseGuardian\",\"type\":\"address\"}],\"name\":\"pauseGuardians\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"startService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stopService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IDataServicePausable} interface.Upgradeable version of the {DataServicePausable} contract.\",\"errors\":{\"DataServicePausableNotPauseGuardian(address)\":[{\"params\":{\"account\":\"The address of the pause guardian\"}}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"params\":{\"contractName\":\"The name of the contract that was not found, or the controller\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ProvisionManagerInvalidRange(uint256,uint256)\":[{\"params\":{\"max\":\"The maximum value.\",\"min\":\"The minimum value.\"}}],\"ProvisionManagerInvalidValue(bytes,uint256,uint256,uint256)\":[{\"params\":{\"max\":\"The maximum allowed value.\",\"message\":\"The error message.\",\"min\":\"The minimum allowed value.\",\"value\":\"The value that is out of range.\"}}],\"ProvisionManagerNotAuthorized(address,address)\":[{\"params\":{\"caller\":\"The address of the caller.\",\"serviceProvider\":\"The address of the serviceProvider.\"}}],\"ProvisionManagerProvisionNotFound(address)\":[{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}}]},\"events\":{\"DelegationRatioSet(uint32)\":{\"params\":{\"ratio\":\"The delegation ratio\"}},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"params\":{\"graphController\":\"The Graph Controller contract address\",\"graphCuration\":\"The Curation contract address\",\"graphEpochManager\":\"The Epoch Manager contract address\",\"graphEscrow\":\"The Payments Escrow contract address\",\"graphPayments\":\"The Graph Payments contract address\",\"graphProxyAdmin\":\"The Graph Proxy Admin contract address\",\"graphRewardsManager\":\"The Rewards Manager contract address\",\"graphStaking\":\"The Horizon Staking contract address\",\"graphToken\":\"The Graph Token contract address\",\"graphTokenGateway\":\"The Token Gateway contract address\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"PauseGuardianSet(address,bool)\":{\"params\":{\"account\":\"The address of the pause guardian\",\"allowed\":\"The allowed status of the pause guardian\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"ProvisionTokensRangeSet(uint256,uint256)\":{\"params\":{\"max\":\"The maximum allowed value for the provision tokens.\",\"min\":\"The minimum allowed value for the provision tokens.\"}},\"ServicePaymentCollected(address,uint8,uint256)\":{\"params\":{\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens collected.\"}},\"ServiceProviderRegistered(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceProviderSlashed(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens slashed.\"}},\"ServiceStarted(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceStopped(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ThawingPeriodRangeSet(uint64,uint64)\":{\"params\":{\"max\":\"The maximum allowed value for the thawing period.\",\"min\":\"The minimum allowed value for the thawing period.\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"VerifierCutRangeSet(uint32,uint32)\":{\"params\":{\"max\":\"The maximum allowed value for the max verifier cut.\",\"min\":\"The minimum allowed value for the max verifier cut.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"details\":\"Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}. Emits a {ProvisionPendingParametersAccepted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"collect(address,uint8,bytes)\":{\"details\":\"The implementation of this function is expected to interact with {GraphPayments} to collect payment from the service payer, which is done via {IGraphPayments-collect}.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens collected.\"}},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"register(address,bytes)\":{\"details\":\"Before registering, the service provider must have created a provision in the Graph Horizon staking contract with parameters that are compatible with the data service. Verifies provision parameters and rejects registration in the event they are not valid. Emits a {ServiceProviderRegistered} event. NOTE: Failing to accept the provision will result in the service provider operating on an unverified provision. Depending on of the data service this can be a security risk as the protocol won't be able to guarantee economic security for the consumer.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"slash(address,bytes)\":{\"details\":\"To slash the service provider's provision the function should call {Staking-slash}. Emits a {ServiceProviderSlashed} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"startService(address,bytes)\":{\"details\":\"Emits a {ServiceStarted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"stopService(address,bytes)\":{\"details\":\"Emits a {ServiceStopped} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"title\":\"DataServicePausableUpgradeable contract\",\"version\":1},\"userdoc\":{\"errors\":{\"DataServicePausableNotPauseGuardian(address)\":[{\"notice\":\"Emitted when a the caller is not a pause guardian\"}],\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"notice\":\"Thrown when either the controller is the zero address or a contract address is not found on the controller\"}],\"ProvisionManagerInvalidRange(uint256,uint256)\":[{\"notice\":\"Thrown when attempting to set a range where min is greater than max.\"}],\"ProvisionManagerInvalidValue(bytes,uint256,uint256,uint256)\":[{\"notice\":\"Thrown when a provision parameter is out of range.\"}],\"ProvisionManagerNotAuthorized(address,address)\":[{\"notice\":\"Thrown when the caller is not authorized to manage the provision of a service provider.\"}],\"ProvisionManagerProvisionNotFound(address)\":[{\"notice\":\"Thrown when a provision is not found.\"}]},\"events\":{\"DelegationRatioSet(uint32)\":{\"notice\":\"Emitted when the delegation ratio is set.\"},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"notice\":\"Emitted when the GraphDirectory is initialized\"},\"PauseGuardianSet(address,bool)\":{\"notice\":\"Emitted when a pause guardian is set.\"},\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"ProvisionTokensRangeSet(uint256,uint256)\":{\"notice\":\"Emitted when the provision tokens range is set.\"},\"ServicePaymentCollected(address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider collects payment.\"},\"ServiceProviderRegistered(address,bytes)\":{\"notice\":\"Emitted when a service provider is registered with the data service.\"},\"ServiceProviderSlashed(address,uint256)\":{\"notice\":\"Emitted when a service provider is slashed.\"},\"ServiceStarted(address,bytes)\":{\"notice\":\"Emitted when a service provider starts providing the service.\"},\"ServiceStopped(address,bytes)\":{\"notice\":\"Emitted when a service provider stops providing the service.\"},\"ThawingPeriodRangeSet(uint64,uint64)\":{\"notice\":\"Emitted when the thawing period range is set.\"},\"VerifierCutRangeSet(uint32,uint32)\":{\"notice\":\"Emitted when the verifier cut range is set.\"}},\"kind\":\"user\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"notice\":\"Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking contract}.\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"delegationRatio()\":{\"notice\":\"How much delegation the service provider can effectively use\"},\"getDelegationRatio()\":{\"notice\":\"See {IDataService-getDelegationRatio}.\"},\"getProvisionTokensRange()\":{\"notice\":\"See {IDataService-getProvisionTokensRange}.\"},\"getThawingPeriodRange()\":{\"notice\":\"See {IDataService-getThawingPeriodRange}.\"},\"getVerifierCutRange()\":{\"notice\":\"See {IDataService-getVerifierCutRange}.\"},\"maximumProvisionTokens()\":{\"notice\":\"The maximum amount of tokens allowed to register a provision in the data service\"},\"maximumThawingPeriod()\":{\"notice\":\"The maximum thawing period allowed to register a provision in the data service\"},\"maximumVerifierCut()\":{\"notice\":\"The maximum verifier cut allowed to register a provision in the data service (in PPM)\"},\"minimumProvisionTokens()\":{\"notice\":\"The minimum amount of tokens required to register a provision in the data service\"},\"minimumThawingPeriod()\":{\"notice\":\"The minimum thawing period required to register a provision in the data service\"},\"minimumVerifierCut()\":{\"notice\":\"The minimum verifier cut required to register a provision in the data service (in PPM)\"},\"pause()\":{\"notice\":\"See {IDataServicePausable-pause}\"},\"pauseGuardians(address)\":{\"notice\":\"List of pause guardians and their allowed status\"},\"register(address,bytes)\":{\"notice\":\"Registers a service provider with the data service. The service provider can now start providing the service.\"},\"slash(address,bytes)\":{\"notice\":\"Slash a service provider for misbehaviour.\"},\"startService(address,bytes)\":{\"notice\":\"Service provider starts providing the service.\"},\"stopService(address,bytes)\":{\"notice\":\"Service provider stops providing the service.\"},\"unpause()\":{\"notice\":\"See {IDataServicePausable-pause}\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol\":\"DataServicePausableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\":{\"keccak256\":\"0x3cbcc6e4629543a99acacc7ee4ffa6c063b9fb17d3597ccd2f9481008e3633bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d6bb0bb830b67d579e57a261e5f5d9e90b32dc006b02badbecf1f6c82c0a5100\",\"dweb:/ipfs/Qmd38iNXZpinwbNRJPEAA8r9bmmtRwjTSK1SkmH47ge4kJ\"]},\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":{\"keccak256\":\"0x17e4db429003cab08cd2859db94b95e0cee1f9478c1881903a4104def8fdc048\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://52ed58228a0e92aeb3493473a6e02f92d26a4e4eb0c46d38dd446e3bfcb6691e\",\"dweb:/ipfs/QmZzWxHAztdz2Q7cobqVEf4ExGpNuqWJFYgs2oHCgApjW6\"]},\"@graphprotocol/contracts/contracts/epochs/IEpochManager.sol\":{\"keccak256\":\"0x0f4b3a3569c023d2610d0d8b37b3ecb0b67f848d77aa063bb311756670017e85\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://df7c43568e554b301134aa2c58e4889ad0d3dcfec40e834b63621a43f39da154\",\"dweb:/ipfs/QmZeSV9AM6FKCkH9QYyF7i5nVggseEJXbvWbtrgUeXqQpo\"]},\"@graphprotocol/contracts/contracts/governance/IController.sol\":{\"keccak256\":\"0xe37df86cdea385d708ba00862cd9e04940e4f2aa50354fb3a9d2d4f505d5509a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0f6c9fd2b7a8c5a6b89ef12c7423144df04a5f251d5480be1b73c74a785ff12a\",\"dweb:/ipfs/QmYpiCQoxbDEYQ2FNA39Z4FGfoxfQ8jvH1Z3ccrqguQFMP\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0x5b4e4b27c41121831d28a6a71ed90fcb44c34d2d3e722993dac74c239ad653fd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9312944c7b9f5f5901e6b899e11838a628c5a146b6ee70f2bd4664010d652e68\",\"dweb:/ipfs/QmYMjrhnL5pefMQfSf64wFrqmqEAYgxoyf3jb8g2jz1kMc\"]},\"@graphprotocol/contracts/contracts/token/IGraphToken.sol\":{\"keccak256\":\"0x2ffad6798d641c8d1288730be725c43041c803caceaf6d9985122d000ad5761c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5f782a5670037fc9223dc20fd4f99c0277a9bec7d08f7800b0a0733e819a07cb\",\"dweb:/ipfs/QmP3K2QnmukScCh1nzgphYdg7AiAuTaT914jq4txLYNpra\"]},\"@graphprotocol/horizon/contracts/data-service/DataService.sol\":{\"keccak256\":\"0x72d1f60db2ba0d65de99869a98ee0ae43dab30a474415c3ee349458b71f97439\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f59f760342a177e107bd1323ad62a0346d2845ea49554380d625107aafd69a30\",\"dweb:/ipfs/QmaovA9tVpp3yS3KtWqsRQwWK5TNyJeF1BZFuTFR6mhCiL\"]},\"@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol\":{\"keccak256\":\"0xc291c4f4cd273f7aa4e664843207032c0cb85454c9af834940c982073309eab6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://6bf8640abd32f4b2f0700cf5fa04e22926401e7381b92e45b776b4b8cdf27219\",\"dweb:/ipfs/QmaGnVYjXx34sJw6xoLqM2Xtz8gCSiEUGKTajd5cvrmgoC\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol\":{\"keccak256\":\"0xbb8e8d819d97570ccdcd5a6fafd8c43880016f71f6ce1eb4a2f260a1eaf6da5b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9f72b98fb9e707e88da2bd496102f0142e55a614c1b65319d4a09ee28b73f227\",\"dweb:/ipfs/Qma93cnXPBKf8qoVbWnQpKiffPwpzE837WncTo3Mx3v42H\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol\":{\"keccak256\":\"0xdf6f1f87857eaa5824747e81aed89f11d52e34400077d341f66165631772ccd2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a5fd53c4e7571f1efe15ef3fdf291cec2cb282f5a617c8986eae00f56741b4c6\",\"dweb:/ipfs/QmX1WQNc5XJDgDT6aEv779DAgWzY7Uby8obF2Fey3m1WnE\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol\":{\"keccak256\":\"0xd26e1eb1b0702f856f8489c4f5548644598a502221beece2f87ac4d01af9a609\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://69c3c34019e752bb6562c1b6709fcfd6958eb036ebe07b5c3c63ec47b4a17efc\",\"dweb:/ipfs/QmeKJuzv9Kb5TPBzpi2SoWwmPpn3Y9v3MR1g7hXoFJcwAG\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0x256512546eedbc0a954815735a5bd6d8832c465a3ce0bdc4959a6dcca3ea24ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bcd9acb66c3153a5d38888ef17a798659bae9938e998e6597fcfb8f666bd3e50\",\"dweb:/ipfs/QmfTQt588Zon3AhR1PxhkHGL8xGw5JC7DAepTLDXeMWWA1\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0xa9c752ea887bd2a3637934b5f197526b6fac46b0b924deb75a8d224290ccbc95\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0a6625b4175959cd53af91a3741c12fb1fa2e91e0ab2302dff8a06bf7a66781\",\"dweb:/ipfs/QmPMoc5DN9gZr22gWkKGQDgJ8eqK1pChGQYTbPLC9LDCiY\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0xa32bd068b2a6a6cdd3863439aa280b29718ebb0a94da59e5806455c75af7994e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d1cdd344d026af2fc6e136337f9f86354d1b2731a6076e498c2ffd370705cdb5\",\"dweb:/ipfs/QmZe4rGR9gvyWP9ENDGLWxcB5a67qvbqbFKKhr9Di7VkEN\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x04da4bb0cfc6db397d6140ae72d6a4ffcadb19b5a8fc654ae3fd1550b64526ff\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9dca21008f5cf563d1863148b151d103b92a99c7bb0fe4667fdd9236bfa9881e\",\"dweb:/ipfs/QmPBfG7s2ajEYn35oJk6TjQ6wCQ7FNVAuZnzXbAENbKF9i\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x2aa4aa3745b13f9cadcbf3f93888ebbaa8f5d1da3b6f845f1741d51b16ff9944\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://290e13fd3dc9170244aaa4c6e5f5646878d011ee25024926d4d60d40eb6cf8c9\",\"dweb:/ipfs/QmPWwXxhnxmNSUpVF6caT1cXVtV2c1ackJiMzAbUG4z6Fo\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0xbb225acac73f4245b30a8fe9c0bf4bcc8b310f40da526a0447a2303f1ca63e96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://207826b2277a0bd42b8a4d8825f6b16e46d6dc8039e4027faa22df462aa06079\",\"dweb:/ipfs/QmYS177dKBuY7iRUdwBMHxSMd6SfNpARTApLHMLgFCozTy\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd161d01d49ec47200c1c8374d11ad7d9a2c1776a2f87c546f78535ffa33b3954\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7da68f651214064c6afb1b43955879a2eaea6076c44e92975abf31735b0e1012\",\"dweb:/ipfs/QmZBHtfqhzWsv1oWy73pR8zabgLnhqpiWhknK4TzrPBhV2\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0x2bc503df758ca7fcc2a741b41350158a53e295974a37478336f2ed8b76e460a5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://24af9fe8ca1e0daae752a4b331b77c3a268a2a358e2e34a50df8ef283dd8670f\",\"dweb:/ipfs/QmYBJAMWHeiWWepGTTdkUSN4Vn2oP4GvyeqiwDK1TVdfce\"]},\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x3389a6fae8651820ced92bdc06b7168280055ea65467ac094c5c3fd950700820\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2e3756bebea135066625cba99d4d608ca1770a21abfd3cfbc05a3e1b280c688b\",\"dweb:/ipfs/QmQeebmsKNQqKpGKYPEyJqrpF3ZjP71udwPgoGEdTfvTSb\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1be743a301a082944c78ba37b48c466ebc47d2ddd94529a3e05ed828e4413c68\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://663e05ec37777a21b344acb96235db183dcfac14e42048cfc921ab2038cd77d1\",\"dweb:/ipfs/QmY5mQ2L3BLrB8TDNXadDhjR2nCb7ssNPTJ6zegJnC5bjq\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0x92915b7f7f642c6be3f65bfd1522feb5d5b6ef25f755f4dbb51df32c868f2f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ad36d5cc7e190e1ee6c94b24659bc3a31396c4c36b6ffa6a509e10661f8007\",\"dweb:/ipfs/QmPFyc4zMh2zo6YWZt25gjm3YdR2hg6wGETaWw256fMmJJ\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 2134, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol:DataServicePausableUpgradeable", - "label": "minimumProvisionTokens", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 2137, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol:DataServicePausableUpgradeable", - "label": "maximumProvisionTokens", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 2140, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol:DataServicePausableUpgradeable", - "label": "minimumThawingPeriod", - "offset": 0, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2143, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol:DataServicePausableUpgradeable", - "label": "maximumThawingPeriod", - "offset": 8, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2146, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol:DataServicePausableUpgradeable", - "label": "minimumVerifierCut", - "offset": 16, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2149, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol:DataServicePausableUpgradeable", - "label": "maximumVerifierCut", - "offset": 20, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2152, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol:DataServicePausableUpgradeable", - "label": "delegationRatio", - "offset": 24, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2157, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol:DataServicePausableUpgradeable", - "label": "__gap", - "offset": 0, - "slot": "3", - "type": "t_array(t_uint256)50_storage" - }, - { - "astId": 703, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol:DataServicePausableUpgradeable", - "label": "__gap", - "offset": 0, - "slot": "53", - "type": "t_array(t_uint256)50_storage" - }, - { - "astId": 1101, - "contract": "@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol:DataServicePausableUpgradeable", - "label": "pauseGuardians", - "offset": 0, - "slot": "103", - "type": "t_mapping(t_address,t_bool)" - } - ], - "types": { - "t_address": { - "encoding": "inplace", - "label": "address", - "numberOfBytes": "20" - }, - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_bool": { - "encoding": "inplace", - "label": "bool", - "numberOfBytes": "1" - }, - "t_mapping(t_address,t_bool)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => bool)", - "numberOfBytes": "32", - "value": "t_bool" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - }, - "t_uint32": { - "encoding": "inplace", - "label": "uint32", - "numberOfBytes": "4" - }, - "t_uint64": { - "encoding": "inplace", - "label": "uint64", - "numberOfBytes": "8" - } - } - } - } - }, - "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol": { - "IDataService": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionPendingParametersAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServicePaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceProviderRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServiceProviderSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStopped", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptProvisionPendingParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getDelegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProvisionTokensRange", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThawingPeriodRange", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCutRange", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "startService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "stopService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptProvisionPendingParameters(address,bytes)": "ce0fc0cc", - "collect(address,uint8,bytes)": "b15d2a2c", - "getDelegationRatio()": "1ebb7c30", - "getProvisionTokensRange()": "819ba366", - "getThawingPeriodRange()": "71ce020a", - "getVerifierCutRange()": "482468b7", - "register(address,bytes)": "24b8fbf6", - "slash(address,bytes)": "cb8347fe", - "startService(address,bytes)": "dedf6726", - "stopService(address,bytes)": "8180083b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionPendingParametersAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServicePaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServiceProviderSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStopped\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"acceptProvisionPendingParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvisionTokensRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThawingPeriodRange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCutRange\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"startService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stopService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This interface is expected to be inherited and extended by a data service interface. It can be used to interact with it however it's advised to use the more specific parent interface.\",\"events\":{\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"ServicePaymentCollected(address,uint8,uint256)\":{\"params\":{\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens collected.\"}},\"ServiceProviderRegistered(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceProviderSlashed(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens slashed.\"}},\"ServiceStarted(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceStopped(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"details\":\"Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}. Emits a {ProvisionPendingParametersAccepted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"collect(address,uint8,bytes)\":{\"details\":\"The implementation of this function is expected to interact with {GraphPayments} to collect payment from the service payer, which is done via {IGraphPayments-collect}.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens collected.\"}},\"getDelegationRatio()\":{\"returns\":{\"_0\":\"The delegation ratio\"}},\"getProvisionTokensRange()\":{\"returns\":{\"_0\":\"Minimum provision tokens allowed\",\"_1\":\"Maximum provision tokens allowed\"}},\"getThawingPeriodRange()\":{\"returns\":{\"_0\":\"Minimum thawing period allowed\",\"_1\":\"Maximum thawing period allowed\"}},\"getVerifierCutRange()\":{\"returns\":{\"_0\":\"Minimum verifier cut allowed\",\"_1\":\"Maximum verifier cut allowed\"}},\"register(address,bytes)\":{\"details\":\"Before registering, the service provider must have created a provision in the Graph Horizon staking contract with parameters that are compatible with the data service. Verifies provision parameters and rejects registration in the event they are not valid. Emits a {ServiceProviderRegistered} event. NOTE: Failing to accept the provision will result in the service provider operating on an unverified provision. Depending on of the data service this can be a security risk as the protocol won't be able to guarantee economic security for the consumer.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"slash(address,bytes)\":{\"details\":\"To slash the service provider's provision the function should call {Staking-slash}. Emits a {ServiceProviderSlashed} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"startService(address,bytes)\":{\"details\":\"Emits a {ServiceStarted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"stopService(address,bytes)\":{\"details\":\"Emits a {ServiceStopped} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"title\":\"Interface of the base {DataService} contract as defined by the Graph Horizon specification.\",\"version\":1},\"userdoc\":{\"events\":{\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"ServicePaymentCollected(address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider collects payment.\"},\"ServiceProviderRegistered(address,bytes)\":{\"notice\":\"Emitted when a service provider is registered with the data service.\"},\"ServiceProviderSlashed(address,uint256)\":{\"notice\":\"Emitted when a service provider is slashed.\"},\"ServiceStarted(address,bytes)\":{\"notice\":\"Emitted when a service provider starts providing the service.\"},\"ServiceStopped(address,bytes)\":{\"notice\":\"Emitted when a service provider stops providing the service.\"}},\"kind\":\"user\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"notice\":\"Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking contract}.\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"getDelegationRatio()\":{\"notice\":\"External getter for the delegation ratio\"},\"getProvisionTokensRange()\":{\"notice\":\"External getter for the provision tokens range\"},\"getThawingPeriodRange()\":{\"notice\":\"External getter for the thawing period range\"},\"getVerifierCutRange()\":{\"notice\":\"External getter for the verifier cut range\"},\"register(address,bytes)\":{\"notice\":\"Registers a service provider with the data service. The service provider can now start providing the service.\"},\"slash(address,bytes)\":{\"notice\":\"Slash a service provider for misbehaviour.\"},\"startService(address,bytes)\":{\"notice\":\"Service provider starts providing the service.\"},\"stopService(address,bytes)\":{\"notice\":\"Service provider stops providing the service.\"}},\"notice\":\"This interface provides a guardrail for contracts that use the Data Service framework to implement a data service on Graph Horizon. Much of the specification is intentionally loose to allow for greater flexibility when designing a data service. It's not possible to guarantee that an implementation will honor the Data Service framework guidelines so it's advised to always review the implementation code and the documentation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":\"IDataService\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol": { - "IDataServiceFees": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - } - ], - "name": "DataServiceFeesClaimNotFound", - "type": "error" - }, - { - "inputs": [], - "name": "DataServiceFeesZeroTokens", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionPendingParametersAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServicePaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceProviderRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServiceProviderSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStopped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "unlockTimestamp", - "type": "uint256" - } - ], - "name": "StakeClaimLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "releasableAt", - "type": "uint256" - } - ], - "name": "StakeClaimReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimsCount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReleased", - "type": "uint256" - } - ], - "name": "StakeClaimsReleased", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptProvisionPendingParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getDelegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProvisionTokensRange", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThawingPeriodRange", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCutRange", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numClaimsToRelease", - "type": "uint256" - } - ], - "name": "releaseStake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "startService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "stopService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptProvisionPendingParameters(address,bytes)": "ce0fc0cc", - "collect(address,uint8,bytes)": "b15d2a2c", - "getDelegationRatio()": "1ebb7c30", - "getProvisionTokensRange()": "819ba366", - "getThawingPeriodRange()": "71ce020a", - "getVerifierCutRange()": "482468b7", - "register(address,bytes)": "24b8fbf6", - "releaseStake(uint256)": "45f54485", - "slash(address,bytes)": "cb8347fe", - "startService(address,bytes)": "dedf6726", - "stopService(address,bytes)": "8180083b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"DataServiceFeesClaimNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DataServiceFeesZeroTokens\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionPendingParametersAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServicePaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServiceProviderSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStopped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockTimestamp\",\"type\":\"uint256\"}],\"name\":\"StakeClaimLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"releasableAt\",\"type\":\"uint256\"}],\"name\":\"StakeClaimReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensReleased\",\"type\":\"uint256\"}],\"name\":\"StakeClaimsReleased\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"acceptProvisionPendingParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvisionTokensRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThawingPeriodRange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCutRange\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numClaimsToRelease\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"startService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stopService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Note that this implementation uses the entire provisioned stake as collateral for the payment. It can be used to provide economic security for the payments collected as long as the provisioned stake is not being used for other purposes.\",\"events\":{\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"ServicePaymentCollected(address,uint8,uint256)\":{\"params\":{\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens collected.\"}},\"ServiceProviderRegistered(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceProviderSlashed(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens slashed.\"}},\"ServiceStarted(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceStopped(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"StakeClaimLocked(address,bytes32,uint256,uint256)\":{\"params\":{\"claimId\":\"The id of the stake claim\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens to lock in the claim\",\"unlockTimestamp\":\"The timestamp when the tokens can be released\"}},\"StakeClaimReleased(address,bytes32,uint256,uint256)\":{\"params\":{\"claimId\":\"The id of the stake claim\",\"releasableAt\":\"The timestamp when the tokens were released\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens released\"}},\"StakeClaimsReleased(address,uint256,uint256)\":{\"params\":{\"claimsCount\":\"The number of stake claims being released\",\"serviceProvider\":\"The address of the service provider\",\"tokensReleased\":\"The total amount of tokens being released\"}}},\"kind\":\"dev\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"details\":\"Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}. Emits a {ProvisionPendingParametersAccepted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"collect(address,uint8,bytes)\":{\"details\":\"The implementation of this function is expected to interact with {GraphPayments} to collect payment from the service payer, which is done via {IGraphPayments-collect}.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens collected.\"}},\"getDelegationRatio()\":{\"returns\":{\"_0\":\"The delegation ratio\"}},\"getProvisionTokensRange()\":{\"returns\":{\"_0\":\"Minimum provision tokens allowed\",\"_1\":\"Maximum provision tokens allowed\"}},\"getThawingPeriodRange()\":{\"returns\":{\"_0\":\"Minimum thawing period allowed\",\"_1\":\"Maximum thawing period allowed\"}},\"getVerifierCutRange()\":{\"returns\":{\"_0\":\"Minimum verifier cut allowed\",\"_1\":\"Maximum verifier cut allowed\"}},\"register(address,bytes)\":{\"details\":\"Before registering, the service provider must have created a provision in the Graph Horizon staking contract with parameters that are compatible with the data service. Verifies provision parameters and rejects registration in the event they are not valid. Emits a {ServiceProviderRegistered} event. NOTE: Failing to accept the provision will result in the service provider operating on an unverified provision. Depending on of the data service this can be a security risk as the protocol won't be able to guarantee economic security for the consumer.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"releaseStake(uint256)\":{\"details\":\"This function is only meant to be called if the service provider has enough stake claims that releasing them all at once would exceed the block gas limit.This function can be overriden and/or disabled.Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.\",\"params\":{\"numClaimsToRelease\":\"Amount of stake claims to process. If 0, all stake claims are processed.\"}},\"slash(address,bytes)\":{\"details\":\"To slash the service provider's provision the function should call {Staking-slash}. Emits a {ServiceProviderSlashed} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"startService(address,bytes)\":{\"details\":\"Emits a {ServiceStarted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"stopService(address,bytes)\":{\"details\":\"Emits a {ServiceStopped} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"title\":\"Interface for the {DataServiceFees} contract.\",\"version\":1},\"userdoc\":{\"errors\":{\"DataServiceFeesClaimNotFound(bytes32)\":[{\"notice\":\"Thrown when attempting to get a stake claim that does not exist.\"}],\"DataServiceFeesZeroTokens()\":[{\"notice\":\"Emitted when trying to lock zero tokens in a stake claim\"}]},\"events\":{\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"ServicePaymentCollected(address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider collects payment.\"},\"ServiceProviderRegistered(address,bytes)\":{\"notice\":\"Emitted when a service provider is registered with the data service.\"},\"ServiceProviderSlashed(address,uint256)\":{\"notice\":\"Emitted when a service provider is slashed.\"},\"ServiceStarted(address,bytes)\":{\"notice\":\"Emitted when a service provider starts providing the service.\"},\"ServiceStopped(address,bytes)\":{\"notice\":\"Emitted when a service provider stops providing the service.\"},\"StakeClaimLocked(address,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when a stake claim is created and stake is locked.\"},\"StakeClaimReleased(address,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when a stake claim is released and stake is unlocked.\"},\"StakeClaimsReleased(address,uint256,uint256)\":{\"notice\":\"Emitted when a series of stake claims are released.\"}},\"kind\":\"user\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"notice\":\"Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking contract}.\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"getDelegationRatio()\":{\"notice\":\"External getter for the delegation ratio\"},\"getProvisionTokensRange()\":{\"notice\":\"External getter for the provision tokens range\"},\"getThawingPeriodRange()\":{\"notice\":\"External getter for the thawing period range\"},\"getVerifierCutRange()\":{\"notice\":\"External getter for the verifier cut range\"},\"register(address,bytes)\":{\"notice\":\"Registers a service provider with the data service. The service provider can now start providing the service.\"},\"releaseStake(uint256)\":{\"notice\":\"Releases expired stake claims for the caller.\"},\"slash(address,bytes)\":{\"notice\":\"Slash a service provider for misbehaviour.\"},\"startService(address,bytes)\":{\"notice\":\"Service provider starts providing the service.\"},\"stopService(address,bytes)\":{\"notice\":\"Service provider stops providing the service.\"}},\"notice\":\"Extension for the {IDataService} contract to handle payment collateralization using a Horizon provision. It's designed to be used with the Data Service framework: - When a service provider collects payment with {IDataService.collect} the data service should lock stake to back the payment using {_lockStake}. - Every time there is a payment collection with {IDataService.collect}, the data service should attempt to release any expired stake claims by calling {_releaseStake}. - Stake claims can also be manually released by calling {releaseStake} directly.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":\"IDataServiceFees\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x8d2bed66024782e98b52836a3be855fe6ae59c9bb9ba863e3d420c6ebb80f764\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e945e02d82e8fef6cb25148533acaa6579c9e70eaac6e725eb30559ba91b3f8\",\"dweb:/ipfs/QmfUei9N9Exwwmrm2gL2FKcMuyGPqUpSVKY8pKE2QeJyuz\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol": { - "IDataServicePausable": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "DataServicePausableNotPauseGuardian", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "PauseGuardianSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionPendingParametersAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServicePaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceProviderRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServiceProviderSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStopped", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptProvisionPendingParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getDelegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProvisionTokensRange", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThawingPeriodRange", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCutRange", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "startService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "stopService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptProvisionPendingParameters(address,bytes)": "ce0fc0cc", - "collect(address,uint8,bytes)": "b15d2a2c", - "getDelegationRatio()": "1ebb7c30", - "getProvisionTokensRange()": "819ba366", - "getThawingPeriodRange()": "71ce020a", - "getVerifierCutRange()": "482468b7", - "pause()": "8456cb59", - "register(address,bytes)": "24b8fbf6", - "slash(address,bytes)": "cb8347fe", - "startService(address,bytes)": "dedf6726", - "stopService(address,bytes)": "8180083b", - "unpause()": "3f4ba83a" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"DataServicePausableNotPauseGuardian\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"PauseGuardianSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionPendingParametersAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServicePaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServiceProviderSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStopped\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"acceptProvisionPendingParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvisionTokensRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThawingPeriodRange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCutRange\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"startService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stopService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"DataServicePausableNotPauseGuardian(address)\":[{\"params\":{\"account\":\"The address of the pause guardian\"}}]},\"events\":{\"PauseGuardianSet(address,bool)\":{\"params\":{\"account\":\"The address of the pause guardian\",\"allowed\":\"The allowed status of the pause guardian\"}},\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"ServicePaymentCollected(address,uint8,uint256)\":{\"params\":{\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens collected.\"}},\"ServiceProviderRegistered(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceProviderSlashed(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens slashed.\"}},\"ServiceStarted(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceStopped(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"details\":\"Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}. Emits a {ProvisionPendingParametersAccepted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"collect(address,uint8,bytes)\":{\"details\":\"The implementation of this function is expected to interact with {GraphPayments} to collect payment from the service payer, which is done via {IGraphPayments-collect}.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens collected.\"}},\"getDelegationRatio()\":{\"returns\":{\"_0\":\"The delegation ratio\"}},\"getProvisionTokensRange()\":{\"returns\":{\"_0\":\"Minimum provision tokens allowed\",\"_1\":\"Maximum provision tokens allowed\"}},\"getThawingPeriodRange()\":{\"returns\":{\"_0\":\"Minimum thawing period allowed\",\"_1\":\"Maximum thawing period allowed\"}},\"getVerifierCutRange()\":{\"returns\":{\"_0\":\"Minimum verifier cut allowed\",\"_1\":\"Maximum verifier cut allowed\"}},\"pause()\":{\"details\":\"Note that only functions using the modifiers `whenNotPaused` and `whenPaused` will be affected by the pause. Requirements: - The contract must not be already paused\"},\"register(address,bytes)\":{\"details\":\"Before registering, the service provider must have created a provision in the Graph Horizon staking contract with parameters that are compatible with the data service. Verifies provision parameters and rejects registration in the event they are not valid. Emits a {ServiceProviderRegistered} event. NOTE: Failing to accept the provision will result in the service provider operating on an unverified provision. Depending on of the data service this can be a security risk as the protocol won't be able to guarantee economic security for the consumer.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"slash(address,bytes)\":{\"details\":\"To slash the service provider's provision the function should call {Staking-slash}. Emits a {ServiceProviderSlashed} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"startService(address,bytes)\":{\"details\":\"Emits a {ServiceStarted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"stopService(address,bytes)\":{\"details\":\"Emits a {ServiceStopped} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"unpause()\":{\"details\":\"Note that only functions using the modifiers `whenNotPaused` and `whenPaused` will be affected by the pause. Requirements: - The contract must be paused\"}},\"title\":\"Interface for the {DataServicePausable} contract.\",\"version\":1},\"userdoc\":{\"errors\":{\"DataServicePausableNotPauseGuardian(address)\":[{\"notice\":\"Emitted when a the caller is not a pause guardian\"}]},\"events\":{\"PauseGuardianSet(address,bool)\":{\"notice\":\"Emitted when a pause guardian is set.\"},\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"ServicePaymentCollected(address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider collects payment.\"},\"ServiceProviderRegistered(address,bytes)\":{\"notice\":\"Emitted when a service provider is registered with the data service.\"},\"ServiceProviderSlashed(address,uint256)\":{\"notice\":\"Emitted when a service provider is slashed.\"},\"ServiceStarted(address,bytes)\":{\"notice\":\"Emitted when a service provider starts providing the service.\"},\"ServiceStopped(address,bytes)\":{\"notice\":\"Emitted when a service provider stops providing the service.\"}},\"kind\":\"user\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"notice\":\"Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking contract}.\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"getDelegationRatio()\":{\"notice\":\"External getter for the delegation ratio\"},\"getProvisionTokensRange()\":{\"notice\":\"External getter for the provision tokens range\"},\"getThawingPeriodRange()\":{\"notice\":\"External getter for the thawing period range\"},\"getVerifierCutRange()\":{\"notice\":\"External getter for the verifier cut range\"},\"pause()\":{\"notice\":\"Pauses the data service.\"},\"register(address,bytes)\":{\"notice\":\"Registers a service provider with the data service. The service provider can now start providing the service.\"},\"slash(address,bytes)\":{\"notice\":\"Slash a service provider for misbehaviour.\"},\"startService(address,bytes)\":{\"notice\":\"Service provider starts providing the service.\"},\"stopService(address,bytes)\":{\"notice\":\"Service provider stops providing the service.\"},\"unpause()\":{\"notice\":\"Unpauses the data service.\"}},\"notice\":\"Extension for the {IDataService} contract, adds pausing functionality to the data service. Pausing is controlled by privileged accounts called pause guardians.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol\":\"IDataServicePausable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol\":{\"keccak256\":\"0xdf6f1f87857eaa5824747e81aed89f11d52e34400077d341f66165631772ccd2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a5fd53c4e7571f1efe15ef3fdf291cec2cb282f5a617c8986eae00f56741b4c6\",\"dweb:/ipfs/QmX1WQNc5XJDgDT6aEv779DAgWzY7Uby8obF2Fey3m1WnE\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol": { - "ProvisionTracker": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokensAvailable", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensRequired", - "type": "uint256" - } - ], - "name": "ProvisionTrackerInsufficientTokens", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208f431a5ba6a6ac3d7ca1fb0f10a15390bac52fb5e28c8b8ae63afb4d5842ba5164736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP16 NUMBER BYTE JUMPDEST 0xA6 0xA6 0xAC RETURNDATASIZE PUSH29 0xA1FB0F10A15390BAC52FB5E28C8B8AE63AFB4D5842BA5164736F6C6343 STOP ADDMOD SHL STOP CALLER ", - "sourceMap": "639:2746:16:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;639:2746:16;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208f431a5ba6a6ac3d7ca1fb0f10a15390bac52fb5e28c8b8ae63afb4d5842ba5164736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP16 NUMBER BYTE JUMPDEST 0xA6 0xA6 0xAC RETURNDATASIZE PUSH29 0xA1FB0F10A15390BAC52FB5E28C8B8AE63AFB4D5842BA5164736F6C6343 STOP ADDMOD SHL STOP CALLER ", - "sourceMap": "639:2746:16:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokensAvailable\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensRequired\",\"type\":\"uint256\"}],\"name\":\"ProvisionTrackerInsufficientTokens\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"ProvisionTracker library\",\"version\":1},\"userdoc\":{\"errors\":{\"ProvisionTrackerInsufficientTokens(uint256,uint256)\":[{\"notice\":\"Thrown when trying to lock more tokens than available\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"A library to facilitate tracking of \\\"used tokens\\\" on Graph Horizon provisions. This can be used to ensure data services have enough economic security (provisioned stake) to back the payments they collect for their services. The library provides two primitives, lock and release to signal token usage and free up tokens respectively. It does not make any assumptions about the conditions under which tokens are locked or released.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol\":\"ProvisionTracker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]},\"@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol\":{\"keccak256\":\"0x9012127a1b1dc8a3f75ad49925632faecca8bcb46f42ab7d1ac0af83a7514f9c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b002f1f6759e7ced37f161706bc4b787ba7534fb4326ae7ab395270926292c42\",\"dweb:/ipfs/QmRVDPWMbrijk14sywXTbnKdueVBgADBB7h8F9aGA4DgSZ\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0xa32bd068b2a6a6cdd3863439aa280b29718ebb0a94da59e5806455c75af7994e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d1cdd344d026af2fc6e136337f9f86354d1b2731a6076e498c2ffd370705cdb5\",\"dweb:/ipfs/QmZe4rGR9gvyWP9ENDGLWxcB5a67qvbqbFKKhr9Di7VkEN\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x2aa4aa3745b13f9cadcbf3f93888ebbaa8f5d1da3b6f845f1741d51b16ff9944\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://290e13fd3dc9170244aaa4c6e5f5646878d011ee25024926d4d60d40eb6cf8c9\",\"dweb:/ipfs/QmPWwXxhnxmNSUpVF6caT1cXVtV2c1ackJiMzAbUG4z6Fo\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0xbb225acac73f4245b30a8fe9c0bf4bcc8b310f40da526a0447a2303f1ca63e96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://207826b2277a0bd42b8a4d8825f6b16e46d6dc8039e4027faa22df462aa06079\",\"dweb:/ipfs/QmYS177dKBuY7iRUdwBMHxSMd6SfNpARTApLHMLgFCozTy\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd161d01d49ec47200c1c8374d11ad7d9a2c1776a2f87c546f78535ffa33b3954\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7da68f651214064c6afb1b43955879a2eaea6076c44e92975abf31735b0e1012\",\"dweb:/ipfs/QmZBHtfqhzWsv1oWy73pR8zabgLnhqpiWhknK4TzrPBhV2\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol": { - "ProvisionManager": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidRange", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidValue", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "ProvisionManagerNotAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionManagerProvisionNotFound", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "ratio", - "type": "uint32" - } - ], - "name": "DelegationRatioSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionTokensRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "min", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "max", - "type": "uint64" - } - ], - "name": "ThawingPeriodRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "min", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "max", - "type": "uint32" - } - ], - "name": "VerifierCutRangeSet", - "type": "event" - }, - { - "inputs": [], - "name": "delegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "delegationRatio()": "bfdfa7af", - "maximumProvisionTokens()": "73371823", - "maximumThawingPeriod()": "9aafa5d1", - "maximumVerifierCut()": "9249c5c1", - "minimumProvisionTokens()": "36fdd28a", - "minimumThawingPeriod()": "8d2f2948", - "minimumVerifierCut()": "88812583" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractName\",\"type\":\"bytes\"}],\"name\":\"GraphDirectoryInvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionManagerInvalidRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionManagerInvalidValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"ProvisionManagerNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionManagerProvisionNotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"ratio\",\"type\":\"uint32\"}],\"name\":\"DelegationRatioSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphStaking\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphPayments\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEscrow\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEpochManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphRewardsManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphTokenGateway\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphProxyAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphCuration\",\"type\":\"address\"}],\"name\":\"GraphDirectoryInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionTokensRangeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"ThawingPeriodRangeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"min\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"max\",\"type\":\"uint32\"}],\"name\":\"VerifierCutRangeSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"delegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Provides utilities to verify provision parameters are within an acceptable range. Each parameter has an overridable setter and getter for the validity range, and a checker that reverts if the parameter is out of range. The parameters are: - Provision parameters (thawing period and verifier cut) - Provision tokens\",\"errors\":{\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"params\":{\"contractName\":\"The name of the contract that was not found, or the controller\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ProvisionManagerInvalidRange(uint256,uint256)\":[{\"params\":{\"max\":\"The maximum value.\",\"min\":\"The minimum value.\"}}],\"ProvisionManagerInvalidValue(bytes,uint256,uint256,uint256)\":[{\"params\":{\"max\":\"The maximum allowed value.\",\"message\":\"The error message.\",\"min\":\"The minimum allowed value.\",\"value\":\"The value that is out of range.\"}}],\"ProvisionManagerNotAuthorized(address,address)\":[{\"params\":{\"caller\":\"The address of the caller.\",\"serviceProvider\":\"The address of the serviceProvider.\"}}],\"ProvisionManagerProvisionNotFound(address)\":[{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}}]},\"events\":{\"DelegationRatioSet(uint32)\":{\"params\":{\"ratio\":\"The delegation ratio\"}},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"params\":{\"graphController\":\"The Graph Controller contract address\",\"graphCuration\":\"The Curation contract address\",\"graphEpochManager\":\"The Epoch Manager contract address\",\"graphEscrow\":\"The Payments Escrow contract address\",\"graphPayments\":\"The Graph Payments contract address\",\"graphProxyAdmin\":\"The Graph Proxy Admin contract address\",\"graphRewardsManager\":\"The Rewards Manager contract address\",\"graphStaking\":\"The Horizon Staking contract address\",\"graphToken\":\"The Graph Token contract address\",\"graphTokenGateway\":\"The Token Gateway contract address\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProvisionTokensRangeSet(uint256,uint256)\":{\"params\":{\"max\":\"The maximum allowed value for the provision tokens.\",\"min\":\"The minimum allowed value for the provision tokens.\"}},\"ThawingPeriodRangeSet(uint64,uint64)\":{\"params\":{\"max\":\"The maximum allowed value for the thawing period.\",\"min\":\"The minimum allowed value for the thawing period.\"}},\"VerifierCutRangeSet(uint32,uint32)\":{\"params\":{\"max\":\"The maximum allowed value for the max verifier cut.\",\"min\":\"The minimum allowed value for the max verifier cut.\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"ProvisionManager contract\",\"version\":1},\"userdoc\":{\"errors\":{\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"notice\":\"Thrown when either the controller is the zero address or a contract address is not found on the controller\"}],\"ProvisionManagerInvalidRange(uint256,uint256)\":[{\"notice\":\"Thrown when attempting to set a range where min is greater than max.\"}],\"ProvisionManagerInvalidValue(bytes,uint256,uint256,uint256)\":[{\"notice\":\"Thrown when a provision parameter is out of range.\"}],\"ProvisionManagerNotAuthorized(address,address)\":[{\"notice\":\"Thrown when the caller is not authorized to manage the provision of a service provider.\"}],\"ProvisionManagerProvisionNotFound(address)\":[{\"notice\":\"Thrown when a provision is not found.\"}]},\"events\":{\"DelegationRatioSet(uint32)\":{\"notice\":\"Emitted when the delegation ratio is set.\"},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"notice\":\"Emitted when the GraphDirectory is initialized\"},\"ProvisionTokensRangeSet(uint256,uint256)\":{\"notice\":\"Emitted when the provision tokens range is set.\"},\"ThawingPeriodRangeSet(uint64,uint64)\":{\"notice\":\"Emitted when the thawing period range is set.\"},\"VerifierCutRangeSet(uint32,uint32)\":{\"notice\":\"Emitted when the verifier cut range is set.\"}},\"kind\":\"user\",\"methods\":{\"delegationRatio()\":{\"notice\":\"How much delegation the service provider can effectively use\"},\"maximumProvisionTokens()\":{\"notice\":\"The maximum amount of tokens allowed to register a provision in the data service\"},\"maximumThawingPeriod()\":{\"notice\":\"The maximum thawing period allowed to register a provision in the data service\"},\"maximumVerifierCut()\":{\"notice\":\"The maximum verifier cut allowed to register a provision in the data service (in PPM)\"},\"minimumProvisionTokens()\":{\"notice\":\"The minimum amount of tokens required to register a provision in the data service\"},\"minimumThawingPeriod()\":{\"notice\":\"The minimum thawing period required to register a provision in the data service\"},\"minimumVerifierCut()\":{\"notice\":\"The minimum verifier cut required to register a provision in the data service (in PPM)\"}},\"notice\":\"A helper contract that implements several provision management functions.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol\":\"ProvisionManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\":{\"keccak256\":\"0x3cbcc6e4629543a99acacc7ee4ffa6c063b9fb17d3597ccd2f9481008e3633bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d6bb0bb830b67d579e57a261e5f5d9e90b32dc006b02badbecf1f6c82c0a5100\",\"dweb:/ipfs/Qmd38iNXZpinwbNRJPEAA8r9bmmtRwjTSK1SkmH47ge4kJ\"]},\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":{\"keccak256\":\"0x17e4db429003cab08cd2859db94b95e0cee1f9478c1881903a4104def8fdc048\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://52ed58228a0e92aeb3493473a6e02f92d26a4e4eb0c46d38dd446e3bfcb6691e\",\"dweb:/ipfs/QmZzWxHAztdz2Q7cobqVEf4ExGpNuqWJFYgs2oHCgApjW6\"]},\"@graphprotocol/contracts/contracts/epochs/IEpochManager.sol\":{\"keccak256\":\"0x0f4b3a3569c023d2610d0d8b37b3ecb0b67f848d77aa063bb311756670017e85\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://df7c43568e554b301134aa2c58e4889ad0d3dcfec40e834b63621a43f39da154\",\"dweb:/ipfs/QmZeSV9AM6FKCkH9QYyF7i5nVggseEJXbvWbtrgUeXqQpo\"]},\"@graphprotocol/contracts/contracts/governance/IController.sol\":{\"keccak256\":\"0xe37df86cdea385d708ba00862cd9e04940e4f2aa50354fb3a9d2d4f505d5509a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0f6c9fd2b7a8c5a6b89ef12c7423144df04a5f251d5480be1b73c74a785ff12a\",\"dweb:/ipfs/QmYpiCQoxbDEYQ2FNA39Z4FGfoxfQ8jvH1Z3ccrqguQFMP\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0x5b4e4b27c41121831d28a6a71ed90fcb44c34d2d3e722993dac74c239ad653fd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9312944c7b9f5f5901e6b899e11838a628c5a146b6ee70f2bd4664010d652e68\",\"dweb:/ipfs/QmYMjrhnL5pefMQfSf64wFrqmqEAYgxoyf3jb8g2jz1kMc\"]},\"@graphprotocol/contracts/contracts/token/IGraphToken.sol\":{\"keccak256\":\"0x2ffad6798d641c8d1288730be725c43041c803caceaf6d9985122d000ad5761c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5f782a5670037fc9223dc20fd4f99c0277a9bec7d08f7800b0a0733e819a07cb\",\"dweb:/ipfs/QmP3K2QnmukScCh1nzgphYdg7AiAuTaT914jq4txLYNpra\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol\":{\"keccak256\":\"0xd26e1eb1b0702f856f8489c4f5548644598a502221beece2f87ac4d01af9a609\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://69c3c34019e752bb6562c1b6709fcfd6958eb036ebe07b5c3c63ec47b4a17efc\",\"dweb:/ipfs/QmeKJuzv9Kb5TPBzpi2SoWwmPpn3Y9v3MR1g7hXoFJcwAG\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0x256512546eedbc0a954815735a5bd6d8832c465a3ce0bdc4959a6dcca3ea24ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bcd9acb66c3153a5d38888ef17a798659bae9938e998e6597fcfb8f666bd3e50\",\"dweb:/ipfs/QmfTQt588Zon3AhR1PxhkHGL8xGw5JC7DAepTLDXeMWWA1\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0xa9c752ea887bd2a3637934b5f197526b6fac46b0b924deb75a8d224290ccbc95\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0a6625b4175959cd53af91a3741c12fb1fa2e91e0ab2302dff8a06bf7a66781\",\"dweb:/ipfs/QmPMoc5DN9gZr22gWkKGQDgJ8eqK1pChGQYTbPLC9LDCiY\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0xa32bd068b2a6a6cdd3863439aa280b29718ebb0a94da59e5806455c75af7994e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d1cdd344d026af2fc6e136337f9f86354d1b2731a6076e498c2ffd370705cdb5\",\"dweb:/ipfs/QmZe4rGR9gvyWP9ENDGLWxcB5a67qvbqbFKKhr9Di7VkEN\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x04da4bb0cfc6db397d6140ae72d6a4ffcadb19b5a8fc654ae3fd1550b64526ff\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9dca21008f5cf563d1863148b151d103b92a99c7bb0fe4667fdd9236bfa9881e\",\"dweb:/ipfs/QmPBfG7s2ajEYn35oJk6TjQ6wCQ7FNVAuZnzXbAENbKF9i\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x2aa4aa3745b13f9cadcbf3f93888ebbaa8f5d1da3b6f845f1741d51b16ff9944\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://290e13fd3dc9170244aaa4c6e5f5646878d011ee25024926d4d60d40eb6cf8c9\",\"dweb:/ipfs/QmPWwXxhnxmNSUpVF6caT1cXVtV2c1ackJiMzAbUG4z6Fo\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0xbb225acac73f4245b30a8fe9c0bf4bcc8b310f40da526a0447a2303f1ca63e96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://207826b2277a0bd42b8a4d8825f6b16e46d6dc8039e4027faa22df462aa06079\",\"dweb:/ipfs/QmYS177dKBuY7iRUdwBMHxSMd6SfNpARTApLHMLgFCozTy\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd161d01d49ec47200c1c8374d11ad7d9a2c1776a2f87c546f78535ffa33b3954\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7da68f651214064c6afb1b43955879a2eaea6076c44e92975abf31735b0e1012\",\"dweb:/ipfs/QmZBHtfqhzWsv1oWy73pR8zabgLnhqpiWhknK4TzrPBhV2\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0x2bc503df758ca7fcc2a741b41350158a53e295974a37478336f2ed8b76e460a5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://24af9fe8ca1e0daae752a4b331b77c3a268a2a358e2e34a50df8ef283dd8670f\",\"dweb:/ipfs/QmYBJAMWHeiWWepGTTdkUSN4Vn2oP4GvyeqiwDK1TVdfce\"]},\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x3389a6fae8651820ced92bdc06b7168280055ea65467ac094c5c3fd950700820\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2e3756bebea135066625cba99d4d608ca1770a21abfd3cfbc05a3e1b280c688b\",\"dweb:/ipfs/QmQeebmsKNQqKpGKYPEyJqrpF3ZjP71udwPgoGEdTfvTSb\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1be743a301a082944c78ba37b48c466ebc47d2ddd94529a3e05ed828e4413c68\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://663e05ec37777a21b344acb96235db183dcfac14e42048cfc921ab2038cd77d1\",\"dweb:/ipfs/QmY5mQ2L3BLrB8TDNXadDhjR2nCb7ssNPTJ6zegJnC5bjq\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 2134, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol:ProvisionManager", - "label": "minimumProvisionTokens", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 2137, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol:ProvisionManager", - "label": "maximumProvisionTokens", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 2140, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol:ProvisionManager", - "label": "minimumThawingPeriod", - "offset": 0, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2143, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol:ProvisionManager", - "label": "maximumThawingPeriod", - "offset": 8, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2146, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol:ProvisionManager", - "label": "minimumVerifierCut", - "offset": 16, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2149, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol:ProvisionManager", - "label": "maximumVerifierCut", - "offset": 20, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2152, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol:ProvisionManager", - "label": "delegationRatio", - "offset": 24, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2157, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol:ProvisionManager", - "label": "__gap", - "offset": 0, - "slot": "3", - "type": "t_array(t_uint256)50_storage" - } - ], - "types": { - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - }, - "t_uint32": { - "encoding": "inplace", - "label": "uint32", - "numberOfBytes": "4" - }, - "t_uint64": { - "encoding": "inplace", - "label": "uint64", - "numberOfBytes": "8" - } - } - } - } - }, - "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol": { - "ProvisionManagerV1Storage": { - "abi": [ - { - "inputs": [], - "name": "delegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "delegationRatio()": "bfdfa7af", - "maximumProvisionTokens()": "73371823", - "maximumThawingPeriod()": "9aafa5d1", - "maximumVerifierCut()": "9249c5c1", - "minimumProvisionTokens()": "36fdd28a", - "minimumThawingPeriod()": "8d2f2948", - "minimumVerifierCut()": "88812583" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"delegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"Gap to allow adding variables in future upgrades\"},\"delegationRatio\":{\"details\":\"Max calculated as service provider's stake * delegationRatio\"}},\"title\":\"Storage layout for the {ProvisionManager} helper contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"delegationRatio()\":{\"notice\":\"How much delegation the service provider can effectively use\"},\"maximumProvisionTokens()\":{\"notice\":\"The maximum amount of tokens allowed to register a provision in the data service\"},\"maximumThawingPeriod()\":{\"notice\":\"The maximum thawing period allowed to register a provision in the data service\"},\"maximumVerifierCut()\":{\"notice\":\"The maximum verifier cut allowed to register a provision in the data service (in PPM)\"},\"minimumProvisionTokens()\":{\"notice\":\"The minimum amount of tokens required to register a provision in the data service\"},\"minimumThawingPeriod()\":{\"notice\":\"The minimum thawing period required to register a provision in the data service\"},\"minimumVerifierCut()\":{\"notice\":\"The minimum verifier cut required to register a provision in the data service (in PPM)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":\"ProvisionManagerV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0x256512546eedbc0a954815735a5bd6d8832c465a3ce0bdc4959a6dcca3ea24ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bcd9acb66c3153a5d38888ef17a798659bae9938e998e6597fcfb8f666bd3e50\",\"dweb:/ipfs/QmfTQt588Zon3AhR1PxhkHGL8xGw5JC7DAepTLDXeMWWA1\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 2134, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol:ProvisionManagerV1Storage", - "label": "minimumProvisionTokens", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 2137, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol:ProvisionManagerV1Storage", - "label": "maximumProvisionTokens", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 2140, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol:ProvisionManagerV1Storage", - "label": "minimumThawingPeriod", - "offset": 0, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2143, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol:ProvisionManagerV1Storage", - "label": "maximumThawingPeriod", - "offset": 8, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2146, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol:ProvisionManagerV1Storage", - "label": "minimumVerifierCut", - "offset": 16, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2149, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol:ProvisionManagerV1Storage", - "label": "maximumVerifierCut", - "offset": 20, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2152, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol:ProvisionManagerV1Storage", - "label": "delegationRatio", - "offset": 24, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2157, - "contract": "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol:ProvisionManagerV1Storage", - "label": "__gap", - "offset": 0, - "slot": "3", - "type": "t_array(t_uint256)50_storage" - } - ], - "types": { - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - }, - "t_uint32": { - "encoding": "inplace", - "label": "uint32", - "numberOfBytes": "4" - }, - "t_uint64": { - "encoding": "inplace", - "label": "uint64", - "numberOfBytes": "8" - } - } - } - } - }, - "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol": { - "IGraphPayments": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTokens", - "type": "uint256" - } - ], - "name": "GraphPaymentsInsufficientTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "protocolPaymentCut", - "type": "uint256" - } - ], - "name": "GraphPaymentsInvalidProtocolPaymentCut", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReceiver", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDelegationPool", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensProtocol", - "type": "uint256" - } - ], - "name": "PaymentCollected", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "collect(uint8,address,uint256,address,uint256)": "6c69783a" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokens\",\"type\":\"uint256\"}],\"name\":\"GraphPaymentsInsufficientTokens\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"protocolPaymentCut\",\"type\":\"uint256\"}],\"name\":\"GraphPaymentsInvalidProtocolPaymentCut\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensReceiver\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensDelegationPool\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensDataService\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensProtocol\",\"type\":\"uint256\"}],\"name\":\"PaymentCollected\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokensDataService\",\"type\":\"uint256\"}],\"name\":\"collect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"GraphPaymentsInsufficientTokens(uint256,uint256)\":[{\"params\":{\"minTokens\":\"The amount of tokens being collected\",\"tokens\":\"The amount of tokens available\"}}],\"GraphPaymentsInvalidProtocolPaymentCut(uint256)\":[{\"params\":{\"protocolPaymentCut\":\"The protocol payment cut\"}}]},\"events\":{\"PaymentCollected(address,address,address,uint256,uint256,uint256,uint256)\":{\"params\":{\"dataService\":\"The address of the data service\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\",\"tokensDataService\":\"Amount of tokens for the data service\",\"tokensDelegationPool\":\"Amount of tokens for delegators\",\"tokensProtocol\":\"Amount of tokens charged as protocol tax\",\"tokensReceiver\":\"Amount of tokens for the receiver\"}}},\"kind\":\"dev\",\"methods\":{\"collect(uint8,address,uint256,address,uint256)\":{\"params\":{\"dataService\":\"The address of the data service\",\"paymentType\":\"The type of payment as defined in {IGraphPayments}\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens being collected\",\"tokensDataService\":\"The amount of tokens that should be sent to the data service\"}}},\"title\":\"Interface for the {GraphPayments} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"GraphPaymentsInsufficientTokens(uint256,uint256)\":[{\"notice\":\"Thrown when there are insufficient tokens to pay the required amount\"}],\"GraphPaymentsInvalidProtocolPaymentCut(uint256)\":[{\"notice\":\"Thrown when the protocol payment cut is invalid\"}]},\"events\":{\"PaymentCollected(address,address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted when a payment is collected\"}},\"kind\":\"user\",\"methods\":{\"collect(uint8,address,uint256,address,uint256)\":{\"notice\":\"Collects funds from a payer. It will pay cuts to all relevant parties and forward the rest to the receiver.\"}},\"notice\":\"This contract is part of the Graph Horizon payments protocol. It's designed to pull funds (GRT) from the {PaymentsEscrow} and distribute them according to a set of pre established rules.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":\"IGraphPayments\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol": { - "IGraphProxyAdmin": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Empty interface to allow the GraphProxyAdmin contract to be used in the GraphDirectory contract.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"IGraphProxyAdmin\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":\"IGraphProxyAdmin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0xa9c752ea887bd2a3637934b5f197526b6fac46b0b924deb75a8d224290ccbc95\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0a6625b4175959cd53af91a3741c12fb1fa2e91e0ab2302dff8a06bf7a66781\",\"dweb:/ipfs/QmPMoc5DN9gZr22gWkKGQDgJ8eqK1pChGQYTbPLC9LDCiY\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol": { - "IHorizonStaking": { - "abi": [ - { - "inputs": [], - "name": "HorizonStakingCallerIsServiceProvider", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientIdleStake", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minShares", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientShares", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientStakeForLegacyAllocations", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minRequired", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientTokens", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidBeneficiaryZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "HorizonStakingInvalidDelegationFeeCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidDelegationPool", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidDelegationPoolState", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - } - ], - "name": "HorizonStakingInvalidMaxVerifierCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidProvision", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidServiceProviderZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "HorizonStakingInvalidThawingPeriod", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidVerifierZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidZeroShares", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidZeroTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "HorizonStakingNotAuthorized", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingNothingThawing", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingProvisionAlreadyExists", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minShares", - "type": "uint256" - } - ], - "name": "HorizonStakingSlippageProtection", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "until", - "type": "uint256" - } - ], - "name": "HorizonStakingStillThawing", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingTooManyThawRequests", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingTooManyTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingVerifierNotAllowed", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "epoch", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationID", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isPublic", - "type": "bool" - } - ], - "name": "AllocationClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "AllowedLockedVerifierSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegatedTokensWithdrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "DelegationFeeCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegationSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "DelegationSlashingEnabled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegationSlashingSkipped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "MaxThawingPeriodSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "OperatorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionIncreased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionParametersSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionParametersStaged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionThawed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "assetHolder", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationID", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "epoch", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "protocolTax", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "curationFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "queryFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "queryRebates", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "delegationRewards", - "type": "uint256" - } - ], - "name": "RebateCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeDeposited", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "until", - "type": "uint256" - } - ], - "name": "StakeLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeWithdrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - } - ], - "name": "ThawRequestCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bool", - "name": "valid", - "type": "bool" - } - ], - "name": "ThawRequestFulfilled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "thawRequestsFulfilled", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ThawRequestsFulfilled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "ThawingPeriodCleared", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensDelegated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensDeprovisioned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensToDelegationPoolAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensUndelegated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "VerifierTokensSent", - "type": "event" - }, - { - "inputs": [], - "name": "__DEPRECATED_getThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "acceptProvisionParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "addToDelegationPool", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "addToProvision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "clearThawingPeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - } - ], - "name": "closeAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minSharesOut", - "type": "uint256" - } - ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "deprovision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "getAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAtEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAtEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "collectedFees", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "__DEPRECATED_effectiveAllocation", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "distributedRebates", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingExtension.Allocation", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getAllocationData", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "getAllocationState", - "outputs": [ - { - "internalType": "enum IHorizonStakingExtension.AllocationState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getDelegatedTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "delegator", - "type": "address" - } - ], - "name": "getDelegation", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.Delegation", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - } - ], - "name": "getDelegationFeeCut", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getDelegationPool", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sharesThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.DelegationPool", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getIdleStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "getIndexerStakedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaxThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getProviderTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getProvision", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sharesThawing", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "createdAt", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "maxVerifierCutPending", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriodPending", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.Provision", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getServiceProvider", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokensStaked", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensProvisioned", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.ServiceProvider", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "getSubgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - } - ], - "name": "getThawRequest", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "internalType": "bytes32", - "name": "next", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.ThawRequest", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getThawRequestList", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "head", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "tail", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "internalType": "struct LinkedList.List", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getThawedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint32", - "name": "delegationRatio", - "type": "uint32" - } - ], - "name": "getTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "hasStake", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allocationId", - "type": "address" - } - ], - "name": "isActiveAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "isAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "isAllowedLockedVerifier", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isAuthorized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isDelegationSlashingEnabled", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "isOperator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "provision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "provisionLocked", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "oldServiceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "oldVerifier", - "type": "address" - }, - { - "internalType": "address", - "name": "newServiceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "newVerifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "minSharesForNewProvider", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "redelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "oldVerifier", - "type": "address" - }, - { - "internalType": "address", - "name": "newVerifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "reprovision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setAllowedLockedVerifier", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "setDelegationFeeCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "setDelegationSlashingEnabled", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "setMaxThawingPeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setOperatorLocked", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "setProvisionParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensVerifier", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifierDestination", - "type": "address" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stakeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stakeToProvision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "thaw", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - } - ], - "name": "undelegate", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "undelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "undelegate", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "unstake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "withdrawDelegated", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "newServiceProvider", - "type": "address" - } - ], - "name": "withdrawDelegated", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "__DEPRECATED_getThawingPeriod()": "c0641994", - "acceptProvisionParameters(address)": "3a78b732", - "addToDelegationPool(address,address,uint256)": "ca94b0e9", - "addToProvision(address,address,uint256)": "fecc9cc1", - "clearThawingPeriod()": "e473522a", - "closeAllocation(address,bytes32)": "44c32a61", - "collect(uint256,address)": "8d3c100a", - "delegate(address,address,uint256,uint256)": "6230001a", - "delegate(address,uint256)": "026e402b", - "deprovision(address,address,uint256)": "21195373", - "getAllocation(address)": "0e022923", - "getAllocationData(address)": "55c85269", - "getAllocationState(address)": "98c657dc", - "getDelegatedTokensAvailable(address,address)": "fb744cc0", - "getDelegation(address,address,address)": "ccebcabb", - "getDelegationFeeCut(address,address,uint8)": "7573ef4f", - "getDelegationPool(address,address)": "561285e4", - "getIdleStake(address)": "a784d498", - "getIndexerStakedTokens(address)": "1787e69f", - "getMaxThawingPeriod()": "39514ad2", - "getProviderTokensAvailable(address,address)": "08ce5f68", - "getProvision(address,address)": "25d9897e", - "getServiceProvider(address)": "8cc01c86", - "getStake(address)": "7a766460", - "getSubgraphAllocatedTokens(bytes32)": "e2e1e8e9", - "getThawRequest(bytes32)": "b7ca7241", - "getThawRequestList(address,address,address)": "a212daf8", - "getThawedTokens(address,address,address)": "9054e343", - "getTokensAvailable(address,address,uint32)": "872d0489", - "hasStake(address)": "e73e14bf", - "isActiveAllocation(address)": "6a3ca383", - "isAllocation(address)": "f1d60d66", - "isAllowedLockedVerifier(address)": "ae4fe67a", - "isAuthorized(address,address,address)": "7c145cc7", - "isDelegationSlashingEnabled()": "fc54fb27", - "isOperator(address,address)": "b6363cf2", - "provision(address,address,uint256,uint32,uint64)": "010167e5", - "provisionLocked(address,address,uint256,uint32,uint64)": "82d66cb8", - "redelegate(address,address,address,address,uint256,uint256)": "f64b3598", - "reprovision(address,address,address,uint256)": "ba7fb0b4", - "setAllowedLockedVerifier(address,bool)": "4ca7ac22", - "setDelegationFeeCut(address,address,uint8,uint256)": "42c51693", - "setDelegationSlashingEnabled()": "ef58bd67", - "setMaxThawingPeriod(uint64)": "259bc435", - "setOperator(address,address,bool)": "bc735d90", - "setOperatorLocked(address,address,bool)": "ad4d35b5", - "setProvisionParameters(address,address,uint32,uint64)": "81e21b56", - "slash(address,uint256,uint256,address)": "e76fede6", - "stake(uint256)": "a694fc3a", - "stakeTo(address,uint256)": "a2a31722", - "stakeToProvision(address,address,uint256)": "74612092", - "thaw(address,address,uint256)": "f93f1cd0", - "undelegate(address,address,uint256)": "a02b9426", - "undelegate(address,address,uint256,address)": "162ea5ed", - "undelegate(address,uint256)": "4d99dd16", - "unstake(uint256)": "2e17de78", - "withdraw()": "3ccfd60b", - "withdrawDelegated(address,address)": "51a60b02", - "withdrawDelegated(address,address,uint256)": "3993d849" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"HorizonStakingCallerIsServiceProvider\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokens\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingInsufficientIdleStake\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minShares\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingInsufficientShares\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokens\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingInsufficientStakeForLegacyAllocations\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minRequired\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingInsufficientTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidBeneficiaryZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"feeCut\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingInvalidDelegationFeeCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"HorizonStakingInvalidDelegationPool\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"HorizonStakingInvalidDelegationPoolState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"}],\"name\":\"HorizonStakingInvalidMaxVerifierCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"HorizonStakingInvalidProvision\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidServiceProviderZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxThawingPeriod\",\"type\":\"uint64\"}],\"name\":\"HorizonStakingInvalidThawingPeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidVerifierZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidZeroShares\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidZeroTokens\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"HorizonStakingNotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingNothingThawing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingProvisionAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minShares\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingSlippageProtection\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"until\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingStillThawing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingTooManyThawRequests\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTokens\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingTooManyTokens\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"HorizonStakingVerifierNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poi\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"}],\"name\":\"AllocationClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"AllowedLockedVerifierSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DelegatedTokensWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeCut\",\"type\":\"uint256\"}],\"name\":\"DelegationFeeCutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DelegationSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"DelegationSlashingEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DelegationSlashingSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"maxThawingPeriod\",\"type\":\"uint64\"}],\"name\":\"MaxThawingPeriodSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"OperatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"ProvisionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ProvisionIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"ProvisionParametersSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"ProvisionParametersStaged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ProvisionSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ProvisionThawed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"assetHolder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolTax\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"curationFees\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"queryFees\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"queryRebates\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delegationRewards\",\"type\":\"uint256\"}],\"name\":\"RebateCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"StakeDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"until\",\"type\":\"uint256\"}],\"name\":\"StakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"thawingUntil\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"thawRequestId\",\"type\":\"bytes32\"}],\"name\":\"ThawRequestCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"thawRequestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"thawingUntil\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"ThawRequestFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawRequestsFulfilled\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ThawRequestsFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ThawingPeriodCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"TokensDelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"TokensDeprovisioned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"TokensToDelegationPoolAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"TokensUndelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"VerifierTokensSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"__DEPRECATED_getThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"acceptProvisionParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"addToDelegationPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"addToProvision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clearThawingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"poi\",\"type\":\"bytes32\"}],\"name\":\"closeAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"}],\"name\":\"collect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minSharesOut\",\"type\":\"uint256\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nThawRequests\",\"type\":\"uint256\"}],\"name\":\"deprovision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"}],\"name\":\"getAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAtEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collectedFees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"__DEPRECATED_effectiveAllocation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPerAllocatedToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"distributedRebates\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingExtension.Allocation\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getAllocationData\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPerAllocatedToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPending\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"}],\"name\":\"getAllocationState\",\"outputs\":[{\"internalType\":\"enum IHorizonStakingExtension.AllocationState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"getDelegatedTokensAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getDelegation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.Delegation\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"}],\"name\":\"getDelegationFeeCut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"getDelegationPool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensThawing\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sharesThawing\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thawingNonce\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.DelegationPool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"getIdleStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getIndexerStakedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"getProviderTokensAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"getProvision\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensThawing\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sharesThawing\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"maxVerifierCutPending\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"thawingPeriodPending\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"thawingNonce\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.Provision\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"getServiceProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokensStaked\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensProvisioned\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.ServiceProvider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"getStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentId\",\"type\":\"bytes32\"}],\"name\":\"getSubgraphAllocatedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"thawRequestId\",\"type\":\"bytes32\"}],\"name\":\"getThawRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"thawingUntil\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"next\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"thawingNonce\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.ThawRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getThawRequestList\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tail\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"internalType\":\"struct LinkedList.List\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getThawedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delegationRatio\",\"type\":\"uint32\"}],\"name\":\"getTokensAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"hasStake\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allocationId\",\"type\":\"address\"}],\"name\":\"isActiveAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"}],\"name\":\"isAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"isAllowedLockedVerifier\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegationSlashingEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"provision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"provisionLocked\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oldServiceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newServiceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minSharesForNewProvider\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nThawRequests\",\"type\":\"uint256\"}],\"name\":\"redelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nThawRequests\",\"type\":\"uint256\"}],\"name\":\"reprovision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setAllowedLockedVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"feeCut\",\"type\":\"uint256\"}],\"name\":\"setDelegationFeeCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setDelegationSlashingEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"maxThawingPeriod\",\"type\":\"uint64\"}],\"name\":\"setMaxThawingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setOperatorLocked\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"setProvisionParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensVerifier\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifierDestination\",\"type\":\"address\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"stakeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"stakeToProvision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"thaw\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"undelegate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"undelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"undelegate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nThawRequests\",\"type\":\"uint256\"}],\"name\":\"withdrawDelegated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newServiceProvider\",\"type\":\"address\"}],\"name\":\"withdrawDelegated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Use this interface to interact with the Horizon Staking contract.\",\"errors\":{\"HorizonStakingInsufficientIdleStake(uint256,uint256)\":[{\"params\":{\"minTokens\":\"The minimum required token amount\",\"tokens\":\"The actual token amount\"}}],\"HorizonStakingInsufficientShares(uint256,uint256)\":[{\"params\":{\"minShares\":\"The minimum required share amount\",\"shares\":\"The actual share amount\"}}],\"HorizonStakingInsufficientStakeForLegacyAllocations(uint256,uint256)\":[{\"params\":{\"minTokens\":\"The minimum required token amount\",\"tokens\":\"The actual token amount\"}}],\"HorizonStakingInsufficientTokens(uint256,uint256)\":[{\"params\":{\"minRequired\":\"The minimum required token amount\",\"tokens\":\"The actual token amount\"}}],\"HorizonStakingInvalidDelegationFeeCut(uint256)\":[{\"params\":{\"feeCut\":\"The fee cut\"}}],\"HorizonStakingInvalidDelegationPool(address,address)\":[{\"params\":{\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}}],\"HorizonStakingInvalidDelegationPoolState(address,address)\":[{\"params\":{\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}}],\"HorizonStakingInvalidMaxVerifierCut(uint32)\":[{\"params\":{\"maxVerifierCut\":\"The maximum verifier cut\"}}],\"HorizonStakingInvalidProvision(address,address)\":[{\"params\":{\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}}],\"HorizonStakingInvalidThawingPeriod(uint64,uint64)\":[{\"params\":{\"maxThawingPeriod\":\"The maximum `thawingPeriod` allowed\",\"thawingPeriod\":\"The thawing period\"}}],\"HorizonStakingNotAuthorized(address,address,address)\":[{\"params\":{\"caller\":\"The caller address\",\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}}],\"HorizonStakingSlippageProtection(uint256,uint256)\":[{\"params\":{\"minShares\":\"The minimum required share amount\",\"shares\":\"The actual share amount\"}}],\"HorizonStakingStillThawing(uint256)\":[{\"details\":\"Note this thawing refers to the global thawing period applied to legacy allocated tokens, it does not refer to thaw requests.\",\"params\":{\"until\":\"The block number until the stake is locked\"}}],\"HorizonStakingTooManyTokens(uint256,uint256)\":[{\"params\":{\"maxTokens\":\"The maximum allowed token amount\",\"tokens\":\"The actual token amount\"}}],\"HorizonStakingVerifierNotAllowed(address)\":[{\"details\":\"Only applies to stake from locked wallets.\"}]},\"events\":{\"AllocationClosed(address,bytes32,uint256,uint256,address,address,bytes32,bool)\":{\"details\":\"Emitted when `indexer` close an allocation in `epoch` for `allocationID`. An amount of `tokens` get unallocated from `subgraphDeploymentID`. This event also emits the POI (proof of indexing) submitted by the indexer. `isPublic` is true if the sender was someone other than the indexer.\"},\"AllowedLockedVerifierSet(address,bool)\":{\"params\":{\"allowed\":\"Whether the verifier is allowed or disallowed\",\"verifier\":\"The address of the verifier\"}},\"DelegatedTokensWithdrawn(address,address,address,uint256)\":{\"params\":{\"delegator\":\"The address of the delegator\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens withdrawn\",\"verifier\":\"The address of the verifier\"}},\"DelegationFeeCutSet(address,address,uint8,uint256)\":{\"params\":{\"feeCut\":\"The fee cut set, in PPM\",\"paymentType\":\"The payment type for which the fee cut is set, as defined in {IGraphPayments}\",\"serviceProvider\":\"The address of the service provider\",\"verifier\":\"The address of the verifier\"}},\"DelegationSlashed(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens slashed (note this only represents delegation pool's slashed stake)\",\"verifier\":\"The address of the verifier\"}},\"DelegationSlashingEnabled(bool)\":{\"params\":{\"enabled\":\"Whether delegation slashing is enabled or disabled.\"}},\"DelegationSlashingSkipped(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens that would have been slashed (note this only represents delegation pool's slashed stake)\",\"verifier\":\"The address of the verifier\"}},\"MaxThawingPeriodSet(uint64)\":{\"params\":{\"maxThawingPeriod\":\"The new maximum thawing period\"}},\"OperatorSet(address,address,address,bool)\":{\"details\":\"Emitted when an operator is allowed or denied by a service provider for a particular verifier\",\"params\":{\"allowed\":\"Whether the operator is allowed or denied\",\"operator\":\"The address of the operator\",\"serviceProvider\":\"The address of the service provider\",\"verifier\":\"The address of the verifier\"}},\"ProvisionCreated(address,address,uint256,uint32,uint64)\":{\"params\":{\"maxVerifierCut\":\"The maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves when slashing\",\"serviceProvider\":\"The address of the service provider\",\"thawingPeriod\":\"The period in seconds that the tokens will be thawing before they can be removed from the provision\",\"tokens\":\"The amount of tokens provisioned\",\"verifier\":\"The address of the verifier\"}},\"ProvisionIncreased(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens added to the provision\",\"verifier\":\"The address of the verifier\"}},\"ProvisionParametersSet(address,address,uint32,uint64)\":{\"params\":{\"maxVerifierCut\":\"The new maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves when slashing\",\"serviceProvider\":\"The address of the service provider\",\"thawingPeriod\":\"The new period in seconds that the tokens will be thawing before they can be removed from the provision\",\"verifier\":\"The address of the verifier\"}},\"ProvisionParametersStaged(address,address,uint32,uint64)\":{\"params\":{\"maxVerifierCut\":\"The proposed maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves when slashing\",\"serviceProvider\":\"The address of the service provider\",\"thawingPeriod\":\"The proposed period in seconds that the tokens will be thawing before they can be removed from the provision\",\"verifier\":\"The address of the verifier\"}},\"ProvisionSlashed(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens slashed (note this only represents service provider's slashed stake)\",\"verifier\":\"The address of the verifier\"}},\"ProvisionThawed(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens thawed\",\"verifier\":\"The address of the verifier\"}},\"RebateCollected(address,address,bytes32,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256)\":{\"details\":\"Emitted when `indexer` collects a rebate on `subgraphDeploymentID` for `allocationID`. `epoch` is the protocol epoch the rebate was collected on The rebate is for `tokens` amount which are being provided by `assetHolder`; `queryFees` is the amount up for rebate after `curationFees` are distributed and `protocolTax` is burnt. `queryRebates` is the amount distributed to the `indexer` with `delegationFees` collected and sent to the delegation pool.\"},\"StakeDeposited(address,uint256)\":{\"details\":\"TODO: After transition period move to IHorizonStakingMain. Temporarily it needs to be here since it's emitted by {_stake} which is used by both {HorizonStaking} and {HorizonStakingExtension}.\",\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens staked.\"}},\"StakeLocked(address,uint256,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens unstaked\",\"until\":\"The block number until the stake is locked\"}},\"StakeWithdrawn(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens withdrawn\"}},\"ThawRequestCreated(address,address,address,uint256,uint64,bytes32)\":{\"details\":\"Can be emitted by the service provider when thawing stake or by the delegator when undelegating.\",\"params\":{\"owner\":\"The address of the owner of the thaw request.\",\"serviceProvider\":\"The address of the service provider\",\"shares\":\"The amount of shares being thawed\",\"thawRequestId\":\"The ID of the thaw request\",\"thawingUntil\":\"The timestamp until the stake is thawed\",\"verifier\":\"The address of the verifier\"}},\"ThawRequestFulfilled(bytes32,uint256,uint256,uint64,bool)\":{\"params\":{\"shares\":\"The amount of shares being released\",\"thawRequestId\":\"The ID of the thaw request\",\"thawingUntil\":\"The timestamp until the stake has thawed\",\"tokens\":\"The amount of tokens being released\",\"valid\":\"Whether the thaw request was valid at the time of fulfillment\"}},\"ThawRequestsFulfilled(address,address,address,uint256,uint256)\":{\"params\":{\"owner\":\"The address of the owner of the thaw requests\",\"serviceProvider\":\"The address of the service provider\",\"thawRequestsFulfilled\":\"The number of thaw requests fulfilled\",\"tokens\":\"The total amount of tokens being released\",\"verifier\":\"The address of the verifier\"}},\"ThawingPeriodCleared()\":{\"details\":\"This marks the end of the transition period.\"},\"TokensDelegated(address,address,address,uint256)\":{\"params\":{\"delegator\":\"The address of the delegator\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens delegated\",\"verifier\":\"The address of the verifier\"}},\"TokensDeprovisioned(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens removed\",\"verifier\":\"The address of the verifier\"}},\"TokensToDelegationPoolAdded(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens withdrawn\",\"verifier\":\"The address of the verifier\"}},\"TokensUndelegated(address,address,address,uint256)\":{\"params\":{\"delegator\":\"The address of the delegator\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens undelegated\",\"verifier\":\"The address of the verifier\"}},\"VerifierTokensSent(address,address,address,uint256)\":{\"params\":{\"destination\":\"The address where the verifier cut is sent\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens sent to the verifier\",\"verifier\":\"The address of the verifier\"}}},\"kind\":\"dev\",\"methods\":{\"__DEPRECATED_getThawingPeriod()\":{\"returns\":{\"_0\":\"Thawing period in blocks\"}},\"acceptProvisionParameters(address)\":{\"details\":\"Only the provision's verifier can call this function. Emits a {ProvisionParametersSet} event.\",\"params\":{\"serviceProvider\":\"The service provider address\"}},\"addToDelegationPool(address,address,uint256)\":{\"details\":\"Requirements: - `tokens` cannot be zero. - Caller must have previously approved this contract to pull tokens from their balance. Emits a {TokensToDelegationPoolAdded} event.\",\"params\":{\"serviceProvider\":\"The service provider address\",\"tokens\":\"The amount of tokens to add to the delegation pool\",\"verifier\":\"The verifier address for which the tokens are provisioned\"}},\"addToProvision(address,address,uint256)\":{\"details\":\"Requirements: - The `serviceProvider` must have previously provisioned stake to `verifier`. - `tokens` cannot be zero. - The `serviceProvider` must have enough idle stake to cover the tokens to add. Emits a {ProvisionIncreased} event.\",\"params\":{\"serviceProvider\":\"The service provider address\",\"tokens\":\"The amount of tokens to add to the provision\",\"verifier\":\"The verifier address\"}},\"clearThawingPeriod()\":{\"details\":\"This function can only be called by the contract governor.Emits a {ThawingPeriodCleared} event.\"},\"closeAllocation(address,bytes32)\":{\"params\":{\"allocationID\":\"The allocation identifier\",\"poi\":\"Proof of indexing submitted for the allocated period\"}},\"collect(uint256,address)\":{\"details\":\"To avoid reverting on the withdrawal from channel flow this function will: 1) Accept calls with zero tokens. 2) Accept calls after an allocation passed the dispute period, in that case, all the received tokens are burned.\",\"params\":{\"allocationID\":\"Allocation where the tokens will be assigned\",\"tokens\":\"Amount of tokens to collect\"}},\"delegate(address,address,uint256,uint256)\":{\"details\":\"Requirements: - `tokens` cannot be zero. - Caller must have previously approved this contract to pull tokens from their balance. - The provision must exist. Emits a {TokensDelegated} event.\",\"params\":{\"minSharesOut\":\"The minimum amount of shares to accept, slippage protection.\",\"serviceProvider\":\"The service provider address\",\"tokens\":\"The amount of tokens to delegate\",\"verifier\":\"The verifier address\"}},\"delegate(address,uint256)\":{\"details\":\"See {delegate}.\",\"params\":{\"serviceProvider\":\"The service provider address\",\"tokens\":\"The amount of tokens to delegate\"}},\"deprovision(address,address,uint256)\":{\"details\":\"The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw requests in the event that fulfilling all of them results in a gas limit error. Requirements: - Must have previously initiated a thaw request using {thaw}. Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {TokensDeprovisioned} events.\",\"params\":{\"nThawRequests\":\"The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\",\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}},\"getAllocation(address)\":{\"params\":{\"allocationID\":\"Address used as allocation identifier\"},\"returns\":{\"_0\":\"Allocation data\"}},\"getAllocationData(address)\":{\"details\":\"Get allocation data to calculate rewards issuance\",\"params\":{\"allocationId\":\"The allocation Id\"},\"returns\":{\"accRewardsPending\":\"Snapshot of accumulated rewards from previous allocation resizing, pending to be claimed\",\"accRewardsPerAllocatedToken\":\"Rewards snapshot\",\"indexer\":\"The indexer address\",\"subgraphDeploymentId\":\"Subgraph deployment id for the allocation\",\"tokens\":\"Amount of allocated tokens\"}},\"getAllocationState(address)\":{\"params\":{\"allocationID\":\"Allocation identifier\"},\"returns\":{\"_0\":\"AllocationState enum with the state of the allocation\"}},\"getDelegatedTokensAvailable(address,address)\":{\"details\":\"Calculated as the tokens available minus the tokens thawing.\",\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The amount of tokens available.\"}},\"getDelegation(address,address,address)\":{\"params\":{\"delegator\":\"The address of the delegator.\",\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The delegation details.\"}},\"getDelegationFeeCut(address,address,uint8)\":{\"params\":{\"paymentType\":\"The payment type as defined by {IGraphPayments.PaymentTypes}.\",\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The delegation fee cut in PPM.\"}},\"getDelegationPool(address,address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The delegation pool details.\"}},\"getIdleStake(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens that are idle.\"}},\"getIndexerStakedTokens(address)\":{\"params\":{\"indexer\":\"Address of the indexer\"},\"returns\":{\"_0\":\"Amount of tokens staked by the indexer\"}},\"getProviderTokensAvailable(address,address)\":{\"details\":\"Calculated as the tokens available minus the tokens thawing.\",\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The amount of tokens available.\"}},\"getProvision(address,address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The provision details.\"}},\"getServiceProvider(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"getStake(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens staked.\"}},\"getSubgraphAllocatedTokens(bytes32)\":{\"params\":{\"_subgraphDeploymentId\":\"Deployment Id for the subgraph\"},\"returns\":{\"_0\":\"Total tokens allocated to subgraph\"}},\"getThawRequest(bytes32)\":{\"params\":{\"thawRequestId\":\"The id of the thaw request.\"},\"returns\":{\"_0\":\"The thaw request details.\"}},\"getThawRequestList(address,address,address)\":{\"params\":{\"owner\":\"The owner of the thaw requests. Use either the service provider or delegator address.\",\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The thaw requests list metadata.\"}},\"getThawedTokens(address,address,address)\":{\"params\":{\"owner\":\"The owner of the thaw requests. Use either the service provider or delegator address.\",\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The amount of thawed tokens.\"}},\"getTokensAvailable(address,address,uint32)\":{\"params\":{\"delegationRatio\":\"The delegation ratio.\",\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The amount of tokens available.\"}},\"hasStake(address)\":{\"params\":{\"indexer\":\"Address of the indexer\"},\"returns\":{\"_0\":\"True if indexer has staked tokens\"}},\"isActiveAllocation(address)\":{\"params\":{\"_allocationId\":\"Allocation Id\"},\"returns\":{\"_0\":\"Whether or not the allocation is active\"}},\"isAllocation(address)\":{\"params\":{\"allocationID\":\"Address used as signer by the indexer for an allocation\"},\"returns\":{\"_0\":\"True if allocationID already used\"}},\"isAllowedLockedVerifier(address)\":{\"params\":{\"verifier\":\"Address of the verifier\"},\"returns\":{\"_0\":\"True if verifier is allowed locked verifier, false otherwise\"}},\"isAuthorized(address,address,address)\":{\"params\":{\"operator\":\"The address to check for auth\",\"serviceProvider\":\"The service provider on behalf of whom they're claiming to act\",\"verifier\":\"The verifier / data service on which they're claiming to act\"},\"returns\":{\"_0\":\"Whether the operator is authorized or not\"}},\"isOperator(address,address)\":{\"params\":{\"indexer\":\"Address of the indexer\",\"operator\":\"Address of the operator\"},\"returns\":{\"_0\":\"True if operator is allowed for indexer, false otherwise\"}},\"provision(address,address,uint256,uint32,uint64)\":{\"details\":\"Requirements: - `tokens` cannot be zero. - The `serviceProvider` must have enough idle stake to cover the tokens to provision. - `maxVerifierCut` must be a valid PPM. - `thawingPeriod` must be less than or equal to `_maxThawingPeriod`. Emits a {ProvisionCreated} event.\",\"params\":{\"maxVerifierCut\":\"The maximum cut, expressed in PPM, that a verifier can transfer instead of burning when slashing\",\"serviceProvider\":\"The service provider address\",\"thawingPeriod\":\"The period in seconds that the tokens will be thawing before they can be removed from the provision\",\"tokens\":\"The amount of tokens that will be locked and slashable\",\"verifier\":\"The verifier address for which the tokens are provisioned (who will be able to slash the tokens)\"}},\"provisionLocked(address,address,uint256,uint32,uint64)\":{\"details\":\"See {provision}. Additional requirements: - The `verifier` must be allowed to be used for locked provisions.\",\"params\":{\"maxVerifierCut\":\"The maximum cut, expressed in PPM, that a verifier can transfer instead of burning when slashing\",\"serviceProvider\":\"The service provider address\",\"thawingPeriod\":\"The period in seconds that the tokens will be thawing before they can be removed from the provision\",\"tokens\":\"The amount of tokens that will be locked and slashable\",\"verifier\":\"The verifier address for which the tokens are provisioned (who will be able to slash the tokens)\"}},\"redelegate(address,address,address,address,uint256,uint256)\":{\"details\":\"The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw requests in the event that fulfilling all of them results in a gas limit error. Requirements: - Must have previously initiated a thaw request using {undelegate}. - `newServiceProvider` and `newVerifier` must not be the zero address. - `newServiceProvider` must have previously provisioned stake to `newVerifier`. Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {DelegatedTokensWithdrawn} events.\",\"params\":{\"minSharesForNewProvider\":\"The minimum amount of shares to accept for the new service provider\",\"nThawRequests\":\"The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\",\"newServiceProvider\":\"The address of a new service provider\",\"newVerifier\":\"The address of a new verifier\",\"oldServiceProvider\":\"The old service provider address\",\"oldVerifier\":\"The old verifier address\"}},\"reprovision(address,address,address,uint256)\":{\"details\":\"Requirements: - Must have previously initiated a thaw request using {thaw}. - `tokens` cannot be zero. - The `serviceProvider` must have previously provisioned stake to `newVerifier`. - The `serviceProvider` must have enough idle stake to cover the tokens to add. Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled}, {TokensDeprovisioned} and {ProvisionIncreased} events.\",\"params\":{\"nThawRequests\":\"The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\",\"newVerifier\":\"The verifier address for which the tokens will be provisioned\",\"oldVerifier\":\"The verifier address for which the tokens are currently provisioned\",\"serviceProvider\":\"The service provider address\"}},\"setAllowedLockedVerifier(address,bool)\":{\"details\":\"This function can only be called by the contract governor, it's used to maintain a whitelist of verifiers that do not allow the stake from a locked wallet to escape the lock.Emits a {AllowedLockedVerifierSet} event.\",\"params\":{\"allowed\":\"Whether the verifier is allowed or not\",\"verifier\":\"The verifier address\"}},\"setDelegationFeeCut(address,address,uint8,uint256)\":{\"details\":\"Emits a {DelegationFeeCutSet} event.\",\"params\":{\"feeCut\":\"The fee cut to set, in PPM\",\"paymentType\":\"The payment type for which the fee cut is set, as defined in {IGraphPayments}\",\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}},\"setDelegationSlashingEnabled()\":{\"details\":\"This function can only be called by the contract governor.\"},\"setMaxThawingPeriod(uint64)\":{\"params\":{\"maxThawingPeriod\":\"The new maximum thawing period, in seconds\"}},\"setOperator(address,address,bool)\":{\"details\":\"Emits a {OperatorSet} event.\",\"params\":{\"allowed\":\"Whether the operator is authorized or not\",\"operator\":\"Address to authorize or unauthorize\",\"verifier\":\"The verifier / data service on which they'll be allowed to operate\"}},\"setOperatorLocked(address,address,bool)\":{\"details\":\"See {setOperator}. Additional requirements: - The `verifier` must be allowed to be used for locked provisions.\",\"params\":{\"allowed\":\"Whether the operator is authorized or not\",\"operator\":\"Address to authorize or unauthorize\",\"verifier\":\"The verifier / data service on which they'll be allowed to operate\"}},\"setProvisionParameters(address,address,uint32,uint64)\":{\"details\":\"This two step update process prevents the service provider from changing the parameters without the verifier's consent. Emits a {ProvisionParametersStaged} event if at least one of the parameters changed.\",\"params\":{\"maxVerifierCut\":\"The proposed maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves when slashing\",\"serviceProvider\":\"The service provider address\",\"thawingPeriod\":\"The proposed period in seconds that the tokens will be thawing before they can be removed from the provision\",\"verifier\":\"The verifier address\"}},\"slash(address,uint256,uint256,address)\":{\"details\":\"Requirements: - `tokens` must be less than or equal to the amount of tokens provisioned by the service provider. - `tokensVerifier` must be less than the provision's tokens times the provision's maximum verifier cut. Emits a {ProvisionSlashed} and {VerifierTokensSent} events. Emits a {DelegationSlashed} or {DelegationSlashingSkipped} event depending on the global delegation slashing flag.\",\"params\":{\"serviceProvider\":\"The service provider to slash\",\"tokens\":\"The amount of tokens to slash\",\"tokensVerifier\":\"The amount of tokens to transfer instead of burning\",\"verifierDestination\":\"The address to transfer the verifier cut to\"}},\"stake(uint256)\":{\"details\":\"Pulls tokens from the caller. Requirements: - `_tokens` cannot be zero. - Caller must have previously approved this contract to pull tokens from their balance. Emits a {StakeDeposited} event.\",\"params\":{\"tokens\":\"Amount of tokens to stake\"}},\"stakeTo(address,uint256)\":{\"details\":\"Pulls tokens from the caller. Requirements: - `_tokens` cannot be zero. - Caller must have previously approved this contract to pull tokens from their balance. Emits a {StakeDeposited} event.\",\"params\":{\"serviceProvider\":\"Address of the service provider\",\"tokens\":\"Amount of tokens to stake\"}},\"stakeToProvision(address,address,uint256)\":{\"details\":\"Requirements: - The `serviceProvider` must have previously provisioned stake to `verifier`. - `_tokens` cannot be zero. - Caller must have previously approved this contract to pull tokens from their balance. Emits {StakeDeposited} and {ProvisionIncreased} events.\",\"params\":{\"serviceProvider\":\"Address of the service provider\",\"tokens\":\"Amount of tokens to stake\",\"verifier\":\"Address of the verifier\"}},\"thaw(address,address,uint256)\":{\"details\":\"Requirements: - The provision must have enough tokens available to thaw. - `tokens` cannot be zero. Emits {ProvisionThawed} and {ThawRequestCreated} events.\",\"params\":{\"serviceProvider\":\"The service provider address\",\"tokens\":\"The amount of tokens to thaw\",\"verifier\":\"The verifier address for which the tokens are provisioned\"},\"returns\":{\"_0\":\"The ID of the thaw request\"}},\"undelegate(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The service provider address\",\"shares\":\"The amount of shares to undelegate\",\"verifier\":\"The verifier address\"},\"returns\":{\"_0\":\"The ID of the thaw request\"}},\"undelegate(address,address,uint256,address)\":{\"params\":{\"beneficiary\":\"The address where the tokens will be withdrawn after thawing\",\"serviceProvider\":\"The service provider address\",\"shares\":\"The amount of shares to undelegate\",\"verifier\":\"The verifier address\"},\"returns\":{\"_0\":\"The ID of the thaw request\"}},\"undelegate(address,uint256)\":{\"details\":\"See {undelegate}.\",\"params\":{\"serviceProvider\":\"The service provider address\",\"shares\":\"The amount of shares to undelegate\"}},\"unstake(uint256)\":{\"details\":\"Requirements: - `_tokens` cannot be zero. - `_serviceProvider` must have enough idle stake to cover the staking amount and any legacy allocation. Emits a {StakeLocked} event during the transition period. Emits a {StakeWithdrawn} event after the transition period.\",\"params\":{\"tokens\":\"Amount of tokens to unstake\"}},\"withdraw()\":{\"details\":\"This is only needed during the transition period while we still have a global lock. After that, unstake() will automatically withdraw.\"},\"withdrawDelegated(address,address)\":{\"details\":\"See {delegate}.\",\"params\":{\"newServiceProvider\":\"The address of a new service provider, if the delegator wants to re-delegate\",\"serviceProvider\":\"The service provider address\"}},\"withdrawDelegated(address,address,uint256)\":{\"details\":\"The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw requests in the event that fulfilling all of them results in a gas limit error.If the delegation pool was completely slashed before withdrawing, calling this function will fulfill the thaw requests with an amount equal to zero. Requirements: - Must have previously initiated a thaw request using {undelegate}. Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {DelegatedTokensWithdrawn} events.\",\"params\":{\"nThawRequests\":\"The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\",\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}}},\"title\":\"Complete interface for the Horizon Staking contract\",\"version\":1},\"userdoc\":{\"errors\":{\"HorizonStakingCallerIsServiceProvider()\":[{\"notice\":\"Thrown when a service provider attempts to change their own operator access.\"}],\"HorizonStakingInsufficientIdleStake(uint256,uint256)\":[{\"notice\":\"Thrown when the service provider has insufficient idle stake to operate.\"}],\"HorizonStakingInsufficientShares(uint256,uint256)\":[{\"notice\":\"Thrown when a minimum share amount is required to operate but it's not met.\"}],\"HorizonStakingInsufficientStakeForLegacyAllocations(uint256,uint256)\":[{\"notice\":\"Thrown during the transition period when the service provider has insufficient stake to cover their existing legacy allocations.\"}],\"HorizonStakingInsufficientTokens(uint256,uint256)\":[{\"notice\":\"Thrown when a minimum token amount is required to operate but it's not met.\"}],\"HorizonStakingInvalidBeneficiaryZeroAddress()\":[{\"notice\":\"Thrown when attempting to undelegate with a beneficiary that is the zero address.\"}],\"HorizonStakingInvalidDelegationFeeCut(uint256)\":[{\"notice\":\"Thrown when trying to set a delegation fee cut that is not valid.\"}],\"HorizonStakingInvalidDelegationPool(address,address)\":[{\"notice\":\"Thrown when attempting to operate with a delegation pool that does not exist.\"}],\"HorizonStakingInvalidDelegationPoolState(address,address)\":[{\"notice\":\"Thrown when as a result of slashing delegation pool has no tokens but has shares.\"}],\"HorizonStakingInvalidMaxVerifierCut(uint32)\":[{\"notice\":\"Thrown when attempting to create a provision with an invalid maximum verifier cut.\"}],\"HorizonStakingInvalidProvision(address,address)\":[{\"notice\":\"Thrown when attempting to operate with a provision that does not exist.\"}],\"HorizonStakingInvalidServiceProviderZeroAddress()\":[{\"notice\":\"Thrown when attempting to redelegate with a serivce provider that is the zero address.\"}],\"HorizonStakingInvalidThawingPeriod(uint64,uint64)\":[{\"notice\":\"Thrown when attempting to create a provision with an invalid thawing period.\"}],\"HorizonStakingInvalidVerifierZeroAddress()\":[{\"notice\":\"Thrown when attempting to redelegate with a verifier that is the zero address.\"}],\"HorizonStakingInvalidZeroShares()\":[{\"notice\":\"Thrown when operating a zero share amount is not allowed.\"}],\"HorizonStakingInvalidZeroTokens()\":[{\"notice\":\"Thrown when operating a zero token amount is not allowed.\"}],\"HorizonStakingNotAuthorized(address,address,address)\":[{\"notice\":\"Thrown when the caller is not authorized to operate on a provision.\"}],\"HorizonStakingProvisionAlreadyExists()\":[{\"notice\":\"Thrown when attempting to create a provision for a data service that already has a provision.\"}],\"HorizonStakingSlippageProtection(uint256,uint256)\":[{\"notice\":\"Thrown when delegation shares obtained are below the expected amount.\"}],\"HorizonStakingStillThawing(uint256)\":[{\"notice\":\"Thrown during the transition period when attempting to withdraw tokens that are still thawing.\"}],\"HorizonStakingTooManyTokens(uint256,uint256)\":[{\"notice\":\"Thrown when the amount of tokens exceeds the maximum allowed to operate.\"}],\"HorizonStakingVerifierNotAllowed(address)\":[{\"notice\":\"Thrown when a service provider attempts to operate on verifiers that are not allowed.\"}]},\"events\":{\"AllowedLockedVerifierSet(address,bool)\":{\"notice\":\"Emitted when a verifier is allowed or disallowed to be used for locked provisions.\"},\"DelegatedTokensWithdrawn(address,address,address,uint256)\":{\"notice\":\"Emitted when a delegator withdraws tokens from a provision after thawing.\"},\"DelegationFeeCutSet(address,address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider sets delegation fee cuts for a verifier.\"},\"DelegationSlashed(address,address,uint256)\":{\"notice\":\"Emitted when a delegation pool is slashed by a verifier.\"},\"DelegationSlashingEnabled(bool)\":{\"notice\":\"Emitted when the delegation slashing global flag is set.\"},\"DelegationSlashingSkipped(address,address,uint256)\":{\"notice\":\"Emitted when a delegation pool would have been slashed by a verifier, but the slashing was skipped because delegation slashing global parameter is not enabled.\"},\"MaxThawingPeriodSet(uint64)\":{\"notice\":\"Emitted when the global maximum thawing period allowed for provisions is set.\"},\"ProvisionCreated(address,address,uint256,uint32,uint64)\":{\"notice\":\"Emitted when a service provider provisions staked tokens to a verifier.\"},\"ProvisionIncreased(address,address,uint256)\":{\"notice\":\"Emitted whenever staked tokens are added to an existing provision\"},\"ProvisionParametersSet(address,address,uint32,uint64)\":{\"notice\":\"Emitted when a service provider accepts a staged provision parameter update.\"},\"ProvisionParametersStaged(address,address,uint32,uint64)\":{\"notice\":\"Emitted when a service provider stages a provision parameter update.\"},\"ProvisionSlashed(address,address,uint256)\":{\"notice\":\"Emitted when a provision is slashed by a verifier.\"},\"ProvisionThawed(address,address,uint256)\":{\"notice\":\"Emitted when a service provider thaws tokens from a provision.\"},\"StakeDeposited(address,uint256)\":{\"notice\":\"Emitted when a service provider stakes tokens.\"},\"StakeLocked(address,uint256,uint256)\":{\"notice\":\"Emitted when a service provider unstakes tokens during the transition period.\"},\"StakeWithdrawn(address,uint256)\":{\"notice\":\"Emitted when a service provider withdraws tokens during the transition period.\"},\"ThawRequestCreated(address,address,address,uint256,uint64,bytes32)\":{\"notice\":\"Emitted when a thaw request is created.\"},\"ThawRequestFulfilled(bytes32,uint256,uint256,uint64,bool)\":{\"notice\":\"Emitted when a thaw request is fulfilled, meaning the stake is released.\"},\"ThawRequestsFulfilled(address,address,address,uint256,uint256)\":{\"notice\":\"Emitted when a series of thaw requests are fulfilled.\"},\"ThawingPeriodCleared()\":{\"notice\":\"Emitted when the legacy global thawing period is set to zero.\"},\"TokensDelegated(address,address,address,uint256)\":{\"notice\":\"Emitted when tokens are delegated to a provision.\"},\"TokensDeprovisioned(address,address,uint256)\":{\"notice\":\"Emitted when a service provider removes tokens from a provision.\"},\"TokensToDelegationPoolAdded(address,address,uint256)\":{\"notice\":\"Emitted when tokens are added to a delegation pool's reserve.\"},\"TokensUndelegated(address,address,address,uint256)\":{\"notice\":\"Emitted when a delegator undelegates tokens from a provision and starts thawing them.\"},\"VerifierTokensSent(address,address,address,uint256)\":{\"notice\":\"Emitted when the verifier cut is sent to the verifier after slashing a provision.\"}},\"kind\":\"user\",\"methods\":{\"__DEPRECATED_getThawingPeriod()\":{\"notice\":\"Return the time in blocks to unstake\"},\"acceptProvisionParameters(address)\":{\"notice\":\"Accepts a staged provision parameter update.\"},\"addToDelegationPool(address,address,uint256)\":{\"notice\":\"Add tokens to a delegation pool without issuing shares. Used by data services to pay delegation fees/rewards. Delegators SHOULD NOT call this function.\"},\"addToProvision(address,address,uint256)\":{\"notice\":\"Adds tokens from the service provider's idle stake to a provision\"},\"clearThawingPeriod()\":{\"notice\":\"Clear the legacy global thawing period. This signifies the end of the transition period, after which no legacy allocations should be left.\"},\"closeAllocation(address,bytes32)\":{\"notice\":\"Close an allocation and free the staked tokens. To be eligible for rewards a proof of indexing must be presented. Presenting a bad proof is subject to slashable condition. To opt out of rewards set _poi to 0x0\"},\"collect(uint256,address)\":{\"notice\":\"Collect query fees from state channels and assign them to an allocation. Funds received are only accepted from a valid sender.\"},\"delegate(address,address,uint256,uint256)\":{\"notice\":\"Delegate tokens to a provision.\"},\"delegate(address,uint256)\":{\"notice\":\"Delegate tokens to the subgraph data service provision. This function is for backwards compatibility with the legacy staking contract. It only allows delegating to the subgraph data service and DOES NOT have slippage protection.\"},\"deprovision(address,address,uint256)\":{\"notice\":\"Remove tokens from a provision and move them back to the service provider's idle stake.\"},\"getAllocation(address)\":{\"notice\":\"Return the allocation by ID.\"},\"getAllocationState(address)\":{\"notice\":\"Return the current state of an allocation\"},\"getDelegatedTokensAvailable(address,address)\":{\"notice\":\"Gets the delegator's tokens available in a provision.\"},\"getDelegation(address,address,address)\":{\"notice\":\"Gets the details of a delegation.\"},\"getDelegationFeeCut(address,address,uint8)\":{\"notice\":\"Gets the delegation fee cut for a payment type.\"},\"getDelegationPool(address,address)\":{\"notice\":\"Gets the details of delegation pool.\"},\"getIdleStake(address)\":{\"notice\":\"Gets the service provider's idle stake which is the stake that is not being used for any provision. Note that this only includes service provider's self stake.\"},\"getIndexerStakedTokens(address)\":{\"notice\":\"Get the total amount of tokens staked by the indexer.\"},\"getMaxThawingPeriod()\":{\"notice\":\"Gets the maximum allowed thawing period for a provision.\"},\"getProviderTokensAvailable(address,address)\":{\"notice\":\"Gets the service provider's tokens available in a provision.\"},\"getProvision(address,address)\":{\"notice\":\"Gets the details of a provision.\"},\"getServiceProvider(address)\":{\"notice\":\"Gets the details of a service provider.\"},\"getStake(address)\":{\"notice\":\"Gets the stake of a service provider.\"},\"getSubgraphAllocatedTokens(bytes32)\":{\"notice\":\"Return the total amount of tokens allocated to subgraph.\"},\"getThawRequest(bytes32)\":{\"notice\":\"Gets a thaw request.\"},\"getThawRequestList(address,address,address)\":{\"notice\":\"Gets the metadata of a thaw request list. Service provider and delegators each have their own thaw request list per provision. Metadata includes the head and tail of the list, plus the total number of thaw requests.\"},\"getThawedTokens(address,address,address)\":{\"notice\":\"Gets the amount of thawed tokens for a given provision.\"},\"getTokensAvailable(address,address,uint32)\":{\"notice\":\"Gets the tokens available in a provision. Tokens available are the tokens in a provision that are not thawing. Includes service provider's and delegator's stake. Allows specifying a `delegationRatio` which caps the amount of delegated tokens that are considered available.\"},\"hasStake(address)\":{\"notice\":\"Getter that returns if an indexer has any stake.\"},\"isActiveAllocation(address)\":{\"notice\":\"Whether or not an allocation is active (i.e open)\"},\"isAllocation(address)\":{\"notice\":\"Return if allocationID is used.\"},\"isAllowedLockedVerifier(address)\":{\"notice\":\"Return true if the verifier is an allowed locked verifier.\"},\"isAuthorized(address,address,address)\":{\"notice\":\"Check if an operator is authorized for the caller on a specific verifier / data service.\"},\"isDelegationSlashingEnabled()\":{\"notice\":\"Return true if delegation slashing is enabled, false otherwise.\"},\"isOperator(address,address)\":{\"notice\":\"Return true if operator is allowed for indexer.\"},\"provision(address,address,uint256,uint32,uint64)\":{\"notice\":\"Provision stake to a verifier. The tokens will be locked with a thawing period and will be slashable by the verifier. This is the main mechanism to provision stake to a data service, where the data service is the verifier. This function can be called by the service provider or by an operator authorized by the provider for this specific verifier.\"},\"provisionLocked(address,address,uint256,uint32,uint64)\":{\"notice\":\"Provision stake to a verifier using locked tokens (i.e. from GraphTokenLockWallets).\"},\"redelegate(address,address,address,address,uint256,uint256)\":{\"notice\":\"Re-delegate undelegated tokens from a provision after thawing to a `newServiceProvider` and `newVerifier`.\"},\"reprovision(address,address,address,uint256)\":{\"notice\":\"Move already thawed stake from one provision into another provision This function can be called by the service provider or by an operator authorized by the provider for the two corresponding verifiers.\"},\"setAllowedLockedVerifier(address,bool)\":{\"notice\":\"Sets a verifier as a globally allowed verifier for locked provisions.\"},\"setDelegationFeeCut(address,address,uint8,uint256)\":{\"notice\":\"Set the fee cut for a verifier on a specific payment type.\"},\"setDelegationSlashingEnabled()\":{\"notice\":\"Set the global delegation slashing flag to true.\"},\"setMaxThawingPeriod(uint64)\":{\"notice\":\"Sets the global maximum thawing period allowed for provisions.\"},\"setOperator(address,address,bool)\":{\"notice\":\"Authorize or unauthorize an address to be an operator for the caller on a data service.\"},\"setOperatorLocked(address,address,bool)\":{\"notice\":\"Authorize or unauthorize an address to be an operator for the caller on a verifier.\"},\"setProvisionParameters(address,address,uint32,uint64)\":{\"notice\":\"Stages a provision parameter update. Note that the change is not effective until the verifier calls {acceptProvisionParameters}.\"},\"slash(address,uint256,uint256,address)\":{\"notice\":\"Slash a service provider. This can only be called by a verifier to which the provider has provisioned stake, and up to the amount of tokens they have provisioned. If the service provider's stake is not enough, the associated delegation pool might be slashed depending on the value of the global delegation slashing flag. Part of the slashed tokens are sent to the `verifierDestination` as a reward.\"},\"stake(uint256)\":{\"notice\":\"Deposit tokens on the staking contract.\"},\"stakeTo(address,uint256)\":{\"notice\":\"Deposit tokens on the service provider stake, on behalf of the service provider.\"},\"stakeToProvision(address,address,uint256)\":{\"notice\":\"Deposit tokens on the service provider stake, on behalf of the service provider, provisioned to a specific verifier.\"},\"thaw(address,address,uint256)\":{\"notice\":\"Start thawing tokens to remove them from a provision. This function can be called by the service provider or by an operator authorized by the provider for this specific verifier. Note that removing tokens from a provision is a two step process: - First the tokens are thawed using this function. - Then after the thawing period, the tokens are removed from the provision using {deprovision} or {reprovision}.\"},\"undelegate(address,address,uint256)\":{\"notice\":\"Undelegate tokens from a provision and start thawing them. Note that undelegating tokens from a provision is a two step process: - First the tokens are thawed using this function. - Then after the thawing period, the tokens are removed from the provision using {withdrawDelegated}. Requirements: - `shares` cannot be zero. Emits a {TokensUndelegated} and {ThawRequestCreated} event.\"},\"undelegate(address,address,uint256,address)\":{\"notice\":\"Undelegate tokens from a provision and start thawing them. The tokens will be withdrawable by the `beneficiary` after the thawing period. Note that undelegating tokens from a provision is a two step process: - First the tokens are thawed using this function. - Then after the thawing period, the tokens are removed from the provision using {withdrawDelegated}. Requirements: - `shares` cannot be zero. - `beneficiary` cannot be the zero address. Emits a {TokensUndelegated} and {ThawRequestCreated} event.\"},\"undelegate(address,uint256)\":{\"notice\":\"Undelegate tokens from the subgraph data service provision and start thawing them. This function is for backwards compatibility with the legacy staking contract. It only allows undelegating from the subgraph data service.\"},\"unstake(uint256)\":{\"notice\":\"Move idle stake back to the owner's account. Stake is removed from the protocol: - During the transition period it's locked for a period of time before it can be withdrawn by calling {withdraw}. - After the transition period it's immediately withdrawn.\"},\"withdraw()\":{\"notice\":\"Withdraw service provider tokens once the thawing period (initiated by {unstake}) has passed. All thawed tokens are withdrawn.\"},\"withdrawDelegated(address,address)\":{\"notice\":\"Withdraw undelegated tokens from the subgraph data service provision after thawing. This function is for backwards compatibility with the legacy staking contract. It only allows withdrawing from the subgraph data service and DOES NOT have slippage protection in case the caller opts for re-delegating.\"},\"withdrawDelegated(address,address,uint256)\":{\"notice\":\"Withdraw undelegated tokens from a provision after thawing.\"}},\"notice\":\"This interface exposes all functions implemented by the {HorizonStaking} contract and its extension {HorizonStakingExtension} as well as the custom data types used by the contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":\"IHorizonStaking\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0xa32bd068b2a6a6cdd3863439aa280b29718ebb0a94da59e5806455c75af7994e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d1cdd344d026af2fc6e136337f9f86354d1b2731a6076e498c2ffd370705cdb5\",\"dweb:/ipfs/QmZe4rGR9gvyWP9ENDGLWxcB5a67qvbqbFKKhr9Di7VkEN\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x2aa4aa3745b13f9cadcbf3f93888ebbaa8f5d1da3b6f845f1741d51b16ff9944\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://290e13fd3dc9170244aaa4c6e5f5646878d011ee25024926d4d60d40eb6cf8c9\",\"dweb:/ipfs/QmPWwXxhnxmNSUpVF6caT1cXVtV2c1ackJiMzAbUG4z6Fo\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0xbb225acac73f4245b30a8fe9c0bf4bcc8b310f40da526a0447a2303f1ca63e96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://207826b2277a0bd42b8a4d8825f6b16e46d6dc8039e4027faa22df462aa06079\",\"dweb:/ipfs/QmYS177dKBuY7iRUdwBMHxSMd6SfNpARTApLHMLgFCozTy\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd161d01d49ec47200c1c8374d11ad7d9a2c1776a2f87c546f78535ffa33b3954\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7da68f651214064c6afb1b43955879a2eaea6076c44e92975abf31735b0e1012\",\"dweb:/ipfs/QmZBHtfqhzWsv1oWy73pR8zabgLnhqpiWhknK4TzrPBhV2\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol": { - "IPaymentsCollector": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReceiver", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "PaymentCollected", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "collect(uint8,bytes)": "7f07d283" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensReceiver\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensDataService\",\"type\":\"uint256\"}],\"name\":\"PaymentCollected\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"It's important to note that it's the collector contract's responsibility to validate the payment request is legitimate.\",\"events\":{\"PaymentCollected(uint8,address,address,uint256,address,uint256)\":{\"params\":{\"dataService\":\"The address of the data service\",\"payer\":\"The address of the payer\",\"paymentType\":\"The payment type collected as defined by {IGraphPayments}\",\"receiver\":\"The address of the receiver\",\"tokensDataService\":\"The amount of tokens received by the data service\",\"tokensReceiver\":\"The amount of tokens received by the receiver\"}}},\"kind\":\"dev\",\"methods\":{\"collect(uint8,bytes)\":{\"details\":\"This function should require the caller to present some form of evidence of the payer's debt to the receiver. The collector should validate this evidence and, if valid, collect the payment. Requirements: - The caller must be the data service the RAV was issued to - The signer of the RAV must be authorized to sign for the payer Emits a {PaymentCollected} event\",\"params\":{\"data\":\"Additional data required for the payment collection. Will vary depending on the collector implementation.\",\"paymentType\":\"The payment type to collect, as defined by {IGraphPayments}\"}}},\"title\":\"Interface for a payments collector contract as defined by Graph Horizon payments protocol\",\"version\":1},\"userdoc\":{\"events\":{\"PaymentCollected(uint8,address,address,uint256,address,uint256)\":{\"notice\":\"Emitted when a payment is collected\"}},\"kind\":\"user\",\"methods\":{\"collect(uint8,bytes)\":{\"notice\":\"Initiate a payment collection through the payments protocol\"}},\"notice\":\"Contracts implementing this interface can be used with the payments protocol. First, a payer must approve the collector to collect payments on their behalf. Only then can payment collection be initiated using the collector contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol\":\"IPaymentsCollector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol\":{\"keccak256\":\"0x86f3cfc8eaac309e99018dda796248fb44130b09c2e5bcfc6c63c0e568803bf8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://176a017cb5c677222ac6a82fecd798292f5f41b4dcb9e16768fbf87816381010\",\"dweb:/ipfs/QmNuLfA5nZptMzWPuvDzJnm7Pwt7uYn1A7G8fwTWPy5Ybm\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol": { - "IPaymentsEscrow": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "balanceBefore", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balanceAfter", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "PaymentsEscrowInconsistentCollection", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minAllowance", - "type": "uint256" - } - ], - "name": "PaymentsEscrowInsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minBalance", - "type": "uint256" - } - ], - "name": "PaymentsEscrowInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "PaymentsEscrowInvalidZeroTokens", - "type": "error" - }, - { - "inputs": [], - "name": "PaymentsEscrowIsPaused", - "type": "error" - }, - { - "inputs": [], - "name": "PaymentsEscrowNotThawing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "currentTimestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "PaymentsEscrowStillThawing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "thawingPeriod", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxWaitPeriod", - "type": "uint256" - } - ], - "name": "PaymentsEscrowThawingPeriodTooLong", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "addedAllowance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newTotalAllowance", - "type": "uint256" - } - ], - "name": "AuthorizedCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "CancelThaw", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "CancelThawCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "Deposit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "EscrowCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "RevokeCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "Thaw", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "ThawCollector", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "Withdraw", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - } - ], - "name": "approveCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "cancelThawCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "deposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "depositTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "revokeCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "thaw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - } - ], - "name": "thawCollector", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "collector", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "approveCollector(address,uint256)": "4f9d392e", - "cancelThawCollector(address)": "78a24c54", - "collect(uint8,address,address,uint256,address,uint256)": "87dbfe82", - "deposit(address,address,uint256)": "8340f549", - "depositTo(address,address,address,uint256)": "72eb521e", - "getBalance(address,address,address)": "d6bd603c", - "revokeCollector(address)": "32825b81", - "thaw(address,address,uint256)": "f93f1cd0", - "thawCollector(address)": "0ee36be3", - "withdraw(address,address)": "f940e385" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"PaymentsEscrowInconsistentCollection\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAllowance\",\"type\":\"uint256\"}],\"name\":\"PaymentsEscrowInsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minBalance\",\"type\":\"uint256\"}],\"name\":\"PaymentsEscrowInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PaymentsEscrowInvalidZeroTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PaymentsEscrowIsPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PaymentsEscrowNotThawing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"PaymentsEscrowStillThawing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"thawingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxWaitPeriod\",\"type\":\"uint256\"}],\"name\":\"PaymentsEscrowThawingPeriodTooLong\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"addedAllowance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTotalAllowance\",\"type\":\"uint256\"}],\"name\":\"AuthorizedCollector\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"CancelThaw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"}],\"name\":\"CancelThawCollector\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"EscrowCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"}],\"name\":\"RevokeCollector\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"Thaw\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"}],\"name\":\"ThawCollector\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"}],\"name\":\"approveCollector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"}],\"name\":\"cancelThawCollector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokensDataService\",\"type\":\"uint256\"}],\"name\":\"collect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"depositTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"}],\"name\":\"revokeCollector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"thaw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"}],\"name\":\"thawCollector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"collector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"PaymentsEscrowInconsistentCollection(uint256,uint256,uint256)\":[{\"params\":{\"balanceAfter\":\"The balance after the collection\",\"balanceBefore\":\"The balance before the collection\",\"tokens\":\"The amount of tokens collected\"}}],\"PaymentsEscrowInsufficientAllowance(uint256,uint256)\":[{\"params\":{\"allowance\":\"The current allowance\",\"minAllowance\":\"The minimum required allowance\"}}],\"PaymentsEscrowInsufficientBalance(uint256,uint256)\":[{\"params\":{\"balance\":\"The current balance\",\"minBalance\":\"The minimum required balance\"}}],\"PaymentsEscrowStillThawing(uint256,uint256)\":[{\"params\":{\"currentTimestamp\":\"The current timestamp\",\"thawEndTimestamp\":\"The timestamp at which the thawing period ends\"}}],\"PaymentsEscrowThawingPeriodTooLong(uint256,uint256)\":[{\"params\":{\"maxWaitPeriod\":\"The maximum wait period\",\"thawingPeriod\":\"The thawing period\"}}]},\"events\":{\"AuthorizedCollector(address,address,uint256,uint256)\":{\"params\":{\"addedAllowance\":\"The amount of tokens added to the collector's allowance\",\"collector\":\"The address of the collector\",\"newTotalAllowance\":\"The new total allowance after addition\",\"payer\":\"The address of the payer\"}},\"CancelThaw(address,address)\":{\"params\":{\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\"}},\"CancelThawCollector(address,address)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\"}},\"Deposit(address,address,address,uint256)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens deposited\"}},\"EscrowCollected(address,address,address,uint256)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens collected\"}},\"RevokeCollector(address,address)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\"}},\"Thaw(address,address,address,uint256,uint256)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\",\"thawEndTimestamp\":\"The timestamp at which the thawing period ends\",\"tokens\":\"The amount of tokens being thawed\"}},\"ThawCollector(address,address)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\"}},\"Withdraw(address,address,address,uint256)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens withdrawn\"}}},\"kind\":\"dev\",\"methods\":{\"approveCollector(address,uint256)\":{\"details\":\"This function can only be used to increase the allowance of a collector. To reduce it the authorization must be revoked and a new one must be created. Requirements: - `allowance` must be greater than zero Emits an {AuthorizedCollector} event\",\"params\":{\"allowance\":\"The amount of tokens to add to the collector's allowance\",\"collector\":\"The address of the collector\"}},\"cancelThawCollector(address)\":{\"details\":\"Requirements: - `collector` must be thawing Emits a {CancelThawCollector} event\",\"params\":{\"collector\":\"The address of the collector\"}},\"collect(uint8,address,address,uint256,address,uint256)\":{\"details\":\"Requirements: - `collector` needs to be authorized by the payer and have enough allowance Emits an {EscrowCollected} event\",\"params\":{\"dataService\":\"The address of the data service\",\"payer\":\"The address of the payer\",\"paymentType\":\"The type of payment being collected as defined in the {IGraphPayments} interface\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens to collect\",\"tokensDataService\":\"The amount of tokens that {GraphPayments} should send to the data service\"}},\"deposit(address,address,uint256)\":{\"details\":\"Emits a {Deposit} event\",\"params\":{\"collector\":\"The address of the collector\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens to deposit\"}},\"depositTo(address,address,address,uint256)\":{\"details\":\"Emits a {Deposit} event\",\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens to deposit\"}},\"getBalance(address,address,address)\":{\"params\":{\"collector\":\"The address of the collector\",\"payer\":\"The address of the payer\",\"receiver\":\"The address of the receiver\"}},\"revokeCollector(address)\":{\"details\":\"Requirements: - `collector` must have thawed Emits a {RevokeCollector} event\",\"params\":{\"collector\":\"The address of the collector\"}},\"thaw(address,address,uint256)\":{\"details\":\"Requirements: - `tokens` must be less than or equal to the available balance Emits a {Thaw} event. If `tokens` is zero it will emit a {CancelThaw} event.\",\"params\":{\"collector\":\"The address of the collector\",\"receiver\":\"The address of the receiver\",\"tokens\":\"The amount of tokens to thaw\"}},\"thawCollector(address)\":{\"details\":\"The thawing period is defined by the `REVOKE_COLLECTOR_THAWING_PERIOD` constant Emits a {ThawCollector} event\",\"params\":{\"collector\":\"The address of the collector\"}},\"withdraw(address,address)\":{\"details\":\"Requirements: - Funds must be thawed Emits a {Withdraw} event\",\"params\":{\"collector\":\"The address of the collector\",\"receiver\":\"The address of the receiver\"}}},\"title\":\"Interface for the {PaymentsEscrow} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"PaymentsEscrowInconsistentCollection(uint256,uint256,uint256)\":[{\"notice\":\"Thrown when the contract balance is not consistent with the collection amount\"}],\"PaymentsEscrowInsufficientAllowance(uint256,uint256)\":[{\"notice\":\"Thrown when a collector has insufficient allowance to collect funds\"}],\"PaymentsEscrowInsufficientBalance(uint256,uint256)\":[{\"notice\":\"Thrown when the available balance is insufficient to perform an operation\"}],\"PaymentsEscrowInvalidZeroTokens()\":[{\"notice\":\"Thrown when operating a zero token amount is not allowed.\"}],\"PaymentsEscrowIsPaused()\":[{\"notice\":\"Thrown when a protected function is called and the contract is paused.\"}],\"PaymentsEscrowNotThawing()\":[{\"notice\":\"Thrown when a thawing is expected to be in progress but it is not\"}],\"PaymentsEscrowStillThawing(uint256,uint256)\":[{\"notice\":\"Thrown when a thawing is still in progress\"}],\"PaymentsEscrowThawingPeriodTooLong(uint256,uint256)\":[{\"notice\":\"Thrown when setting the thawing period to a value greater than the maximum\"}]},\"events\":{\"AuthorizedCollector(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a payer authorizes a collector to collect funds\"},\"CancelThaw(address,address)\":{\"notice\":\"Emitted when a payer cancels an escrow thawing\"},\"CancelThawCollector(address,address)\":{\"notice\":\"Emitted when a payer cancels the thawing of a collector\"},\"Deposit(address,address,address,uint256)\":{\"notice\":\"Emitted when a payer deposits funds into the escrow for a payer-collector-receiver tuple\"},\"EscrowCollected(address,address,address,uint256)\":{\"notice\":\"Emitted when a collector collects funds from the escrow for a payer-collector-receiver tuple\"},\"RevokeCollector(address,address)\":{\"notice\":\"Emitted when a payer revokes a collector authorization.\"},\"Thaw(address,address,address,uint256,uint256)\":{\"notice\":\"Emitted when a payer thaws funds from the escrow for a payer-collector-receiver tuple\"},\"ThawCollector(address,address)\":{\"notice\":\"Emitted when a payer thaws a collector\"},\"Withdraw(address,address,address,uint256)\":{\"notice\":\"Emitted when a payer withdraws funds from the escrow for a payer-collector-receiver tuple\"}},\"kind\":\"user\",\"methods\":{\"approveCollector(address,uint256)\":{\"notice\":\"Authorize a collector to collect funds from the payer's escrow\"},\"cancelThawCollector(address)\":{\"notice\":\"Cancel a collector's authorization thawing\"},\"collect(uint8,address,address,uint256,address,uint256)\":{\"notice\":\"Collects funds from the payer-collector-receiver's escrow and sends them to {GraphPayments} for distribution using the Graph Horizon Payments protocol. The function will revert if there are not enough funds in the escrow.\"},\"deposit(address,address,uint256)\":{\"notice\":\"Deposits funds into the escrow for a payer-collector-receiver tuple, where the payer is the transaction caller.\"},\"depositTo(address,address,address,uint256)\":{\"notice\":\"Deposits funds into the escrow for a payer-collector-receiver tuple, where the payer can be specified.\"},\"getBalance(address,address,address)\":{\"notice\":\"Get the balance of a payer-collector-receiver tuple\"},\"revokeCollector(address)\":{\"notice\":\"Revoke a collector's authorization. Removes the collector from the list of authorized collectors.\"},\"thaw(address,address,uint256)\":{\"notice\":\"Thaw a specific amount of escrow from a payer-collector-receiver's escrow account. The payer is the transaction caller. If `tokens` is zero and funds were already thawing it will cancel the thawing. Note that repeated calls to this function will overwrite the previous thawing amount and reset the thawing period.\"},\"thawCollector(address)\":{\"notice\":\"Thaw a collector's collector authorization\"},\"withdraw(address,address)\":{\"notice\":\"Withdraws all thawed escrow from a payer-collector-receiver's escrow account. The payer is the transaction caller. Note that the withdrawn funds might be less than the thawed amount if there were payment collections in the meantime.\"}},\"notice\":\"This contract is part of the Graph Horizon payments protocol. It holds the funds (GRT) for payments made through the payments protocol for services provided via a Graph Horizon data service. Payers deposit funds on the escrow, signalling their ability to pay for a service, and only being able to retrieve them after a thawing period. Receivers collect funds from the escrow, provided the payer has authorized them. The payer authorization is delegated to a payment collector contract which implements the {IPaymentsCollector} interface.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":\"IPaymentsEscrow\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x04da4bb0cfc6db397d6140ae72d6a4ffcadb19b5a8fc654ae3fd1550b64526ff\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9dca21008f5cf563d1863148b151d103b92a99c7bb0fe4667fdd9236bfa9881e\",\"dweb:/ipfs/QmPBfG7s2ajEYn35oJk6TjQ6wCQ7FNVAuZnzXbAENbKF9i\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol": { - "ITAPCollector": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "dataService", - "type": "address" - } - ], - "name": "TAPCollectorCallerNotDataService", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensCollected", - "type": "uint256" - } - ], - "name": "TAPCollectorInconsistentRAVTokens", - "type": "error" - }, - { - "inputs": [], - "name": "TAPCollectorInvalidRAVSigner", - "type": "error" - }, - { - "inputs": [], - "name": "TAPCollectorInvalidSignerProof", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "proofDeadline", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "currentTimestamp", - "type": "uint256" - } - ], - "name": "TAPCollectorInvalidSignerProofDeadline", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "authorizingPayer", - "type": "address" - }, - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "TAPCollectorSignerAlreadyAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "TAPCollectorSignerNotAuthorizedByPayer", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "TAPCollectorSignerNotThawing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "currentTimestamp", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "TAPCollectorSignerStillThawing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReceiver", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "PaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "timestampNs", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint128", - "name": "valueAggregate", - "type": "uint128" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "metadata", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "RAVCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "authorizedSigner", - "type": "address" - } - ], - "name": "SignerAuthorized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "authorizedSigner", - "type": "address" - } - ], - "name": "SignerRevoked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "authorizedSigner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "SignerThawCanceled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "payer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "authorizedSigner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "thawEndTimestamp", - "type": "uint256" - } - ], - "name": "SignerThawing", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "uint256", - "name": "proofDeadline", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "proof", - "type": "bytes" - } - ], - "name": "authorizeSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "cancelThawSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint64", - "name": "timestampNs", - "type": "uint64" - }, - { - "internalType": "uint128", - "name": "valueAggregate", - "type": "uint128" - }, - { - "internalType": "bytes", - "name": "metadata", - "type": "bytes" - } - ], - "internalType": "struct ITAPCollector.ReceiptAggregateVoucher", - "name": "rav", - "type": "tuple" - } - ], - "name": "encodeRAV", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "address", - "name": "dataService", - "type": "address" - }, - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint64", - "name": "timestampNs", - "type": "uint64" - }, - { - "internalType": "uint128", - "name": "valueAggregate", - "type": "uint128" - }, - { - "internalType": "bytes", - "name": "metadata", - "type": "bytes" - } - ], - "internalType": "struct ITAPCollector.ReceiptAggregateVoucher", - "name": "rav", - "type": "tuple" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "internalType": "struct ITAPCollector.SignedRAV", - "name": "signedRAV", - "type": "tuple" - } - ], - "name": "recoverRAVSigner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "revokeAuthorizedSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - } - ], - "name": "thawSigner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "authorizeSigner(address,uint256,bytes)": "fee9f01f", - "cancelThawSigner(address)": "015cdd80", - "collect(uint8,bytes)": "7f07d283", - "encodeRAV((address,address,uint64,uint128,bytes))": "8821603c", - "recoverRAVSigner(((address,address,uint64,uint128,bytes),bytes))": "1ef518f2", - "revokeAuthorizedSigner(address)": "39aa7416", - "thawSigner(address)": "1354f019" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"}],\"name\":\"TAPCollectorCallerNotDataService\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensCollected\",\"type\":\"uint256\"}],\"name\":\"TAPCollectorInconsistentRAVTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TAPCollectorInvalidRAVSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TAPCollectorInvalidSignerProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proofDeadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"}],\"name\":\"TAPCollectorInvalidSignerProofDeadline\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authorizingPayer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"TAPCollectorSignerAlreadyAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"TAPCollectorSignerNotAuthorizedByPayer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"TAPCollectorSignerNotThawing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"TAPCollectorSignerStillThawing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensReceiver\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensDataService\",\"type\":\"uint256\"}],\"name\":\"PaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestampNs\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"valueAggregate\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"RAVCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizedSigner\",\"type\":\"address\"}],\"name\":\"SignerAuthorized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizedSigner\",\"type\":\"address\"}],\"name\":\"SignerRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizedSigner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"SignerThawCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"authorizedSigner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"SignerThawing\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"proofDeadline\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"authorizeSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"cancelThawSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"timestampNs\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"valueAggregate\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct ITAPCollector.ReceiptAggregateVoucher\",\"name\":\"rav\",\"type\":\"tuple\"}],\"name\":\"encodeRAV\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"dataService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"timestampNs\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"valueAggregate\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"metadata\",\"type\":\"bytes\"}],\"internalType\":\"struct ITAPCollector.ReceiptAggregateVoucher\",\"name\":\"rav\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct ITAPCollector.SignedRAV\",\"name\":\"signedRAV\",\"type\":\"tuple\"}],\"name\":\"recoverRAVSigner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"revokeAuthorizedSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"thawSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implements the {IPaymentCollector} interface as defined by the Graph Horizon payments protocol.\",\"errors\":{\"TAPCollectorCallerNotDataService(address,address)\":[{\"params\":{\"caller\":\"The address of the caller\",\"dataService\":\"The address of the data service\"}}],\"TAPCollectorInconsistentRAVTokens(uint256,uint256)\":[{\"params\":{\"tokens\":\"The amount of tokens in the RAV\",\"tokensCollected\":\"The amount of tokens already collected\"}}],\"TAPCollectorInvalidSignerProofDeadline(uint256,uint256)\":[{\"params\":{\"currentTimestamp\":\"The current timestamp\",\"proofDeadline\":\"The deadline for the proof provided by the signer\"}}],\"TAPCollectorSignerAlreadyAuthorized(address,address)\":[{\"params\":{\"authorizingPayer\":\"The address of the payer authorizing the signer\",\"signer\":\"The address of the signer\"}}],\"TAPCollectorSignerNotAuthorizedByPayer(address,address)\":[{\"params\":{\"payer\":\"The address of the payer\",\"signer\":\"The address of the signer\"}}],\"TAPCollectorSignerNotThawing(address)\":[{\"params\":{\"signer\":\"The address of the signer\"}}],\"TAPCollectorSignerStillThawing(uint256,uint256)\":[{\"params\":{\"currentTimestamp\":\"The current timestamp\",\"thawEndTimestamp\":\"The timestamp at which the thawing period ends\"}}]},\"events\":{\"PaymentCollected(uint8,address,address,uint256,address,uint256)\":{\"params\":{\"dataService\":\"The address of the data service\",\"payer\":\"The address of the payer\",\"paymentType\":\"The payment type collected as defined by {IGraphPayments}\",\"receiver\":\"The address of the receiver\",\"tokensDataService\":\"The amount of tokens received by the data service\",\"tokensReceiver\":\"The amount of tokens received by the receiver\"}},\"RAVCollected(address,address,address,uint64,uint128,bytes,bytes)\":{\"params\":{\"dataService\":\"The address of the data service\",\"metadata\":\"Arbitrary metadata\",\"payer\":\"The address of the payer\",\"serviceProvider\":\"The address of the service provider\",\"signature\":\"The signature of the RAV\",\"timestampNs\":\"The timestamp of the RAV\",\"valueAggregate\":\"The total amount owed to the service provider\"}},\"SignerAuthorized(address,address)\":{\"params\":{\"authorizedSigner\":\"The address of the authorized signer\",\"payer\":\"The address of the payer authorizing the signer\"}},\"SignerRevoked(address,address)\":{\"details\":\"Emitted when a authorized signer has been revoked\",\"params\":{\"authorizedSigner\":\"The address of the authorized signer\",\"payer\":\"The address of the payer revoking the signer\"}},\"SignerThawCanceled(address,address,uint256)\":{\"details\":\"Emitted when the thawing of a signer is cancelled\",\"params\":{\"authorizedSigner\":\"The address of the authorized signer\",\"payer\":\"The address of the payer cancelling the thawing\",\"thawEndTimestamp\":\"The timestamp at which the thawing period ends\"}},\"SignerThawing(address,address,uint256)\":{\"params\":{\"authorizedSigner\":\"The address of the signer to thaw\",\"payer\":\"The address of the payer thawing the signer\",\"thawEndTimestamp\":\"The timestamp at which the thawing period ends\"}}},\"kind\":\"dev\",\"methods\":{\"authorizeSigner(address,uint256,bytes)\":{\"details\":\"Requirements: - `signer` must not be already authorized - `proofDeadline` must be greater than the current timestamp - `proof` must be a valid signature from the signer being authorized Emits an {SignerAuthorized} event\",\"params\":{\"proof\":\"The proof provided by the signer to be authorized by the payer, consists of (chainID, proof deadline, sender address)\",\"proofDeadline\":\"The deadline for the proof provided by the signer\",\"signer\":\"The addres of the authorized signer\"}},\"cancelThawSigner(address)\":{\"details\":\"Requirements: - `signer` must be thawing and authorized by the payer calling this function Emits a {SignerThawCanceled} event\",\"params\":{\"signer\":\"The address of the signer to cancel thawing\"}},\"collect(uint8,bytes)\":{\"details\":\"This function should require the caller to present some form of evidence of the payer's debt to the receiver. The collector should validate this evidence and, if valid, collect the payment. Requirements: - The caller must be the data service the RAV was issued to - The signer of the RAV must be authorized to sign for the payer Emits a {PaymentCollected} event\",\"params\":{\"data\":\"Additional data required for the payment collection. Will vary depending on the collector implementation.\",\"paymentType\":\"The payment type to collect, as defined by {IGraphPayments}\"}},\"encodeRAV((address,address,uint64,uint128,bytes))\":{\"details\":\"Computes the hash of a ReceiptAggregateVoucher (RAV).\",\"params\":{\"rav\":\"The RAV for which to compute the hash.\"},\"returns\":{\"_0\":\"The hash of the RAV.\"}},\"recoverRAVSigner(((address,address,uint64,uint128,bytes),bytes))\":{\"details\":\"Recovers the signer address of a signed ReceiptAggregateVoucher (RAV).\",\"params\":{\"signedRAV\":\"The SignedRAV containing the RAV and its signature.\"},\"returns\":{\"_0\":\"The address of the signer.\"}},\"revokeAuthorizedSigner(address)\":{\"details\":\"Requirements: - `signer` must be thawed and authorized by the payer calling this function Emits a {SignerRevoked} event\",\"params\":{\"signer\":\"The address of the signer\"}},\"thawSigner(address)\":{\"details\":\"Thawing a signer alerts receivers that signatures from that signer will soon be deemed invalid. Receivers without existing signed receipts or RAVs from this signer should treat them as unauthorized. Those with existing signed documents from this signer should work towards settling their engagements. Once a signer is thawed, they should be viewed as revoked regardless of their revocation status. Requirements: - `signer` must be authorized by the payer calling this function Emits a {SignerThawing} event\",\"params\":{\"signer\":\"The address of the signer to thaw\"}}},\"title\":\"Interface for the {TAPCollector} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"TAPCollectorCallerNotDataService(address,address)\":[{\"notice\":\"Thrown when the caller is not the data service the RAV was issued to\"}],\"TAPCollectorInconsistentRAVTokens(uint256,uint256)\":[{\"notice\":\"Thrown when the tokens collected are inconsistent with the collection history Each RAV should have a value greater than the previous one\"}],\"TAPCollectorInvalidRAVSigner()\":[{\"notice\":\"Thrown when the RAV signer is invalid\"}],\"TAPCollectorInvalidSignerProof()\":[{\"notice\":\"Thrown when the signer proof is invalid\"}],\"TAPCollectorInvalidSignerProofDeadline(uint256,uint256)\":[{\"notice\":\"Thrown when the signer proof deadline is invalid\"}],\"TAPCollectorSignerAlreadyAuthorized(address,address)\":[{\"notice\":\"Thrown when the signer is already authorized\"}],\"TAPCollectorSignerNotAuthorizedByPayer(address,address)\":[{\"notice\":\"Thrown when the signer is not authorized by the payer\"}],\"TAPCollectorSignerNotThawing(address)\":[{\"notice\":\"Thrown when the signer is not thawing\"}],\"TAPCollectorSignerStillThawing(uint256,uint256)\":[{\"notice\":\"Thrown when the signer is still thawing\"}]},\"events\":{\"PaymentCollected(uint8,address,address,uint256,address,uint256)\":{\"notice\":\"Emitted when a payment is collected\"},\"RAVCollected(address,address,address,uint64,uint128,bytes,bytes)\":{\"notice\":\"Emitted when a RAV is collected\"},\"SignerAuthorized(address,address)\":{\"notice\":\"Emitted when a signer is authorized to sign RAVs for a payer\"},\"SignerThawing(address,address,uint256)\":{\"notice\":\"Emitted when a signer is thawed to be removed from the authorized signers list\"}},\"kind\":\"user\",\"methods\":{\"authorizeSigner(address,uint256,bytes)\":{\"notice\":\"Authorize a signer to sign on behalf of the payer\"},\"cancelThawSigner(address)\":{\"notice\":\"Stops thawing a signer.\"},\"collect(uint8,bytes)\":{\"notice\":\"Initiate a payment collection through the payments protocol\"},\"revokeAuthorizedSigner(address)\":{\"notice\":\"Revokes a signer from the authorized signers list if thawed.\"},\"thawSigner(address)\":{\"notice\":\"Starts thawing a signer to be removed from the authorized signers list\"}},\"notice\":\"Implements a payments collector contract that can be used to collect payments using a TAP RAV (Receipt Aggregate Voucher).\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol\":\"ITAPCollector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol\":{\"keccak256\":\"0x86f3cfc8eaac309e99018dda796248fb44130b09c2e5bcfc6c63c0e568803bf8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://176a017cb5c677222ac6a82fecd798292f5f41b4dcb9e16768fbf87816381010\",\"dweb:/ipfs/QmNuLfA5nZptMzWPuvDzJnm7Pwt7uYn1A7G8fwTWPy5Ybm\"]},\"@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol\":{\"keccak256\":\"0xa5a882c413c68bfe914bad5e419c0340d7d6a6aef453894ea10b7b96458932bc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a5dfc1a11d94b22db5a9262b7038c2fb9c69616f47a11507f59efcc5aa1dcf9b\",\"dweb:/ipfs/QmQ8ahkkfm8PXTuZc5Q8zX2RzXHoSi9btYc57KMvtCrLMU\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol": { - "IHorizonStakingBase": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeDeposited", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getDelegatedTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "delegator", - "type": "address" - } - ], - "name": "getDelegation", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.Delegation", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - } - ], - "name": "getDelegationFeeCut", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getDelegationPool", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sharesThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.DelegationPool", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getIdleStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaxThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getProviderTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "getProvision", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensThawing", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sharesThawing", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "createdAt", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "maxVerifierCutPending", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriodPending", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.Provision", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getServiceProvider", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "tokensStaked", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensProvisioned", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.ServiceProvider", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "getStake", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - } - ], - "name": "getThawRequest", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "internalType": "bytes32", - "name": "next", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "thawingNonce", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingTypes.ThawRequest", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getThawRequestList", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "head", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "tail", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "internalType": "struct LinkedList.List", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "getThawedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint32", - "name": "delegationRatio", - "type": "uint32" - } - ], - "name": "getTokensAvailable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "isAllowedLockedVerifier", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isDelegationSlashingEnabled", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "getDelegatedTokensAvailable(address,address)": "fb744cc0", - "getDelegation(address,address,address)": "ccebcabb", - "getDelegationFeeCut(address,address,uint8)": "7573ef4f", - "getDelegationPool(address,address)": "561285e4", - "getIdleStake(address)": "a784d498", - "getMaxThawingPeriod()": "39514ad2", - "getProviderTokensAvailable(address,address)": "08ce5f68", - "getProvision(address,address)": "25d9897e", - "getServiceProvider(address)": "8cc01c86", - "getStake(address)": "7a766460", - "getThawRequest(bytes32)": "b7ca7241", - "getThawRequestList(address,address,address)": "a212daf8", - "getThawedTokens(address,address,address)": "9054e343", - "getTokensAvailable(address,address,uint32)": "872d0489", - "isAllowedLockedVerifier(address)": "ae4fe67a", - "isDelegationSlashingEnabled()": "fc54fb27" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"StakeDeposited\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"getDelegatedTokensAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"}],\"name\":\"getDelegation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.Delegation\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"}],\"name\":\"getDelegationFeeCut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"getDelegationPool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensThawing\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sharesThawing\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thawingNonce\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.DelegationPool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"getIdleStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"getProviderTokensAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"getProvision\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensThawing\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sharesThawing\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"createdAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"maxVerifierCutPending\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"thawingPeriodPending\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"thawingNonce\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.Provision\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"getServiceProvider\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokensStaked\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensProvisioned\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.ServiceProvider\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"getStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"thawRequestId\",\"type\":\"bytes32\"}],\"name\":\"getThawRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"thawingUntil\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"next\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"thawingNonce\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingTypes.ThawRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getThawRequestList\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tail\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"internalType\":\"struct LinkedList.List\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"getThawedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delegationRatio\",\"type\":\"uint32\"}],\"name\":\"getTokensAvailable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"isAllowedLockedVerifier\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isDelegationSlashingEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Most functions operate over {HorizonStaking} provisions. To uniquely identify a provision functions take `serviceProvider` and `verifier` addresses.\",\"events\":{\"StakeDeposited(address,uint256)\":{\"details\":\"TODO: After transition period move to IHorizonStakingMain. Temporarily it needs to be here since it's emitted by {_stake} which is used by both {HorizonStaking} and {HorizonStakingExtension}.\",\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens staked.\"}}},\"kind\":\"dev\",\"methods\":{\"getDelegatedTokensAvailable(address,address)\":{\"details\":\"Calculated as the tokens available minus the tokens thawing.\",\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The amount of tokens available.\"}},\"getDelegation(address,address,address)\":{\"params\":{\"delegator\":\"The address of the delegator.\",\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The delegation details.\"}},\"getDelegationFeeCut(address,address,uint8)\":{\"params\":{\"paymentType\":\"The payment type as defined by {IGraphPayments.PaymentTypes}.\",\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The delegation fee cut in PPM.\"}},\"getDelegationPool(address,address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The delegation pool details.\"}},\"getIdleStake(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens that are idle.\"}},\"getProviderTokensAvailable(address,address)\":{\"details\":\"Calculated as the tokens available minus the tokens thawing.\",\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The amount of tokens available.\"}},\"getProvision(address,address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The provision details.\"}},\"getServiceProvider(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"getStake(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens staked.\"}},\"getThawRequest(bytes32)\":{\"params\":{\"thawRequestId\":\"The id of the thaw request.\"},\"returns\":{\"_0\":\"The thaw request details.\"}},\"getThawRequestList(address,address,address)\":{\"params\":{\"owner\":\"The owner of the thaw requests. Use either the service provider or delegator address.\",\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The thaw requests list metadata.\"}},\"getThawedTokens(address,address,address)\":{\"params\":{\"owner\":\"The owner of the thaw requests. Use either the service provider or delegator address.\",\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The amount of thawed tokens.\"}},\"getTokensAvailable(address,address,uint32)\":{\"params\":{\"delegationRatio\":\"The delegation ratio.\",\"serviceProvider\":\"The address of the service provider.\",\"verifier\":\"The address of the verifier.\"},\"returns\":{\"_0\":\"The amount of tokens available.\"}},\"isAllowedLockedVerifier(address)\":{\"params\":{\"verifier\":\"Address of the verifier\"},\"returns\":{\"_0\":\"True if verifier is allowed locked verifier, false otherwise\"}}},\"title\":\"Interface for the {HorizonStakingBase} contract.\",\"version\":1},\"userdoc\":{\"events\":{\"StakeDeposited(address,uint256)\":{\"notice\":\"Emitted when a service provider stakes tokens.\"}},\"kind\":\"user\",\"methods\":{\"getDelegatedTokensAvailable(address,address)\":{\"notice\":\"Gets the delegator's tokens available in a provision.\"},\"getDelegation(address,address,address)\":{\"notice\":\"Gets the details of a delegation.\"},\"getDelegationFeeCut(address,address,uint8)\":{\"notice\":\"Gets the delegation fee cut for a payment type.\"},\"getDelegationPool(address,address)\":{\"notice\":\"Gets the details of delegation pool.\"},\"getIdleStake(address)\":{\"notice\":\"Gets the service provider's idle stake which is the stake that is not being used for any provision. Note that this only includes service provider's self stake.\"},\"getMaxThawingPeriod()\":{\"notice\":\"Gets the maximum allowed thawing period for a provision.\"},\"getProviderTokensAvailable(address,address)\":{\"notice\":\"Gets the service provider's tokens available in a provision.\"},\"getProvision(address,address)\":{\"notice\":\"Gets the details of a provision.\"},\"getServiceProvider(address)\":{\"notice\":\"Gets the details of a service provider.\"},\"getStake(address)\":{\"notice\":\"Gets the stake of a service provider.\"},\"getThawRequest(bytes32)\":{\"notice\":\"Gets a thaw request.\"},\"getThawRequestList(address,address,address)\":{\"notice\":\"Gets the metadata of a thaw request list. Service provider and delegators each have their own thaw request list per provision. Metadata includes the head and tail of the list, plus the total number of thaw requests.\"},\"getThawedTokens(address,address,address)\":{\"notice\":\"Gets the amount of thawed tokens for a given provision.\"},\"getTokensAvailable(address,address,uint32)\":{\"notice\":\"Gets the tokens available in a provision. Tokens available are the tokens in a provision that are not thawing. Includes service provider's and delegator's stake. Allows specifying a `delegationRatio` which caps the amount of delegated tokens that are considered available.\"},\"isAllowedLockedVerifier(address)\":{\"notice\":\"Return true if the verifier is an allowed locked verifier.\"},\"isDelegationSlashingEnabled()\":{\"notice\":\"Return true if delegation slashing is enabled, false otherwise.\"}},\"notice\":\"Provides getters for {HorizonStaking} and {HorizonStakingExtension} storage variables.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":\"IHorizonStakingBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x2aa4aa3745b13f9cadcbf3f93888ebbaa8f5d1da3b6f845f1741d51b16ff9944\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://290e13fd3dc9170244aaa4c6e5f5646878d011ee25024926d4d60d40eb6cf8c9\",\"dweb:/ipfs/QmPWwXxhnxmNSUpVF6caT1cXVtV2c1ackJiMzAbUG4z6Fo\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol": { - "IHorizonStakingExtension": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "epoch", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationID", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isPublic", - "type": "bool" - } - ], - "name": "AllocationClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "assetHolder", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationID", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "epoch", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "protocolTax", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "curationFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "queryFees", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "queryRebates", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "delegationRewards", - "type": "uint256" - } - ], - "name": "RebateCollected", - "type": "event" - }, - { - "inputs": [], - "name": "__DEPRECATED_getThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - } - ], - "name": "closeAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "collect", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "getAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAtEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAtEpoch", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "collectedFees", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "__DEPRECATED_effectiveAllocation", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "distributedRebates", - "type": "uint256" - } - ], - "internalType": "struct IHorizonStakingExtension.Allocation", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getAllocationData", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "getAllocationState", - "outputs": [ - { - "internalType": "enum IHorizonStakingExtension.AllocationState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "getIndexerStakedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "getSubgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "hasStake", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_allocationId", - "type": "address" - } - ], - "name": "isActiveAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationID", - "type": "address" - } - ], - "name": "isAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "isOperator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "__DEPRECATED_getThawingPeriod()": "c0641994", - "closeAllocation(address,bytes32)": "44c32a61", - "collect(uint256,address)": "8d3c100a", - "getAllocation(address)": "0e022923", - "getAllocationData(address)": "55c85269", - "getAllocationState(address)": "98c657dc", - "getIndexerStakedTokens(address)": "1787e69f", - "getSubgraphAllocatedTokens(bytes32)": "e2e1e8e9", - "hasStake(address)": "e73e14bf", - "isActiveAllocation(address)": "6a3ca383", - "isAllocation(address)": "f1d60d66", - "isOperator(address,address)": "b6363cf2" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poi\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isPublic\",\"type\":\"bool\"}],\"name\":\"AllocationClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"assetHolder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"protocolTax\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"curationFees\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"queryFees\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"queryRebates\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"delegationRewards\",\"type\":\"uint256\"}],\"name\":\"RebateCollected\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"__DEPRECATED_getThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"poi\",\"type\":\"bytes32\"}],\"name\":\"closeAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"}],\"name\":\"collect\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"}],\"name\":\"getAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAtEpoch\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"collectedFees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"__DEPRECATED_effectiveAllocation\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPerAllocatedToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"distributedRebates\",\"type\":\"uint256\"}],\"internalType\":\"struct IHorizonStakingExtension.Allocation\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getAllocationData\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPerAllocatedToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPending\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"}],\"name\":\"getAllocationState\",\"outputs\":[{\"internalType\":\"enum IHorizonStakingExtension.AllocationState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getIndexerStakedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_subgraphDeploymentId\",\"type\":\"bytes32\"}],\"name\":\"getSubgraphAllocatedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"hasStake\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allocationId\",\"type\":\"address\"}],\"name\":\"isActiveAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationID\",\"type\":\"address\"}],\"name\":\"isAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AllocationClosed(address,bytes32,uint256,uint256,address,address,bytes32,bool)\":{\"details\":\"Emitted when `indexer` close an allocation in `epoch` for `allocationID`. An amount of `tokens` get unallocated from `subgraphDeploymentID`. This event also emits the POI (proof of indexing) submitted by the indexer. `isPublic` is true if the sender was someone other than the indexer.\"},\"RebateCollected(address,address,bytes32,address,uint256,uint256,uint256,uint256,uint256,uint256,uint256)\":{\"details\":\"Emitted when `indexer` collects a rebate on `subgraphDeploymentID` for `allocationID`. `epoch` is the protocol epoch the rebate was collected on The rebate is for `tokens` amount which are being provided by `assetHolder`; `queryFees` is the amount up for rebate after `curationFees` are distributed and `protocolTax` is burnt. `queryRebates` is the amount distributed to the `indexer` with `delegationFees` collected and sent to the delegation pool.\"}},\"kind\":\"dev\",\"methods\":{\"__DEPRECATED_getThawingPeriod()\":{\"returns\":{\"_0\":\"Thawing period in blocks\"}},\"closeAllocation(address,bytes32)\":{\"params\":{\"allocationID\":\"The allocation identifier\",\"poi\":\"Proof of indexing submitted for the allocated period\"}},\"collect(uint256,address)\":{\"details\":\"To avoid reverting on the withdrawal from channel flow this function will: 1) Accept calls with zero tokens. 2) Accept calls after an allocation passed the dispute period, in that case, all the received tokens are burned.\",\"params\":{\"allocationID\":\"Allocation where the tokens will be assigned\",\"tokens\":\"Amount of tokens to collect\"}},\"getAllocation(address)\":{\"params\":{\"allocationID\":\"Address used as allocation identifier\"},\"returns\":{\"_0\":\"Allocation data\"}},\"getAllocationData(address)\":{\"details\":\"Get allocation data to calculate rewards issuance\",\"params\":{\"allocationId\":\"The allocation Id\"},\"returns\":{\"accRewardsPending\":\"Snapshot of accumulated rewards from previous allocation resizing, pending to be claimed\",\"accRewardsPerAllocatedToken\":\"Rewards snapshot\",\"indexer\":\"The indexer address\",\"subgraphDeploymentId\":\"Subgraph deployment id for the allocation\",\"tokens\":\"Amount of allocated tokens\"}},\"getAllocationState(address)\":{\"params\":{\"allocationID\":\"Allocation identifier\"},\"returns\":{\"_0\":\"AllocationState enum with the state of the allocation\"}},\"getIndexerStakedTokens(address)\":{\"params\":{\"indexer\":\"Address of the indexer\"},\"returns\":{\"_0\":\"Amount of tokens staked by the indexer\"}},\"getSubgraphAllocatedTokens(bytes32)\":{\"params\":{\"_subgraphDeploymentId\":\"Deployment Id for the subgraph\"},\"returns\":{\"_0\":\"Total tokens allocated to subgraph\"}},\"hasStake(address)\":{\"params\":{\"indexer\":\"Address of the indexer\"},\"returns\":{\"_0\":\"True if indexer has staked tokens\"}},\"isActiveAllocation(address)\":{\"params\":{\"_allocationId\":\"Allocation Id\"},\"returns\":{\"_0\":\"Whether or not the allocation is active\"}},\"isAllocation(address)\":{\"params\":{\"allocationID\":\"Address used as signer by the indexer for an allocation\"},\"returns\":{\"_0\":\"True if allocationID already used\"}},\"isOperator(address,address)\":{\"params\":{\"indexer\":\"Address of the indexer\",\"operator\":\"Address of the operator\"},\"returns\":{\"_0\":\"True if operator is allowed for indexer, false otherwise\"}}},\"title\":\"Interface for {HorizonStakingExtension} contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"__DEPRECATED_getThawingPeriod()\":{\"notice\":\"Return the time in blocks to unstake\"},\"closeAllocation(address,bytes32)\":{\"notice\":\"Close an allocation and free the staked tokens. To be eligible for rewards a proof of indexing must be presented. Presenting a bad proof is subject to slashable condition. To opt out of rewards set _poi to 0x0\"},\"collect(uint256,address)\":{\"notice\":\"Collect query fees from state channels and assign them to an allocation. Funds received are only accepted from a valid sender.\"},\"getAllocation(address)\":{\"notice\":\"Return the allocation by ID.\"},\"getAllocationState(address)\":{\"notice\":\"Return the current state of an allocation\"},\"getIndexerStakedTokens(address)\":{\"notice\":\"Get the total amount of tokens staked by the indexer.\"},\"getSubgraphAllocatedTokens(bytes32)\":{\"notice\":\"Return the total amount of tokens allocated to subgraph.\"},\"hasStake(address)\":{\"notice\":\"Getter that returns if an indexer has any stake.\"},\"isActiveAllocation(address)\":{\"notice\":\"Whether or not an allocation is active (i.e open)\"},\"isAllocation(address)\":{\"notice\":\"Return if allocationID is used.\"},\"isOperator(address,address)\":{\"notice\":\"Return true if operator is allowed for indexer.\"}},\"notice\":\"Provides functions for managing legacy allocations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":\"IHorizonStakingExtension\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0xbb225acac73f4245b30a8fe9c0bf4bcc8b310f40da526a0447a2303f1ca63e96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://207826b2277a0bd42b8a4d8825f6b16e46d6dc8039e4027faa22df462aa06079\",\"dweb:/ipfs/QmYS177dKBuY7iRUdwBMHxSMd6SfNpARTApLHMLgFCozTy\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol": { - "IHorizonStakingMain": { - "abi": [ - { - "inputs": [], - "name": "HorizonStakingCallerIsServiceProvider", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientIdleStake", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minShares", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientShares", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientStakeForLegacyAllocations", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minRequired", - "type": "uint256" - } - ], - "name": "HorizonStakingInsufficientTokens", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidBeneficiaryZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "HorizonStakingInvalidDelegationFeeCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidDelegationPool", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidDelegationPoolState", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - } - ], - "name": "HorizonStakingInvalidMaxVerifierCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingInvalidProvision", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidServiceProviderZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "HorizonStakingInvalidThawingPeriod", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidVerifierZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidZeroShares", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingInvalidZeroTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "HorizonStakingNotAuthorized", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingNothingThawing", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingProvisionAlreadyExists", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minShares", - "type": "uint256" - } - ], - "name": "HorizonStakingSlippageProtection", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "until", - "type": "uint256" - } - ], - "name": "HorizonStakingStillThawing", - "type": "error" - }, - { - "inputs": [], - "name": "HorizonStakingTooManyThawRequests", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTokens", - "type": "uint256" - } - ], - "name": "HorizonStakingTooManyTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - } - ], - "name": "HorizonStakingVerifierNotAllowed", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "AllowedLockedVerifierSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegatedTokensWithdrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "DelegationFeeCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegationSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "enabled", - "type": "bool" - } - ], - "name": "DelegationSlashingEnabled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DelegationSlashingSkipped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "MaxThawingPeriodSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "OperatorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionIncreased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionParametersSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "ProvisionParametersStaged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ProvisionThawed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "until", - "type": "uint256" - } - ], - "name": "StakeLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "StakeWithdrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - } - ], - "name": "ThawRequestCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "thawRequestId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "thawingUntil", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "bool", - "name": "valid", - "type": "bool" - } - ], - "name": "ThawRequestFulfilled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "thawRequestsFulfilled", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ThawRequestsFulfilled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "ThawingPeriodCleared", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensDelegated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensDeprovisioned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensToDelegationPoolAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "delegator", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "TokensUndelegated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "destination", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "VerifierTokensSent", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "acceptProvisionParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "addToDelegationPool", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "addToProvision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "clearThawingPeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minSharesOut", - "type": "uint256" - } - ], - "name": "delegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "deprovision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isAuthorized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "provision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "provisionLocked", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "oldServiceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "oldVerifier", - "type": "address" - }, - { - "internalType": "address", - "name": "newServiceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "newVerifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "minSharesForNewProvider", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "redelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "oldVerifier", - "type": "address" - }, - { - "internalType": "address", - "name": "newVerifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "reprovision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setAllowedLockedVerifier", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "feeCut", - "type": "uint256" - } - ], - "name": "setDelegationFeeCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "setDelegationSlashingEnabled", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "maxThawingPeriod", - "type": "uint64" - } - ], - "name": "setMaxThawingPeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setOperatorLocked", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint32", - "name": "maxVerifierCut", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "thawingPeriod", - "type": "uint64" - } - ], - "name": "setProvisionParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensVerifier", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifierDestination", - "type": "address" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stakeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "stakeToProvision", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "thaw", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - }, - { - "internalType": "address", - "name": "beneficiary", - "type": "address" - } - ], - "name": "undelegate", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "undelegate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "shares", - "type": "uint256" - } - ], - "name": "undelegate", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "unstake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "verifier", - "type": "address" - }, - { - "internalType": "uint256", - "name": "nThawRequests", - "type": "uint256" - } - ], - "name": "withdrawDelegated", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "newServiceProvider", - "type": "address" - } - ], - "name": "withdrawDelegated", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptProvisionParameters(address)": "3a78b732", - "addToDelegationPool(address,address,uint256)": "ca94b0e9", - "addToProvision(address,address,uint256)": "fecc9cc1", - "clearThawingPeriod()": "e473522a", - "delegate(address,address,uint256,uint256)": "6230001a", - "delegate(address,uint256)": "026e402b", - "deprovision(address,address,uint256)": "21195373", - "isAuthorized(address,address,address)": "7c145cc7", - "provision(address,address,uint256,uint32,uint64)": "010167e5", - "provisionLocked(address,address,uint256,uint32,uint64)": "82d66cb8", - "redelegate(address,address,address,address,uint256,uint256)": "f64b3598", - "reprovision(address,address,address,uint256)": "ba7fb0b4", - "setAllowedLockedVerifier(address,bool)": "4ca7ac22", - "setDelegationFeeCut(address,address,uint8,uint256)": "42c51693", - "setDelegationSlashingEnabled()": "ef58bd67", - "setMaxThawingPeriod(uint64)": "259bc435", - "setOperator(address,address,bool)": "bc735d90", - "setOperatorLocked(address,address,bool)": "ad4d35b5", - "setProvisionParameters(address,address,uint32,uint64)": "81e21b56", - "slash(address,uint256,uint256,address)": "e76fede6", - "stake(uint256)": "a694fc3a", - "stakeTo(address,uint256)": "a2a31722", - "stakeToProvision(address,address,uint256)": "74612092", - "thaw(address,address,uint256)": "f93f1cd0", - "undelegate(address,address,uint256)": "a02b9426", - "undelegate(address,address,uint256,address)": "162ea5ed", - "undelegate(address,uint256)": "4d99dd16", - "unstake(uint256)": "2e17de78", - "withdraw()": "3ccfd60b", - "withdrawDelegated(address,address)": "51a60b02", - "withdrawDelegated(address,address,uint256)": "3993d849" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"HorizonStakingCallerIsServiceProvider\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokens\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingInsufficientIdleStake\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minShares\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingInsufficientShares\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokens\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingInsufficientStakeForLegacyAllocations\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minRequired\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingInsufficientTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidBeneficiaryZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"feeCut\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingInvalidDelegationFeeCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"HorizonStakingInvalidDelegationPool\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"HorizonStakingInvalidDelegationPoolState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"}],\"name\":\"HorizonStakingInvalidMaxVerifierCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"HorizonStakingInvalidProvision\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidServiceProviderZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"maxThawingPeriod\",\"type\":\"uint64\"}],\"name\":\"HorizonStakingInvalidThawingPeriod\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidVerifierZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidZeroShares\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingInvalidZeroTokens\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"HorizonStakingNotAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingNothingThawing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingProvisionAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minShares\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingSlippageProtection\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"until\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingStillThawing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HorizonStakingTooManyThawRequests\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTokens\",\"type\":\"uint256\"}],\"name\":\"HorizonStakingTooManyTokens\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"HorizonStakingVerifierNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"AllowedLockedVerifierSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DelegatedTokensWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"feeCut\",\"type\":\"uint256\"}],\"name\":\"DelegationFeeCutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DelegationSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"DelegationSlashingEnabled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DelegationSlashingSkipped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"maxThawingPeriod\",\"type\":\"uint64\"}],\"name\":\"MaxThawingPeriodSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"OperatorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"ProvisionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ProvisionIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"ProvisionParametersSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"ProvisionParametersStaged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ProvisionSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ProvisionThawed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"until\",\"type\":\"uint256\"}],\"name\":\"StakeLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"StakeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"thawingUntil\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"thawRequestId\",\"type\":\"bytes32\"}],\"name\":\"ThawRequestCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"thawRequestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"thawingUntil\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"ThawRequestFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thawRequestsFulfilled\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ThawRequestsFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ThawingPeriodCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"TokensDelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"TokensDeprovisioned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"TokensToDelegationPoolAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"TokensUndelegated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"VerifierTokensSent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"acceptProvisionParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"addToDelegationPool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"addToProvision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clearThawingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minSharesOut\",\"type\":\"uint256\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nThawRequests\",\"type\":\"uint256\"}],\"name\":\"deprovision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"provision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"provisionLocked\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oldServiceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newServiceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minSharesForNewProvider\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nThawRequests\",\"type\":\"uint256\"}],\"name\":\"redelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oldVerifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newVerifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nThawRequests\",\"type\":\"uint256\"}],\"name\":\"reprovision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setAllowedLockedVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"feeCut\",\"type\":\"uint256\"}],\"name\":\"setDelegationFeeCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setDelegationSlashingEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"maxThawingPeriod\",\"type\":\"uint64\"}],\"name\":\"setMaxThawingPeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setOperatorLocked\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"maxVerifierCut\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"thawingPeriod\",\"type\":\"uint64\"}],\"name\":\"setProvisionParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensVerifier\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifierDestination\",\"type\":\"address\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"stakeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"stakeToProvision\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"thaw\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"undelegate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"undelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"undelegate\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nThawRequests\",\"type\":\"uint256\"}],\"name\":\"withdrawDelegated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newServiceProvider\",\"type\":\"address\"}],\"name\":\"withdrawDelegated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Note that this interface only includes the functions implemented by {HorizonStaking} contract, and not those implemented by {HorizonStakingExtension}. Do not use this interface to interface with the {HorizonStaking} contract, use {IHorizonStaking} for the complete interface.Most functions operate over {HorizonStaking} provisions. To uniquely identify a provision functions take `serviceProvider` and `verifier` addresses.\",\"errors\":{\"HorizonStakingInsufficientIdleStake(uint256,uint256)\":[{\"params\":{\"minTokens\":\"The minimum required token amount\",\"tokens\":\"The actual token amount\"}}],\"HorizonStakingInsufficientShares(uint256,uint256)\":[{\"params\":{\"minShares\":\"The minimum required share amount\",\"shares\":\"The actual share amount\"}}],\"HorizonStakingInsufficientStakeForLegacyAllocations(uint256,uint256)\":[{\"params\":{\"minTokens\":\"The minimum required token amount\",\"tokens\":\"The actual token amount\"}}],\"HorizonStakingInsufficientTokens(uint256,uint256)\":[{\"params\":{\"minRequired\":\"The minimum required token amount\",\"tokens\":\"The actual token amount\"}}],\"HorizonStakingInvalidDelegationFeeCut(uint256)\":[{\"params\":{\"feeCut\":\"The fee cut\"}}],\"HorizonStakingInvalidDelegationPool(address,address)\":[{\"params\":{\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}}],\"HorizonStakingInvalidDelegationPoolState(address,address)\":[{\"params\":{\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}}],\"HorizonStakingInvalidMaxVerifierCut(uint32)\":[{\"params\":{\"maxVerifierCut\":\"The maximum verifier cut\"}}],\"HorizonStakingInvalidProvision(address,address)\":[{\"params\":{\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}}],\"HorizonStakingInvalidThawingPeriod(uint64,uint64)\":[{\"params\":{\"maxThawingPeriod\":\"The maximum `thawingPeriod` allowed\",\"thawingPeriod\":\"The thawing period\"}}],\"HorizonStakingNotAuthorized(address,address,address)\":[{\"params\":{\"caller\":\"The caller address\",\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}}],\"HorizonStakingSlippageProtection(uint256,uint256)\":[{\"params\":{\"minShares\":\"The minimum required share amount\",\"shares\":\"The actual share amount\"}}],\"HorizonStakingStillThawing(uint256)\":[{\"details\":\"Note this thawing refers to the global thawing period applied to legacy allocated tokens, it does not refer to thaw requests.\",\"params\":{\"until\":\"The block number until the stake is locked\"}}],\"HorizonStakingTooManyTokens(uint256,uint256)\":[{\"params\":{\"maxTokens\":\"The maximum allowed token amount\",\"tokens\":\"The actual token amount\"}}],\"HorizonStakingVerifierNotAllowed(address)\":[{\"details\":\"Only applies to stake from locked wallets.\"}]},\"events\":{\"AllowedLockedVerifierSet(address,bool)\":{\"params\":{\"allowed\":\"Whether the verifier is allowed or disallowed\",\"verifier\":\"The address of the verifier\"}},\"DelegatedTokensWithdrawn(address,address,address,uint256)\":{\"params\":{\"delegator\":\"The address of the delegator\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens withdrawn\",\"verifier\":\"The address of the verifier\"}},\"DelegationFeeCutSet(address,address,uint8,uint256)\":{\"params\":{\"feeCut\":\"The fee cut set, in PPM\",\"paymentType\":\"The payment type for which the fee cut is set, as defined in {IGraphPayments}\",\"serviceProvider\":\"The address of the service provider\",\"verifier\":\"The address of the verifier\"}},\"DelegationSlashed(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens slashed (note this only represents delegation pool's slashed stake)\",\"verifier\":\"The address of the verifier\"}},\"DelegationSlashingEnabled(bool)\":{\"params\":{\"enabled\":\"Whether delegation slashing is enabled or disabled.\"}},\"DelegationSlashingSkipped(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens that would have been slashed (note this only represents delegation pool's slashed stake)\",\"verifier\":\"The address of the verifier\"}},\"MaxThawingPeriodSet(uint64)\":{\"params\":{\"maxThawingPeriod\":\"The new maximum thawing period\"}},\"OperatorSet(address,address,address,bool)\":{\"details\":\"Emitted when an operator is allowed or denied by a service provider for a particular verifier\",\"params\":{\"allowed\":\"Whether the operator is allowed or denied\",\"operator\":\"The address of the operator\",\"serviceProvider\":\"The address of the service provider\",\"verifier\":\"The address of the verifier\"}},\"ProvisionCreated(address,address,uint256,uint32,uint64)\":{\"params\":{\"maxVerifierCut\":\"The maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves when slashing\",\"serviceProvider\":\"The address of the service provider\",\"thawingPeriod\":\"The period in seconds that the tokens will be thawing before they can be removed from the provision\",\"tokens\":\"The amount of tokens provisioned\",\"verifier\":\"The address of the verifier\"}},\"ProvisionIncreased(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens added to the provision\",\"verifier\":\"The address of the verifier\"}},\"ProvisionParametersSet(address,address,uint32,uint64)\":{\"params\":{\"maxVerifierCut\":\"The new maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves when slashing\",\"serviceProvider\":\"The address of the service provider\",\"thawingPeriod\":\"The new period in seconds that the tokens will be thawing before they can be removed from the provision\",\"verifier\":\"The address of the verifier\"}},\"ProvisionParametersStaged(address,address,uint32,uint64)\":{\"params\":{\"maxVerifierCut\":\"The proposed maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves when slashing\",\"serviceProvider\":\"The address of the service provider\",\"thawingPeriod\":\"The proposed period in seconds that the tokens will be thawing before they can be removed from the provision\",\"verifier\":\"The address of the verifier\"}},\"ProvisionSlashed(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens slashed (note this only represents service provider's slashed stake)\",\"verifier\":\"The address of the verifier\"}},\"ProvisionThawed(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens thawed\",\"verifier\":\"The address of the verifier\"}},\"StakeLocked(address,uint256,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens unstaked\",\"until\":\"The block number until the stake is locked\"}},\"StakeWithdrawn(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens withdrawn\"}},\"ThawRequestCreated(address,address,address,uint256,uint64,bytes32)\":{\"details\":\"Can be emitted by the service provider when thawing stake or by the delegator when undelegating.\",\"params\":{\"owner\":\"The address of the owner of the thaw request.\",\"serviceProvider\":\"The address of the service provider\",\"shares\":\"The amount of shares being thawed\",\"thawRequestId\":\"The ID of the thaw request\",\"thawingUntil\":\"The timestamp until the stake is thawed\",\"verifier\":\"The address of the verifier\"}},\"ThawRequestFulfilled(bytes32,uint256,uint256,uint64,bool)\":{\"params\":{\"shares\":\"The amount of shares being released\",\"thawRequestId\":\"The ID of the thaw request\",\"thawingUntil\":\"The timestamp until the stake has thawed\",\"tokens\":\"The amount of tokens being released\",\"valid\":\"Whether the thaw request was valid at the time of fulfillment\"}},\"ThawRequestsFulfilled(address,address,address,uint256,uint256)\":{\"params\":{\"owner\":\"The address of the owner of the thaw requests\",\"serviceProvider\":\"The address of the service provider\",\"thawRequestsFulfilled\":\"The number of thaw requests fulfilled\",\"tokens\":\"The total amount of tokens being released\",\"verifier\":\"The address of the verifier\"}},\"ThawingPeriodCleared()\":{\"details\":\"This marks the end of the transition period.\"},\"TokensDelegated(address,address,address,uint256)\":{\"params\":{\"delegator\":\"The address of the delegator\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens delegated\",\"verifier\":\"The address of the verifier\"}},\"TokensDeprovisioned(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens removed\",\"verifier\":\"The address of the verifier\"}},\"TokensToDelegationPoolAdded(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens withdrawn\",\"verifier\":\"The address of the verifier\"}},\"TokensUndelegated(address,address,address,uint256)\":{\"params\":{\"delegator\":\"The address of the delegator\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens undelegated\",\"verifier\":\"The address of the verifier\"}},\"VerifierTokensSent(address,address,address,uint256)\":{\"params\":{\"destination\":\"The address where the verifier cut is sent\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens sent to the verifier\",\"verifier\":\"The address of the verifier\"}}},\"kind\":\"dev\",\"methods\":{\"acceptProvisionParameters(address)\":{\"details\":\"Only the provision's verifier can call this function. Emits a {ProvisionParametersSet} event.\",\"params\":{\"serviceProvider\":\"The service provider address\"}},\"addToDelegationPool(address,address,uint256)\":{\"details\":\"Requirements: - `tokens` cannot be zero. - Caller must have previously approved this contract to pull tokens from their balance. Emits a {TokensToDelegationPoolAdded} event.\",\"params\":{\"serviceProvider\":\"The service provider address\",\"tokens\":\"The amount of tokens to add to the delegation pool\",\"verifier\":\"The verifier address for which the tokens are provisioned\"}},\"addToProvision(address,address,uint256)\":{\"details\":\"Requirements: - The `serviceProvider` must have previously provisioned stake to `verifier`. - `tokens` cannot be zero. - The `serviceProvider` must have enough idle stake to cover the tokens to add. Emits a {ProvisionIncreased} event.\",\"params\":{\"serviceProvider\":\"The service provider address\",\"tokens\":\"The amount of tokens to add to the provision\",\"verifier\":\"The verifier address\"}},\"clearThawingPeriod()\":{\"details\":\"This function can only be called by the contract governor.Emits a {ThawingPeriodCleared} event.\"},\"delegate(address,address,uint256,uint256)\":{\"details\":\"Requirements: - `tokens` cannot be zero. - Caller must have previously approved this contract to pull tokens from their balance. - The provision must exist. Emits a {TokensDelegated} event.\",\"params\":{\"minSharesOut\":\"The minimum amount of shares to accept, slippage protection.\",\"serviceProvider\":\"The service provider address\",\"tokens\":\"The amount of tokens to delegate\",\"verifier\":\"The verifier address\"}},\"delegate(address,uint256)\":{\"details\":\"See {delegate}.\",\"params\":{\"serviceProvider\":\"The service provider address\",\"tokens\":\"The amount of tokens to delegate\"}},\"deprovision(address,address,uint256)\":{\"details\":\"The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw requests in the event that fulfilling all of them results in a gas limit error. Requirements: - Must have previously initiated a thaw request using {thaw}. Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {TokensDeprovisioned} events.\",\"params\":{\"nThawRequests\":\"The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\",\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}},\"isAuthorized(address,address,address)\":{\"params\":{\"operator\":\"The address to check for auth\",\"serviceProvider\":\"The service provider on behalf of whom they're claiming to act\",\"verifier\":\"The verifier / data service on which they're claiming to act\"},\"returns\":{\"_0\":\"Whether the operator is authorized or not\"}},\"provision(address,address,uint256,uint32,uint64)\":{\"details\":\"Requirements: - `tokens` cannot be zero. - The `serviceProvider` must have enough idle stake to cover the tokens to provision. - `maxVerifierCut` must be a valid PPM. - `thawingPeriod` must be less than or equal to `_maxThawingPeriod`. Emits a {ProvisionCreated} event.\",\"params\":{\"maxVerifierCut\":\"The maximum cut, expressed in PPM, that a verifier can transfer instead of burning when slashing\",\"serviceProvider\":\"The service provider address\",\"thawingPeriod\":\"The period in seconds that the tokens will be thawing before they can be removed from the provision\",\"tokens\":\"The amount of tokens that will be locked and slashable\",\"verifier\":\"The verifier address for which the tokens are provisioned (who will be able to slash the tokens)\"}},\"provisionLocked(address,address,uint256,uint32,uint64)\":{\"details\":\"See {provision}. Additional requirements: - The `verifier` must be allowed to be used for locked provisions.\",\"params\":{\"maxVerifierCut\":\"The maximum cut, expressed in PPM, that a verifier can transfer instead of burning when slashing\",\"serviceProvider\":\"The service provider address\",\"thawingPeriod\":\"The period in seconds that the tokens will be thawing before they can be removed from the provision\",\"tokens\":\"The amount of tokens that will be locked and slashable\",\"verifier\":\"The verifier address for which the tokens are provisioned (who will be able to slash the tokens)\"}},\"redelegate(address,address,address,address,uint256,uint256)\":{\"details\":\"The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw requests in the event that fulfilling all of them results in a gas limit error. Requirements: - Must have previously initiated a thaw request using {undelegate}. - `newServiceProvider` and `newVerifier` must not be the zero address. - `newServiceProvider` must have previously provisioned stake to `newVerifier`. Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {DelegatedTokensWithdrawn} events.\",\"params\":{\"minSharesForNewProvider\":\"The minimum amount of shares to accept for the new service provider\",\"nThawRequests\":\"The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\",\"newServiceProvider\":\"The address of a new service provider\",\"newVerifier\":\"The address of a new verifier\",\"oldServiceProvider\":\"The old service provider address\",\"oldVerifier\":\"The old verifier address\"}},\"reprovision(address,address,address,uint256)\":{\"details\":\"Requirements: - Must have previously initiated a thaw request using {thaw}. - `tokens` cannot be zero. - The `serviceProvider` must have previously provisioned stake to `newVerifier`. - The `serviceProvider` must have enough idle stake to cover the tokens to add. Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled}, {TokensDeprovisioned} and {ProvisionIncreased} events.\",\"params\":{\"nThawRequests\":\"The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\",\"newVerifier\":\"The verifier address for which the tokens will be provisioned\",\"oldVerifier\":\"The verifier address for which the tokens are currently provisioned\",\"serviceProvider\":\"The service provider address\"}},\"setAllowedLockedVerifier(address,bool)\":{\"details\":\"This function can only be called by the contract governor, it's used to maintain a whitelist of verifiers that do not allow the stake from a locked wallet to escape the lock.Emits a {AllowedLockedVerifierSet} event.\",\"params\":{\"allowed\":\"Whether the verifier is allowed or not\",\"verifier\":\"The verifier address\"}},\"setDelegationFeeCut(address,address,uint8,uint256)\":{\"details\":\"Emits a {DelegationFeeCutSet} event.\",\"params\":{\"feeCut\":\"The fee cut to set, in PPM\",\"paymentType\":\"The payment type for which the fee cut is set, as defined in {IGraphPayments}\",\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}},\"setDelegationSlashingEnabled()\":{\"details\":\"This function can only be called by the contract governor.\"},\"setMaxThawingPeriod(uint64)\":{\"params\":{\"maxThawingPeriod\":\"The new maximum thawing period, in seconds\"}},\"setOperator(address,address,bool)\":{\"details\":\"Emits a {OperatorSet} event.\",\"params\":{\"allowed\":\"Whether the operator is authorized or not\",\"operator\":\"Address to authorize or unauthorize\",\"verifier\":\"The verifier / data service on which they'll be allowed to operate\"}},\"setOperatorLocked(address,address,bool)\":{\"details\":\"See {setOperator}. Additional requirements: - The `verifier` must be allowed to be used for locked provisions.\",\"params\":{\"allowed\":\"Whether the operator is authorized or not\",\"operator\":\"Address to authorize or unauthorize\",\"verifier\":\"The verifier / data service on which they'll be allowed to operate\"}},\"setProvisionParameters(address,address,uint32,uint64)\":{\"details\":\"This two step update process prevents the service provider from changing the parameters without the verifier's consent. Emits a {ProvisionParametersStaged} event if at least one of the parameters changed.\",\"params\":{\"maxVerifierCut\":\"The proposed maximum cut, expressed in PPM of the slashed amount, that a verifier can take for themselves when slashing\",\"serviceProvider\":\"The service provider address\",\"thawingPeriod\":\"The proposed period in seconds that the tokens will be thawing before they can be removed from the provision\",\"verifier\":\"The verifier address\"}},\"slash(address,uint256,uint256,address)\":{\"details\":\"Requirements: - `tokens` must be less than or equal to the amount of tokens provisioned by the service provider. - `tokensVerifier` must be less than the provision's tokens times the provision's maximum verifier cut. Emits a {ProvisionSlashed} and {VerifierTokensSent} events. Emits a {DelegationSlashed} or {DelegationSlashingSkipped} event depending on the global delegation slashing flag.\",\"params\":{\"serviceProvider\":\"The service provider to slash\",\"tokens\":\"The amount of tokens to slash\",\"tokensVerifier\":\"The amount of tokens to transfer instead of burning\",\"verifierDestination\":\"The address to transfer the verifier cut to\"}},\"stake(uint256)\":{\"details\":\"Pulls tokens from the caller. Requirements: - `_tokens` cannot be zero. - Caller must have previously approved this contract to pull tokens from their balance. Emits a {StakeDeposited} event.\",\"params\":{\"tokens\":\"Amount of tokens to stake\"}},\"stakeTo(address,uint256)\":{\"details\":\"Pulls tokens from the caller. Requirements: - `_tokens` cannot be zero. - Caller must have previously approved this contract to pull tokens from their balance. Emits a {StakeDeposited} event.\",\"params\":{\"serviceProvider\":\"Address of the service provider\",\"tokens\":\"Amount of tokens to stake\"}},\"stakeToProvision(address,address,uint256)\":{\"details\":\"Requirements: - The `serviceProvider` must have previously provisioned stake to `verifier`. - `_tokens` cannot be zero. - Caller must have previously approved this contract to pull tokens from their balance. Emits {StakeDeposited} and {ProvisionIncreased} events.\",\"params\":{\"serviceProvider\":\"Address of the service provider\",\"tokens\":\"Amount of tokens to stake\",\"verifier\":\"Address of the verifier\"}},\"thaw(address,address,uint256)\":{\"details\":\"Requirements: - The provision must have enough tokens available to thaw. - `tokens` cannot be zero. Emits {ProvisionThawed} and {ThawRequestCreated} events.\",\"params\":{\"serviceProvider\":\"The service provider address\",\"tokens\":\"The amount of tokens to thaw\",\"verifier\":\"The verifier address for which the tokens are provisioned\"},\"returns\":{\"_0\":\"The ID of the thaw request\"}},\"undelegate(address,address,uint256)\":{\"params\":{\"serviceProvider\":\"The service provider address\",\"shares\":\"The amount of shares to undelegate\",\"verifier\":\"The verifier address\"},\"returns\":{\"_0\":\"The ID of the thaw request\"}},\"undelegate(address,address,uint256,address)\":{\"params\":{\"beneficiary\":\"The address where the tokens will be withdrawn after thawing\",\"serviceProvider\":\"The service provider address\",\"shares\":\"The amount of shares to undelegate\",\"verifier\":\"The verifier address\"},\"returns\":{\"_0\":\"The ID of the thaw request\"}},\"undelegate(address,uint256)\":{\"details\":\"See {undelegate}.\",\"params\":{\"serviceProvider\":\"The service provider address\",\"shares\":\"The amount of shares to undelegate\"}},\"unstake(uint256)\":{\"details\":\"Requirements: - `_tokens` cannot be zero. - `_serviceProvider` must have enough idle stake to cover the staking amount and any legacy allocation. Emits a {StakeLocked} event during the transition period. Emits a {StakeWithdrawn} event after the transition period.\",\"params\":{\"tokens\":\"Amount of tokens to unstake\"}},\"withdraw()\":{\"details\":\"This is only needed during the transition period while we still have a global lock. After that, unstake() will automatically withdraw.\"},\"withdrawDelegated(address,address)\":{\"details\":\"See {delegate}.\",\"params\":{\"newServiceProvider\":\"The address of a new service provider, if the delegator wants to re-delegate\",\"serviceProvider\":\"The service provider address\"}},\"withdrawDelegated(address,address,uint256)\":{\"details\":\"The parameter `nThawRequests` can be set to a non zero value to fulfill a specific number of thaw requests in the event that fulfilling all of them results in a gas limit error.If the delegation pool was completely slashed before withdrawing, calling this function will fulfill the thaw requests with an amount equal to zero. Requirements: - Must have previously initiated a thaw request using {undelegate}. Emits {ThawRequestFulfilled}, {ThawRequestsFulfilled} and {DelegatedTokensWithdrawn} events.\",\"params\":{\"nThawRequests\":\"The number of thaw requests to fulfill. Set to 0 to fulfill all thaw requests.\",\"serviceProvider\":\"The service provider address\",\"verifier\":\"The verifier address\"}}},\"title\":\"Inferface for the {HorizonStaking} contract.\",\"version\":1},\"userdoc\":{\"errors\":{\"HorizonStakingCallerIsServiceProvider()\":[{\"notice\":\"Thrown when a service provider attempts to change their own operator access.\"}],\"HorizonStakingInsufficientIdleStake(uint256,uint256)\":[{\"notice\":\"Thrown when the service provider has insufficient idle stake to operate.\"}],\"HorizonStakingInsufficientShares(uint256,uint256)\":[{\"notice\":\"Thrown when a minimum share amount is required to operate but it's not met.\"}],\"HorizonStakingInsufficientStakeForLegacyAllocations(uint256,uint256)\":[{\"notice\":\"Thrown during the transition period when the service provider has insufficient stake to cover their existing legacy allocations.\"}],\"HorizonStakingInsufficientTokens(uint256,uint256)\":[{\"notice\":\"Thrown when a minimum token amount is required to operate but it's not met.\"}],\"HorizonStakingInvalidBeneficiaryZeroAddress()\":[{\"notice\":\"Thrown when attempting to undelegate with a beneficiary that is the zero address.\"}],\"HorizonStakingInvalidDelegationFeeCut(uint256)\":[{\"notice\":\"Thrown when trying to set a delegation fee cut that is not valid.\"}],\"HorizonStakingInvalidDelegationPool(address,address)\":[{\"notice\":\"Thrown when attempting to operate with a delegation pool that does not exist.\"}],\"HorizonStakingInvalidDelegationPoolState(address,address)\":[{\"notice\":\"Thrown when as a result of slashing delegation pool has no tokens but has shares.\"}],\"HorizonStakingInvalidMaxVerifierCut(uint32)\":[{\"notice\":\"Thrown when attempting to create a provision with an invalid maximum verifier cut.\"}],\"HorizonStakingInvalidProvision(address,address)\":[{\"notice\":\"Thrown when attempting to operate with a provision that does not exist.\"}],\"HorizonStakingInvalidServiceProviderZeroAddress()\":[{\"notice\":\"Thrown when attempting to redelegate with a serivce provider that is the zero address.\"}],\"HorizonStakingInvalidThawingPeriod(uint64,uint64)\":[{\"notice\":\"Thrown when attempting to create a provision with an invalid thawing period.\"}],\"HorizonStakingInvalidVerifierZeroAddress()\":[{\"notice\":\"Thrown when attempting to redelegate with a verifier that is the zero address.\"}],\"HorizonStakingInvalidZeroShares()\":[{\"notice\":\"Thrown when operating a zero share amount is not allowed.\"}],\"HorizonStakingInvalidZeroTokens()\":[{\"notice\":\"Thrown when operating a zero token amount is not allowed.\"}],\"HorizonStakingNotAuthorized(address,address,address)\":[{\"notice\":\"Thrown when the caller is not authorized to operate on a provision.\"}],\"HorizonStakingProvisionAlreadyExists()\":[{\"notice\":\"Thrown when attempting to create a provision for a data service that already has a provision.\"}],\"HorizonStakingSlippageProtection(uint256,uint256)\":[{\"notice\":\"Thrown when delegation shares obtained are below the expected amount.\"}],\"HorizonStakingStillThawing(uint256)\":[{\"notice\":\"Thrown during the transition period when attempting to withdraw tokens that are still thawing.\"}],\"HorizonStakingTooManyTokens(uint256,uint256)\":[{\"notice\":\"Thrown when the amount of tokens exceeds the maximum allowed to operate.\"}],\"HorizonStakingVerifierNotAllowed(address)\":[{\"notice\":\"Thrown when a service provider attempts to operate on verifiers that are not allowed.\"}]},\"events\":{\"AllowedLockedVerifierSet(address,bool)\":{\"notice\":\"Emitted when a verifier is allowed or disallowed to be used for locked provisions.\"},\"DelegatedTokensWithdrawn(address,address,address,uint256)\":{\"notice\":\"Emitted when a delegator withdraws tokens from a provision after thawing.\"},\"DelegationFeeCutSet(address,address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider sets delegation fee cuts for a verifier.\"},\"DelegationSlashed(address,address,uint256)\":{\"notice\":\"Emitted when a delegation pool is slashed by a verifier.\"},\"DelegationSlashingEnabled(bool)\":{\"notice\":\"Emitted when the delegation slashing global flag is set.\"},\"DelegationSlashingSkipped(address,address,uint256)\":{\"notice\":\"Emitted when a delegation pool would have been slashed by a verifier, but the slashing was skipped because delegation slashing global parameter is not enabled.\"},\"MaxThawingPeriodSet(uint64)\":{\"notice\":\"Emitted when the global maximum thawing period allowed for provisions is set.\"},\"ProvisionCreated(address,address,uint256,uint32,uint64)\":{\"notice\":\"Emitted when a service provider provisions staked tokens to a verifier.\"},\"ProvisionIncreased(address,address,uint256)\":{\"notice\":\"Emitted whenever staked tokens are added to an existing provision\"},\"ProvisionParametersSet(address,address,uint32,uint64)\":{\"notice\":\"Emitted when a service provider accepts a staged provision parameter update.\"},\"ProvisionParametersStaged(address,address,uint32,uint64)\":{\"notice\":\"Emitted when a service provider stages a provision parameter update.\"},\"ProvisionSlashed(address,address,uint256)\":{\"notice\":\"Emitted when a provision is slashed by a verifier.\"},\"ProvisionThawed(address,address,uint256)\":{\"notice\":\"Emitted when a service provider thaws tokens from a provision.\"},\"StakeLocked(address,uint256,uint256)\":{\"notice\":\"Emitted when a service provider unstakes tokens during the transition period.\"},\"StakeWithdrawn(address,uint256)\":{\"notice\":\"Emitted when a service provider withdraws tokens during the transition period.\"},\"ThawRequestCreated(address,address,address,uint256,uint64,bytes32)\":{\"notice\":\"Emitted when a thaw request is created.\"},\"ThawRequestFulfilled(bytes32,uint256,uint256,uint64,bool)\":{\"notice\":\"Emitted when a thaw request is fulfilled, meaning the stake is released.\"},\"ThawRequestsFulfilled(address,address,address,uint256,uint256)\":{\"notice\":\"Emitted when a series of thaw requests are fulfilled.\"},\"ThawingPeriodCleared()\":{\"notice\":\"Emitted when the legacy global thawing period is set to zero.\"},\"TokensDelegated(address,address,address,uint256)\":{\"notice\":\"Emitted when tokens are delegated to a provision.\"},\"TokensDeprovisioned(address,address,uint256)\":{\"notice\":\"Emitted when a service provider removes tokens from a provision.\"},\"TokensToDelegationPoolAdded(address,address,uint256)\":{\"notice\":\"Emitted when tokens are added to a delegation pool's reserve.\"},\"TokensUndelegated(address,address,address,uint256)\":{\"notice\":\"Emitted when a delegator undelegates tokens from a provision and starts thawing them.\"},\"VerifierTokensSent(address,address,address,uint256)\":{\"notice\":\"Emitted when the verifier cut is sent to the verifier after slashing a provision.\"}},\"kind\":\"user\",\"methods\":{\"acceptProvisionParameters(address)\":{\"notice\":\"Accepts a staged provision parameter update.\"},\"addToDelegationPool(address,address,uint256)\":{\"notice\":\"Add tokens to a delegation pool without issuing shares. Used by data services to pay delegation fees/rewards. Delegators SHOULD NOT call this function.\"},\"addToProvision(address,address,uint256)\":{\"notice\":\"Adds tokens from the service provider's idle stake to a provision\"},\"clearThawingPeriod()\":{\"notice\":\"Clear the legacy global thawing period. This signifies the end of the transition period, after which no legacy allocations should be left.\"},\"delegate(address,address,uint256,uint256)\":{\"notice\":\"Delegate tokens to a provision.\"},\"delegate(address,uint256)\":{\"notice\":\"Delegate tokens to the subgraph data service provision. This function is for backwards compatibility with the legacy staking contract. It only allows delegating to the subgraph data service and DOES NOT have slippage protection.\"},\"deprovision(address,address,uint256)\":{\"notice\":\"Remove tokens from a provision and move them back to the service provider's idle stake.\"},\"isAuthorized(address,address,address)\":{\"notice\":\"Check if an operator is authorized for the caller on a specific verifier / data service.\"},\"provision(address,address,uint256,uint32,uint64)\":{\"notice\":\"Provision stake to a verifier. The tokens will be locked with a thawing period and will be slashable by the verifier. This is the main mechanism to provision stake to a data service, where the data service is the verifier. This function can be called by the service provider or by an operator authorized by the provider for this specific verifier.\"},\"provisionLocked(address,address,uint256,uint32,uint64)\":{\"notice\":\"Provision stake to a verifier using locked tokens (i.e. from GraphTokenLockWallets).\"},\"redelegate(address,address,address,address,uint256,uint256)\":{\"notice\":\"Re-delegate undelegated tokens from a provision after thawing to a `newServiceProvider` and `newVerifier`.\"},\"reprovision(address,address,address,uint256)\":{\"notice\":\"Move already thawed stake from one provision into another provision This function can be called by the service provider or by an operator authorized by the provider for the two corresponding verifiers.\"},\"setAllowedLockedVerifier(address,bool)\":{\"notice\":\"Sets a verifier as a globally allowed verifier for locked provisions.\"},\"setDelegationFeeCut(address,address,uint8,uint256)\":{\"notice\":\"Set the fee cut for a verifier on a specific payment type.\"},\"setDelegationSlashingEnabled()\":{\"notice\":\"Set the global delegation slashing flag to true.\"},\"setMaxThawingPeriod(uint64)\":{\"notice\":\"Sets the global maximum thawing period allowed for provisions.\"},\"setOperator(address,address,bool)\":{\"notice\":\"Authorize or unauthorize an address to be an operator for the caller on a data service.\"},\"setOperatorLocked(address,address,bool)\":{\"notice\":\"Authorize or unauthorize an address to be an operator for the caller on a verifier.\"},\"setProvisionParameters(address,address,uint32,uint64)\":{\"notice\":\"Stages a provision parameter update. Note that the change is not effective until the verifier calls {acceptProvisionParameters}.\"},\"slash(address,uint256,uint256,address)\":{\"notice\":\"Slash a service provider. This can only be called by a verifier to which the provider has provisioned stake, and up to the amount of tokens they have provisioned. If the service provider's stake is not enough, the associated delegation pool might be slashed depending on the value of the global delegation slashing flag. Part of the slashed tokens are sent to the `verifierDestination` as a reward.\"},\"stake(uint256)\":{\"notice\":\"Deposit tokens on the staking contract.\"},\"stakeTo(address,uint256)\":{\"notice\":\"Deposit tokens on the service provider stake, on behalf of the service provider.\"},\"stakeToProvision(address,address,uint256)\":{\"notice\":\"Deposit tokens on the service provider stake, on behalf of the service provider, provisioned to a specific verifier.\"},\"thaw(address,address,uint256)\":{\"notice\":\"Start thawing tokens to remove them from a provision. This function can be called by the service provider or by an operator authorized by the provider for this specific verifier. Note that removing tokens from a provision is a two step process: - First the tokens are thawed using this function. - Then after the thawing period, the tokens are removed from the provision using {deprovision} or {reprovision}.\"},\"undelegate(address,address,uint256)\":{\"notice\":\"Undelegate tokens from a provision and start thawing them. Note that undelegating tokens from a provision is a two step process: - First the tokens are thawed using this function. - Then after the thawing period, the tokens are removed from the provision using {withdrawDelegated}. Requirements: - `shares` cannot be zero. Emits a {TokensUndelegated} and {ThawRequestCreated} event.\"},\"undelegate(address,address,uint256,address)\":{\"notice\":\"Undelegate tokens from a provision and start thawing them. The tokens will be withdrawable by the `beneficiary` after the thawing period. Note that undelegating tokens from a provision is a two step process: - First the tokens are thawed using this function. - Then after the thawing period, the tokens are removed from the provision using {withdrawDelegated}. Requirements: - `shares` cannot be zero. - `beneficiary` cannot be the zero address. Emits a {TokensUndelegated} and {ThawRequestCreated} event.\"},\"undelegate(address,uint256)\":{\"notice\":\"Undelegate tokens from the subgraph data service provision and start thawing them. This function is for backwards compatibility with the legacy staking contract. It only allows undelegating from the subgraph data service.\"},\"unstake(uint256)\":{\"notice\":\"Move idle stake back to the owner's account. Stake is removed from the protocol: - During the transition period it's locked for a period of time before it can be withdrawn by calling {withdraw}. - After the transition period it's immediately withdrawn.\"},\"withdraw()\":{\"notice\":\"Withdraw service provider tokens once the thawing period (initiated by {unstake}) has passed. All thawed tokens are withdrawn.\"},\"withdrawDelegated(address,address)\":{\"notice\":\"Withdraw undelegated tokens from the subgraph data service provision after thawing. This function is for backwards compatibility with the legacy staking contract. It only allows withdrawing from the subgraph data service and DOES NOT have slippage protection in case the caller opts for re-delegating.\"},\"withdrawDelegated(address,address,uint256)\":{\"notice\":\"Withdraw undelegated tokens from a provision after thawing.\"}},\"notice\":\"Provides functions for managing stake, provisions, delegations, and slashing.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":\"IHorizonStakingMain\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd161d01d49ec47200c1c8374d11ad7d9a2c1776a2f87c546f78535ffa33b3954\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7da68f651214064c6afb1b43955879a2eaea6076c44e92975abf31735b0e1012\",\"dweb:/ipfs/QmZBHtfqhzWsv1oWy73pR8zabgLnhqpiWhknK4TzrPBhV2\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol": { - "IHorizonStakingTypes": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"In order to preserve storage compatibility some data structures keep deprecated fields. These structures have then two representations, an internal one used by the contract storage and a public one. Getter functions should retrieve internal representations, remove deprecated fields and return the public representation.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Defines the data types used in the Horizon staking contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":\"IHorizonStakingTypes\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/libraries/LinkedList.sol": { - "LinkedList": { - "abi": [ - { - "inputs": [], - "name": "LinkedListEmptyList", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidIterations", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidZeroId", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListMaxElementsExceeded", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122046bf94561b4edd4bcb4d05c7fa400e3bea62c5f830d5ae4896d3c844466cc09d64736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CHAINID 0xBF SWAP5 JUMP SHL 0x4E 0xDD 0x4B 0xCB 0x4D SDIV 0xC7 STATICCALL BLOCKHASH 0xE EXTCODESIZE 0xEA PUSH3 0xC5F830 0xD5 0xAE BASEFEE SWAP7 0xD3 0xC8 PREVRANDAO CHAINID PUSH13 0xC09D64736F6C634300081B0033 ", - "sourceMap": "646:4780:29:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;646:4780:29;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122046bf94561b4edd4bcb4d05c7fa400e3bea62c5f830d5ae4896d3c844466cc09d64736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CHAINID 0xBF SWAP5 JUMP SHL 0x4E 0xDD 0x4B 0xCB 0x4D SDIV 0xC7 STATICCALL BLOCKHASH 0xE EXTCODESIZE 0xEA PUSH3 0xC5F830 0xD5 0xAE BASEFEE SWAP7 0xD3 0xC8 PREVRANDAO CHAINID PUSH13 0xC09D64736F6C634300081B0033 ", - "sourceMap": "646:4780:29:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"LinkedListEmptyList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LinkedListInvalidIterations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LinkedListInvalidZeroId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LinkedListMaxElementsExceeded\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"LinkedList library\",\"version\":1},\"userdoc\":{\"errors\":{\"LinkedListEmptyList()\":[{\"notice\":\"Thrown when trying to remove an item from an empty list\"}],\"LinkedListInvalidIterations()\":[{\"notice\":\"Thrown when trying to traverse a list with more iterations than elements\"}],\"LinkedListInvalidZeroId()\":[{\"notice\":\"Thrown when trying to add an item with id equal to bytes32(0)\"}],\"LinkedListMaxElementsExceeded()\":[{\"notice\":\"Thrown when trying to add an item to a list that has reached the maximum number of elements\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"A library to manage singly linked lists. The library makes no assumptions about the contents of the items, the only requirements on the items are: - they must be represented by a unique bytes32 id - the id of the item must not be bytes32(0) - each item must have a reference to the next item in the list - the list cannot have more than `MAX_ITEMS` items A contract using this library must store: - a LinkedList.List to keep track of the list metadata - a mapping from bytes32 to the item data\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":\"LinkedList\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/libraries/MathUtils.sol": { - "MathUtils": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206851dc21501ea948eeda92c5be24d7ab740711ef1bc0163d266c2040a522d1b964736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0x51DC21501EA948EEDA SWAP3 0xC5 0xBE 0x24 0xD7 0xAB PUSH21 0x711EF1BC0163D266C2040A522D1B964736F6C6343 STOP ADDMOD SHL STOP CALLER ", - "sourceMap": "171:1214:30:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;171:1214:30;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206851dc21501ea948eeda92c5be24d7ab740711ef1bc0163d266c2040a522d1b964736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0x51DC21501EA948EEDA SWAP3 0xC5 0xBE 0x24 0xD7 0xAB PUSH21 0x711EF1BC0163D266C2040A522D1B964736F6C6343 STOP ADDMOD SHL STOP CALLER ", - "sourceMap": "171:1214:30:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"MathUtils Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A collection of functions to perform math operations\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/libraries/MathUtils.sol\":\"MathUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/libraries/MathUtils.sol\":{\"keccak256\":\"0xfb077625fde8c7bb17ba4674956099673bd144546d90d2a91a8463d17b625b0e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6ed606a9a5652778589ae03495af5c344fed262157dd372d8c0e1757c80713b0\",\"dweb:/ipfs/QmTePK9JT74GsWj4rxL2H7hUyuM3LeMrnojLvehU8yiD5r\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/libraries/PPMMath.sol": { - "PPMMath": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "PPMMathInvalidPPM", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220260488b607a9b82e78a0a2b98d50d4664075e936d8003c5815c84e1ae5aa902164736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x26 DIV DUP9 0xB6 SMOD 0xA9 0xB8 0x2E PUSH25 0xA0A2B98D50D4664075E936D8003C5815C84E1AE5AA90216473 PUSH16 0x6C634300081B00330000000000000000 ", - "sourceMap": "189:1659:31:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;189:1659:31;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220260488b607a9b82e78a0a2b98d50d4664075e936d8003c5815c84e1ae5aa902164736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x26 DIV DUP9 0xB6 SMOD 0xA9 0xB8 0x2E PUSH25 0xA0A2B98D50D4664075E936D8003C5815C84E1AE5AA90216473 PUSH16 0x6C634300081B00330000000000000000 ", - "sourceMap": "189:1659:31:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"PPMMathInvalidMulPPM\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"PPMMathInvalidPPM\",\"type\":\"error\"}],\"devdoc\":{\"errors\":{\"PPMMathInvalidMulPPM(uint256,uint256)\":[{\"params\":{\"a\":\"The first value in the multiplication.\",\"b\":\"The second value in the multiplication.\"}}],\"PPMMathInvalidPPM(uint256)\":[{\"params\":{\"value\":\"The value that is not in PPM.\"}}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"PPMMath library\",\"version\":1},\"userdoc\":{\"errors\":{\"PPMMathInvalidMulPPM(uint256,uint256)\":[{\"notice\":\"Thrown when no value in a multiplication is in PPM.\"}],\"PPMMathInvalidPPM(uint256)\":[{\"notice\":\"Thrown when a value is expected to be in PPM but is not.\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"A library for handling calculations with parts per million (PPM) amounts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":\"PPMMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0x2bc503df758ca7fcc2a741b41350158a53e295974a37478336f2ed8b76e460a5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://24af9fe8ca1e0daae752a4b331b77c3a268a2a358e2e34a50df8ef283dd8670f\",\"dweb:/ipfs/QmYBJAMWHeiWWepGTTdkUSN4Vn2oP4GvyeqiwDK1TVdfce\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/libraries/UintRange.sol": { - "UintRange": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a3b0e5a455e6e95b509ac321ae127ac8b24c00757baae31a6e3b07d611430d2964736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 0xB0 0xE5 LOG4 SSTORE 0xE6 0xE9 JUMPDEST POP SWAP11 0xC3 0x21 0xAE SLT PUSH27 0xC8B24C00757BAAE31A6E3B07D611430D2964736F6C634300081B00 CALLER ", - "sourceMap": "172:422:32:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;172:422:32;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a3b0e5a455e6e95b509ac321ae127ac8b24c00757baae31a6e3b07d611430d2964736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 0xB0 0xE5 LOG4 SSTORE 0xE6 0xE9 JUMPDEST POP SWAP11 0xC3 0x21 0xAE SLT PUSH27 0xC8B24C00757BAAE31A6E3B07D611430D2964736F6C634300081B00 CALLER ", - "sourceMap": "172:422:32:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"UintRange library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A library for handling range checks on uint256 values.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":\"UintRange\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x3389a6fae8651820ced92bdc06b7168280055ea65467ac094c5c3fd950700820\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2e3756bebea135066625cba99d4d608ca1770a21abfd3cfbc05a3e1b280c688b\",\"dweb:/ipfs/QmQeebmsKNQqKpGKYPEyJqrpF3ZjP71udwPgoGEdTfvTSb\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol": { - "GraphDirectory": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractName\",\"type\":\"bytes\"}],\"name\":\"GraphDirectoryInvalidZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphStaking\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphPayments\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEscrow\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEpochManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphRewardsManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphTokenGateway\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphProxyAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphCuration\",\"type\":\"address\"}],\"name\":\"GraphDirectoryInitialized\",\"type\":\"event\"}],\"devdoc\":{\"errors\":{\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"params\":{\"contractName\":\"The name of the contract that was not found, or the controller\"}}]},\"events\":{\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"params\":{\"graphController\":\"The Graph Controller contract address\",\"graphCuration\":\"The Curation contract address\",\"graphEpochManager\":\"The Epoch Manager contract address\",\"graphEscrow\":\"The Payments Escrow contract address\",\"graphPayments\":\"The Graph Payments contract address\",\"graphProxyAdmin\":\"The Graph Proxy Admin contract address\",\"graphRewardsManager\":\"The Rewards Manager contract address\",\"graphStaking\":\"The Horizon Staking contract address\",\"graphToken\":\"The Graph Token contract address\",\"graphTokenGateway\":\"The Token Gateway contract address\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Requirements: - `controller` cannot be zero address Emits a {GraphDirectoryInitialized} event\",\"params\":{\"controller\":\"The address of the Graph Controller contract.\"}}},\"title\":\"GraphDirectory contract\",\"version\":1},\"userdoc\":{\"errors\":{\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"notice\":\"Thrown when either the controller is the zero address or a contract address is not found on the controller\"}]},\"events\":{\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"notice\":\"Emitted when the GraphDirectory is initialized\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor for the GraphDirectory contract\"}},\"notice\":\"This contract is meant to be inherited by other contracts that need to keep track of the addresses in Graph Horizon contracts. It fetches the addresses from the Controller supplied during construction, and uses immutable variables to minimize gas costs.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":\"GraphDirectory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\":{\"keccak256\":\"0x3cbcc6e4629543a99acacc7ee4ffa6c063b9fb17d3597ccd2f9481008e3633bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d6bb0bb830b67d579e57a261e5f5d9e90b32dc006b02badbecf1f6c82c0a5100\",\"dweb:/ipfs/Qmd38iNXZpinwbNRJPEAA8r9bmmtRwjTSK1SkmH47ge4kJ\"]},\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":{\"keccak256\":\"0x17e4db429003cab08cd2859db94b95e0cee1f9478c1881903a4104def8fdc048\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://52ed58228a0e92aeb3493473a6e02f92d26a4e4eb0c46d38dd446e3bfcb6691e\",\"dweb:/ipfs/QmZzWxHAztdz2Q7cobqVEf4ExGpNuqWJFYgs2oHCgApjW6\"]},\"@graphprotocol/contracts/contracts/epochs/IEpochManager.sol\":{\"keccak256\":\"0x0f4b3a3569c023d2610d0d8b37b3ecb0b67f848d77aa063bb311756670017e85\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://df7c43568e554b301134aa2c58e4889ad0d3dcfec40e834b63621a43f39da154\",\"dweb:/ipfs/QmZeSV9AM6FKCkH9QYyF7i5nVggseEJXbvWbtrgUeXqQpo\"]},\"@graphprotocol/contracts/contracts/governance/IController.sol\":{\"keccak256\":\"0xe37df86cdea385d708ba00862cd9e04940e4f2aa50354fb3a9d2d4f505d5509a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0f6c9fd2b7a8c5a6b89ef12c7423144df04a5f251d5480be1b73c74a785ff12a\",\"dweb:/ipfs/QmYpiCQoxbDEYQ2FNA39Z4FGfoxfQ8jvH1Z3ccrqguQFMP\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0x5b4e4b27c41121831d28a6a71ed90fcb44c34d2d3e722993dac74c239ad653fd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9312944c7b9f5f5901e6b899e11838a628c5a146b6ee70f2bd4664010d652e68\",\"dweb:/ipfs/QmYMjrhnL5pefMQfSf64wFrqmqEAYgxoyf3jb8g2jz1kMc\"]},\"@graphprotocol/contracts/contracts/token/IGraphToken.sol\":{\"keccak256\":\"0x2ffad6798d641c8d1288730be725c43041c803caceaf6d9985122d000ad5761c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5f782a5670037fc9223dc20fd4f99c0277a9bec7d08f7800b0a0733e819a07cb\",\"dweb:/ipfs/QmP3K2QnmukScCh1nzgphYdg7AiAuTaT914jq4txLYNpra\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0xa9c752ea887bd2a3637934b5f197526b6fac46b0b924deb75a8d224290ccbc95\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0a6625b4175959cd53af91a3741c12fb1fa2e91e0ab2302dff8a06bf7a66781\",\"dweb:/ipfs/QmPMoc5DN9gZr22gWkKGQDgJ8eqK1pChGQYTbPLC9LDCiY\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0xa32bd068b2a6a6cdd3863439aa280b29718ebb0a94da59e5806455c75af7994e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d1cdd344d026af2fc6e136337f9f86354d1b2731a6076e498c2ffd370705cdb5\",\"dweb:/ipfs/QmZe4rGR9gvyWP9ENDGLWxcB5a67qvbqbFKKhr9Di7VkEN\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x04da4bb0cfc6db397d6140ae72d6a4ffcadb19b5a8fc654ae3fd1550b64526ff\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9dca21008f5cf563d1863148b151d103b92a99c7bb0fe4667fdd9236bfa9881e\",\"dweb:/ipfs/QmPBfG7s2ajEYn35oJk6TjQ6wCQ7FNVAuZnzXbAENbKF9i\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x2aa4aa3745b13f9cadcbf3f93888ebbaa8f5d1da3b6f845f1741d51b16ff9944\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://290e13fd3dc9170244aaa4c6e5f5646878d011ee25024926d4d60d40eb6cf8c9\",\"dweb:/ipfs/QmPWwXxhnxmNSUpVF6caT1cXVtV2c1ackJiMzAbUG4z6Fo\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0xbb225acac73f4245b30a8fe9c0bf4bcc8b310f40da526a0447a2303f1ca63e96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://207826b2277a0bd42b8a4d8825f6b16e46d6dc8039e4027faa22df462aa06079\",\"dweb:/ipfs/QmYS177dKBuY7iRUdwBMHxSMd6SfNpARTApLHMLgFCozTy\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd161d01d49ec47200c1c8374d11ad7d9a2c1776a2f87c546f78535ffa33b3954\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7da68f651214064c6afb1b43955879a2eaea6076c44e92975abf31735b0e1012\",\"dweb:/ipfs/QmZBHtfqhzWsv1oWy73pR8zabgLnhqpiWhknK4TzrPBhV2\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1be743a301a082944c78ba37b48c466ebc47d2ddd94529a3e05ed828e4413c68\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://663e05ec37777a21b344acb96235db183dcfac14e42048cfc921ab2038cd77d1\",\"dweb:/ipfs/QmY5mQ2L3BLrB8TDNXadDhjR2nCb7ssNPTJ6zegJnC5bjq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": { - "OwnableUpgradeable": { - "abi": [ - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "owner()": "8da5cb5b", - "renounceOwnership()": "715018a6", - "transferOwnership(address)": "f2fde38b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { - "Initializable": { - "abi": [ - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { - "ContextUpgradeable": { - "abi": [ - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol": { - "MulticallUpgradeable": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "multicall(bytes[])": "ac9650d8" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Provides a function to batch together multiple calls in a single external call. Consider any assumption about calldata validation performed by the sender may be violated if it's not especially careful about sending transactions invoking {multicall}. For example, a relay address that filters function selectors won't filter calls nested within a {multicall} operation. NOTE: Since 5.0.1 and 4.9.4, this contract identifies non-canonical contexts (i.e. `msg.sender` is not {_msgSender}). If a non-canonical context is identified, the following self `delegatecall` appends the last bytes of `msg.data` to the subcall. This makes it safe to use with {ERC2771Context}. Contexts that don't affect the resolution of {_msgSender} are not propagated to subcalls.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"multicall(bytes[])\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Receives and executes a batch of function calls on this contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol\":\"MulticallUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0x1545b1796f0b94f811d95b8b208c0668dacfc7768247d22b63161a47c4c5ef4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1dccf7856b960b2ed7565906b457812ad8d29a15d403f17702ac7e090680300\",\"dweb:/ipfs/QmUqqibiekFv84mdq7zeyRF56mLJbFyFUxWKTrz8Twzkpn\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol": { - "PausableUpgradeable": { - "abi": [ - { - "inputs": [], - "name": "EnforcedPause", - "type": "error" - }, - { - "inputs": [], - "name": "ExpectedPause", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "paused()": "5c975abb" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"errors\":{\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol\":\"PausableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0x92915b7f7f642c6be3f65bfd1522feb5d5b6ef25f755f4dbb51df32c868f2f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ad36d5cc7e190e1ee6c94b24659bc3a31396c4c36b6ffa6a509e10661f8007\",\"dweb:/ipfs/QmPFyc4zMh2zo6YWZt25gjm3YdR2hg6wGETaWw256fMmJJ\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol": { - "EIP712Upgradeable": { - "abi": [ - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [], - "name": "EIP712DomainChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [], - "name": "eip712Domain", - "outputs": [ - { - "internalType": "bytes1", - "name": "fields", - "type": "bytes1" - }, - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifyingContract", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "uint256[]", - "name": "extensions", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "eip712Domain()": "84b0196e" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data. The encoding scheme specified in the EIP requires a domain separator and a hash of the typed structured data, whose encoding is very generic and therefore its implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in order to produce the hash of their typed data using a combination of `abi.encode` and `keccak256`. This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain separator of the implementation contract. This will cause the {_domainSeparatorV4} function to always rebuild the separator from the immutable values, which is cheaper than accessing a cached version in cold storage.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\":\"EIP712Upgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x85462422a22578744581e012e9aa0a391958cb360288b0b63f29bf0431d70327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bc529e2b9b28da5d26da451058250d85afcaa3c5083ee273ac68fa6bf956b78\",\"dweb:/ipfs/Qmd3Aq59ztmoVmHigsaR4YjkXWKERVpjfQ4a2PHk7Ke6Rx\"]},\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/interfaces/IERC5267.sol": { - "IERC5267": { - "abi": [ - { - "anonymous": false, - "inputs": [], - "name": "EIP712DomainChanged", - "type": "event" - }, - { - "inputs": [], - "name": "eip712Domain", - "outputs": [ - { - "internalType": "bytes1", - "name": "fields", - "type": "bytes1" - }, - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifyingContract", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "uint256[]", - "name": "extensions", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "eip712Domain()": "84b0196e" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":\"IERC5267\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "IERC20": { - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "allowance(address,address)": "dd62ed3e", - "approve(address,uint256)": "095ea7b3", - "balanceOf(address)": "70a08231", - "totalSupply()": "18160ddd", - "transfer(address,uint256)": "a9059cbb", - "transferFrom(address,address,uint256)": "23b872dd" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/Address.sol": { - "Address": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "AddressInsufficientBalance", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fe3e609d11a8fa71bf67e2e54692a25b51e329a03cd611c68726ec87e804639b64736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID RETURNDATACOPY PUSH1 0x9D GT 0xA8 STATICCALL PUSH18 0xBF67E2E54692A25B51E329A03CD611C68726 0xEC DUP8 0xE8 DIV PUSH4 0x9B64736F PUSH13 0x634300081B0033000000000000 ", - "sourceMap": "195:6066:42:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;195:6066:42;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fe3e609d11a8fa71bf67e2e54692a25b51e329a03cd611c68726ec87e804639b64736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID RETURNDATACOPY PUSH1 0x9D GT 0xA8 STATICCALL PUSH18 0xBF67E2E54692A25B51E329A03CD611C68726 0xEC DUP8 0xE8 DIV PUSH4 0x9B64736F PUSH13 0x634300081B0033000000000000 ", - "sourceMap": "195:6066:42:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/Strings.sol": { - "Strings": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "StringsInsufficientHexLength", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c2e72d0c4d10d8f74a441104075ed67673ad32e8e2a4dda4052c8aceaba1f7764736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 0x2E PUSH19 0xD0C4D10D8F74A441104075ED67673AD32E8E2A 0x4D 0xDA BLOCKHASH MSTORE 0xC8 0xAC 0xEA 0xBA 0x1F PUSH24 0x64736F6C634300081B003300000000000000000000000000 ", - "sourceMap": "251:2847:43:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;251:2847:43;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c2e72d0c4d10d8f74a441104075ed67673ad32e8e2a4dda4052c8aceaba1f7764736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 0x2E PUSH19 0xD0C4D10D8F74A441104075ED67673AD32E8E2A 0x4D 0xDA BLOCKHASH MSTORE 0xC8 0xAC 0xEA 0xBA 0x1F PUSH24 0x64736F6C634300081B003300000000000000000000000000 ", - "sourceMap": "251:2847:43:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { - "ECDSA": { - "abi": [ - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c4e42b0cde479b6c802c7da1632c355d9591fad4b53006c3ab6a2e63e5e422764736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 0x4E TIMESTAMP 0xB0 0xCD 0xE4 PUSH26 0xB6C802C7DA1632C355D9591FAD4B53006C3AB6A2E63E5E422764 PUSH20 0x6F6C634300081B00330000000000000000000000 ", - "sourceMap": "344:7386:44:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;344:7386:44;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208c4e42b0cde479b6c802c7da1632c355d9591fad4b53006c3ab6a2e63e5e422764736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP13 0x4E TIMESTAMP 0xB0 0xCD 0xE4 PUSH26 0xB6C802C7DA1632C355D9591FAD4B53006C3AB6A2E63E5E422764 PUSH20 0x6F6C634300081B00330000000000000000000000 ", - "sourceMap": "344:7386:44:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { - "MessageHashUtils": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ddd23abf32dcf872cabe5e1ace71e769357d61e045ae071e589e695df433315b64736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD 0xD2 GASPRICE 0xBF ORIGIN 0xDC 0xF8 PUSH19 0xCABE5E1ACE71E769357D61E045AE071E589E69 TSTORE DELEGATECALL CALLER BALANCE JUMPDEST PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", - "sourceMap": "521:3235:45:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;521:3235:45;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ddd23abf32dcf872cabe5e1ace71e769357d61e045ae071e589e695df433315b64736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDD 0xD2 GASPRICE 0xBF ORIGIN 0xDC 0xF8 PUSH19 0xCABE5E1ACE71E769357D61E045AE071E589E69 TSTORE DELEGATECALL CALLER BALANCE JUMPDEST PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", - "sourceMap": "521:3235:45:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing. The library provides methods for generating a hash of a message that conforms to the https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712] specifications.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":\"MessageHashUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/math/Math.sol": { - "Math": { - "abi": [ - { - "inputs": [], - "name": "MathOverflowedMulDiv", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1120efff84bae0cea4edd0fdde61e0b306e3d58aaa2cb2d77c1fa36fb63808164736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 SLT 0xE SELFDESTRUCT 0xF8 0x4B 0xAE 0xC 0xEA 0x4E 0xDD 0xF 0xDD 0xE6 0x1E SIGNEXTEND ADDRESS PUSH15 0x3D58AAA2CB2D77C1FA36FB63808164 PUSH20 0x6F6C634300081B00330000000000000000000000 ", - "sourceMap": "203:14914:46:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;203:14914:46;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a1120efff84bae0cea4edd0fdde61e0b306e3d58aaa2cb2d77c1fa36fb63808164736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG1 SLT 0xE SELFDESTRUCT 0xF8 0x4B 0xAE 0xC 0xEA 0x4E 0xDD 0xF 0xDD 0xE6 0x1E SIGNEXTEND ADDRESS PUSH15 0x3D58AAA2CB2D77C1FA36FB63808164 PUSH20 0x6F6C634300081B00330000000000000000000000 ", - "sourceMap": "203:14914:46:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "@openzeppelin/contracts/utils/math/SignedMath.sol": { - "SignedMath": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fdb970fc41318ccc2cf9b4d9f0f54635efbc9112788a867d21c127642b0246bd64736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 REVERT 0xB9 PUSH17 0xFC41318CCC2CF9B4D9F0F54635EFBC9112 PUSH25 0x8A867D21C127642B0246BD64736F6C634300081B0033000000 ", - "sourceMap": "216:1047:47:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;216:1047:47;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fdb970fc41318ccc2cf9b4d9f0f54635efbc9112788a867d21c127642b0246bd64736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 REVERT 0xB9 PUSH17 0xFC41318CCC2CF9B4D9F0F54635EFBC9112 PUSH25 0x8A867D21C127642B0246BD64736F6C634300081B0033000000 ", - "sourceMap": "216:1047:47:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "contracts/DisputeManager.sol": { - "DisputeManager": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "controller", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expectedLength", - "type": "uint256" - } - ], - "name": "AttestationInvalidBytesLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerDisputeAlreadyCreated", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "enum IDisputeManager.DisputeStatus", - "name": "status", - "type": "uint8" - } - ], - "name": "DisputeManagerDisputeNotPending", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerDisputePeriodNotFinished", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerDisputePeriodZero", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "DisputeManagerIndexerNotFound", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerInvalidDispute", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "DisputeManagerInvalidDisputeDeposit", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "cut", - "type": "uint32" - } - ], - "name": "DisputeManagerInvalidFishermanReward", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxSlashingCut", - "type": "uint32" - } - ], - "name": "DisputeManagerInvalidMaxSlashingCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokensSlash", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTokensSlash", - "type": "uint256" - } - ], - "name": "DisputeManagerInvalidTokensSlash", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "relatedDisputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerMustAcceptRelatedDispute", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "requestCID1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "requestCID2", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID2", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId2", - "type": "bytes32" - } - ], - "name": "DisputeManagerNonConflictingAttestations", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId2", - "type": "bytes32" - } - ], - "name": "DisputeManagerNonMatchingSubgraphDeployment", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerNotArbitrator", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerNotFisherman", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerZeroTokens", - "type": "error" - }, - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "arbitrator", - "type": "address" - } - ], - "name": "ArbitratorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeCancelled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "DisputeDepositSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeDrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId1", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId2", - "type": "bytes32" - } - ], - "name": "DisputeLinked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "disputePeriod", - "type": "uint64" - } - ], - "name": "DisputePeriodSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeRejected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "fishermanRewardCut", - "type": "uint32" - } - ], - "name": "FishermanRewardCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "name": "IndexingDisputeCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "maxSlashingCut", - "type": "uint32" - } - ], - "name": "MaxSlashingCutSet", - "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": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "attestation", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "name": "QueryDisputeCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "subgraphService", - "type": "address" - } - ], - "name": "SubgraphServiceSet", - "type": "event" - }, - { - "inputs": [], - "name": "MAX_FISHERMAN_REWARD_CUT", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokensSlash", - "type": "uint256" - } - ], - "name": "acceptDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "arbitrator", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation1", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation2", - "type": "tuple" - } - ], - "name": "areConflictingAttestations", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "cancelDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - } - ], - "name": "createIndexingDispute", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "attestationData", - "type": "bytes" - } - ], - "name": "createQueryDispute", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "attestationData1", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "attestationData2", - "type": "bytes" - } - ], - "name": "createQueryDisputeConflict", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "disputeDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "disputePeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "disputes", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deposit", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "relatedDisputeId", - "type": "bytes32" - }, - { - "internalType": "enum IDisputeManager.DisputeType", - "name": "disputeType", - "type": "uint8" - }, - { - "internalType": "enum IDisputeManager.DisputeStatus", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "drawDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "internalType": "struct Attestation.Receipt", - "name": "receipt", - "type": "tuple" - } - ], - "name": "encodeReceipt", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "fishermanRewardCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation", - "type": "tuple" - } - ], - "name": "getAttestationIndexer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDisputePeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "getStakeSnapshot", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "arbitrator", - "type": "address" - }, - { - "internalType": "uint64", - "name": "disputePeriod", - "type": "uint64" - }, - { - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "fishermanRewardCut_", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "maxSlashingCut_", - "type": "uint32" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "isDisputeCreated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxSlashingCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "rejectDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "arbitrator", - "type": "address" - } - ], - "name": "setArbitrator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "setDisputeDeposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "disputePeriod", - "type": "uint64" - } - ], - "name": "setDisputePeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "fishermanRewardCut_", - "type": "uint32" - } - ], - "name": "setFishermanRewardCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxSlashingCut_", - "type": "uint32" - } - ], - "name": "setMaxSlashingCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "subgraphService", - "type": "address" - } - ], - "name": "setSubgraphService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "subgraphService", - "outputs": [ - { - "internalType": "contract ISubgraphService", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_4520": { - "entryPoint": null, - "id": 4520, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_8106": { - "entryPoint": null, - "id": 8106, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_disableInitializers_5070": { - "entryPoint": 1001, - "id": 5070, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_getContractFromController_4652": { - "entryPoint": 827, - "id": 4652, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_getInitializableStorage_5101": { - "entryPoint": null, - "id": 5101, - "parameterSlots": 0, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address_fromMemory": { - "entryPoint": 1179, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_address_t_address_t_address_t_address_t_address__to_t_address_t_address_t_address_t_address_t_address_t_address_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 8, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": 1227, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a__to_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:2355:62", - "nodeType": "YulBlock", - "src": "0:2355:62", - "statements": [ - { - "nativeSrc": "6:3:62", - "nodeType": "YulBlock", - "src": "6:3:62", - "statements": [] - }, - { - "body": { - "nativeSrc": "95:209:62", - "nodeType": "YulBlock", - "src": "95:209:62", - "statements": [ - { - "body": { - "nativeSrc": "141:16:62", - "nodeType": "YulBlock", - "src": "141:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "150:1:62", - "nodeType": "YulLiteral", - "src": "150:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "153:1:62", - "nodeType": "YulLiteral", - "src": "153:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "143:6:62", - "nodeType": "YulIdentifier", - "src": "143:6:62" - }, - "nativeSrc": "143:12:62", - "nodeType": "YulFunctionCall", - "src": "143:12:62" - }, - "nativeSrc": "143:12:62", - "nodeType": "YulExpressionStatement", - "src": "143:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "116:7:62", - "nodeType": "YulIdentifier", - "src": "116:7:62" - }, - { - "name": "headStart", - "nativeSrc": "125:9:62", - "nodeType": "YulIdentifier", - "src": "125:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "112:3:62", - "nodeType": "YulIdentifier", - "src": "112:3:62" - }, - "nativeSrc": "112:23:62", - "nodeType": "YulFunctionCall", - "src": "112:23:62" - }, - { - "kind": "number", - "nativeSrc": "137:2:62", - "nodeType": "YulLiteral", - "src": "137:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "108:3:62", - "nodeType": "YulIdentifier", - "src": "108:3:62" - }, - "nativeSrc": "108:32:62", - "nodeType": "YulFunctionCall", - "src": "108:32:62" - }, - "nativeSrc": "105:52:62", - "nodeType": "YulIf", - "src": "105:52:62" - }, - { - "nativeSrc": "166:29:62", - "nodeType": "YulVariableDeclaration", - "src": "166:29:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "185:9:62", - "nodeType": "YulIdentifier", - "src": "185:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "179:5:62", - "nodeType": "YulIdentifier", - "src": "179:5:62" - }, - "nativeSrc": "179:16:62", - "nodeType": "YulFunctionCall", - "src": "179:16:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "170:5:62", - "nodeType": "YulTypedName", - "src": "170:5:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "258:16:62", - "nodeType": "YulBlock", - "src": "258:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "267:1:62", - "nodeType": "YulLiteral", - "src": "267:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "270:1:62", - "nodeType": "YulLiteral", - "src": "270:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "260:6:62", - "nodeType": "YulIdentifier", - "src": "260:6:62" - }, - "nativeSrc": "260:12:62", - "nodeType": "YulFunctionCall", - "src": "260:12:62" - }, - "nativeSrc": "260:12:62", - "nodeType": "YulExpressionStatement", - "src": "260:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "217:5:62", - "nodeType": "YulIdentifier", - "src": "217:5:62" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "228:5:62", - "nodeType": "YulIdentifier", - "src": "228:5:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "243:3:62", - "nodeType": "YulLiteral", - "src": "243:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "248:1:62", - "nodeType": "YulLiteral", - "src": "248:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "239:3:62", - "nodeType": "YulIdentifier", - "src": "239:3:62" - }, - "nativeSrc": "239:11:62", - "nodeType": "YulFunctionCall", - "src": "239:11:62" - }, - { - "kind": "number", - "nativeSrc": "252:1:62", - "nodeType": "YulLiteral", - "src": "252:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "235:3:62", - "nodeType": "YulIdentifier", - "src": "235:3:62" - }, - "nativeSrc": "235:19:62", - "nodeType": "YulFunctionCall", - "src": "235:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "224:3:62", - "nodeType": "YulIdentifier", - "src": "224:3:62" - }, - "nativeSrc": "224:31:62", - "nodeType": "YulFunctionCall", - "src": "224:31:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "214:2:62", - "nodeType": "YulIdentifier", - "src": "214:2:62" - }, - "nativeSrc": "214:42:62", - "nodeType": "YulFunctionCall", - "src": "214:42:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "207:6:62", - "nodeType": "YulIdentifier", - "src": "207:6:62" - }, - "nativeSrc": "207:50:62", - "nodeType": "YulFunctionCall", - "src": "207:50:62" - }, - "nativeSrc": "204:70:62", - "nodeType": "YulIf", - "src": "204:70:62" - }, - { - "nativeSrc": "283:15:62", - "nodeType": "YulAssignment", - "src": "283:15:62", - "value": { - "name": "value", - "nativeSrc": "293:5:62", - "nodeType": "YulIdentifier", - "src": "293:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "283:6:62", - "nodeType": "YulIdentifier", - "src": "283:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "14:290:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "61:9:62", - "nodeType": "YulTypedName", - "src": "61:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "72:7:62", - "nodeType": "YulTypedName", - "src": "72:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "84:6:62", - "nodeType": "YulTypedName", - "src": "84:6:62", - "type": "" - } - ], - "src": "14:290:62" - }, - { - "body": { - "nativeSrc": "482:160:62", - "nodeType": "YulBlock", - "src": "482:160:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "499:9:62", - "nodeType": "YulIdentifier", - "src": "499:9:62" - }, - { - "kind": "number", - "nativeSrc": "510:2:62", - "nodeType": "YulLiteral", - "src": "510:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "492:6:62", - "nodeType": "YulIdentifier", - "src": "492:6:62" - }, - "nativeSrc": "492:21:62", - "nodeType": "YulFunctionCall", - "src": "492:21:62" - }, - "nativeSrc": "492:21:62", - "nodeType": "YulExpressionStatement", - "src": "492:21:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "533:9:62", - "nodeType": "YulIdentifier", - "src": "533:9:62" - }, - { - "kind": "number", - "nativeSrc": "544:2:62", - "nodeType": "YulLiteral", - "src": "544:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "529:3:62", - "nodeType": "YulIdentifier", - "src": "529:3:62" - }, - "nativeSrc": "529:18:62", - "nodeType": "YulFunctionCall", - "src": "529:18:62" - }, - { - "kind": "number", - "nativeSrc": "549:2:62", - "nodeType": "YulLiteral", - "src": "549:2:62", - "type": "", - "value": "10" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "522:6:62", - "nodeType": "YulIdentifier", - "src": "522:6:62" - }, - "nativeSrc": "522:30:62", - "nodeType": "YulFunctionCall", - "src": "522:30:62" - }, - "nativeSrc": "522:30:62", - "nodeType": "YulExpressionStatement", - "src": "522:30:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "572:9:62", - "nodeType": "YulIdentifier", - "src": "572:9:62" - }, - { - "kind": "number", - "nativeSrc": "583:2:62", - "nodeType": "YulLiteral", - "src": "583:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "568:3:62", - "nodeType": "YulIdentifier", - "src": "568:3:62" - }, - "nativeSrc": "568:18:62", - "nodeType": "YulFunctionCall", - "src": "568:18:62" - }, - { - "hexValue": "436f6e74726f6c6c6572", - "kind": "string", - "nativeSrc": "588:12:62", - "nodeType": "YulLiteral", - "src": "588:12:62", - "type": "", - "value": "Controller" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "561:6:62", - "nodeType": "YulIdentifier", - "src": "561:6:62" - }, - "nativeSrc": "561:40:62", - "nodeType": "YulFunctionCall", - "src": "561:40:62" - }, - "nativeSrc": "561:40:62", - "nodeType": "YulExpressionStatement", - "src": "561:40:62" - }, - { - "nativeSrc": "610:26:62", - "nodeType": "YulAssignment", - "src": "610:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "622:9:62", - "nodeType": "YulIdentifier", - "src": "622:9:62" - }, - { - "kind": "number", - "nativeSrc": "633:2:62", - "nodeType": "YulLiteral", - "src": "633:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "618:3:62", - "nodeType": "YulIdentifier", - "src": "618:3:62" - }, - "nativeSrc": "618:18:62", - "nodeType": "YulFunctionCall", - "src": "618:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "610:4:62", - "nodeType": "YulIdentifier", - "src": "610:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a__to_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "309:333:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "459:9:62", - "nodeType": "YulTypedName", - "src": "459:9:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "473:4:62", - "nodeType": "YulTypedName", - "src": "473:4:62", - "type": "" - } - ], - "src": "309:333:62" - }, - { - "body": { - "nativeSrc": "916:520:62", - "nodeType": "YulBlock", - "src": "916:520:62", - "statements": [ - { - "nativeSrc": "926:27:62", - "nodeType": "YulAssignment", - "src": "926:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "938:9:62", - "nodeType": "YulIdentifier", - "src": "938:9:62" - }, - { - "kind": "number", - "nativeSrc": "949:3:62", - "nodeType": "YulLiteral", - "src": "949:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "934:3:62", - "nodeType": "YulIdentifier", - "src": "934:3:62" - }, - "nativeSrc": "934:19:62", - "nodeType": "YulFunctionCall", - "src": "934:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "926:4:62", - "nodeType": "YulIdentifier", - "src": "926:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "969:9:62", - "nodeType": "YulIdentifier", - "src": "969:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "984:6:62", - "nodeType": "YulIdentifier", - "src": "984:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1000:3:62", - "nodeType": "YulLiteral", - "src": "1000:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1005:1:62", - "nodeType": "YulLiteral", - "src": "1005:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "996:3:62", - "nodeType": "YulIdentifier", - "src": "996:3:62" - }, - "nativeSrc": "996:11:62", - "nodeType": "YulFunctionCall", - "src": "996:11:62" - }, - { - "kind": "number", - "nativeSrc": "1009:1:62", - "nodeType": "YulLiteral", - "src": "1009:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "992:3:62", - "nodeType": "YulIdentifier", - "src": "992:3:62" - }, - "nativeSrc": "992:19:62", - "nodeType": "YulFunctionCall", - "src": "992:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "980:3:62", - "nodeType": "YulIdentifier", - "src": "980:3:62" - }, - "nativeSrc": "980:32:62", - "nodeType": "YulFunctionCall", - "src": "980:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "962:6:62", - "nodeType": "YulIdentifier", - "src": "962:6:62" - }, - "nativeSrc": "962:51:62", - "nodeType": "YulFunctionCall", - "src": "962:51:62" - }, - "nativeSrc": "962:51:62", - "nodeType": "YulExpressionStatement", - "src": "962:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1033:9:62", - "nodeType": "YulIdentifier", - "src": "1033:9:62" - }, - { - "kind": "number", - "nativeSrc": "1044:2:62", - "nodeType": "YulLiteral", - "src": "1044:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1029:3:62", - "nodeType": "YulIdentifier", - "src": "1029:3:62" - }, - "nativeSrc": "1029:18:62", - "nodeType": "YulFunctionCall", - "src": "1029:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "1053:6:62", - "nodeType": "YulIdentifier", - "src": "1053:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1069:3:62", - "nodeType": "YulLiteral", - "src": "1069:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1074:1:62", - "nodeType": "YulLiteral", - "src": "1074:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1065:3:62", - "nodeType": "YulIdentifier", - "src": "1065:3:62" - }, - "nativeSrc": "1065:11:62", - "nodeType": "YulFunctionCall", - "src": "1065:11:62" - }, - { - "kind": "number", - "nativeSrc": "1078:1:62", - "nodeType": "YulLiteral", - "src": "1078:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1061:3:62", - "nodeType": "YulIdentifier", - "src": "1061:3:62" - }, - "nativeSrc": "1061:19:62", - "nodeType": "YulFunctionCall", - "src": "1061:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1049:3:62", - "nodeType": "YulIdentifier", - "src": "1049:3:62" - }, - "nativeSrc": "1049:32:62", - "nodeType": "YulFunctionCall", - "src": "1049:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1022:6:62", - "nodeType": "YulIdentifier", - "src": "1022:6:62" - }, - "nativeSrc": "1022:60:62", - "nodeType": "YulFunctionCall", - "src": "1022:60:62" - }, - "nativeSrc": "1022:60:62", - "nodeType": "YulExpressionStatement", - "src": "1022:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1102:9:62", - "nodeType": "YulIdentifier", - "src": "1102:9:62" - }, - { - "kind": "number", - "nativeSrc": "1113:2:62", - "nodeType": "YulLiteral", - "src": "1113:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1098:3:62", - "nodeType": "YulIdentifier", - "src": "1098:3:62" - }, - "nativeSrc": "1098:18:62", - "nodeType": "YulFunctionCall", - "src": "1098:18:62" - }, - { - "arguments": [ - { - "name": "value2", - "nativeSrc": "1122:6:62", - "nodeType": "YulIdentifier", - "src": "1122:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1138:3:62", - "nodeType": "YulLiteral", - "src": "1138:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1143:1:62", - "nodeType": "YulLiteral", - "src": "1143:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1134:3:62", - "nodeType": "YulIdentifier", - "src": "1134:3:62" - }, - "nativeSrc": "1134:11:62", - "nodeType": "YulFunctionCall", - "src": "1134:11:62" - }, - { - "kind": "number", - "nativeSrc": "1147:1:62", - "nodeType": "YulLiteral", - "src": "1147:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1130:3:62", - "nodeType": "YulIdentifier", - "src": "1130:3:62" - }, - "nativeSrc": "1130:19:62", - "nodeType": "YulFunctionCall", - "src": "1130:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1118:3:62", - "nodeType": "YulIdentifier", - "src": "1118:3:62" - }, - "nativeSrc": "1118:32:62", - "nodeType": "YulFunctionCall", - "src": "1118:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1091:6:62", - "nodeType": "YulIdentifier", - "src": "1091:6:62" - }, - "nativeSrc": "1091:60:62", - "nodeType": "YulFunctionCall", - "src": "1091:60:62" - }, - "nativeSrc": "1091:60:62", - "nodeType": "YulExpressionStatement", - "src": "1091:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1171:9:62", - "nodeType": "YulIdentifier", - "src": "1171:9:62" - }, - { - "kind": "number", - "nativeSrc": "1182:2:62", - "nodeType": "YulLiteral", - "src": "1182:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1167:3:62", - "nodeType": "YulIdentifier", - "src": "1167:3:62" - }, - "nativeSrc": "1167:18:62", - "nodeType": "YulFunctionCall", - "src": "1167:18:62" - }, - { - "arguments": [ - { - "name": "value3", - "nativeSrc": "1191:6:62", - "nodeType": "YulIdentifier", - "src": "1191:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1207:3:62", - "nodeType": "YulLiteral", - "src": "1207:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1212:1:62", - "nodeType": "YulLiteral", - "src": "1212:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1203:3:62", - "nodeType": "YulIdentifier", - "src": "1203:3:62" - }, - "nativeSrc": "1203:11:62", - "nodeType": "YulFunctionCall", - "src": "1203:11:62" - }, - { - "kind": "number", - "nativeSrc": "1216:1:62", - "nodeType": "YulLiteral", - "src": "1216:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1199:3:62", - "nodeType": "YulIdentifier", - "src": "1199:3:62" - }, - "nativeSrc": "1199:19:62", - "nodeType": "YulFunctionCall", - "src": "1199:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1187:3:62", - "nodeType": "YulIdentifier", - "src": "1187:3:62" - }, - "nativeSrc": "1187:32:62", - "nodeType": "YulFunctionCall", - "src": "1187:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1160:6:62", - "nodeType": "YulIdentifier", - "src": "1160:6:62" - }, - "nativeSrc": "1160:60:62", - "nodeType": "YulFunctionCall", - "src": "1160:60:62" - }, - "nativeSrc": "1160:60:62", - "nodeType": "YulExpressionStatement", - "src": "1160:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1240:9:62", - "nodeType": "YulIdentifier", - "src": "1240:9:62" - }, - { - "kind": "number", - "nativeSrc": "1251:3:62", - "nodeType": "YulLiteral", - "src": "1251:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1236:3:62", - "nodeType": "YulIdentifier", - "src": "1236:3:62" - }, - "nativeSrc": "1236:19:62", - "nodeType": "YulFunctionCall", - "src": "1236:19:62" - }, - { - "arguments": [ - { - "name": "value4", - "nativeSrc": "1261:6:62", - "nodeType": "YulIdentifier", - "src": "1261:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1277:3:62", - "nodeType": "YulLiteral", - "src": "1277:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1282:1:62", - "nodeType": "YulLiteral", - "src": "1282:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1273:3:62", - "nodeType": "YulIdentifier", - "src": "1273:3:62" - }, - "nativeSrc": "1273:11:62", - "nodeType": "YulFunctionCall", - "src": "1273:11:62" - }, - { - "kind": "number", - "nativeSrc": "1286:1:62", - "nodeType": "YulLiteral", - "src": "1286:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1269:3:62", - "nodeType": "YulIdentifier", - "src": "1269:3:62" - }, - "nativeSrc": "1269:19:62", - "nodeType": "YulFunctionCall", - "src": "1269:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1257:3:62", - "nodeType": "YulIdentifier", - "src": "1257:3:62" - }, - "nativeSrc": "1257:32:62", - "nodeType": "YulFunctionCall", - "src": "1257:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1229:6:62", - "nodeType": "YulIdentifier", - "src": "1229:6:62" - }, - "nativeSrc": "1229:61:62", - "nodeType": "YulFunctionCall", - "src": "1229:61:62" - }, - "nativeSrc": "1229:61:62", - "nodeType": "YulExpressionStatement", - "src": "1229:61:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1310:9:62", - "nodeType": "YulIdentifier", - "src": "1310:9:62" - }, - { - "kind": "number", - "nativeSrc": "1321:3:62", - "nodeType": "YulLiteral", - "src": "1321:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1306:3:62", - "nodeType": "YulIdentifier", - "src": "1306:3:62" - }, - "nativeSrc": "1306:19:62", - "nodeType": "YulFunctionCall", - "src": "1306:19:62" - }, - { - "arguments": [ - { - "name": "value5", - "nativeSrc": "1331:6:62", - "nodeType": "YulIdentifier", - "src": "1331:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1347:3:62", - "nodeType": "YulLiteral", - "src": "1347:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1352:1:62", - "nodeType": "YulLiteral", - "src": "1352:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1343:3:62", - "nodeType": "YulIdentifier", - "src": "1343:3:62" - }, - "nativeSrc": "1343:11:62", - "nodeType": "YulFunctionCall", - "src": "1343:11:62" - }, - { - "kind": "number", - "nativeSrc": "1356:1:62", - "nodeType": "YulLiteral", - "src": "1356:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1339:3:62", - "nodeType": "YulIdentifier", - "src": "1339:3:62" - }, - "nativeSrc": "1339:19:62", - "nodeType": "YulFunctionCall", - "src": "1339:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1327:3:62", - "nodeType": "YulIdentifier", - "src": "1327:3:62" - }, - "nativeSrc": "1327:32:62", - "nodeType": "YulFunctionCall", - "src": "1327:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1299:6:62", - "nodeType": "YulIdentifier", - "src": "1299:6:62" - }, - "nativeSrc": "1299:61:62", - "nodeType": "YulFunctionCall", - "src": "1299:61:62" - }, - "nativeSrc": "1299:61:62", - "nodeType": "YulExpressionStatement", - "src": "1299:61:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1380:9:62", - "nodeType": "YulIdentifier", - "src": "1380:9:62" - }, - { - "kind": "number", - "nativeSrc": "1391:3:62", - "nodeType": "YulLiteral", - "src": "1391:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1376:3:62", - "nodeType": "YulIdentifier", - "src": "1376:3:62" - }, - "nativeSrc": "1376:19:62", - "nodeType": "YulFunctionCall", - "src": "1376:19:62" - }, - { - "arguments": [ - { - "name": "value6", - "nativeSrc": "1401:6:62", - "nodeType": "YulIdentifier", - "src": "1401:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1417:3:62", - "nodeType": "YulLiteral", - "src": "1417:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1422:1:62", - "nodeType": "YulLiteral", - "src": "1422:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1413:3:62", - "nodeType": "YulIdentifier", - "src": "1413:3:62" - }, - "nativeSrc": "1413:11:62", - "nodeType": "YulFunctionCall", - "src": "1413:11:62" - }, - { - "kind": "number", - "nativeSrc": "1426:1:62", - "nodeType": "YulLiteral", - "src": "1426:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1409:3:62", - "nodeType": "YulIdentifier", - "src": "1409:3:62" - }, - "nativeSrc": "1409:19:62", - "nodeType": "YulFunctionCall", - "src": "1409:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1397:3:62", - "nodeType": "YulIdentifier", - "src": "1397:3:62" - }, - "nativeSrc": "1397:32:62", - "nodeType": "YulFunctionCall", - "src": "1397:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1369:6:62", - "nodeType": "YulIdentifier", - "src": "1369:6:62" - }, - "nativeSrc": "1369:61:62", - "nodeType": "YulFunctionCall", - "src": "1369:61:62" - }, - "nativeSrc": "1369:61:62", - "nodeType": "YulExpressionStatement", - "src": "1369:61:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address_t_address_t_address_t_address_t_address_t_address__to_t_address_t_address_t_address_t_address_t_address_t_address_t_address__fromStack_reversed", - "nativeSrc": "647:789:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "837:9:62", - "nodeType": "YulTypedName", - "src": "837:9:62", - "type": "" - }, - { - "name": "value6", - "nativeSrc": "848:6:62", - "nodeType": "YulTypedName", - "src": "848:6:62", - "type": "" - }, - { - "name": "value5", - "nativeSrc": "856:6:62", - "nodeType": "YulTypedName", - "src": "856:6:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "864:6:62", - "nodeType": "YulTypedName", - "src": "864:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "872:6:62", - "nodeType": "YulTypedName", - "src": "872:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "880:6:62", - "nodeType": "YulTypedName", - "src": "880:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "888:6:62", - "nodeType": "YulTypedName", - "src": "888:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "896:6:62", - "nodeType": "YulTypedName", - "src": "896:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "907:4:62", - "nodeType": "YulTypedName", - "src": "907:4:62", - "type": "" - } - ], - "src": "647:789:62" - }, - { - "body": { - "nativeSrc": "1542:76:62", - "nodeType": "YulBlock", - "src": "1542:76:62", - "statements": [ - { - "nativeSrc": "1552:26:62", - "nodeType": "YulAssignment", - "src": "1552:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1564:9:62", - "nodeType": "YulIdentifier", - "src": "1564:9:62" - }, - { - "kind": "number", - "nativeSrc": "1575:2:62", - "nodeType": "YulLiteral", - "src": "1575:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1560:3:62", - "nodeType": "YulIdentifier", - "src": "1560:3:62" - }, - "nativeSrc": "1560:18:62", - "nodeType": "YulFunctionCall", - "src": "1560:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1552:4:62", - "nodeType": "YulIdentifier", - "src": "1552:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1594:9:62", - "nodeType": "YulIdentifier", - "src": "1594:9:62" - }, - { - "name": "value0", - "nativeSrc": "1605:6:62", - "nodeType": "YulIdentifier", - "src": "1605:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1587:6:62", - "nodeType": "YulIdentifier", - "src": "1587:6:62" - }, - "nativeSrc": "1587:25:62", - "nodeType": "YulFunctionCall", - "src": "1587:25:62" - }, - "nativeSrc": "1587:25:62", - "nodeType": "YulExpressionStatement", - "src": "1587:25:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "1441:177:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1511:9:62", - "nodeType": "YulTypedName", - "src": "1511:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1522:6:62", - "nodeType": "YulTypedName", - "src": "1522:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1533:4:62", - "nodeType": "YulTypedName", - "src": "1533:4:62", - "type": "" - } - ], - "src": "1441:177:62" - }, - { - "body": { - "nativeSrc": "1742:406:62", - "nodeType": "YulBlock", - "src": "1742:406:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1759:9:62", - "nodeType": "YulIdentifier", - "src": "1759:9:62" - }, - { - "kind": "number", - "nativeSrc": "1770:2:62", - "nodeType": "YulLiteral", - "src": "1770:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1752:6:62", - "nodeType": "YulIdentifier", - "src": "1752:6:62" - }, - "nativeSrc": "1752:21:62", - "nodeType": "YulFunctionCall", - "src": "1752:21:62" - }, - "nativeSrc": "1752:21:62", - "nodeType": "YulExpressionStatement", - "src": "1752:21:62" - }, - { - "nativeSrc": "1782:27:62", - "nodeType": "YulVariableDeclaration", - "src": "1782:27:62", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1802:6:62", - "nodeType": "YulIdentifier", - "src": "1802:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "1796:5:62", - "nodeType": "YulIdentifier", - "src": "1796:5:62" - }, - "nativeSrc": "1796:13:62", - "nodeType": "YulFunctionCall", - "src": "1796:13:62" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "1786:6:62", - "nodeType": "YulTypedName", - "src": "1786:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1829:9:62", - "nodeType": "YulIdentifier", - "src": "1829:9:62" - }, - { - "kind": "number", - "nativeSrc": "1840:2:62", - "nodeType": "YulLiteral", - "src": "1840:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1825:3:62", - "nodeType": "YulIdentifier", - "src": "1825:3:62" - }, - "nativeSrc": "1825:18:62", - "nodeType": "YulFunctionCall", - "src": "1825:18:62" - }, - { - "name": "length", - "nativeSrc": "1845:6:62", - "nodeType": "YulIdentifier", - "src": "1845:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1818:6:62", - "nodeType": "YulIdentifier", - "src": "1818:6:62" - }, - "nativeSrc": "1818:34:62", - "nodeType": "YulFunctionCall", - "src": "1818:34:62" - }, - "nativeSrc": "1818:34:62", - "nodeType": "YulExpressionStatement", - "src": "1818:34:62" - }, - { - "nativeSrc": "1861:10:62", - "nodeType": "YulVariableDeclaration", - "src": "1861:10:62", - "value": { - "kind": "number", - "nativeSrc": "1870:1:62", - "nodeType": "YulLiteral", - "src": "1870:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "1865:1:62", - "nodeType": "YulTypedName", - "src": "1865:1:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "1930:90:62", - "nodeType": "YulBlock", - "src": "1930:90:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1959:9:62", - "nodeType": "YulIdentifier", - "src": "1959:9:62" - }, - { - "name": "i", - "nativeSrc": "1970:1:62", - "nodeType": "YulIdentifier", - "src": "1970:1:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1955:3:62", - "nodeType": "YulIdentifier", - "src": "1955:3:62" - }, - "nativeSrc": "1955:17:62", - "nodeType": "YulFunctionCall", - "src": "1955:17:62" - }, - { - "kind": "number", - "nativeSrc": "1974:2:62", - "nodeType": "YulLiteral", - "src": "1974:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1951:3:62", - "nodeType": "YulIdentifier", - "src": "1951:3:62" - }, - "nativeSrc": "1951:26:62", - "nodeType": "YulFunctionCall", - "src": "1951:26:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1993:6:62", - "nodeType": "YulIdentifier", - "src": "1993:6:62" - }, - { - "name": "i", - "nativeSrc": "2001:1:62", - "nodeType": "YulIdentifier", - "src": "2001:1:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1989:3:62", - "nodeType": "YulIdentifier", - "src": "1989:3:62" - }, - "nativeSrc": "1989:14:62", - "nodeType": "YulFunctionCall", - "src": "1989:14:62" - }, - { - "kind": "number", - "nativeSrc": "2005:2:62", - "nodeType": "YulLiteral", - "src": "2005:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1985:3:62", - "nodeType": "YulIdentifier", - "src": "1985:3:62" - }, - "nativeSrc": "1985:23:62", - "nodeType": "YulFunctionCall", - "src": "1985:23:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "1979:5:62", - "nodeType": "YulIdentifier", - "src": "1979:5:62" - }, - "nativeSrc": "1979:30:62", - "nodeType": "YulFunctionCall", - "src": "1979:30:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1944:6:62", - "nodeType": "YulIdentifier", - "src": "1944:6:62" - }, - "nativeSrc": "1944:66:62", - "nodeType": "YulFunctionCall", - "src": "1944:66:62" - }, - "nativeSrc": "1944:66:62", - "nodeType": "YulExpressionStatement", - "src": "1944:66:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "1891:1:62", - "nodeType": "YulIdentifier", - "src": "1891:1:62" - }, - { - "name": "length", - "nativeSrc": "1894:6:62", - "nodeType": "YulIdentifier", - "src": "1894:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "1888:2:62", - "nodeType": "YulIdentifier", - "src": "1888:2:62" - }, - "nativeSrc": "1888:13:62", - "nodeType": "YulFunctionCall", - "src": "1888:13:62" - }, - "nativeSrc": "1880:140:62", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "1902:19:62", - "nodeType": "YulBlock", - "src": "1902:19:62", - "statements": [ - { - "nativeSrc": "1904:15:62", - "nodeType": "YulAssignment", - "src": "1904:15:62", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "1913:1:62", - "nodeType": "YulIdentifier", - "src": "1913:1:62" - }, - { - "kind": "number", - "nativeSrc": "1916:2:62", - "nodeType": "YulLiteral", - "src": "1916:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1909:3:62", - "nodeType": "YulIdentifier", - "src": "1909:3:62" - }, - "nativeSrc": "1909:10:62", - "nodeType": "YulFunctionCall", - "src": "1909:10:62" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "1904:1:62", - "nodeType": "YulIdentifier", - "src": "1904:1:62" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "1884:3:62", - "nodeType": "YulBlock", - "src": "1884:3:62", - "statements": [] - }, - "src": "1880:140:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2044:9:62", - "nodeType": "YulIdentifier", - "src": "2044:9:62" - }, - { - "name": "length", - "nativeSrc": "2055:6:62", - "nodeType": "YulIdentifier", - "src": "2055:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2040:3:62", - "nodeType": "YulIdentifier", - "src": "2040:3:62" - }, - "nativeSrc": "2040:22:62", - "nodeType": "YulFunctionCall", - "src": "2040:22:62" - }, - { - "kind": "number", - "nativeSrc": "2064:2:62", - "nodeType": "YulLiteral", - "src": "2064:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2036:3:62", - "nodeType": "YulIdentifier", - "src": "2036:3:62" - }, - "nativeSrc": "2036:31:62", - "nodeType": "YulFunctionCall", - "src": "2036:31:62" - }, - { - "kind": "number", - "nativeSrc": "2069:1:62", - "nodeType": "YulLiteral", - "src": "2069:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2029:6:62", - "nodeType": "YulIdentifier", - "src": "2029:6:62" - }, - "nativeSrc": "2029:42:62", - "nodeType": "YulFunctionCall", - "src": "2029:42:62" - }, - "nativeSrc": "2029:42:62", - "nodeType": "YulExpressionStatement", - "src": "2029:42:62" - }, - { - "nativeSrc": "2080:62:62", - "nodeType": "YulAssignment", - "src": "2080:62:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2096:9:62", - "nodeType": "YulIdentifier", - "src": "2096:9:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "2115:6:62", - "nodeType": "YulIdentifier", - "src": "2115:6:62" - }, - { - "kind": "number", - "nativeSrc": "2123:2:62", - "nodeType": "YulLiteral", - "src": "2123:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2111:3:62", - "nodeType": "YulIdentifier", - "src": "2111:3:62" - }, - "nativeSrc": "2111:15:62", - "nodeType": "YulFunctionCall", - "src": "2111:15:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2132:2:62", - "nodeType": "YulLiteral", - "src": "2132:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "2128:3:62", - "nodeType": "YulIdentifier", - "src": "2128:3:62" - }, - "nativeSrc": "2128:7:62", - "nodeType": "YulFunctionCall", - "src": "2128:7:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2107:3:62", - "nodeType": "YulIdentifier", - "src": "2107:3:62" - }, - "nativeSrc": "2107:29:62", - "nodeType": "YulFunctionCall", - "src": "2107:29:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2092:3:62", - "nodeType": "YulIdentifier", - "src": "2092:3:62" - }, - "nativeSrc": "2092:45:62", - "nodeType": "YulFunctionCall", - "src": "2092:45:62" - }, - { - "kind": "number", - "nativeSrc": "2139:2:62", - "nodeType": "YulLiteral", - "src": "2139:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2088:3:62", - "nodeType": "YulIdentifier", - "src": "2088:3:62" - }, - "nativeSrc": "2088:54:62", - "nodeType": "YulFunctionCall", - "src": "2088:54:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2080:4:62", - "nodeType": "YulIdentifier", - "src": "2080:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "1623:525:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1711:9:62", - "nodeType": "YulTypedName", - "src": "1711:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1722:6:62", - "nodeType": "YulTypedName", - "src": "1722:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1733:4:62", - "nodeType": "YulTypedName", - "src": "1733:4:62", - "type": "" - } - ], - "src": "1623:525:62" - }, - { - "body": { - "nativeSrc": "2252:101:62", - "nodeType": "YulBlock", - "src": "2252:101:62", - "statements": [ - { - "nativeSrc": "2262:26:62", - "nodeType": "YulAssignment", - "src": "2262:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2274:9:62", - "nodeType": "YulIdentifier", - "src": "2274:9:62" - }, - { - "kind": "number", - "nativeSrc": "2285:2:62", - "nodeType": "YulLiteral", - "src": "2285:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2270:3:62", - "nodeType": "YulIdentifier", - "src": "2270:3:62" - }, - "nativeSrc": "2270:18:62", - "nodeType": "YulFunctionCall", - "src": "2270:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2262:4:62", - "nodeType": "YulIdentifier", - "src": "2262:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2304:9:62", - "nodeType": "YulIdentifier", - "src": "2304:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2319:6:62", - "nodeType": "YulIdentifier", - "src": "2319:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2335:2:62", - "nodeType": "YulLiteral", - "src": "2335:2:62", - "type": "", - "value": "64" - }, - { - "kind": "number", - "nativeSrc": "2339:1:62", - "nodeType": "YulLiteral", - "src": "2339:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "2331:3:62", - "nodeType": "YulIdentifier", - "src": "2331:3:62" - }, - "nativeSrc": "2331:10:62", - "nodeType": "YulFunctionCall", - "src": "2331:10:62" - }, - { - "kind": "number", - "nativeSrc": "2343:1:62", - "nodeType": "YulLiteral", - "src": "2343:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2327:3:62", - "nodeType": "YulIdentifier", - "src": "2327:3:62" - }, - "nativeSrc": "2327:18:62", - "nodeType": "YulFunctionCall", - "src": "2327:18:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2315:3:62", - "nodeType": "YulIdentifier", - "src": "2315:3:62" - }, - "nativeSrc": "2315:31:62", - "nodeType": "YulFunctionCall", - "src": "2315:31:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2297:6:62", - "nodeType": "YulIdentifier", - "src": "2297:6:62" - }, - "nativeSrc": "2297:50:62", - "nodeType": "YulFunctionCall", - "src": "2297:50:62" - }, - "nativeSrc": "2297:50:62", - "nodeType": "YulExpressionStatement", - "src": "2297:50:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", - "nativeSrc": "2153:200:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2221:9:62", - "nodeType": "YulTypedName", - "src": "2221:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2232:6:62", - "nodeType": "YulTypedName", - "src": "2232:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2243:4:62", - "nodeType": "YulTypedName", - "src": "2243:4:62", - "type": "" - } - ], - "src": "2153:200:62" - } - ] - }, - "contents": "{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a__to_t_bytes_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 10)\n mstore(add(headStart, 64), \"Controller\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_address_t_address_t_address_t_address_t_address_t_address__to_t_address_t_address_t_address_t_address_t_address_t_address_t_address__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 224)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n mstore(add(headStart, 160), and(value5, sub(shl(160, 1), 1)))\n mstore(add(headStart, 192), and(value6, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), 32)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(64, 1), 1)))\n }\n}", - "id": 62, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "6101c060405234801561001157600080fd5b506040516138243803806138248339810160408190526100309161049b565b806001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b29061033b565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e59061033b565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e9061033b565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b60208201526101589061033b565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b60208201526101909061033b565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb9061033b565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102099061033b565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102459061033b565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a9061033b565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a4506103356103e9565b50610519565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161037691815260200190565b602060405180830381865afa158015610393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b7919061049b565b9050826001600160a01b0382166103e25760405163218f5add60e11b815260040161007191906104cb565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104395760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104985780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000602082840312156104ad57600080fd5b81516001600160a01b03811681146104c457600080fd5b9392505050565b602081526000825180602084015260005b818110156104f957602081860181015160408684010152016104dc565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516132a861057c60003960005050600050506000505060005050600050506000505060005050600050506000611fe30152600061160e01526132a86000f3fe608060405234801561001057600080fd5b50600436106101b05760003560e01c806376c993ae116100ef578063be41f38411610092578063be41f3841461040b578063c133b4291461042e578063c50a77b114610441578063c894222e14610454578063c9747f511461047c578063d36fc9d41461048f578063d76f62d1146104a2578063f2fde38b146104b557600080fd5b806376c993ae1461038657806384633713146103995780638da5cb5b146103a7578063902a4938146103af5780639334ea52146103bf57806393a90a1e146103d25780639f81a7cf146103e5578063b0eefabe146103f857600080fd5b806336167e031161015757806336167e03146102d95780634bc5839a146102ec5780635aea0ec4146102ff5780635bf31d4d1461032b5780635ed2c96c146103455780636369df6b146103585780636cc6cde11461036b578063715018a61461037e57600080fd5b8063050b17ad146101b55780630533e1ba146101ca57806311be1997146101fb578063169729781461027257806317337b46146102855780631792f1941461028f57806326058249146102a257806329e03ff1146102c2575b600080fd5b6101c86101c3366004612a74565b6104c8565b005b6036546101e190600160201b900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61025e610209366004612a96565b60376020526000908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b039586169695909416949293919260ff80831693610100909304169188565b6040516101f2989796959493929190612ad9565b6101c8610280366004612a96565b61074b565b6101e16207a12081565b6101c861029d366004612a96565b61075f565b6033546102b5906001600160a01b031681565b6040516101f29190612b39565b6102cb60355481565b6040519081526020016101f2565b6101c86102e7366004612a96565b610a07565b6102cb6102fa366004612b62565b610bef565b603454600160a01b90046001600160401b03165b6040516001600160401b0390911681526020016101f2565b60345461031390600160a01b90046001600160401b031681565b6101c8610353366004612bb5565b610c10565b6102cb610366366004612cb5565b610d43565b6034546102b5906001600160a01b031681565b6101c8610d4e565b6101c8610394366004612d20565b610d62565b60365463ffffffff166101e1565b6102b5610d73565b6036546101e19063ffffffff1681565b6101c86103cd366004612a96565b610d8e565b6101c86103e0366004612d3d565b610fae565b6101c86103f3366004612d20565b610fbf565b6101c8610406366004612d3d565b610fd0565b61041e610419366004612a96565b610fe1565b60405190151581526020016101f2565b6102cb61043c366004612d3d565b611017565b6102cb61044f366004612da2565b6110af565b610467610462366004612de3565b61113b565b604080519283526020830191909152016101f2565b6102b561048a366004612eb9565b611320565b61041e61049d366004612ed5565b611411565b6101c86104b0366004612f0b565b61141d565b6101c86104c3366004612d3d565b61142e565b6034546001600160a01b031633146104f35760405163a8baf3bb60e01b815260040160405180910390fd5b816104fd81610fe1565b8190610528576040516314a03bbd60e21b815260040161051f91815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561055657610556612aaf565b600083815260376020526040902060040154610100900460ff1691146105905760405163146e540f60e21b815260040161051f9190612f28565b50600083815260376020526040812060048101805461ff001916610100179055805460068201549192916105cf916001600160a01b0316908690611469565b6001830154600284015491925061060e916001600160a01b03909116906105f69084612f4c565b6105fe61160c565b6001600160a01b03169190611630565b604080516101008101825283546001600160a01b0390811682526001850154166020820152600280850154928201929092526003840154606082015260048401546106d6928591608084019160ff9091169081111561066f5761066f612aaf565b600281111561068057610680612aaf565b81526020016004820160019054906101000a900460ff1660058111156106a8576106a8612aaf565b60058111156106b9576106b9612aaf565b8152602001600582015481526020016006820154815250506116e7565b156106e8576106e88260030154610a07565b6001820154825460028401546001600160a01b03928316929091169087907f6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c490610733908690612f4c565b60405190815260200160405180910390a45050505050565b61075361172e565b61075c81611760565b50565b8061076981610fe1565b819061078b576040516314a03bbd60e21b815260040161051f91815260200190565b506000818152603760205260409020600101546001600160a01b031633146107c65760405163082c005560e41b815260040160405180910390fd5b816107d081610fe1565b81906107f2576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561082057610820612aaf565b600083815260376020526040902060040154610100900460ff16911461085a5760405163146e540f60e21b815260040161051f9190612f28565b5060008381526037602052604090206034546005820154429161088e91600160a01b9091046001600160401b031690612f4c565b106108ac57604051631d7753d560e11b815260040160405180910390fd5b6002810154156108d657600181015460028201546108d6916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b03908116825260018401541660208201526002808401549282019290925260038301546060820152600483015461099e928491608084019160ff9091169081111561093757610937612aaf565b600281111561094857610948612aaf565b81526020016004820160019054906101000a900460ff16600581111561097057610970612aaf565b600581111561098157610981612aaf565b8152602001600582015481526020016006820154815250506117bf565b5060048101805461ff00191661050017905560018101548154600283015460408051918252516001600160a01b03938416939092169187917f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2919081900360200190a450505050565b6034546001600160a01b03163314610a325760405163a8baf3bb60e01b815260040160405180910390fd5b80610a3c81610fe1565b8190610a5e576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610a8c57610a8c612aaf565b600083815260376020526040902060040154610100900460ff169114610ac65760405163146e540f60e21b815260040161051f9190612f28565b5060008281526037602090815260409182902060048101805461020061ff001982161790915583516101008101855282546001600160a01b0390811682526001840154169381019390935260028083015494840194909452600382015460608401529092610b4992918491608084019160ff169081111561066f5761066f612aaf565b6003820154849115610b7757604051634137159360e11b81526004810192909252602482015260440161051f565b5050610b988160020154610b8961160c565b6001600160a01b03169061180d565b6001810154815460028301546040519081526001600160a01b03928316929091169085907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d906020015b60405180910390a4505050565b6000610bf9611872565b610c07336035548585611891565b90505b92915050565b6000610c1a611bd3565b805490915060ff600160401b82041615906001600160401b0316600081158015610c415750825b90506000826001600160401b03166001148015610c5d5750303b155b905081158015610c6b575080155b15610c895760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610cb357845460ff60401b1916600160401b1785555b610cbc33611bf7565b610cc4611c08565b610ccd8a611c18565b610cd689611c89565b610cdf88611760565b610ce887611d0e565b610cf186611d8b565b8315610d3757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6000610c0a82611e18565b610d5661172e565b610d606000611eb5565b565b610d6a61172e565b61075c81611d0e565b600080610d7e611f11565b546001600160a01b031692915050565b6034546001600160a01b03163314610db95760405163a8baf3bb60e01b815260040160405180910390fd5b80610dc381610fe1565b8190610de5576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e1357610e13612aaf565b600083815260376020526040902060040154610100900460ff169114610e4d5760405163146e540f60e21b815260040161051f9190612f28565b506000828152603760205260409020600281015415610e865760018101546002820154610e86916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b039081168252600184015416602082015260028084015492820192909252600383015460608201526004830154610f4e928491608084019160ff90911690811115610ee757610ee7612aaf565b6002811115610ef857610ef8612aaf565b81526020016004820160019054906101000a900460ff166005811115610f2057610f20612aaf565b6005811115610f3157610f31612aaf565b815260200160058201548152602001600682015481525050611f35565b5060048101805461ff0019166103001790556001810154815460028301546040519081526001600160a01b03928316929091169085907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b790602001610be2565b610fb661172e565b61075c81611f70565b610fc761172e565b61075c81611d8b565b610fd861172e565b61075c81611c18565b600080600083815260376020526040902060040154610100900460ff16600581111561100f5761100f612aaf565b141592915050565b600080611022611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e9261105692889290911690600401612f5f565b61012060405180830381865afa158015611074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110989190612f94565b90506110a8838260000151612005565b9392505050565b60006110b9611872565b610c07336035546110ff86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b6000806000339050600061118488888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b905060006111c787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b90506111d38282612532565b8251602080850151604080870151865193870151918701519495929490939261123257604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c40161051f565b505050505050600061127d846000858d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b905060006112c4856000858c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b60008061132c83612563565b603354604051630e02292360e01b81529192506000916001600160a01b0390911690630e02292390611362908590600401612b39565b61010060405180830381865afa158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613036565b805190915082906001600160a01b03166113d2576040516334789d8b60e21b815260040161051f9190612b39565b50604084015160208201519081811461140757604051630a24cfe560e21b81526004810192909252602482015260440161051f565b5050519392505050565b6000610c078383612532565b61142561172e565b61075c81611c89565b61143661172e565b6001600160a01b038116611460576000604051631e4fbdf760e01b815260040161051f9190612b39565b61075c81611eb5565b600080611474611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926114a8928a9290911690600401612f5f565b61012060405180830381865afa1580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190612f94565b60365490915060009061150f90859063ffffffff600160201b9091048116906125f416565b905084158015906115205750808511155b8582909161154a5760405163cc6b7c4160e01b81526004810192909252602482015260440161051f565b5050600061155c86846000015161265b565b60365490915060009061157a9063ffffffff9081169084906125f416565b60335460408051602081018b905280820184905281518082038301815260608201928390526365c1a3ff60e11b9092529293506001600160a01b039091169163cb8347fe916115ce918c91906064016130f9565b600060405180830381600087803b1580156115e857600080fd5b505af11580156115fc573d6000803e3d6000fd5b50929a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156116e25760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015611686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116aa919061311d565b6116e25760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161051f565b505050565b606081015160009080158015906110a857506004600082815260376020526040902060040154610100900460ff16600581111561172657611726612aaf565b149392505050565b33611737610d73565b6001600160a01b031614610d60573360405163118cdaa760e01b815260040161051f9190612b39565b80806117825760405163033f4e0560e01b815260040161051f91815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f8906020015b60405180910390a150565b60006117ca826116e7565b1561180557606082015160008181526037602052604090206004810180546005919061ff001916610100835b02179055506001949350505050565b506000919050565b801561186e57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561185557600080fd5b505af1158015611869573d6000803e3d6000fd5b505050505b5050565b610d603360355461188161160c565b6001600160a01b03169190612671565b6040516001600160601b0319606084901b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506118d881610fe1565b1581906118fb5760405163124a23f160e11b815260040161051f91815260200190565b50603354604051630e02292360e01b81526000916001600160a01b031690630e0229239061192d908890600401612b39565b61010060405180830381865afa15801561194b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196f9190613036565b8051909150856001600160a01b03821661199d576040516334789d8b60e21b815260040161051f9190612b39565b5060006119a8611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926119dc92879290911690600401612f5f565b61012060405180830381865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190612f94565b8051909150600003611a435760405163307efdb760e11b815260040160405180910390fd5b6000611a53838360000151612005565b604080516101008101825286516001600160a01b0390811682528d1660208201529081018b905260006060820152909150608081016001815260200160048152426020808301919091526040918201849052600088815260378252829020835181546001600160a01b039182166001600160a01b031991821617835592850151600180840180549290931691909416179055918301516002808401919091556060840151600384015560808401516004840180549193909260ff19909216918490811115611b2357611b23612aaf565b021790555060a082015160048201805461ff001916610100836005811115611b4d57611b4d612aaf565b021790555060c0820151600582015560e0909101516006909101558351604080518b81526001600160a01b038b811660208301529181018a905260608101849052818d16929091169087907fbfd6e5f61b4aa04b088a513a833705c7c703b907516c1dbfa66f93d1f725d33d9060800160405180910390a4509298975050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611bff6126b2565b61075c816126d7565b611c106126b2565b610d606126df565b6001600160a01b038116611c3f5760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b0316600003611cb35760405163c4411f1160e01b815260040160405180910390fd5b6034805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416908102919091179091556040519081527f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e6906020016117b4565b806207a12063ffffffff82161115611d425760405163432e664360e11b815263ffffffff909116600482015260240161051f565b506036805463ffffffff191663ffffffff83169081179091556040519081527fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab906020016117b4565b8063ffffffff8116620f42401015611dbf57604051634e9374fb60e11b815263ffffffff909116600482015260240161051f565b506036805467ffffffff000000001916600160201b63ffffffff8481168202929092179283905560405192041681527f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d680502906020016117b4565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ebf611f11565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000611f40826116e7565b1561180557606082015160008181526037602052604090206004810180546003919061ff001916610100836117f6565b6001600160a01b038116611f975760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b7f000000000000000000000000000000000000000000000000000000000000000090565b600080612010611fe1565b603354604051631584a17960e21b81526001600160a01b039283169263561285e49261204492899290911690600401612f5f565b60a060405180830381865afa158015612061573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612085919061313f565b6000015190506000603360009054906101000a90046001600160a01b03166001600160a01b0316631ebb7c306040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210491906131be565b6121149063ffffffff16856131db565b9050600061212283836127b1565b61212c9086612f4c565b9695505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526001612175602080612f4c565b61217f9190612f4c565b61218a906060612f4c565b825190811490600161219d602080612f4c565b6121a79190612f4c565b6121b2906060612f4c565b90916121da57604051633fdf342360e01b81526004810192909252602482015260440161051f565b50506000806000848060200190518101906121f591906131f2565b92509250925060006122088660606127c1565b905060006122218761221c60206060612f4c565b6127c1565b90506000612245886020612236816060612f4c565b6122409190612f4c565b612813565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b60008061228984611320565b90506000612295611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926122c992879290911690600401612f5f565b61012060405180830381865afa1580156122e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230b9190612f94565b80519091506000036123305760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a80160405160208183030381529060405280519060200120905061239981610fe1565b1581906123bc5760405163124a23f160e11b815260040161051f91815260200190565b5060006123cd848460000151612005565b60408051610100810182526001600160a01b0387811682528c811660208084019182528385018e8152600060608601818152600260808801818152600460a08a018190524260c08b015260e08a018c90528d8552603790965298909220875181549088166001600160a01b031991821617825595516001808301805492909916919097161790965591518582015590516003850155945190830180549697509395929490939260ff19169190849081111561248a5761248a612aaf565b021790555060a082015160048201805461ff0019166101008360058111156124b4576124b4612aaf565b021790555060c0820151816005015560e08201518160060155905050886001600160a01b0316846001600160a01b0316837ffb609a7fd5eb7947365d2f96d051030cac33a27e3e4923f97ea4e03aaa2bcb148b8b604001518b8760405161251e9493929190613220565b60405180910390a450979650505050505050565b8051825160009114801561254d575081604001518360400151145b8015610c07575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161259382611e18565b90506125ec81856060015186608001518760a001516040516020016125d893929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612865565b949350505050565b600061260383620f4240101590565b80612616575061261682620f4240101590565b838390916126405760405163768bf0eb60e11b81526004810192909252602482015260440161051f565b50620f4240905061265183856131db565b610c079190613250565b600081831061266a5781610c07565b5090919050565b80156116e2576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401611667565b6126ba61288f565b610d6057604051631afcd79f60e31b815260040160405180910390fd5b6114366126b2565b6126e76126b2565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b60008183111561266a5781610c07565b60006127ce602083612f4c565b835190811015906127e0602085612f4c565b909161280857604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016020015190565b6000612820600183612f4c565b83519081101590612832600185612f4c565b909161285a57604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016001015190565b60008060008061287586866128a9565b92509250925061288582826128f6565b5090949350505050565b6000612899611bd3565b54600160401b900460ff16919050565b600080600083516041036128e35760208401516040850151606086015160001a6128d5888285856129af565b9550955095505050506128ef565b50508151600091506002905b9250925092565b600082600381111561290a5761290a612aaf565b03612913575050565b600182600381111561292757612927612aaf565b036129455760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561295957612959612aaf565b0361297a5760405163fce698f760e01b81526004810182905260240161051f565b600382600381111561298e5761298e612aaf565b0361186e576040516335e2f38360e21b81526004810182905260240161051f565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156129e05750600091506003905082612a6a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612a34573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612a6057506000925060019150829050612a6a565b9250600091508190505b9450945094915050565b60008060408385031215612a8757600080fd5b50508035926020909101359150565b600060208284031215612aa857600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612ad557612ad5612aaf565b9052565b6001600160a01b038981168252881660208201526040810187905260608101869052610100810160038610612b1057612b10612aaf565b856080830152612b2360a0830186612ac5565b60c082019390935260e001529695505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461075c57600080fd5b60008060408385031215612b7557600080fd5b8235612b8081612b4d565b946020939093013593505050565b6001600160401b038116811461075c57600080fd5b63ffffffff8116811461075c57600080fd5b600080600080600060a08688031215612bcd57600080fd5b8535612bd881612b4d565b94506020860135612be881612b8e565b9350604086013592506060860135612bff81612ba3565b91506080860135612c0f81612ba3565b809150509295509295909350565b60405160c081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60006060828403128015612cc857600080fd5b50604051600090606081016001600160401b0381118282101715612cfa57634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b600060208284031215612d3257600080fd5b81356110a881612ba3565b600060208284031215612d4f57600080fd5b81356110a881612b4d565b60008083601f840112612d6c57600080fd5b5081356001600160401b03811115612d8357600080fd5b602083019150836020828501011115612d9b57600080fd5b9250929050565b60008060208385031215612db557600080fd5b82356001600160401b03811115612dcb57600080fd5b612dd785828601612d5a565b90969095509350505050565b60008060008060408587031215612df957600080fd5b84356001600160401b03811115612e0f57600080fd5b612e1b87828801612d5a565b90955093505060208501356001600160401b03811115612e3a57600080fd5b612e4687828801612d5a565b95989497509550505050565b600060c08284031215612e6457600080fd5b612e6c612c1d565b8235815260208084013590820152604080840135908201526060808401359082015260808084013590820152905060a082013560ff81168114612eae57600080fd5b60a082015292915050565b600060c08284031215612ecb57600080fd5b610c078383612e52565b6000806101808385031215612ee957600080fd5b612ef38484612e52565b9150612f028460c08501612e52565b90509250929050565b600060208284031215612f1d57600080fd5b81356110a881612b8e565b60208101610c0a8284612ac5565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c0a57610c0a612f36565b6001600160a01b0392831681529116602082015260400190565b8051612f8481612ba3565b919050565b8051612f8481612b8e565b6000610120828403128015612fa857600080fd5b506000612fb3612c53565b835181526020808501519082015260408085015190820152612fd760608501612f79565b6060820152612fe860808501612f89565b6080820152612ff960a08501612f89565b60a082015261300a60c08501612f79565b60c082015261301b60e08501612f89565b60e08201526101009384015193810193909352509092915050565b600061010082840312801561304a57600080fd5b506000613055612c84565b835161306081612b4d565b81526020848101519082015260408085015190820152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e09384015193810193909352509092915050565b6000815180845260005b818110156130d9576020818501810151868301820152016130bd565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190526000906125ec908301846130b3565b60006020828403121561312f57600080fd5b815180151581146110a857600080fd5b600060a082840312801561315257600080fd5b5060405160009060a081016001600160401b038111828210171561318457634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6000602082840312156131d057600080fd5b81516110a881612ba3565b8082028115828204841417610c0a57610c0a612f36565b60008060006060848603121561320757600080fd5b5050815160208301516040909301519094929350919050565b84815283602082015260806040820152600061323f60808301856130b3565b905082606083015295945050505050565b60008261326d57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122015fc51a79247a9edf26bdaf727ea63de7398a97bc3a27ad1e74c0ff8bf34282e64736f6c634300081b0033", - "opcodes": "PUSH2 0x1C0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3824 CODESIZE SUB DUP1 PUSH2 0x3824 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x30 SWAP2 PUSH2 0x49B JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7A JUMPI PUSH1 0x40 MLOAD PUSH4 0x218F5ADD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x21B7B73A3937B63632B9 PUSH1 0xB1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x100 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x23B930B8342A37B5B2B7 PUSH1 0xB1 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xB2 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x7 DUP2 MSTORE PUSH7 0x5374616B696E67 PUSH1 0xC8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xE5 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xD DUP2 MSTORE PUSH13 0x47726170685061796D656E7473 PUSH1 0x98 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x11E SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xE DUP2 MSTORE PUSH14 0x5061796D656E7473457363726F77 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x158 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xE0 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xC DUP2 MSTORE PUSH12 0x22B837B1B426B0B730B3B2B9 PUSH1 0xA1 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x190 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x120 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xE DUP2 MSTORE PUSH14 0x2932BBB0B93239A6B0B730B3B2B9 PUSH1 0x91 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x1CB SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x140 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH17 0x4772617068546F6B656E47617465776179 PUSH1 0x78 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x209 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF DUP2 MSTORE PUSH15 0x23B930B834283937BC3CA0B236B4B7 PUSH1 0x89 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x245 SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x180 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x8 DUP2 MSTORE PUSH8 0x21BAB930BA34B7B7 PUSH1 0xC1 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x27A SWAP1 PUSH2 0x33B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH2 0x1A0 DUP2 SWAP1 MSTORE PUSH2 0x100 MLOAD PUSH1 0xA0 MLOAD PUSH1 0x80 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH2 0x160 MLOAD PUSH2 0x180 MLOAD PUSH1 0x40 MLOAD SWAP9 DUP12 AND SWAP11 SWAP8 DUP9 AND SWAP10 SWAP7 SWAP1 SWAP8 AND SWAP8 PUSH32 0xEF5021414834D86E36470F5C1CECF6544FB2BB723F2CA51A4C86FCD8C5919A43 SWAP8 PUSH2 0x324 SWAP8 SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND DUP2 MSTORE SWAP6 DUP8 AND PUSH1 0x20 DUP8 ADD MSTORE SWAP4 DUP7 AND PUSH1 0x40 DUP7 ADD MSTORE SWAP2 DUP6 AND PUSH1 0x60 DUP6 ADD MSTORE DUP5 AND PUSH1 0x80 DUP5 ADD MSTORE DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP PUSH2 0x335 PUSH2 0x3E9 JUMP JUMPDEST POP PUSH2 0x519 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x100 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF7641A5E DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x376 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x393 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3B7 SWAP2 SWAP1 PUSH2 0x49B JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x3E2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x218F5ADD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x4CB JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x439 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH2 0x498 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x4DC JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH2 0x160 MLOAD PUSH2 0x180 MLOAD PUSH2 0x1A0 MLOAD PUSH2 0x32A8 PUSH2 0x57C PUSH1 0x0 CODECOPY PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 PUSH2 0x1FE3 ADD MSTORE PUSH1 0x0 PUSH2 0x160E ADD MSTORE PUSH2 0x32A8 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B0 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76C993AE GT PUSH2 0xEF JUMPI DUP1 PUSH4 0xBE41F384 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xBE41F384 EQ PUSH2 0x40B JUMPI DUP1 PUSH4 0xC133B429 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC50A77B1 EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0xC894222E EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0xC9747F51 EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0xD36FC9D4 EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0xD76F62D1 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76C993AE EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x84633713 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3A7 JUMPI DUP1 PUSH4 0x902A4938 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x9334EA52 EQ PUSH2 0x3BF JUMPI DUP1 PUSH4 0x93A90A1E EQ PUSH2 0x3D2 JUMPI DUP1 PUSH4 0x9F81A7CF EQ PUSH2 0x3E5 JUMPI DUP1 PUSH4 0xB0EEFABE EQ PUSH2 0x3F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x36167E03 GT PUSH2 0x157 JUMPI DUP1 PUSH4 0x36167E03 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0x4BC5839A EQ PUSH2 0x2EC JUMPI DUP1 PUSH4 0x5AEA0EC4 EQ PUSH2 0x2FF JUMPI DUP1 PUSH4 0x5BF31D4D EQ PUSH2 0x32B JUMPI DUP1 PUSH4 0x5ED2C96C EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x6369DF6B EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x6CC6CDE1 EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x37E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x50B17AD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x533E1BA EQ PUSH2 0x1CA JUMPI DUP1 PUSH4 0x11BE1997 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x16972978 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x17337B46 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x1792F194 EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x26058249 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0x29E03FF1 EQ PUSH2 0x2C2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C8 PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A74 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x36 SLOAD PUSH2 0x1E1 SWAP1 PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x25E PUSH2 0x209 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 DUP7 ADD SLOAD PUSH1 0x6 SWAP1 SWAP7 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND SWAP7 SWAP6 SWAP1 SWAP5 AND SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 PUSH1 0xFF DUP1 DUP4 AND SWAP4 PUSH2 0x100 SWAP1 SWAP4 DIV AND SWAP2 DUP9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2AD9 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x74B JUMP JUMPDEST PUSH2 0x1E1 PUSH3 0x7A120 DUP2 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH2 0x2B5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x2CB PUSH1 0x35 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F2 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x2E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0xA07 JUMP JUMPDEST PUSH2 0x2CB PUSH2 0x2FA CALLDATASIZE PUSH1 0x4 PUSH2 0x2B62 JUMP JUMPDEST PUSH2 0xBEF JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F2 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH2 0x313 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BB5 JUMP JUMPDEST PUSH2 0xC10 JUMP JUMPDEST PUSH2 0x2CB PUSH2 0x366 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CB5 JUMP JUMPDEST PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH2 0x2B5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0xD4E JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x394 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D20 JUMP JUMPDEST PUSH2 0xD62 JUMP JUMPDEST PUSH1 0x36 SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x2B5 PUSH2 0xD73 JUMP JUMPDEST PUSH1 0x36 SLOAD PUSH2 0x1E1 SWAP1 PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x3CD CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0xD8E JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x3E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0xFAE JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x3F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D20 JUMP JUMPDEST PUSH2 0xFBF JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x406 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0xFD0 JUMP JUMPDEST PUSH2 0x41E PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0xFE1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F2 JUMP JUMPDEST PUSH2 0x2CB PUSH2 0x43C CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x1017 JUMP JUMPDEST PUSH2 0x2CB PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA2 JUMP JUMPDEST PUSH2 0x10AF JUMP JUMPDEST PUSH2 0x467 PUSH2 0x462 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DE3 JUMP JUMPDEST PUSH2 0x113B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x1F2 JUMP JUMPDEST PUSH2 0x2B5 PUSH2 0x48A CALLDATASIZE PUSH1 0x4 PUSH2 0x2EB9 JUMP JUMPDEST PUSH2 0x1320 JUMP JUMPDEST PUSH2 0x41E PUSH2 0x49D CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED5 JUMP JUMPDEST PUSH2 0x1411 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x4B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F0B JUMP JUMPDEST PUSH2 0x141D JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x4C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x142E JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA8BAF3BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH2 0x4FD DUP2 PUSH2 0xFE1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x528 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x556 JUMPI PUSH2 0x556 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP2 EQ PUSH2 0x590 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2F28 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE DUP1 SLOAD PUSH1 0x6 DUP3 ADD SLOAD SWAP2 SWAP3 SWAP2 PUSH2 0x5CF SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP7 SWAP1 PUSH2 0x1469 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 DUP5 ADD SLOAD SWAP2 SWAP3 POP PUSH2 0x60E SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x5F6 SWAP1 DUP5 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x5FE PUSH2 0x160C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x1630 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x1 DUP6 ADD SLOAD AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP1 DUP6 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP5 ADD SLOAD PUSH2 0x6D6 SWAP3 DUP6 SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0x66F JUMPI PUSH2 0x66F PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x680 JUMPI PUSH2 0x680 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x6A8 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x6B9 JUMPI PUSH2 0x6B9 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE POP POP PUSH2 0x16E7 JUMP JUMPDEST ISZERO PUSH2 0x6E8 JUMPI PUSH2 0x6E8 DUP3 PUSH1 0x3 ADD SLOAD PUSH2 0xA07 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD DUP3 SLOAD PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP8 SWAP1 PUSH32 0x6D800AAAF64B9A1F321DCD63DA04369D33D8A0D49AD0FBBA085AAB4A98BF31C4 SWAP1 PUSH2 0x733 SWAP1 DUP7 SWAP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x753 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1760 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 PUSH2 0x769 DUP2 PUSH2 0xFE1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x78B JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7C6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x82C0055 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH2 0x7D0 DUP2 PUSH2 0xFE1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x7F2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x820 JUMPI PUSH2 0x820 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP2 EQ PUSH2 0x85A JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2F28 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x34 SLOAD PUSH1 0x5 DUP3 ADD SLOAD TIMESTAMP SWAP2 PUSH2 0x88E SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 PUSH2 0x2F4C JUMP JUMPDEST LT PUSH2 0x8AC JUMPI PUSH1 0x40 MLOAD PUSH4 0x1D7753D5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD ISZERO PUSH2 0x8D6 JUMPI PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH2 0x8D6 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x5FE PUSH2 0x160C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x1 DUP5 ADD SLOAD AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP1 DUP5 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP4 ADD SLOAD PUSH2 0x99E SWAP3 DUP5 SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0x937 JUMPI PUSH2 0x937 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x948 JUMPI PUSH2 0x948 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x970 JUMPI PUSH2 0x970 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x981 JUMPI PUSH2 0x981 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE POP POP PUSH2 0x17BF JUMP JUMPDEST POP PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x500 OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD SLOAD DUP2 SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP3 AND SWAP2 DUP8 SWAP2 PUSH32 0x223103F8EB52E5F43A75655152ACD882A605D70DF57A5C0FEFD30F516B1756D2 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA32 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA8BAF3BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0xA3C DUP2 PUSH2 0xFE1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0xA5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0xA8C JUMPI PUSH2 0xA8C PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP2 EQ PUSH2 0xAC6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2F28 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0x200 PUSH2 0xFF00 NOT DUP3 AND OR SWAP1 SWAP2 SSTORE DUP4 MLOAD PUSH2 0x100 DUP2 ADD DUP6 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x1 DUP5 ADD SLOAD AND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP1 DUP4 ADD SLOAD SWAP5 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE SWAP1 SWAP3 PUSH2 0xB49 SWAP3 SWAP2 DUP5 SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x66F JUMPI PUSH2 0x66F PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP5 SWAP2 ISZERO PUSH2 0xB77 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41371593 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP PUSH2 0xB98 DUP2 PUSH1 0x2 ADD SLOAD PUSH2 0xB89 PUSH2 0x160C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD DUP2 SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP6 SWAP1 PUSH32 0x2226EBD23625A7938FB786DF2248BD171D2E6AD70CB2B654EA1BE830CA17224D SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF9 PUSH2 0x1872 JUMP JUMPDEST PUSH2 0xC07 CALLER PUSH1 0x35 SLOAD DUP6 DUP6 PUSH2 0x1891 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC1A PUSH2 0x1BD3 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0xC41 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0xC5D JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0xC6B JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xC89 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xCB3 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0xCBC CALLER PUSH2 0x1BF7 JUMP JUMPDEST PUSH2 0xCC4 PUSH2 0x1C08 JUMP JUMPDEST PUSH2 0xCCD DUP11 PUSH2 0x1C18 JUMP JUMPDEST PUSH2 0xCD6 DUP10 PUSH2 0x1C89 JUMP JUMPDEST PUSH2 0xCDF DUP9 PUSH2 0x1760 JUMP JUMPDEST PUSH2 0xCE8 DUP8 PUSH2 0x1D0E JUMP JUMPDEST PUSH2 0xCF1 DUP7 PUSH2 0x1D8B JUMP JUMPDEST DUP4 ISZERO PUSH2 0xD37 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC0A DUP3 PUSH2 0x1E18 JUMP JUMPDEST PUSH2 0xD56 PUSH2 0x172E JUMP JUMPDEST PUSH2 0xD60 PUSH1 0x0 PUSH2 0x1EB5 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xD6A PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD7E PUSH2 0x1F11 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA8BAF3BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0xDC3 DUP2 PUSH2 0xFE1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0xDE5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0xE13 JUMPI PUSH2 0xE13 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP2 EQ PUSH2 0xE4D JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2F28 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD ISZERO PUSH2 0xE86 JUMPI PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH2 0xE86 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x5FE PUSH2 0x160C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x1 DUP5 ADD SLOAD AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP1 DUP5 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP4 ADD SLOAD PUSH2 0xF4E SWAP3 DUP5 SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0xEE7 JUMPI PUSH2 0xEE7 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xEF8 JUMPI PUSH2 0xEF8 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0xF20 JUMPI PUSH2 0xF20 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x5 DUP2 GT ISZERO PUSH2 0xF31 JUMPI PUSH2 0xF31 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE POP POP PUSH2 0x1F35 JUMP JUMPDEST POP PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x300 OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD SLOAD DUP2 SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP6 SWAP1 PUSH32 0xF0912EFB86EA1D65A17D64D48393CDB1CA0EA5220DD2BBE438621199D30955B7 SWAP1 PUSH1 0x20 ADD PUSH2 0xBE2 JUMP JUMPDEST PUSH2 0xFB6 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1F70 JUMP JUMPDEST PUSH2 0xFC7 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1D8B JUMP JUMPDEST PUSH2 0xFD8 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1C18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x100F JUMPI PUSH2 0x100F PUSH2 0x2AAF JUMP JUMPDEST EQ ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1022 PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0x12ECC4BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x25D9897E SWAP3 PUSH2 0x1056 SWAP3 DUP9 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x2F5F JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1074 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1098 SWAP2 SWAP1 PUSH2 0x2F94 JUMP JUMPDEST SWAP1 POP PUSH2 0x10A8 DUP4 DUP3 PUSH1 0x0 ADD MLOAD PUSH2 0x2005 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10B9 PUSH2 0x1872 JUMP JUMPDEST PUSH2 0xC07 CALLER PUSH1 0x35 SLOAD PUSH2 0x10FF DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2136 SWAP3 POP POP POP JUMP JUMPDEST DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x227D SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH2 0x1184 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2136 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x11C7 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2136 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH2 0x11D3 DUP3 DUP3 PUSH2 0x2532 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP7 MLOAD SWAP4 DUP8 ADD MLOAD SWAP2 DUP8 ADD MLOAD SWAP5 SWAP6 SWAP3 SWAP5 SWAP1 SWAP4 SWAP3 PUSH2 0x1232 JUMPI PUSH1 0x40 MLOAD PUSH4 0x6ABA5297 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x24 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x44 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD MSTORE PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH2 0x51F JUMP JUMPDEST POP POP POP POP POP POP PUSH1 0x0 PUSH2 0x127D DUP5 PUSH1 0x0 DUP6 DUP14 DUP14 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x227D SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x12C4 DUP6 PUSH1 0x0 DUP6 DUP13 DUP13 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x227D SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x3 SWAP1 DUP2 ADD DUP5 SWAP1 SSTORE DUP4 DUP4 MSTORE DUP2 DUP4 KECCAK256 ADD DUP6 SWAP1 SSTORE MLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP5 SWAP2 PUSH32 0xFEC135A4CF8E5C6E13DEA23BE058BF03A8BF8F1F6FB0A021B0A5AEDDFBA81407 SWAP2 LOG3 SWAP1 SWAP11 SWAP1 SWAP10 POP SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x132C DUP4 PUSH2 0x2563 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE022923 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE022923 SWAP1 PUSH2 0x1362 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x100 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1380 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13A4 SWAP2 SWAP1 PUSH2 0x3036 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x13D2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x34789D8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2B39 JUMP JUMPDEST POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x20 DUP3 ADD MLOAD SWAP1 DUP2 DUP2 EQ PUSH2 0x1407 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA24CFE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC07 DUP4 DUP4 PUSH2 0x2532 JUMP JUMPDEST PUSH2 0x1425 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1C89 JUMP JUMPDEST PUSH2 0x1436 PUSH2 0x172E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1460 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1474 PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0x12ECC4BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x25D9897E SWAP3 PUSH2 0x14A8 SWAP3 DUP11 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x2F5F JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14EA SWAP2 SWAP1 PUSH2 0x2F94 JUMP JUMPDEST PUSH1 0x36 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x150F SWAP1 DUP6 SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x25F4 AND JUMP JUMPDEST SWAP1 POP DUP5 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1520 JUMPI POP DUP1 DUP6 GT ISZERO JUMPDEST DUP6 DUP3 SWAP1 SWAP2 PUSH2 0x154A JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC6B7C41 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP PUSH1 0x0 PUSH2 0x155C DUP7 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x265B JUMP JUMPDEST PUSH1 0x36 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x157A SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 DUP5 SWAP1 PUSH2 0x25F4 AND JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP12 SWAP1 MSTORE DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP3 SUB DUP4 ADD DUP2 MSTORE PUSH1 0x60 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x65C1A3FF PUSH1 0xE1 SHL SWAP1 SWAP3 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xCB8347FE SWAP2 PUSH2 0x15CE SWAP2 DUP13 SWAP2 SWAP1 PUSH1 0x64 ADD PUSH2 0x30F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x16E2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE DUP5 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1686 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16AA SWAP2 SWAP1 PUSH2 0x311D JUMP JUMPDEST PUSH2 0x16E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x10BA3930B739B332B9 PUSH1 0xB9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x10A8 JUMPI POP PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x1726 JUMPI PUSH2 0x1726 PUSH2 0x2AAF JUMP JUMPDEST EQ SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH2 0x1737 PUSH2 0xD73 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD60 JUMPI CALLER PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2B39 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x1782 JUMPI PUSH1 0x40 MLOAD PUSH4 0x33F4E05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x35 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x97896B9DA0F97F36BF3011570BCFF930069299DE4B1E89C9CB44909841CAC2F8 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17CA DUP3 PUSH2 0x16E7 JUMP JUMPDEST ISZERO PUSH2 0x1805 JUMPI PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH1 0x5 SWAP2 SWAP1 PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP4 JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0x186E JUMPI PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x42966C68 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1855 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1869 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xD60 CALLER PUSH1 0x35 SLOAD PUSH2 0x1881 PUSH2 0x160C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x2671 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 DUP5 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x18D8 DUP2 PUSH2 0xFE1 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x18FB JUMPI PUSH1 0x40 MLOAD PUSH4 0x124A23F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE022923 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE022923 SWAP1 PUSH2 0x192D SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x100 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x194B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x196F SWAP2 SWAP1 PUSH2 0x3036 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x199D JUMPI PUSH1 0x40 MLOAD PUSH4 0x34789D8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2B39 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x19A8 PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0x12ECC4BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x25D9897E SWAP3 PUSH2 0x19DC SWAP3 DUP8 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x2F5F JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A1E SWAP2 SWAP1 PUSH2 0x2F94 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 SUB PUSH2 0x1A43 JUMPI PUSH1 0x40 MLOAD PUSH4 0x307EFDB7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A53 DUP4 DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x2005 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP7 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE DUP14 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x0 PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x80 DUP2 ADD PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP2 MSTORE TIMESTAMP PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x37 DUP3 MSTORE DUP3 SWAP1 KECCAK256 DUP4 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR DUP4 SSTORE SWAP3 DUP6 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 SWAP1 SWAP5 AND OR SWAP1 SSTORE SWAP2 DUP4 ADD MLOAD PUSH1 0x2 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x3 DUP5 ADD SSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0x4 DUP5 ADD DUP1 SLOAD SWAP2 SWAP4 SWAP1 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 GT ISZERO PUSH2 0x1B23 JUMPI PUSH2 0x1B23 PUSH2 0x2AAF JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP4 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x1B4D JUMPI PUSH2 0x1B4D PUSH2 0x2AAF JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0xE0 SWAP1 SWAP2 ADD MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 MLOAD DUP12 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP5 SWAP1 MSTORE DUP2 DUP14 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP8 SWAP1 PUSH32 0xBFD6E5F61B4AA04B088A513A833705C7C703B907516C1DBFA66F93D1F725D33D SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SWAP1 JUMP JUMPDEST PUSH2 0x1BFF PUSH2 0x26B2 JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x26D7 JUMP JUMPDEST PUSH2 0x1C10 PUSH2 0x26B2 JUMP JUMPDEST PUSH2 0xD60 PUSH2 0x26DF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1C3F JUMPI PUSH1 0x40 MLOAD PUSH4 0x616BC441 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x34 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x51744122301B50E919F4E3D22ADF8C53ABC92195B8C667EDA98C6EF20375672E SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 SUB PUSH2 0x1CB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC4411F11 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x34 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x310462A9BF49FFF4A57910EC647C77CBF8AAF2F13394554AC6CDF14FC68DB7E6 SWAP1 PUSH1 0x20 ADD PUSH2 0x17B4 JUMP JUMPDEST DUP1 PUSH3 0x7A120 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH2 0x1D42 JUMPI PUSH1 0x40 MLOAD PUSH4 0x432E6643 PUSH1 0xE1 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x51F JUMP JUMPDEST POP PUSH1 0x36 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC573DC0F869F6A1D0A74FC7712A63BAABCB5567131D2D98005E163924EDDCBAB SWAP1 PUSH1 0x20 ADD PUSH2 0x17B4 JUMP JUMPDEST DUP1 PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0xF4240 LT ISZERO PUSH2 0x1DBF JUMPI PUSH1 0x40 MLOAD PUSH4 0x4E9374FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x51F JUMP JUMPDEST POP PUSH1 0x36 DUP1 SLOAD PUSH8 0xFFFFFFFF00000000 NOT AND PUSH1 0x1 PUSH1 0x20 SHL PUSH4 0xFFFFFFFF DUP5 DUP2 AND DUP3 MUL SWAP3 SWAP1 SWAP3 OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP3 DIV AND DUP2 MSTORE PUSH32 0x7EFAF01BEC3CDA8D104163BB466D01D7E16F68848301C7EB0749CFA59D680502 SWAP1 PUSH1 0x20 ADD PUSH2 0x17B4 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x40 SWAP5 DUP6 ADD MLOAD DUP6 MLOAD PUSH32 0x32DD026408194A0D7E54CC66A2AB6C856EFC55CFCD4DD258FDE5B1A55222BAA6 DUP2 DUP6 ADD MSTORE DUP1 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP5 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 DUP4 ADD DUP6 MSTORE DUP1 MLOAD SWAP1 DUP3 ADD KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xC2 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xE2 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP4 MLOAD DUP1 DUP4 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH2 0x102 SWAP1 SWAP2 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EBF PUSH2 0x1F11 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP4 SWAP5 POP SWAP2 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F40 DUP3 PUSH2 0x16E7 JUMP JUMPDEST ISZERO PUSH2 0x1805 JUMPI PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP4 PUSH2 0x17F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1F97 JUMPI PUSH1 0x40 MLOAD PUSH4 0x616BC441 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x81DCB738DA3DABD5BB2ADBC7DD107FBBFCA936E9C8AECAB25F5B17A710A784C7 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2010 PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1584A179 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x561285E4 SWAP3 PUSH2 0x2044 SWAP3 DUP10 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x2F5F JUMP JUMPDEST PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2061 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2085 SWAP2 SWAP1 PUSH2 0x313F JUMP JUMPDEST PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1EBB7C30 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2104 SWAP2 SWAP1 PUSH2 0x31BE JUMP JUMPDEST PUSH2 0x2114 SWAP1 PUSH4 0xFFFFFFFF AND DUP6 PUSH2 0x31DB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2122 DUP4 DUP4 PUSH2 0x27B1 JUMP JUMPDEST PUSH2 0x212C SWAP1 DUP7 PUSH2 0x2F4C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH2 0x2175 PUSH1 0x20 DUP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x217F SWAP2 SWAP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x218A SWAP1 PUSH1 0x60 PUSH2 0x2F4C JUMP JUMPDEST DUP3 MLOAD SWAP1 DUP2 EQ SWAP1 PUSH1 0x1 PUSH2 0x219D PUSH1 0x20 DUP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x21A7 SWAP2 SWAP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x21B2 SWAP1 PUSH1 0x60 PUSH2 0x2F4C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x21DA JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x21F5 SWAP2 SWAP1 PUSH2 0x31F2 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2208 DUP7 PUSH1 0x60 PUSH2 0x27C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2221 DUP8 PUSH2 0x221C PUSH1 0x20 PUSH1 0x60 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x27C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2245 DUP9 PUSH1 0x20 PUSH2 0x2236 DUP2 PUSH1 0x60 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x2240 SWAP2 SWAP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x2813 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE SWAP8 DUP9 MSTORE PUSH1 0x20 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP5 DUP7 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP5 ADD MSTORE POP PUSH1 0xFF AND PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2289 DUP5 PUSH2 0x1320 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2295 PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0x12ECC4BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x25D9897E SWAP3 PUSH2 0x22C9 SWAP3 DUP8 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x2F5F JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x230B SWAP2 SWAP1 PUSH2 0x2F94 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 SUB PUSH2 0x2330 JUMPI PUSH1 0x40 MLOAD PUSH4 0x307EFDB7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x20 DUP1 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD DUP2 MLOAD SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT DUP5 DUP4 SHL DUP2 AND PUSH1 0x80 DUP4 ADD MSTORE SWAP2 DUP10 SWAP1 SHL SWAP1 SWAP2 AND PUSH1 0x94 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0xA8 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x2399 DUP2 PUSH2 0xFE1 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x23BC JUMPI PUSH1 0x40 MLOAD PUSH4 0x124A23F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x23CD DUP5 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2005 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MSTORE DUP13 DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP4 DUP6 ADD DUP15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x60 DUP7 ADD DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x80 DUP9 ADD DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0xA0 DUP11 ADD DUP2 SWAP1 MSTORE TIMESTAMP PUSH1 0xC0 DUP12 ADD MSTORE PUSH1 0xE0 DUP11 ADD DUP13 SWAP1 MSTORE DUP14 DUP6 MSTORE PUSH1 0x37 SWAP1 SWAP7 MSTORE SWAP9 SWAP1 SWAP3 KECCAK256 DUP8 MLOAD DUP2 SLOAD SWAP1 DUP9 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR DUP3 SSTORE SWAP6 MLOAD PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP10 AND SWAP2 SWAP1 SWAP8 AND OR SWAP1 SWAP7 SSTORE SWAP2 MLOAD DUP6 DUP3 ADD SSTORE SWAP1 MLOAD PUSH1 0x3 DUP6 ADD SSTORE SWAP5 MLOAD SWAP1 DUP4 ADD DUP1 SLOAD SWAP7 SWAP8 POP SWAP4 SWAP6 SWAP3 SWAP5 SWAP1 SWAP4 SWAP3 PUSH1 0xFF NOT AND SWAP2 SWAP1 DUP5 SWAP1 DUP2 GT ISZERO PUSH2 0x248A JUMPI PUSH2 0x248A PUSH2 0x2AAF JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP4 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x24B4 JUMPI PUSH2 0x24B4 PUSH2 0x2AAF JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD SSTORE SWAP1 POP POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xFB609A7FD5EB7947365D2F96D051030CAC33A27E3E4923F97EA4E03AAA2BCB14 DUP12 DUP12 PUSH1 0x40 ADD MLOAD DUP12 DUP8 PUSH1 0x40 MLOAD PUSH2 0x251E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3220 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP2 EQ DUP1 ISZERO PUSH2 0x254D JUMPI POP DUP2 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0xC07 JUMPI POP POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MLOAD EQ ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE DUP3 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 PUSH2 0x2593 DUP3 PUSH2 0x1E18 JUMP JUMPDEST SWAP1 POP PUSH2 0x25EC DUP2 DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD DUP8 PUSH1 0xA0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25D8 SWAP4 SWAP3 SWAP2 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x41 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x2865 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2603 DUP4 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x2616 JUMPI POP PUSH2 0x2616 DUP3 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP4 DUP4 SWAP1 SWAP2 PUSH2 0x2640 JUMPI PUSH1 0x40 MLOAD PUSH4 0x768BF0EB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP PUSH3 0xF4240 SWAP1 POP PUSH2 0x2651 DUP4 DUP6 PUSH2 0x31DB JUMP JUMPDEST PUSH2 0xC07 SWAP2 SWAP1 PUSH2 0x3250 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x266A JUMPI DUP2 PUSH2 0xC07 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0x16E2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE DUP5 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH2 0x1667 JUMP JUMPDEST PUSH2 0x26BA PUSH2 0x288F JUMP JUMPDEST PUSH2 0xD60 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1436 PUSH2 0x26B2 JUMP JUMPDEST PUSH2 0x26E7 PUSH2 0x26B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xD87CD6EF79D4E2B95E15CE8ABF732DB51EC771F1CA2EDCCF22A46C729AC56472 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x171A7FA058648750A8C5AAE430F30DB8D0100EFC3A5E1B2E8054B1C1CE28B6B4 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x44852B2A670ADE5407E78FB2863C51DE9FCB96542A07186FE3AEDA6BB8A116D PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0xA070FFB1CD7409649BF77822CCE74495468E06DBFAEF09556838BF188679B9C2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x266A JUMPI DUP2 PUSH2 0xC07 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27CE PUSH1 0x20 DUP4 PUSH2 0x2F4C JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP2 LT ISZERO SWAP1 PUSH2 0x27E0 PUSH1 0x20 DUP6 PUSH2 0x2F4C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x2808 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2820 PUSH1 0x1 DUP4 PUSH2 0x2F4C JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP2 LT ISZERO SWAP1 PUSH2 0x2832 PUSH1 0x1 DUP6 PUSH2 0x2F4C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x285A JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP POP ADD PUSH1 0x1 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2875 DUP7 DUP7 PUSH2 0x28A9 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x2885 DUP3 DUP3 PUSH2 0x28F6 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2899 PUSH2 0x1BD3 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x28E3 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x28D5 DUP9 DUP3 DUP6 DUP6 PUSH2 0x29AF JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x28EF JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x290A JUMPI PUSH2 0x290A PUSH2 0x2AAF JUMP JUMPDEST SUB PUSH2 0x2913 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2927 JUMPI PUSH2 0x2927 PUSH2 0x2AAF JUMP JUMPDEST SUB PUSH2 0x2945 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2959 JUMPI PUSH2 0x2959 PUSH2 0x2AAF JUMP JUMPDEST SUB PUSH2 0x297A JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x51F JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x298E JUMPI PUSH2 0x298E PUSH2 0x2AAF JUMP JUMPDEST SUB PUSH2 0x186E JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x51F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 GT ISZERO PUSH2 0x29E0 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x2A6A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2A60 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x2A6A JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x6 DUP2 LT PUSH2 0x2AD5 JUMPI PUSH2 0x2AD5 PUSH2 0x2AAF JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE DUP9 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x100 DUP2 ADD PUSH1 0x3 DUP7 LT PUSH2 0x2B10 JUMPI PUSH2 0x2B10 PUSH2 0x2AAF JUMP JUMPDEST DUP6 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2B23 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x2AC5 JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xE0 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2B80 DUP2 PUSH2 0x2B4D JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2BCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2BD8 DUP2 PUSH2 0x2B4D JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2BE8 DUP2 PUSH2 0x2B8E JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH2 0x2BFF DUP2 PUSH2 0x2BA3 JUMP JUMPDEST SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH2 0x2C0F DUP2 PUSH2 0x2BA3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xC0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2C4D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2C4D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2C4D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x2CC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2CFA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE DUP5 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE SWAP4 DUP5 ADD CALLDATALOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x10A8 DUP2 PUSH2 0x2BA3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x10A8 DUP2 PUSH2 0x2B4D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2D6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2D9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2DB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2DCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DD7 DUP6 DUP3 DUP7 ADD PUSH2 0x2D5A JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2DF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2E0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E1B DUP8 DUP3 DUP9 ADD PUSH2 0x2D5A JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2E3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E46 DUP8 DUP3 DUP9 ADD PUSH2 0x2D5A JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E6C PUSH2 0x2C1D JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 POP PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2EAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ECB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC07 DUP4 DUP4 PUSH2 0x2E52 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x180 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF3 DUP5 DUP5 PUSH2 0x2E52 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F02 DUP5 PUSH1 0xC0 DUP6 ADD PUSH2 0x2E52 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x10A8 DUP2 PUSH2 0x2B8E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC0A DUP3 DUP5 PUSH2 0x2AC5 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xC0A JUMPI PUSH2 0xC0A PUSH2 0x2F36 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2F84 DUP2 PUSH2 0x2BA3 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2F84 DUP2 PUSH2 0x2B8E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x2FA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x2FB3 PUSH2 0x2C53 JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2FD7 PUSH1 0x60 DUP6 ADD PUSH2 0x2F79 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2FE8 PUSH1 0x80 DUP6 ADD PUSH2 0x2F89 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2FF9 PUSH1 0xA0 DUP6 ADD PUSH2 0x2F89 JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x300A PUSH1 0xC0 DUP6 ADD PUSH2 0x2F79 JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x301B PUSH1 0xE0 DUP6 ADD PUSH2 0x2F89 JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x304A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x3055 PUSH2 0x2C84 JUMP JUMPDEST DUP4 MLOAD PUSH2 0x3060 DUP2 PUSH2 0x2B4D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x30D9 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x30BD JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x25EC SWAP1 DUP4 ADD DUP5 PUSH2 0x30B3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x312F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x10A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x3152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 PUSH1 0xA0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3184 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE DUP5 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP7 ADD MLOAD SWAP1 DUP4 ADD MSTORE DUP5 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x10A8 DUP2 PUSH2 0x2BA3 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xC0A JUMPI PUSH2 0xC0A PUSH2 0x2F36 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3207 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP5 SWAP3 SWAP4 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP5 DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x323F PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x30B3 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x326D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ISZERO 0xFC MLOAD 0xA7 SWAP3 SELFBALANCE 0xA9 0xED CALLCODE PUSH12 0xDAF727EA63DE7398A97BC3A2 PUSH27 0xD1E74C0FF8BF34282E64736F6C634300081B003300000000000000 ", - "sourceMap": "2429:26817:48:-:0;;;3950:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3997:10;-1:-1:-1;;;;;4295:24:33;;4287:81;;;;-1:-1:-1;;;4287:81:33;;510:2:62;4287:81:33;;;492:21:62;549:2;529:18;;;522:30;-1:-1:-1;;;568:18:62;;;561:40;618:18;;4287:81:33;;;;;;;;;-1:-1:-1;;;;;4379:42:33;;;;4457:40;;;;;;;;;;;;-1:-1:-1;;;4457:40:33;;;;;;:26;:40::i;:::-;-1:-1:-1;;;;;4431:67:33;;;4540:37;;;;;;;;;;;;-1:-1:-1;;;4540:37:33;;;;;;:26;:37::i;:::-;-1:-1:-1;;;;;4508:70:33;;;4620:43;;;;;;;;;;;;-1:-1:-1;;;4620:43:33;;;;;;:26;:43::i;:::-;-1:-1:-1;;;;;4588:76:33;;;4714:44;;;;;;;;;;;;-1:-1:-1;;;4714:44:33;;;;;;:26;:44::i;:::-;-1:-1:-1;;;;;4674:85:33;;;4805:42;;;;;;;;;;;;-1:-1:-1;;;4805:42:33;;;;;;:26;:42::i;:::-;-1:-1:-1;;;;;4769:79:33;;;4898:44;;;;;;;;;;;;-1:-1:-1;;;4898:44:33;;;;;;:26;:44::i;:::-;-1:-1:-1;;;;;4858:85:33;;;4989:47;;;;;;;;;;;;-1:-1:-1;;;4989:47:33;;;;;;:26;:47::i;:::-;-1:-1:-1;;;;;4953:84:33;;;5084:45;;;;;;;;;;;;-1:-1:-1;;;5084:45:33;;;;;;:26;:45::i;:::-;-1:-1:-1;;;;;5047:83:33;;;5167:38;;;;;;;;;;;;-1:-1:-1;;;5167:38:33;;;;;;:26;:38::i;:::-;-1:-1:-1;;;;;5140:66:33;;;;;;;5420:16;;5303:13;;5269:11;;5339:14;;5376:21;;5459:19;;5501:21;;5545:19;;5587:17;;5222:430;;;;;;;;;;;;;;;;;;;5587:17;;-1:-1:-1;;;;;980:32:62;;;962:51;;1049:32;;;1044:2;1029:18;;1022:60;1118:32;;;1113:2;1098:18;;1091:60;1187:32;;;1182:2;1167:18;;1160:60;1257:32;;1251:3;1236:19;;1229:61;1327:32;;1000:3;1306:19;;1299:61;1397:32;;;1391:3;1376:19;;1369:61;949:3;934:19;;647:789;5222:430:33;;;;;;;;-1:-1:-1;4019:22:48::1;:20;:22::i;:::-;3950:98:::0;2429:26817;;7673:326:33;7759:7;7778:23;7804:16;;-1:-1:-1;;;;;7804:33:33;;7848:13;7838:24;;;;;;7804:59;;;;;;;;;;;;;1587:25:62;;1575:2;1560:18;;1441:177;7804:59:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7778:85;-1:-1:-1;7945:13:33;-1:-1:-1;;;;;7881:29:33;;7873:87;;;;-1:-1:-1;;;7873:87:33;;;;;;;;:::i;:::-;-1:-1:-1;7977:15:33;7673:326;-1:-1:-1;;7673:326:33:o;7711:422:35:-;8870:21;7900:15;;;;;;;7896:76;;;7938:23;;-1:-1:-1;;;7938:23:35;;;;;;;;;;;7896:76;7985:14;;-1:-1:-1;;;;;7985:14:35;;;:34;7981:146;;8035:33;;-1:-1:-1;;;;;;8035:33:35;-1:-1:-1;;;;;8035:33:35;;;;;8087:29;;2297:50:62;;;8087:29:35;;2285:2:62;2270:18;8087:29:35;;;;;;;7981:146;7760:373;7711:422::o;14:290:62:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:62;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:62:o;1623:525::-;1770:2;1759:9;1752:21;1733:4;1802:6;1796:13;1845:6;1840:2;1829:9;1825:18;1818:34;1870:1;1880:140;1894:6;1891:1;1888:13;1880:140;;;2005:2;1989:14;;;1985:23;;1979:30;1974:2;1955:17;;;1951:26;1944:66;1909:10;1880:140;;;1884:3;2069:1;2064:2;2055:6;2044:9;2040:22;2036:31;2029:42;2139:2;2132;2128:7;2123:2;2115:6;2111:15;2107:29;2096:9;2092:45;2088:54;2080:62;;;1623:525;;;;:::o;2153:200::-;2429:26817:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@MAX_FISHERMAN_REWARD_CUT_8018": { - "entryPoint": null, - "id": 8018, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@__AttestationManager_init_13125": { - "entryPoint": 7176, - "id": 13125, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@__AttestationManager_init_unchained_13150": { - "entryPoint": 9951, - "id": 13150, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@__Ownable_init_4708": { - "entryPoint": 7159, - "id": 4708, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@__Ownable_init_unchained_4735": { - "entryPoint": 9943, - "id": 4735, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_cancelDisputeInConflict_9118": { - "entryPoint": 6079, - "id": 9118, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_checkInitializing_5024": { - "entryPoint": 9906, - "id": 5024, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_checkOwner_4776": { - "entryPoint": 5934, - "id": 4776, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_createIndexingDisputeWithAllocation_9040": { - "entryPoint": 6289, - "id": 9040, - "parameterSlots": 4, - "returnSlots": 1 - }, - "@_createQueryDisputeWithAttestation_8913": { - "entryPoint": 8829, - "id": 8913, - "parameterSlots": 4, - "returnSlots": 1 - }, - "@_drawDisputeInConflict_9079": { - "entryPoint": 7989, - "id": 9079, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_encodeReceipt_13225": { - "entryPoint": 7704, - "id": 13225, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_getInitializableStorage_5101": { - "entryPoint": 7123, - "id": 5101, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_getOwnableStorage_4679": { - "entryPoint": 7953, - "id": 4679, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_getStakeSnapshot_9437": { - "entryPoint": 8197, - "id": 9437, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@_graphStaking_4540": { - "entryPoint": 8161, - "id": 4540, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_graphToken_4530": { - "entryPoint": 5644, - "id": 4530, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_isDisputeInConflict_9390": { - "entryPoint": 5863, - "id": 9390, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_isInitializing_5092": { - "entryPoint": 10383, - "id": 5092, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_msgSender_5130": { - "entryPoint": null, - "id": 5130, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_pullFishermanDeposit_9131": { - "entryPoint": 6258, - "id": 9131, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_recoverSigner_13195": { - "entryPoint": 9571, - "id": 13195, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_setArbitrator_9238": { - "entryPoint": 7192, - "id": 9238, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setDisputeDeposit_9285": { - "entryPoint": 5984, - "id": 9285, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setDisputePeriod_9261": { - "entryPoint": 7305, - "id": 9261, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setFishermanRewardCut_9309": { - "entryPoint": 7438, - "id": 9309, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setMaxSlashingCut_9334": { - "entryPoint": 7563, - "id": 9334, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setSubgraphService_9362": { - "entryPoint": 8048, - "id": 9362, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_slashIndexer_9212": { - "entryPoint": 5225, - "id": 9212, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@_throwError_6729": { - "entryPoint": 10486, - "id": 6729, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_toBytes32_11919": { - "entryPoint": 10177, - "id": 11919, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@_toUint8_11886": { - "entryPoint": 10259, - "id": 11886, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@_transferOwnership_4847": { - "entryPoint": 7861, - "id": 4847, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@acceptDispute_8373": { - "entryPoint": 1224, - "id": 8373, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@arbitrator_9451": { - "entryPoint": null, - "id": 9451, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@areConflictingAttestations_8670": { - "entryPoint": 5137, - "id": 8670, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@areConflicting_11783": { - "entryPoint": 9522, - "id": 11783, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@burnTokens_599": { - "entryPoint": 6157, - "id": 599, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@cancelDispute_8500": { - "entryPoint": 1887, - "id": 8500, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@createIndexingDispute_8174": { - "entryPoint": 3055, - "id": 8174, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@createQueryDisputeConflict_8300": { - "entryPoint": 4411, - "id": 8300, - "parameterSlots": 4, - "returnSlots": 2 - }, - "@createQueryDispute_8198": { - "entryPoint": 4271, - "id": 8198, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@disputeDeposit_9457": { - "entryPoint": null, - "id": 9457, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@disputePeriod_9454": { - "entryPoint": null, - "id": 9454, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@disputes_9469": { - "entryPoint": null, - "id": 9469, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@drawDispute_8430": { - "entryPoint": 3470, - "id": 8430, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@encodeReceipt_8599": { - "entryPoint": 3395, - "id": 8599, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@fishermanRewardCut_9460": { - "entryPoint": null, - "id": 9460, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@getAttestationIndexer_8783": { - "entryPoint": 4896, - "id": 8783, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getDisputePeriod_8619": { - "entryPoint": null, - "id": 8619, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@getStakeSnapshot_8650": { - "entryPoint": 4119, - "id": 8650, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getVerifierCut_8609": { - "entryPoint": null, - "id": 8609, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@initialize_8151": { - "entryPoint": 3088, - "id": 8151, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@isDisputeCreated_8801": { - "entryPoint": 4065, - "id": 8801, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@isValidPPM_4261": { - "entryPoint": null, - "id": 4261, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@maxSlashingCut_9463": { - "entryPoint": null, - "id": 9463, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@min_4146": { - "entryPoint": 10161, - "id": 4146, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@min_7009": { - "entryPoint": 9819, - "id": 7009, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@mulPPM_4219": { - "entryPoint": 9716, - "id": 4219, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@owner_4759": { - "entryPoint": 3443, - "id": 4759, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@parse_11853": { - "entryPoint": 8502, - "id": 11853, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@pullTokens_552": { - "entryPoint": 9841, - "id": 552, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@pushTokens_578": { - "entryPoint": 5680, - "id": 578, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@recover_6486": { - "entryPoint": 10341, - "id": 6486, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@rejectDispute_8727": { - "entryPoint": 2567, - "id": 8727, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@renounceOwnership_4790": { - "entryPoint": 3406, - "id": 4790, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@setArbitrator_8514": { - "entryPoint": 4048, - "id": 8514, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@setDisputeDeposit_8542": { - "entryPoint": 1867, - "id": 8542, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@setDisputePeriod_8528": { - "entryPoint": 5149, - "id": 8528, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@setFishermanRewardCut_8556": { - "entryPoint": 3426, - "id": 8556, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@setMaxSlashingCut_8570": { - "entryPoint": 4031, - "id": 8570, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@setSubgraphService_8584": { - "entryPoint": 4014, - "id": 8584, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@subgraphService_9448": { - "entryPoint": null, - "id": 9448, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@transferOwnership_4818": { - "entryPoint": 5166, - "id": 4818, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@tryRecover_6456": { - "entryPoint": 10409, - "id": 6456, - "parameterSlots": 2, - "returnSlots": 3 - }, - "@tryRecover_6644": { - "entryPoint": 10671, - "id": 6644, - "parameterSlots": 4, - "returnSlots": 3 - }, - "abi_decode_bytes_calldata": { - "entryPoint": 11610, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_struct_State": { - "entryPoint": 11858, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 11581, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_bytes32": { - "entryPoint": 11106, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_uint64t_uint256t_uint32t_uint32": { - "entryPoint": 11189, - "id": null, - "parameterSlots": 2, - "returnSlots": 5 - }, - "abi_decode_tuple_t_bool_fromMemory": { - "entryPoint": 12573, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes32": { - "entryPoint": 10902, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes32t_bytes32t_bytes32_fromMemory": { - "entryPoint": 12786, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_bytes32t_uint256": { - "entryPoint": 10868, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes_calldata_ptr": { - "entryPoint": 11682, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr": { - "entryPoint": 11747, - "id": null, - "parameterSlots": 2, - "returnSlots": 4 - }, - "abi_decode_tuple_t_struct$_DelegationPool_$3748_memory_ptr_fromMemory": { - "entryPoint": 12607, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_struct$_Provision_$3718_memory_ptr_fromMemory": { - "entryPoint": 12180, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_struct$_Receipt_$11685_memory_ptr": { - "entryPoint": 11445, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_struct$_State_$11307_memory_ptr_fromMemory": { - "entryPoint": 12342, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_struct$_State_$11699_memory_ptr": { - "entryPoint": 11961, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_struct$_State_$11699_memory_ptrt_struct$_State_$11699_memory_ptr": { - "entryPoint": 11989, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint32": { - "entryPoint": 11552, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint32_fromMemory": { - "entryPoint": 12734, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint64": { - "entryPoint": 12043, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_uint32_fromMemory": { - "entryPoint": 12153, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_decode_uint64_fromMemory": { - "entryPoint": 12169, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_bytes": { - "entryPoint": 12467, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_enum_DisputeStatus": { - "entryPoint": 10949, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_packed_t_address_t_bytes32__to_t_address_t_bytes32__nonPadded_inplace_fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32_t_address_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_address__nonPadded_inplace_fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_bytes32_t_bytes32_t_uint8__to_t_bytes32_t_bytes32_t_uint8__nonPadded_inplace_fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { - "entryPoint": 12127, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes32_t_enum$_DisputeType_$10710_t_enum$_DisputeStatus_$10718_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_bytes32_t_uint8_t_uint8_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 10969, - "id": null, - "parameterSlots": 9, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": 12537, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 7, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 7, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_contract$_ISubgraphService_$11280__to_t_address__fromStack_reversed": { - "entryPoint": 11065, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_enum$_DisputeStatus_$10718__to_t_uint8__fromStack_reversed": { - "entryPoint": 12072, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_address_t_bytes32_t_uint256__to_t_uint256_t_address_t_bytes32_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256__to_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256__fromStack_reversed": { - "entryPoint": 12832, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "allocate_memory": { - "entryPoint": 11347, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "allocate_memory_2163": { - "entryPoint": 11293, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "allocate_memory_2167": { - "entryPoint": 11396, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "checked_add_t_uint256": { - "entryPoint": 12108, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_div_t_uint256": { - "entryPoint": 12880, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_mul_t_uint256": { - "entryPoint": 12763, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "panic_error_0x11": { - "entryPoint": 12086, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x21": { - "entryPoint": 10927, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "validator_revert_address": { - "entryPoint": 11085, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_uint32": { - "entryPoint": 11171, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_uint64": { - "entryPoint": 11150, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:23206:62", - "nodeType": "YulBlock", - "src": "0:23206:62", - "statements": [ - { - "nativeSrc": "6:3:62", - "nodeType": "YulBlock", - "src": "6:3:62", - "statements": [] - }, - { - "body": { - "nativeSrc": "101:259:62", - "nodeType": "YulBlock", - "src": "101:259:62", - "statements": [ - { - "body": { - "nativeSrc": "147:16:62", - "nodeType": "YulBlock", - "src": "147:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "156:1:62", - "nodeType": "YulLiteral", - "src": "156:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "159:1:62", - "nodeType": "YulLiteral", - "src": "159:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "149:6:62", - "nodeType": "YulIdentifier", - "src": "149:6:62" - }, - "nativeSrc": "149:12:62", - "nodeType": "YulFunctionCall", - "src": "149:12:62" - }, - "nativeSrc": "149:12:62", - "nodeType": "YulExpressionStatement", - "src": "149:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "122:7:62", - "nodeType": "YulIdentifier", - "src": "122:7:62" - }, - { - "name": "headStart", - "nativeSrc": "131:9:62", - "nodeType": "YulIdentifier", - "src": "131:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "118:3:62", - "nodeType": "YulIdentifier", - "src": "118:3:62" - }, - "nativeSrc": "118:23:62", - "nodeType": "YulFunctionCall", - "src": "118:23:62" - }, - { - "kind": "number", - "nativeSrc": "143:2:62", - "nodeType": "YulLiteral", - "src": "143:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "114:3:62", - "nodeType": "YulIdentifier", - "src": "114:3:62" - }, - "nativeSrc": "114:32:62", - "nodeType": "YulFunctionCall", - "src": "114:32:62" - }, - "nativeSrc": "111:52:62", - "nodeType": "YulIf", - "src": "111:52:62" - }, - { - "nativeSrc": "172:14:62", - "nodeType": "YulVariableDeclaration", - "src": "172:14:62", - "value": { - "kind": "number", - "nativeSrc": "185:1:62", - "nodeType": "YulLiteral", - "src": "185:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "176:5:62", - "nodeType": "YulTypedName", - "src": "176:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "195:32:62", - "nodeType": "YulAssignment", - "src": "195:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "217:9:62", - "nodeType": "YulIdentifier", - "src": "217:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "204:12:62", - "nodeType": "YulIdentifier", - "src": "204:12:62" - }, - "nativeSrc": "204:23:62", - "nodeType": "YulFunctionCall", - "src": "204:23:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "195:5:62", - "nodeType": "YulIdentifier", - "src": "195:5:62" - } - ] - }, - { - "nativeSrc": "236:15:62", - "nodeType": "YulAssignment", - "src": "236:15:62", - "value": { - "name": "value", - "nativeSrc": "246:5:62", - "nodeType": "YulIdentifier", - "src": "246:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "236:6:62", - "nodeType": "YulIdentifier", - "src": "236:6:62" - } - ] - }, - { - "nativeSrc": "260:16:62", - "nodeType": "YulVariableDeclaration", - "src": "260:16:62", - "value": { - "kind": "number", - "nativeSrc": "275:1:62", - "nodeType": "YulLiteral", - "src": "275:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "264:7:62", - "nodeType": "YulTypedName", - "src": "264:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "285:43:62", - "nodeType": "YulAssignment", - "src": "285:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "313:9:62", - "nodeType": "YulIdentifier", - "src": "313:9:62" - }, - { - "kind": "number", - "nativeSrc": "324:2:62", - "nodeType": "YulLiteral", - "src": "324:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "309:3:62", - "nodeType": "YulIdentifier", - "src": "309:3:62" - }, - "nativeSrc": "309:18:62", - "nodeType": "YulFunctionCall", - "src": "309:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "296:12:62", - "nodeType": "YulIdentifier", - "src": "296:12:62" - }, - "nativeSrc": "296:32:62", - "nodeType": "YulFunctionCall", - "src": "296:32:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "285:7:62", - "nodeType": "YulIdentifier", - "src": "285:7:62" - } - ] - }, - { - "nativeSrc": "337:17:62", - "nodeType": "YulAssignment", - "src": "337:17:62", - "value": { - "name": "value_1", - "nativeSrc": "347:7:62", - "nodeType": "YulIdentifier", - "src": "347:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "337:6:62", - "nodeType": "YulIdentifier", - "src": "337:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_uint256", - "nativeSrc": "14:346:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "59:9:62", - "nodeType": "YulTypedName", - "src": "59:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "70:7:62", - "nodeType": "YulTypedName", - "src": "70:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "82:6:62", - "nodeType": "YulTypedName", - "src": "82:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "90:6:62", - "nodeType": "YulTypedName", - "src": "90:6:62", - "type": "" - } - ], - "src": "14:346:62" - }, - { - "body": { - "nativeSrc": "464:93:62", - "nodeType": "YulBlock", - "src": "464:93:62", - "statements": [ - { - "nativeSrc": "474:26:62", - "nodeType": "YulAssignment", - "src": "474:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "486:9:62", - "nodeType": "YulIdentifier", - "src": "486:9:62" - }, - { - "kind": "number", - "nativeSrc": "497:2:62", - "nodeType": "YulLiteral", - "src": "497:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "482:3:62", - "nodeType": "YulIdentifier", - "src": "482:3:62" - }, - "nativeSrc": "482:18:62", - "nodeType": "YulFunctionCall", - "src": "482:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "474:4:62", - "nodeType": "YulIdentifier", - "src": "474:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "516:9:62", - "nodeType": "YulIdentifier", - "src": "516:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "531:6:62", - "nodeType": "YulIdentifier", - "src": "531:6:62" - }, - { - "kind": "number", - "nativeSrc": "539:10:62", - "nodeType": "YulLiteral", - "src": "539:10:62", - "type": "", - "value": "0xffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "527:3:62", - "nodeType": "YulIdentifier", - "src": "527:3:62" - }, - "nativeSrc": "527:23:62", - "nodeType": "YulFunctionCall", - "src": "527:23:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "509:6:62", - "nodeType": "YulIdentifier", - "src": "509:6:62" - }, - "nativeSrc": "509:42:62", - "nodeType": "YulFunctionCall", - "src": "509:42:62" - }, - "nativeSrc": "509:42:62", - "nodeType": "YulExpressionStatement", - "src": "509:42:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed", - "nativeSrc": "365:192:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "433:9:62", - "nodeType": "YulTypedName", - "src": "433:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "444:6:62", - "nodeType": "YulTypedName", - "src": "444:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "455:4:62", - "nodeType": "YulTypedName", - "src": "455:4:62", - "type": "" - } - ], - "src": "365:192:62" - }, - { - "body": { - "nativeSrc": "632:156:62", - "nodeType": "YulBlock", - "src": "632:156:62", - "statements": [ - { - "body": { - "nativeSrc": "678:16:62", - "nodeType": "YulBlock", - "src": "678:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "687:1:62", - "nodeType": "YulLiteral", - "src": "687:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "690:1:62", - "nodeType": "YulLiteral", - "src": "690:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "680:6:62", - "nodeType": "YulIdentifier", - "src": "680:6:62" - }, - "nativeSrc": "680:12:62", - "nodeType": "YulFunctionCall", - "src": "680:12:62" - }, - "nativeSrc": "680:12:62", - "nodeType": "YulExpressionStatement", - "src": "680:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "653:7:62", - "nodeType": "YulIdentifier", - "src": "653:7:62" - }, - { - "name": "headStart", - "nativeSrc": "662:9:62", - "nodeType": "YulIdentifier", - "src": "662:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "649:3:62", - "nodeType": "YulIdentifier", - "src": "649:3:62" - }, - "nativeSrc": "649:23:62", - "nodeType": "YulFunctionCall", - "src": "649:23:62" - }, - { - "kind": "number", - "nativeSrc": "674:2:62", - "nodeType": "YulLiteral", - "src": "674:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "645:3:62", - "nodeType": "YulIdentifier", - "src": "645:3:62" - }, - "nativeSrc": "645:32:62", - "nodeType": "YulFunctionCall", - "src": "645:32:62" - }, - "nativeSrc": "642:52:62", - "nodeType": "YulIf", - "src": "642:52:62" - }, - { - "nativeSrc": "703:14:62", - "nodeType": "YulVariableDeclaration", - "src": "703:14:62", - "value": { - "kind": "number", - "nativeSrc": "716:1:62", - "nodeType": "YulLiteral", - "src": "716:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "707:5:62", - "nodeType": "YulTypedName", - "src": "707:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "726:32:62", - "nodeType": "YulAssignment", - "src": "726:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "748:9:62", - "nodeType": "YulIdentifier", - "src": "748:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "735:12:62", - "nodeType": "YulIdentifier", - "src": "735:12:62" - }, - "nativeSrc": "735:23:62", - "nodeType": "YulFunctionCall", - "src": "735:23:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "726:5:62", - "nodeType": "YulIdentifier", - "src": "726:5:62" - } - ] - }, - { - "nativeSrc": "767:15:62", - "nodeType": "YulAssignment", - "src": "767:15:62", - "value": { - "name": "value", - "nativeSrc": "777:5:62", - "nodeType": "YulIdentifier", - "src": "777:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "767:6:62", - "nodeType": "YulIdentifier", - "src": "767:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "562:226:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "598:9:62", - "nodeType": "YulTypedName", - "src": "598:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "609:7:62", - "nodeType": "YulTypedName", - "src": "609:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "621:6:62", - "nodeType": "YulTypedName", - "src": "621:6:62", - "type": "" - } - ], - "src": "562:226:62" - }, - { - "body": { - "nativeSrc": "825:95:62", - "nodeType": "YulBlock", - "src": "825:95:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "842:1:62", - "nodeType": "YulLiteral", - "src": "842:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "849:3:62", - "nodeType": "YulLiteral", - "src": "849:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "854:10:62", - "nodeType": "YulLiteral", - "src": "854:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "845:3:62", - "nodeType": "YulIdentifier", - "src": "845:3:62" - }, - "nativeSrc": "845:20:62", - "nodeType": "YulFunctionCall", - "src": "845:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "835:6:62", - "nodeType": "YulIdentifier", - "src": "835:6:62" - }, - "nativeSrc": "835:31:62", - "nodeType": "YulFunctionCall", - "src": "835:31:62" - }, - "nativeSrc": "835:31:62", - "nodeType": "YulExpressionStatement", - "src": "835:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "882:1:62", - "nodeType": "YulLiteral", - "src": "882:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "885:4:62", - "nodeType": "YulLiteral", - "src": "885:4:62", - "type": "", - "value": "0x21" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "875:6:62", - "nodeType": "YulIdentifier", - "src": "875:6:62" - }, - "nativeSrc": "875:15:62", - "nodeType": "YulFunctionCall", - "src": "875:15:62" - }, - "nativeSrc": "875:15:62", - "nodeType": "YulExpressionStatement", - "src": "875:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "906:1:62", - "nodeType": "YulLiteral", - "src": "906:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "909:4:62", - "nodeType": "YulLiteral", - "src": "909:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "899:6:62", - "nodeType": "YulIdentifier", - "src": "899:6:62" - }, - "nativeSrc": "899:15:62", - "nodeType": "YulFunctionCall", - "src": "899:15:62" - }, - "nativeSrc": "899:15:62", - "nodeType": "YulExpressionStatement", - "src": "899:15:62" - } - ] - }, - "name": "panic_error_0x21", - "nativeSrc": "793:127:62", - "nodeType": "YulFunctionDefinition", - "src": "793:127:62" - }, - { - "body": { - "nativeSrc": "980:89:62", - "nodeType": "YulBlock", - "src": "980:89:62", - "statements": [ - { - "body": { - "nativeSrc": "1014:22:62", - "nodeType": "YulBlock", - "src": "1014:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x21", - "nativeSrc": "1016:16:62", - "nodeType": "YulIdentifier", - "src": "1016:16:62" - }, - "nativeSrc": "1016:18:62", - "nodeType": "YulFunctionCall", - "src": "1016:18:62" - }, - "nativeSrc": "1016:18:62", - "nodeType": "YulExpressionStatement", - "src": "1016:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1003:5:62", - "nodeType": "YulIdentifier", - "src": "1003:5:62" - }, - { - "kind": "number", - "nativeSrc": "1010:1:62", - "nodeType": "YulLiteral", - "src": "1010:1:62", - "type": "", - "value": "6" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "1000:2:62", - "nodeType": "YulIdentifier", - "src": "1000:2:62" - }, - "nativeSrc": "1000:12:62", - "nodeType": "YulFunctionCall", - "src": "1000:12:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "993:6:62", - "nodeType": "YulIdentifier", - "src": "993:6:62" - }, - "nativeSrc": "993:20:62", - "nodeType": "YulFunctionCall", - "src": "993:20:62" - }, - "nativeSrc": "990:46:62", - "nodeType": "YulIf", - "src": "990:46:62" - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1052:3:62", - "nodeType": "YulIdentifier", - "src": "1052:3:62" - }, - { - "name": "value", - "nativeSrc": "1057:5:62", - "nodeType": "YulIdentifier", - "src": "1057:5:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1045:6:62", - "nodeType": "YulIdentifier", - "src": "1045:6:62" - }, - "nativeSrc": "1045:18:62", - "nodeType": "YulFunctionCall", - "src": "1045:18:62" - }, - "nativeSrc": "1045:18:62", - "nodeType": "YulExpressionStatement", - "src": "1045:18:62" - } - ] - }, - "name": "abi_encode_enum_DisputeStatus", - "nativeSrc": "925:144:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "964:5:62", - "nodeType": "YulTypedName", - "src": "964:5:62", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "971:3:62", - "nodeType": "YulTypedName", - "src": "971:3:62", - "type": "" - } - ], - "src": "925:144:62" - }, - { - "body": { - "nativeSrc": "1403:513:62", - "nodeType": "YulBlock", - "src": "1403:513:62", - "statements": [ - { - "nativeSrc": "1413:27:62", - "nodeType": "YulAssignment", - "src": "1413:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1425:9:62", - "nodeType": "YulIdentifier", - "src": "1425:9:62" - }, - { - "kind": "number", - "nativeSrc": "1436:3:62", - "nodeType": "YulLiteral", - "src": "1436:3:62", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1421:3:62", - "nodeType": "YulIdentifier", - "src": "1421:3:62" - }, - "nativeSrc": "1421:19:62", - "nodeType": "YulFunctionCall", - "src": "1421:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1413:4:62", - "nodeType": "YulIdentifier", - "src": "1413:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1456:9:62", - "nodeType": "YulIdentifier", - "src": "1456:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1471:6:62", - "nodeType": "YulIdentifier", - "src": "1471:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1487:3:62", - "nodeType": "YulLiteral", - "src": "1487:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1492:1:62", - "nodeType": "YulLiteral", - "src": "1492:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1483:3:62", - "nodeType": "YulIdentifier", - "src": "1483:3:62" - }, - "nativeSrc": "1483:11:62", - "nodeType": "YulFunctionCall", - "src": "1483:11:62" - }, - { - "kind": "number", - "nativeSrc": "1496:1:62", - "nodeType": "YulLiteral", - "src": "1496:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1479:3:62", - "nodeType": "YulIdentifier", - "src": "1479:3:62" - }, - "nativeSrc": "1479:19:62", - "nodeType": "YulFunctionCall", - "src": "1479:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1467:3:62", - "nodeType": "YulIdentifier", - "src": "1467:3:62" - }, - "nativeSrc": "1467:32:62", - "nodeType": "YulFunctionCall", - "src": "1467:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1449:6:62", - "nodeType": "YulIdentifier", - "src": "1449:6:62" - }, - "nativeSrc": "1449:51:62", - "nodeType": "YulFunctionCall", - "src": "1449:51:62" - }, - "nativeSrc": "1449:51:62", - "nodeType": "YulExpressionStatement", - "src": "1449:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1520:9:62", - "nodeType": "YulIdentifier", - "src": "1520:9:62" - }, - { - "kind": "number", - "nativeSrc": "1531:2:62", - "nodeType": "YulLiteral", - "src": "1531:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1516:3:62", - "nodeType": "YulIdentifier", - "src": "1516:3:62" - }, - "nativeSrc": "1516:18:62", - "nodeType": "YulFunctionCall", - "src": "1516:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "1540:6:62", - "nodeType": "YulIdentifier", - "src": "1540:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1556:3:62", - "nodeType": "YulLiteral", - "src": "1556:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1561:1:62", - "nodeType": "YulLiteral", - "src": "1561:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1552:3:62", - "nodeType": "YulIdentifier", - "src": "1552:3:62" - }, - "nativeSrc": "1552:11:62", - "nodeType": "YulFunctionCall", - "src": "1552:11:62" - }, - { - "kind": "number", - "nativeSrc": "1565:1:62", - "nodeType": "YulLiteral", - "src": "1565:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1548:3:62", - "nodeType": "YulIdentifier", - "src": "1548:3:62" - }, - "nativeSrc": "1548:19:62", - "nodeType": "YulFunctionCall", - "src": "1548:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1536:3:62", - "nodeType": "YulIdentifier", - "src": "1536:3:62" - }, - "nativeSrc": "1536:32:62", - "nodeType": "YulFunctionCall", - "src": "1536:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1509:6:62", - "nodeType": "YulIdentifier", - "src": "1509:6:62" - }, - "nativeSrc": "1509:60:62", - "nodeType": "YulFunctionCall", - "src": "1509:60:62" - }, - "nativeSrc": "1509:60:62", - "nodeType": "YulExpressionStatement", - "src": "1509:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1589:9:62", - "nodeType": "YulIdentifier", - "src": "1589:9:62" - }, - { - "kind": "number", - "nativeSrc": "1600:2:62", - "nodeType": "YulLiteral", - "src": "1600:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1585:3:62", - "nodeType": "YulIdentifier", - "src": "1585:3:62" - }, - "nativeSrc": "1585:18:62", - "nodeType": "YulFunctionCall", - "src": "1585:18:62" - }, - { - "name": "value2", - "nativeSrc": "1605:6:62", - "nodeType": "YulIdentifier", - "src": "1605:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1578:6:62", - "nodeType": "YulIdentifier", - "src": "1578:6:62" - }, - "nativeSrc": "1578:34:62", - "nodeType": "YulFunctionCall", - "src": "1578:34:62" - }, - "nativeSrc": "1578:34:62", - "nodeType": "YulExpressionStatement", - "src": "1578:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1632:9:62", - "nodeType": "YulIdentifier", - "src": "1632:9:62" - }, - { - "kind": "number", - "nativeSrc": "1643:2:62", - "nodeType": "YulLiteral", - "src": "1643:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1628:3:62", - "nodeType": "YulIdentifier", - "src": "1628:3:62" - }, - "nativeSrc": "1628:18:62", - "nodeType": "YulFunctionCall", - "src": "1628:18:62" - }, - { - "name": "value3", - "nativeSrc": "1648:6:62", - "nodeType": "YulIdentifier", - "src": "1648:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1621:6:62", - "nodeType": "YulIdentifier", - "src": "1621:6:62" - }, - "nativeSrc": "1621:34:62", - "nodeType": "YulFunctionCall", - "src": "1621:34:62" - }, - "nativeSrc": "1621:34:62", - "nodeType": "YulExpressionStatement", - "src": "1621:34:62" - }, - { - "body": { - "nativeSrc": "1689:22:62", - "nodeType": "YulBlock", - "src": "1689:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x21", - "nativeSrc": "1691:16:62", - "nodeType": "YulIdentifier", - "src": "1691:16:62" - }, - "nativeSrc": "1691:18:62", - "nodeType": "YulFunctionCall", - "src": "1691:18:62" - }, - "nativeSrc": "1691:18:62", - "nodeType": "YulExpressionStatement", - "src": "1691:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value4", - "nativeSrc": "1677:6:62", - "nodeType": "YulIdentifier", - "src": "1677:6:62" - }, - { - "kind": "number", - "nativeSrc": "1685:1:62", - "nodeType": "YulLiteral", - "src": "1685:1:62", - "type": "", - "value": "3" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "1674:2:62", - "nodeType": "YulIdentifier", - "src": "1674:2:62" - }, - "nativeSrc": "1674:13:62", - "nodeType": "YulFunctionCall", - "src": "1674:13:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1667:6:62", - "nodeType": "YulIdentifier", - "src": "1667:6:62" - }, - "nativeSrc": "1667:21:62", - "nodeType": "YulFunctionCall", - "src": "1667:21:62" - }, - "nativeSrc": "1664:47:62", - "nodeType": "YulIf", - "src": "1664:47:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1731:9:62", - "nodeType": "YulIdentifier", - "src": "1731:9:62" - }, - { - "kind": "number", - "nativeSrc": "1742:3:62", - "nodeType": "YulLiteral", - "src": "1742:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1727:3:62", - "nodeType": "YulIdentifier", - "src": "1727:3:62" - }, - "nativeSrc": "1727:19:62", - "nodeType": "YulFunctionCall", - "src": "1727:19:62" - }, - { - "name": "value4", - "nativeSrc": "1748:6:62", - "nodeType": "YulIdentifier", - "src": "1748:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1720:6:62", - "nodeType": "YulIdentifier", - "src": "1720:6:62" - }, - "nativeSrc": "1720:35:62", - "nodeType": "YulFunctionCall", - "src": "1720:35:62" - }, - "nativeSrc": "1720:35:62", - "nodeType": "YulExpressionStatement", - "src": "1720:35:62" - }, - { - "expression": { - "arguments": [ - { - "name": "value5", - "nativeSrc": "1794:6:62", - "nodeType": "YulIdentifier", - "src": "1794:6:62" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1806:9:62", - "nodeType": "YulIdentifier", - "src": "1806:9:62" - }, - { - "kind": "number", - "nativeSrc": "1817:3:62", - "nodeType": "YulLiteral", - "src": "1817:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1802:3:62", - "nodeType": "YulIdentifier", - "src": "1802:3:62" - }, - "nativeSrc": "1802:19:62", - "nodeType": "YulFunctionCall", - "src": "1802:19:62" - } - ], - "functionName": { - "name": "abi_encode_enum_DisputeStatus", - "nativeSrc": "1764:29:62", - "nodeType": "YulIdentifier", - "src": "1764:29:62" - }, - "nativeSrc": "1764:58:62", - "nodeType": "YulFunctionCall", - "src": "1764:58:62" - }, - "nativeSrc": "1764:58:62", - "nodeType": "YulExpressionStatement", - "src": "1764:58:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1842:9:62", - "nodeType": "YulIdentifier", - "src": "1842:9:62" - }, - { - "kind": "number", - "nativeSrc": "1853:3:62", - "nodeType": "YulLiteral", - "src": "1853:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1838:3:62", - "nodeType": "YulIdentifier", - "src": "1838:3:62" - }, - "nativeSrc": "1838:19:62", - "nodeType": "YulFunctionCall", - "src": "1838:19:62" - }, - { - "name": "value6", - "nativeSrc": "1859:6:62", - "nodeType": "YulIdentifier", - "src": "1859:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1831:6:62", - "nodeType": "YulIdentifier", - "src": "1831:6:62" - }, - "nativeSrc": "1831:35:62", - "nodeType": "YulFunctionCall", - "src": "1831:35:62" - }, - "nativeSrc": "1831:35:62", - "nodeType": "YulExpressionStatement", - "src": "1831:35:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1886:9:62", - "nodeType": "YulIdentifier", - "src": "1886:9:62" - }, - { - "kind": "number", - "nativeSrc": "1897:3:62", - "nodeType": "YulLiteral", - "src": "1897:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1882:3:62", - "nodeType": "YulIdentifier", - "src": "1882:3:62" - }, - "nativeSrc": "1882:19:62", - "nodeType": "YulFunctionCall", - "src": "1882:19:62" - }, - { - "name": "value7", - "nativeSrc": "1903:6:62", - "nodeType": "YulIdentifier", - "src": "1903:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1875:6:62", - "nodeType": "YulIdentifier", - "src": "1875:6:62" - }, - "nativeSrc": "1875:35:62", - "nodeType": "YulFunctionCall", - "src": "1875:35:62" - }, - "nativeSrc": "1875:35:62", - "nodeType": "YulExpressionStatement", - "src": "1875:35:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_bytes32_t_enum$_DisputeType_$10710_t_enum$_DisputeStatus_$10718_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_bytes32_t_uint8_t_uint8_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "1074:842:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1316:9:62", - "nodeType": "YulTypedName", - "src": "1316:9:62", - "type": "" - }, - { - "name": "value7", - "nativeSrc": "1327:6:62", - "nodeType": "YulTypedName", - "src": "1327:6:62", - "type": "" - }, - { - "name": "value6", - "nativeSrc": "1335:6:62", - "nodeType": "YulTypedName", - "src": "1335:6:62", - "type": "" - }, - { - "name": "value5", - "nativeSrc": "1343:6:62", - "nodeType": "YulTypedName", - "src": "1343:6:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "1351:6:62", - "nodeType": "YulTypedName", - "src": "1351:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "1359:6:62", - "nodeType": "YulTypedName", - "src": "1359:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "1367:6:62", - "nodeType": "YulTypedName", - "src": "1367:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1375:6:62", - "nodeType": "YulTypedName", - "src": "1375:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1383:6:62", - "nodeType": "YulTypedName", - "src": "1383:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1394:4:62", - "nodeType": "YulTypedName", - "src": "1394:4:62", - "type": "" - } - ], - "src": "1074:842:62" - }, - { - "body": { - "nativeSrc": "1991:156:62", - "nodeType": "YulBlock", - "src": "1991:156:62", - "statements": [ - { - "body": { - "nativeSrc": "2037:16:62", - "nodeType": "YulBlock", - "src": "2037:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2046:1:62", - "nodeType": "YulLiteral", - "src": "2046:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2049:1:62", - "nodeType": "YulLiteral", - "src": "2049:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2039:6:62", - "nodeType": "YulIdentifier", - "src": "2039:6:62" - }, - "nativeSrc": "2039:12:62", - "nodeType": "YulFunctionCall", - "src": "2039:12:62" - }, - "nativeSrc": "2039:12:62", - "nodeType": "YulExpressionStatement", - "src": "2039:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2012:7:62", - "nodeType": "YulIdentifier", - "src": "2012:7:62" - }, - { - "name": "headStart", - "nativeSrc": "2021:9:62", - "nodeType": "YulIdentifier", - "src": "2021:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2008:3:62", - "nodeType": "YulIdentifier", - "src": "2008:3:62" - }, - "nativeSrc": "2008:23:62", - "nodeType": "YulFunctionCall", - "src": "2008:23:62" - }, - { - "kind": "number", - "nativeSrc": "2033:2:62", - "nodeType": "YulLiteral", - "src": "2033:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2004:3:62", - "nodeType": "YulIdentifier", - "src": "2004:3:62" - }, - "nativeSrc": "2004:32:62", - "nodeType": "YulFunctionCall", - "src": "2004:32:62" - }, - "nativeSrc": "2001:52:62", - "nodeType": "YulIf", - "src": "2001:52:62" - }, - { - "nativeSrc": "2062:14:62", - "nodeType": "YulVariableDeclaration", - "src": "2062:14:62", - "value": { - "kind": "number", - "nativeSrc": "2075:1:62", - "nodeType": "YulLiteral", - "src": "2075:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "2066:5:62", - "nodeType": "YulTypedName", - "src": "2066:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "2085:32:62", - "nodeType": "YulAssignment", - "src": "2085:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2107:9:62", - "nodeType": "YulIdentifier", - "src": "2107:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2094:12:62", - "nodeType": "YulIdentifier", - "src": "2094:12:62" - }, - "nativeSrc": "2094:23:62", - "nodeType": "YulFunctionCall", - "src": "2094:23:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "2085:5:62", - "nodeType": "YulIdentifier", - "src": "2085:5:62" - } - ] - }, - { - "nativeSrc": "2126:15:62", - "nodeType": "YulAssignment", - "src": "2126:15:62", - "value": { - "name": "value", - "nativeSrc": "2136:5:62", - "nodeType": "YulIdentifier", - "src": "2136:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2126:6:62", - "nodeType": "YulIdentifier", - "src": "2126:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nativeSrc": "1921:226:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1957:9:62", - "nodeType": "YulTypedName", - "src": "1957:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1968:7:62", - "nodeType": "YulTypedName", - "src": "1968:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1980:6:62", - "nodeType": "YulTypedName", - "src": "1980:6:62", - "type": "" - } - ], - "src": "1921:226:62" - }, - { - "body": { - "nativeSrc": "2279:102:62", - "nodeType": "YulBlock", - "src": "2279:102:62", - "statements": [ - { - "nativeSrc": "2289:26:62", - "nodeType": "YulAssignment", - "src": "2289:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2301:9:62", - "nodeType": "YulIdentifier", - "src": "2301:9:62" - }, - { - "kind": "number", - "nativeSrc": "2312:2:62", - "nodeType": "YulLiteral", - "src": "2312:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2297:3:62", - "nodeType": "YulIdentifier", - "src": "2297:3:62" - }, - "nativeSrc": "2297:18:62", - "nodeType": "YulFunctionCall", - "src": "2297:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2289:4:62", - "nodeType": "YulIdentifier", - "src": "2289:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2331:9:62", - "nodeType": "YulIdentifier", - "src": "2331:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2346:6:62", - "nodeType": "YulIdentifier", - "src": "2346:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2362:3:62", - "nodeType": "YulLiteral", - "src": "2362:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "2367:1:62", - "nodeType": "YulLiteral", - "src": "2367:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "2358:3:62", - "nodeType": "YulIdentifier", - "src": "2358:3:62" - }, - "nativeSrc": "2358:11:62", - "nodeType": "YulFunctionCall", - "src": "2358:11:62" - }, - { - "kind": "number", - "nativeSrc": "2371:1:62", - "nodeType": "YulLiteral", - "src": "2371:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2354:3:62", - "nodeType": "YulIdentifier", - "src": "2354:3:62" - }, - "nativeSrc": "2354:19:62", - "nodeType": "YulFunctionCall", - "src": "2354:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2342:3:62", - "nodeType": "YulIdentifier", - "src": "2342:3:62" - }, - "nativeSrc": "2342:32:62", - "nodeType": "YulFunctionCall", - "src": "2342:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2324:6:62", - "nodeType": "YulIdentifier", - "src": "2324:6:62" - }, - "nativeSrc": "2324:51:62", - "nodeType": "YulFunctionCall", - "src": "2324:51:62" - }, - "nativeSrc": "2324:51:62", - "nodeType": "YulExpressionStatement", - "src": "2324:51:62" - } - ] - }, - "name": "abi_encode_tuple_t_contract$_ISubgraphService_$11280__to_t_address__fromStack_reversed", - "nativeSrc": "2152:229:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2248:9:62", - "nodeType": "YulTypedName", - "src": "2248:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2259:6:62", - "nodeType": "YulTypedName", - "src": "2259:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2270:4:62", - "nodeType": "YulTypedName", - "src": "2270:4:62", - "type": "" - } - ], - "src": "2152:229:62" - }, - { - "body": { - "nativeSrc": "2487:76:62", - "nodeType": "YulBlock", - "src": "2487:76:62", - "statements": [ - { - "nativeSrc": "2497:26:62", - "nodeType": "YulAssignment", - "src": "2497:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2509:9:62", - "nodeType": "YulIdentifier", - "src": "2509:9:62" - }, - { - "kind": "number", - "nativeSrc": "2520:2:62", - "nodeType": "YulLiteral", - "src": "2520:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2505:3:62", - "nodeType": "YulIdentifier", - "src": "2505:3:62" - }, - "nativeSrc": "2505:18:62", - "nodeType": "YulFunctionCall", - "src": "2505:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2497:4:62", - "nodeType": "YulIdentifier", - "src": "2497:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2539:9:62", - "nodeType": "YulIdentifier", - "src": "2539:9:62" - }, - { - "name": "value0", - "nativeSrc": "2550:6:62", - "nodeType": "YulIdentifier", - "src": "2550:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2532:6:62", - "nodeType": "YulIdentifier", - "src": "2532:6:62" - }, - "nativeSrc": "2532:25:62", - "nodeType": "YulFunctionCall", - "src": "2532:25:62" - }, - "nativeSrc": "2532:25:62", - "nodeType": "YulExpressionStatement", - "src": "2532:25:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "2386:177:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2456:9:62", - "nodeType": "YulTypedName", - "src": "2456:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2467:6:62", - "nodeType": "YulTypedName", - "src": "2467:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2478:4:62", - "nodeType": "YulTypedName", - "src": "2478:4:62", - "type": "" - } - ], - "src": "2386:177:62" - }, - { - "body": { - "nativeSrc": "2613:86:62", - "nodeType": "YulBlock", - "src": "2613:86:62", - "statements": [ - { - "body": { - "nativeSrc": "2677:16:62", - "nodeType": "YulBlock", - "src": "2677:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2686:1:62", - "nodeType": "YulLiteral", - "src": "2686:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2689:1:62", - "nodeType": "YulLiteral", - "src": "2689:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2679:6:62", - "nodeType": "YulIdentifier", - "src": "2679:6:62" - }, - "nativeSrc": "2679:12:62", - "nodeType": "YulFunctionCall", - "src": "2679:12:62" - }, - "nativeSrc": "2679:12:62", - "nodeType": "YulExpressionStatement", - "src": "2679:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2636:5:62", - "nodeType": "YulIdentifier", - "src": "2636:5:62" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2647:5:62", - "nodeType": "YulIdentifier", - "src": "2647:5:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2662:3:62", - "nodeType": "YulLiteral", - "src": "2662:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "2667:1:62", - "nodeType": "YulLiteral", - "src": "2667:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "2658:3:62", - "nodeType": "YulIdentifier", - "src": "2658:3:62" - }, - "nativeSrc": "2658:11:62", - "nodeType": "YulFunctionCall", - "src": "2658:11:62" - }, - { - "kind": "number", - "nativeSrc": "2671:1:62", - "nodeType": "YulLiteral", - "src": "2671:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2654:3:62", - "nodeType": "YulIdentifier", - "src": "2654:3:62" - }, - "nativeSrc": "2654:19:62", - "nodeType": "YulFunctionCall", - "src": "2654:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2643:3:62", - "nodeType": "YulIdentifier", - "src": "2643:3:62" - }, - "nativeSrc": "2643:31:62", - "nodeType": "YulFunctionCall", - "src": "2643:31:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "2633:2:62", - "nodeType": "YulIdentifier", - "src": "2633:2:62" - }, - "nativeSrc": "2633:42:62", - "nodeType": "YulFunctionCall", - "src": "2633:42:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2626:6:62", - "nodeType": "YulIdentifier", - "src": "2626:6:62" - }, - "nativeSrc": "2626:50:62", - "nodeType": "YulFunctionCall", - "src": "2626:50:62" - }, - "nativeSrc": "2623:70:62", - "nodeType": "YulIf", - "src": "2623:70:62" - } - ] - }, - "name": "validator_revert_address", - "nativeSrc": "2568:131:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2602:5:62", - "nodeType": "YulTypedName", - "src": "2602:5:62", - "type": "" - } - ], - "src": "2568:131:62" - }, - { - "body": { - "nativeSrc": "2791:280:62", - "nodeType": "YulBlock", - "src": "2791:280:62", - "statements": [ - { - "body": { - "nativeSrc": "2837:16:62", - "nodeType": "YulBlock", - "src": "2837:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2846:1:62", - "nodeType": "YulLiteral", - "src": "2846:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2849:1:62", - "nodeType": "YulLiteral", - "src": "2849:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2839:6:62", - "nodeType": "YulIdentifier", - "src": "2839:6:62" - }, - "nativeSrc": "2839:12:62", - "nodeType": "YulFunctionCall", - "src": "2839:12:62" - }, - "nativeSrc": "2839:12:62", - "nodeType": "YulExpressionStatement", - "src": "2839:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2812:7:62", - "nodeType": "YulIdentifier", - "src": "2812:7:62" - }, - { - "name": "headStart", - "nativeSrc": "2821:9:62", - "nodeType": "YulIdentifier", - "src": "2821:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2808:3:62", - "nodeType": "YulIdentifier", - "src": "2808:3:62" - }, - "nativeSrc": "2808:23:62", - "nodeType": "YulFunctionCall", - "src": "2808:23:62" - }, - { - "kind": "number", - "nativeSrc": "2833:2:62", - "nodeType": "YulLiteral", - "src": "2833:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2804:3:62", - "nodeType": "YulIdentifier", - "src": "2804:3:62" - }, - "nativeSrc": "2804:32:62", - "nodeType": "YulFunctionCall", - "src": "2804:32:62" - }, - "nativeSrc": "2801:52:62", - "nodeType": "YulIf", - "src": "2801:52:62" - }, - { - "nativeSrc": "2862:36:62", - "nodeType": "YulVariableDeclaration", - "src": "2862:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2888:9:62", - "nodeType": "YulIdentifier", - "src": "2888:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2875:12:62", - "nodeType": "YulIdentifier", - "src": "2875:12:62" - }, - "nativeSrc": "2875:23:62", - "nodeType": "YulFunctionCall", - "src": "2875:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "2866:5:62", - "nodeType": "YulTypedName", - "src": "2866:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2932:5:62", - "nodeType": "YulIdentifier", - "src": "2932:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "2907:24:62", - "nodeType": "YulIdentifier", - "src": "2907:24:62" - }, - "nativeSrc": "2907:31:62", - "nodeType": "YulFunctionCall", - "src": "2907:31:62" - }, - "nativeSrc": "2907:31:62", - "nodeType": "YulExpressionStatement", - "src": "2907:31:62" - }, - { - "nativeSrc": "2947:15:62", - "nodeType": "YulAssignment", - "src": "2947:15:62", - "value": { - "name": "value", - "nativeSrc": "2957:5:62", - "nodeType": "YulIdentifier", - "src": "2957:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2947:6:62", - "nodeType": "YulIdentifier", - "src": "2947:6:62" - } - ] - }, - { - "nativeSrc": "2971:16:62", - "nodeType": "YulVariableDeclaration", - "src": "2971:16:62", - "value": { - "kind": "number", - "nativeSrc": "2986:1:62", - "nodeType": "YulLiteral", - "src": "2986:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "2975:7:62", - "nodeType": "YulTypedName", - "src": "2975:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "2996:43:62", - "nodeType": "YulAssignment", - "src": "2996:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3024:9:62", - "nodeType": "YulIdentifier", - "src": "3024:9:62" - }, - { - "kind": "number", - "nativeSrc": "3035:2:62", - "nodeType": "YulLiteral", - "src": "3035:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3020:3:62", - "nodeType": "YulIdentifier", - "src": "3020:3:62" - }, - "nativeSrc": "3020:18:62", - "nodeType": "YulFunctionCall", - "src": "3020:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3007:12:62", - "nodeType": "YulIdentifier", - "src": "3007:12:62" - }, - "nativeSrc": "3007:32:62", - "nodeType": "YulFunctionCall", - "src": "3007:32:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "2996:7:62", - "nodeType": "YulIdentifier", - "src": "2996:7:62" - } - ] - }, - { - "nativeSrc": "3048:17:62", - "nodeType": "YulAssignment", - "src": "3048:17:62", - "value": { - "name": "value_1", - "nativeSrc": "3058:7:62", - "nodeType": "YulIdentifier", - "src": "3058:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3048:6:62", - "nodeType": "YulIdentifier", - "src": "3048:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes32", - "nativeSrc": "2704:367:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2749:9:62", - "nodeType": "YulTypedName", - "src": "2749:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "2760:7:62", - "nodeType": "YulTypedName", - "src": "2760:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "2772:6:62", - "nodeType": "YulTypedName", - "src": "2772:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "2780:6:62", - "nodeType": "YulTypedName", - "src": "2780:6:62", - "type": "" - } - ], - "src": "2704:367:62" - }, - { - "body": { - "nativeSrc": "3177:76:62", - "nodeType": "YulBlock", - "src": "3177:76:62", - "statements": [ - { - "nativeSrc": "3187:26:62", - "nodeType": "YulAssignment", - "src": "3187:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3199:9:62", - "nodeType": "YulIdentifier", - "src": "3199:9:62" - }, - { - "kind": "number", - "nativeSrc": "3210:2:62", - "nodeType": "YulLiteral", - "src": "3210:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3195:3:62", - "nodeType": "YulIdentifier", - "src": "3195:3:62" - }, - "nativeSrc": "3195:18:62", - "nodeType": "YulFunctionCall", - "src": "3195:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "3187:4:62", - "nodeType": "YulIdentifier", - "src": "3187:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3229:9:62", - "nodeType": "YulIdentifier", - "src": "3229:9:62" - }, - { - "name": "value0", - "nativeSrc": "3240:6:62", - "nodeType": "YulIdentifier", - "src": "3240:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3222:6:62", - "nodeType": "YulIdentifier", - "src": "3222:6:62" - }, - "nativeSrc": "3222:25:62", - "nodeType": "YulFunctionCall", - "src": "3222:25:62" - }, - "nativeSrc": "3222:25:62", - "nodeType": "YulExpressionStatement", - "src": "3222:25:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "3076:177:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3146:9:62", - "nodeType": "YulTypedName", - "src": "3146:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "3157:6:62", - "nodeType": "YulTypedName", - "src": "3157:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "3168:4:62", - "nodeType": "YulTypedName", - "src": "3168:4:62", - "type": "" - } - ], - "src": "3076:177:62" - }, - { - "body": { - "nativeSrc": "3357:101:62", - "nodeType": "YulBlock", - "src": "3357:101:62", - "statements": [ - { - "nativeSrc": "3367:26:62", - "nodeType": "YulAssignment", - "src": "3367:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3379:9:62", - "nodeType": "YulIdentifier", - "src": "3379:9:62" - }, - { - "kind": "number", - "nativeSrc": "3390:2:62", - "nodeType": "YulLiteral", - "src": "3390:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3375:3:62", - "nodeType": "YulIdentifier", - "src": "3375:3:62" - }, - "nativeSrc": "3375:18:62", - "nodeType": "YulFunctionCall", - "src": "3375:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "3367:4:62", - "nodeType": "YulIdentifier", - "src": "3367:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3409:9:62", - "nodeType": "YulIdentifier", - "src": "3409:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "3424:6:62", - "nodeType": "YulIdentifier", - "src": "3424:6:62" - }, - { - "kind": "number", - "nativeSrc": "3432:18:62", - "nodeType": "YulLiteral", - "src": "3432:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "3420:3:62", - "nodeType": "YulIdentifier", - "src": "3420:3:62" - }, - "nativeSrc": "3420:31:62", - "nodeType": "YulFunctionCall", - "src": "3420:31:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3402:6:62", - "nodeType": "YulIdentifier", - "src": "3402:6:62" - }, - "nativeSrc": "3402:50:62", - "nodeType": "YulFunctionCall", - "src": "3402:50:62" - }, - "nativeSrc": "3402:50:62", - "nodeType": "YulExpressionStatement", - "src": "3402:50:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", - "nativeSrc": "3258:200:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3326:9:62", - "nodeType": "YulTypedName", - "src": "3326:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "3337:6:62", - "nodeType": "YulTypedName", - "src": "3337:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "3348:4:62", - "nodeType": "YulTypedName", - "src": "3348:4:62", - "type": "" - } - ], - "src": "3258:200:62" - }, - { - "body": { - "nativeSrc": "3507:85:62", - "nodeType": "YulBlock", - "src": "3507:85:62", - "statements": [ - { - "body": { - "nativeSrc": "3570:16:62", - "nodeType": "YulBlock", - "src": "3570:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3579:1:62", - "nodeType": "YulLiteral", - "src": "3579:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3582:1:62", - "nodeType": "YulLiteral", - "src": "3582:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3572:6:62", - "nodeType": "YulIdentifier", - "src": "3572:6:62" - }, - "nativeSrc": "3572:12:62", - "nodeType": "YulFunctionCall", - "src": "3572:12:62" - }, - "nativeSrc": "3572:12:62", - "nodeType": "YulExpressionStatement", - "src": "3572:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3530:5:62", - "nodeType": "YulIdentifier", - "src": "3530:5:62" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3541:5:62", - "nodeType": "YulIdentifier", - "src": "3541:5:62" - }, - { - "kind": "number", - "nativeSrc": "3548:18:62", - "nodeType": "YulLiteral", - "src": "3548:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "3537:3:62", - "nodeType": "YulIdentifier", - "src": "3537:3:62" - }, - "nativeSrc": "3537:30:62", - "nodeType": "YulFunctionCall", - "src": "3537:30:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3527:2:62", - "nodeType": "YulIdentifier", - "src": "3527:2:62" - }, - "nativeSrc": "3527:41:62", - "nodeType": "YulFunctionCall", - "src": "3527:41:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3520:6:62", - "nodeType": "YulIdentifier", - "src": "3520:6:62" - }, - "nativeSrc": "3520:49:62", - "nodeType": "YulFunctionCall", - "src": "3520:49:62" - }, - "nativeSrc": "3517:69:62", - "nodeType": "YulIf", - "src": "3517:69:62" - } - ] - }, - "name": "validator_revert_uint64", - "nativeSrc": "3463:129:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3496:5:62", - "nodeType": "YulTypedName", - "src": "3496:5:62", - "type": "" - } - ], - "src": "3463:129:62" - }, - { - "body": { - "nativeSrc": "3641:77:62", - "nodeType": "YulBlock", - "src": "3641:77:62", - "statements": [ - { - "body": { - "nativeSrc": "3696:16:62", - "nodeType": "YulBlock", - "src": "3696:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3705:1:62", - "nodeType": "YulLiteral", - "src": "3705:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3708:1:62", - "nodeType": "YulLiteral", - "src": "3708:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3698:6:62", - "nodeType": "YulIdentifier", - "src": "3698:6:62" - }, - "nativeSrc": "3698:12:62", - "nodeType": "YulFunctionCall", - "src": "3698:12:62" - }, - "nativeSrc": "3698:12:62", - "nodeType": "YulExpressionStatement", - "src": "3698:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3664:5:62", - "nodeType": "YulIdentifier", - "src": "3664:5:62" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3675:5:62", - "nodeType": "YulIdentifier", - "src": "3675:5:62" - }, - { - "kind": "number", - "nativeSrc": "3682:10:62", - "nodeType": "YulLiteral", - "src": "3682:10:62", - "type": "", - "value": "0xffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "3671:3:62", - "nodeType": "YulIdentifier", - "src": "3671:3:62" - }, - "nativeSrc": "3671:22:62", - "nodeType": "YulFunctionCall", - "src": "3671:22:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3661:2:62", - "nodeType": "YulIdentifier", - "src": "3661:2:62" - }, - "nativeSrc": "3661:33:62", - "nodeType": "YulFunctionCall", - "src": "3661:33:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3654:6:62", - "nodeType": "YulIdentifier", - "src": "3654:6:62" - }, - "nativeSrc": "3654:41:62", - "nodeType": "YulFunctionCall", - "src": "3654:41:62" - }, - "nativeSrc": "3651:61:62", - "nodeType": "YulIf", - "src": "3651:61:62" - } - ] - }, - "name": "validator_revert_uint32", - "nativeSrc": "3597:121:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3630:5:62", - "nodeType": "YulTypedName", - "src": "3630:5:62", - "type": "" - } - ], - "src": "3597:121:62" - }, - { - "body": { - "nativeSrc": "3858:651:62", - "nodeType": "YulBlock", - "src": "3858:651:62", - "statements": [ - { - "body": { - "nativeSrc": "3905:16:62", - "nodeType": "YulBlock", - "src": "3905:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3914:1:62", - "nodeType": "YulLiteral", - "src": "3914:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3917:1:62", - "nodeType": "YulLiteral", - "src": "3917:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3907:6:62", - "nodeType": "YulIdentifier", - "src": "3907:6:62" - }, - "nativeSrc": "3907:12:62", - "nodeType": "YulFunctionCall", - "src": "3907:12:62" - }, - "nativeSrc": "3907:12:62", - "nodeType": "YulExpressionStatement", - "src": "3907:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3879:7:62", - "nodeType": "YulIdentifier", - "src": "3879:7:62" - }, - { - "name": "headStart", - "nativeSrc": "3888:9:62", - "nodeType": "YulIdentifier", - "src": "3888:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3875:3:62", - "nodeType": "YulIdentifier", - "src": "3875:3:62" - }, - "nativeSrc": "3875:23:62", - "nodeType": "YulFunctionCall", - "src": "3875:23:62" - }, - { - "kind": "number", - "nativeSrc": "3900:3:62", - "nodeType": "YulLiteral", - "src": "3900:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3871:3:62", - "nodeType": "YulIdentifier", - "src": "3871:3:62" - }, - "nativeSrc": "3871:33:62", - "nodeType": "YulFunctionCall", - "src": "3871:33:62" - }, - "nativeSrc": "3868:53:62", - "nodeType": "YulIf", - "src": "3868:53:62" - }, - { - "nativeSrc": "3930:36:62", - "nodeType": "YulVariableDeclaration", - "src": "3930:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3956:9:62", - "nodeType": "YulIdentifier", - "src": "3956:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3943:12:62", - "nodeType": "YulIdentifier", - "src": "3943:12:62" - }, - "nativeSrc": "3943:23:62", - "nodeType": "YulFunctionCall", - "src": "3943:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "3934:5:62", - "nodeType": "YulTypedName", - "src": "3934:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "4000:5:62", - "nodeType": "YulIdentifier", - "src": "4000:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "3975:24:62", - "nodeType": "YulIdentifier", - "src": "3975:24:62" - }, - "nativeSrc": "3975:31:62", - "nodeType": "YulFunctionCall", - "src": "3975:31:62" - }, - "nativeSrc": "3975:31:62", - "nodeType": "YulExpressionStatement", - "src": "3975:31:62" - }, - { - "nativeSrc": "4015:15:62", - "nodeType": "YulAssignment", - "src": "4015:15:62", - "value": { - "name": "value", - "nativeSrc": "4025:5:62", - "nodeType": "YulIdentifier", - "src": "4025:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4015:6:62", - "nodeType": "YulIdentifier", - "src": "4015:6:62" - } - ] - }, - { - "nativeSrc": "4039:47:62", - "nodeType": "YulVariableDeclaration", - "src": "4039:47:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4071:9:62", - "nodeType": "YulIdentifier", - "src": "4071:9:62" - }, - { - "kind": "number", - "nativeSrc": "4082:2:62", - "nodeType": "YulLiteral", - "src": "4082:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4067:3:62", - "nodeType": "YulIdentifier", - "src": "4067:3:62" - }, - "nativeSrc": "4067:18:62", - "nodeType": "YulFunctionCall", - "src": "4067:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4054:12:62", - "nodeType": "YulIdentifier", - "src": "4054:12:62" - }, - "nativeSrc": "4054:32:62", - "nodeType": "YulFunctionCall", - "src": "4054:32:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "4043:7:62", - "nodeType": "YulTypedName", - "src": "4043:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "4119:7:62", - "nodeType": "YulIdentifier", - "src": "4119:7:62" - } - ], - "functionName": { - "name": "validator_revert_uint64", - "nativeSrc": "4095:23:62", - "nodeType": "YulIdentifier", - "src": "4095:23:62" - }, - "nativeSrc": "4095:32:62", - "nodeType": "YulFunctionCall", - "src": "4095:32:62" - }, - "nativeSrc": "4095:32:62", - "nodeType": "YulExpressionStatement", - "src": "4095:32:62" - }, - { - "nativeSrc": "4136:17:62", - "nodeType": "YulAssignment", - "src": "4136:17:62", - "value": { - "name": "value_1", - "nativeSrc": "4146:7:62", - "nodeType": "YulIdentifier", - "src": "4146:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4136:6:62", - "nodeType": "YulIdentifier", - "src": "4136:6:62" - } - ] - }, - { - "nativeSrc": "4162:16:62", - "nodeType": "YulVariableDeclaration", - "src": "4162:16:62", - "value": { - "kind": "number", - "nativeSrc": "4177:1:62", - "nodeType": "YulLiteral", - "src": "4177:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "4166:7:62", - "nodeType": "YulTypedName", - "src": "4166:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "4187:43:62", - "nodeType": "YulAssignment", - "src": "4187:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4215:9:62", - "nodeType": "YulIdentifier", - "src": "4215:9:62" - }, - { - "kind": "number", - "nativeSrc": "4226:2:62", - "nodeType": "YulLiteral", - "src": "4226:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4211:3:62", - "nodeType": "YulIdentifier", - "src": "4211:3:62" - }, - "nativeSrc": "4211:18:62", - "nodeType": "YulFunctionCall", - "src": "4211:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4198:12:62", - "nodeType": "YulIdentifier", - "src": "4198:12:62" - }, - "nativeSrc": "4198:32:62", - "nodeType": "YulFunctionCall", - "src": "4198:32:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "4187:7:62", - "nodeType": "YulIdentifier", - "src": "4187:7:62" - } - ] - }, - { - "nativeSrc": "4239:17:62", - "nodeType": "YulAssignment", - "src": "4239:17:62", - "value": { - "name": "value_2", - "nativeSrc": "4249:7:62", - "nodeType": "YulIdentifier", - "src": "4249:7:62" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "4239:6:62", - "nodeType": "YulIdentifier", - "src": "4239:6:62" - } - ] - }, - { - "nativeSrc": "4265:47:62", - "nodeType": "YulVariableDeclaration", - "src": "4265:47:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4297:9:62", - "nodeType": "YulIdentifier", - "src": "4297:9:62" - }, - { - "kind": "number", - "nativeSrc": "4308:2:62", - "nodeType": "YulLiteral", - "src": "4308:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4293:3:62", - "nodeType": "YulIdentifier", - "src": "4293:3:62" - }, - "nativeSrc": "4293:18:62", - "nodeType": "YulFunctionCall", - "src": "4293:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4280:12:62", - "nodeType": "YulIdentifier", - "src": "4280:12:62" - }, - "nativeSrc": "4280:32:62", - "nodeType": "YulFunctionCall", - "src": "4280:32:62" - }, - "variables": [ - { - "name": "value_3", - "nativeSrc": "4269:7:62", - "nodeType": "YulTypedName", - "src": "4269:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_3", - "nativeSrc": "4345:7:62", - "nodeType": "YulIdentifier", - "src": "4345:7:62" - } - ], - "functionName": { - "name": "validator_revert_uint32", - "nativeSrc": "4321:23:62", - "nodeType": "YulIdentifier", - "src": "4321:23:62" - }, - "nativeSrc": "4321:32:62", - "nodeType": "YulFunctionCall", - "src": "4321:32:62" - }, - "nativeSrc": "4321:32:62", - "nodeType": "YulExpressionStatement", - "src": "4321:32:62" - }, - { - "nativeSrc": "4362:17:62", - "nodeType": "YulAssignment", - "src": "4362:17:62", - "value": { - "name": "value_3", - "nativeSrc": "4372:7:62", - "nodeType": "YulIdentifier", - "src": "4372:7:62" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "4362:6:62", - "nodeType": "YulIdentifier", - "src": "4362:6:62" - } - ] - }, - { - "nativeSrc": "4388:48:62", - "nodeType": "YulVariableDeclaration", - "src": "4388:48:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4420:9:62", - "nodeType": "YulIdentifier", - "src": "4420:9:62" - }, - { - "kind": "number", - "nativeSrc": "4431:3:62", - "nodeType": "YulLiteral", - "src": "4431:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4416:3:62", - "nodeType": "YulIdentifier", - "src": "4416:3:62" - }, - "nativeSrc": "4416:19:62", - "nodeType": "YulFunctionCall", - "src": "4416:19:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4403:12:62", - "nodeType": "YulIdentifier", - "src": "4403:12:62" - }, - "nativeSrc": "4403:33:62", - "nodeType": "YulFunctionCall", - "src": "4403:33:62" - }, - "variables": [ - { - "name": "value_4", - "nativeSrc": "4392:7:62", - "nodeType": "YulTypedName", - "src": "4392:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_4", - "nativeSrc": "4469:7:62", - "nodeType": "YulIdentifier", - "src": "4469:7:62" - } - ], - "functionName": { - "name": "validator_revert_uint32", - "nativeSrc": "4445:23:62", - "nodeType": "YulIdentifier", - "src": "4445:23:62" - }, - "nativeSrc": "4445:32:62", - "nodeType": "YulFunctionCall", - "src": "4445:32:62" - }, - "nativeSrc": "4445:32:62", - "nodeType": "YulExpressionStatement", - "src": "4445:32:62" - }, - { - "nativeSrc": "4486:17:62", - "nodeType": "YulAssignment", - "src": "4486:17:62", - "value": { - "name": "value_4", - "nativeSrc": "4496:7:62", - "nodeType": "YulIdentifier", - "src": "4496:7:62" - }, - "variableNames": [ - { - "name": "value4", - "nativeSrc": "4486:6:62", - "nodeType": "YulIdentifier", - "src": "4486:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint64t_uint256t_uint32t_uint32", - "nativeSrc": "3723:786:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3792:9:62", - "nodeType": "YulTypedName", - "src": "3792:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3803:7:62", - "nodeType": "YulTypedName", - "src": "3803:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3815:6:62", - "nodeType": "YulTypedName", - "src": "3815:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3823:6:62", - "nodeType": "YulTypedName", - "src": "3823:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "3831:6:62", - "nodeType": "YulTypedName", - "src": "3831:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "3839:6:62", - "nodeType": "YulTypedName", - "src": "3839:6:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "3847:6:62", - "nodeType": "YulTypedName", - "src": "3847:6:62", - "type": "" - } - ], - "src": "3723:786:62" - }, - { - "body": { - "nativeSrc": "4560:304:62", - "nodeType": "YulBlock", - "src": "4560:304:62", - "statements": [ - { - "nativeSrc": "4570:19:62", - "nodeType": "YulAssignment", - "src": "4570:19:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4586:2:62", - "nodeType": "YulLiteral", - "src": "4586:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4580:5:62", - "nodeType": "YulIdentifier", - "src": "4580:5:62" - }, - "nativeSrc": "4580:9:62", - "nodeType": "YulFunctionCall", - "src": "4580:9:62" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "4570:6:62", - "nodeType": "YulIdentifier", - "src": "4570:6:62" - } - ] - }, - { - "nativeSrc": "4598:35:62", - "nodeType": "YulVariableDeclaration", - "src": "4598:35:62", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "4620:6:62", - "nodeType": "YulIdentifier", - "src": "4620:6:62" - }, - { - "kind": "number", - "nativeSrc": "4628:4:62", - "nodeType": "YulLiteral", - "src": "4628:4:62", - "type": "", - "value": "0xc0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4616:3:62", - "nodeType": "YulIdentifier", - "src": "4616:3:62" - }, - "nativeSrc": "4616:17:62", - "nodeType": "YulFunctionCall", - "src": "4616:17:62" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "4602:10:62", - "nodeType": "YulTypedName", - "src": "4602:10:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "4716:111:62", - "nodeType": "YulBlock", - "src": "4716:111:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4737:1:62", - "nodeType": "YulLiteral", - "src": "4737:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4744:3:62", - "nodeType": "YulLiteral", - "src": "4744:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "4749:10:62", - "nodeType": "YulLiteral", - "src": "4749:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "4740:3:62", - "nodeType": "YulIdentifier", - "src": "4740:3:62" - }, - "nativeSrc": "4740:20:62", - "nodeType": "YulFunctionCall", - "src": "4740:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4730:6:62", - "nodeType": "YulIdentifier", - "src": "4730:6:62" - }, - "nativeSrc": "4730:31:62", - "nodeType": "YulFunctionCall", - "src": "4730:31:62" - }, - "nativeSrc": "4730:31:62", - "nodeType": "YulExpressionStatement", - "src": "4730:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4781:1:62", - "nodeType": "YulLiteral", - "src": "4781:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "4784:4:62", - "nodeType": "YulLiteral", - "src": "4784:4:62", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4774:6:62", - "nodeType": "YulIdentifier", - "src": "4774:6:62" - }, - "nativeSrc": "4774:15:62", - "nodeType": "YulFunctionCall", - "src": "4774:15:62" - }, - "nativeSrc": "4774:15:62", - "nodeType": "YulExpressionStatement", - "src": "4774:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4809:1:62", - "nodeType": "YulLiteral", - "src": "4809:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "4812:4:62", - "nodeType": "YulLiteral", - "src": "4812:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "4802:6:62", - "nodeType": "YulIdentifier", - "src": "4802:6:62" - }, - "nativeSrc": "4802:15:62", - "nodeType": "YulFunctionCall", - "src": "4802:15:62" - }, - "nativeSrc": "4802:15:62", - "nodeType": "YulExpressionStatement", - "src": "4802:15:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "4651:10:62", - "nodeType": "YulIdentifier", - "src": "4651:10:62" - }, - { - "kind": "number", - "nativeSrc": "4663:18:62", - "nodeType": "YulLiteral", - "src": "4663:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "4648:2:62", - "nodeType": "YulIdentifier", - "src": "4648:2:62" - }, - "nativeSrc": "4648:34:62", - "nodeType": "YulFunctionCall", - "src": "4648:34:62" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "4687:10:62", - "nodeType": "YulIdentifier", - "src": "4687:10:62" - }, - { - "name": "memPtr", - "nativeSrc": "4699:6:62", - "nodeType": "YulIdentifier", - "src": "4699:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "4684:2:62", - "nodeType": "YulIdentifier", - "src": "4684:2:62" - }, - "nativeSrc": "4684:22:62", - "nodeType": "YulFunctionCall", - "src": "4684:22:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "4645:2:62", - "nodeType": "YulIdentifier", - "src": "4645:2:62" - }, - "nativeSrc": "4645:62:62", - "nodeType": "YulFunctionCall", - "src": "4645:62:62" - }, - "nativeSrc": "4642:185:62", - "nodeType": "YulIf", - "src": "4642:185:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4843:2:62", - "nodeType": "YulLiteral", - "src": "4843:2:62", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "4847:10:62", - "nodeType": "YulIdentifier", - "src": "4847:10:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4836:6:62", - "nodeType": "YulIdentifier", - "src": "4836:6:62" - }, - "nativeSrc": "4836:22:62", - "nodeType": "YulFunctionCall", - "src": "4836:22:62" - }, - "nativeSrc": "4836:22:62", - "nodeType": "YulExpressionStatement", - "src": "4836:22:62" - } - ] - }, - "name": "allocate_memory_2163", - "nativeSrc": "4514:350:62", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "4549:6:62", - "nodeType": "YulTypedName", - "src": "4549:6:62", - "type": "" - } - ], - "src": "4514:350:62" - }, - { - "body": { - "nativeSrc": "4910:303:62", - "nodeType": "YulBlock", - "src": "4910:303:62", - "statements": [ - { - "nativeSrc": "4920:19:62", - "nodeType": "YulAssignment", - "src": "4920:19:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4936:2:62", - "nodeType": "YulLiteral", - "src": "4936:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4930:5:62", - "nodeType": "YulIdentifier", - "src": "4930:5:62" - }, - "nativeSrc": "4930:9:62", - "nodeType": "YulFunctionCall", - "src": "4930:9:62" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "4920:6:62", - "nodeType": "YulIdentifier", - "src": "4920:6:62" - } - ] - }, - { - "nativeSrc": "4948:34:62", - "nodeType": "YulVariableDeclaration", - "src": "4948:34:62", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "4970:6:62", - "nodeType": "YulIdentifier", - "src": "4970:6:62" - }, - { - "kind": "number", - "nativeSrc": "4978:3:62", - "nodeType": "YulLiteral", - "src": "4978:3:62", - "type": "", - "value": "288" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4966:3:62", - "nodeType": "YulIdentifier", - "src": "4966:3:62" - }, - "nativeSrc": "4966:16:62", - "nodeType": "YulFunctionCall", - "src": "4966:16:62" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "4952:10:62", - "nodeType": "YulTypedName", - "src": "4952:10:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5065:111:62", - "nodeType": "YulBlock", - "src": "5065:111:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5086:1:62", - "nodeType": "YulLiteral", - "src": "5086:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5093:3:62", - "nodeType": "YulLiteral", - "src": "5093:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "5098:10:62", - "nodeType": "YulLiteral", - "src": "5098:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "5089:3:62", - "nodeType": "YulIdentifier", - "src": "5089:3:62" - }, - "nativeSrc": "5089:20:62", - "nodeType": "YulFunctionCall", - "src": "5089:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5079:6:62", - "nodeType": "YulIdentifier", - "src": "5079:6:62" - }, - "nativeSrc": "5079:31:62", - "nodeType": "YulFunctionCall", - "src": "5079:31:62" - }, - "nativeSrc": "5079:31:62", - "nodeType": "YulExpressionStatement", - "src": "5079:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5130:1:62", - "nodeType": "YulLiteral", - "src": "5130:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "5133:4:62", - "nodeType": "YulLiteral", - "src": "5133:4:62", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5123:6:62", - "nodeType": "YulIdentifier", - "src": "5123:6:62" - }, - "nativeSrc": "5123:15:62", - "nodeType": "YulFunctionCall", - "src": "5123:15:62" - }, - "nativeSrc": "5123:15:62", - "nodeType": "YulExpressionStatement", - "src": "5123:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5158:1:62", - "nodeType": "YulLiteral", - "src": "5158:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5161:4:62", - "nodeType": "YulLiteral", - "src": "5161:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5151:6:62", - "nodeType": "YulIdentifier", - "src": "5151:6:62" - }, - "nativeSrc": "5151:15:62", - "nodeType": "YulFunctionCall", - "src": "5151:15:62" - }, - "nativeSrc": "5151:15:62", - "nodeType": "YulExpressionStatement", - "src": "5151:15:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "5000:10:62", - "nodeType": "YulIdentifier", - "src": "5000:10:62" - }, - { - "kind": "number", - "nativeSrc": "5012:18:62", - "nodeType": "YulLiteral", - "src": "5012:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "4997:2:62", - "nodeType": "YulIdentifier", - "src": "4997:2:62" - }, - "nativeSrc": "4997:34:62", - "nodeType": "YulFunctionCall", - "src": "4997:34:62" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "5036:10:62", - "nodeType": "YulIdentifier", - "src": "5036:10:62" - }, - { - "name": "memPtr", - "nativeSrc": "5048:6:62", - "nodeType": "YulIdentifier", - "src": "5048:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5033:2:62", - "nodeType": "YulIdentifier", - "src": "5033:2:62" - }, - "nativeSrc": "5033:22:62", - "nodeType": "YulFunctionCall", - "src": "5033:22:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "4994:2:62", - "nodeType": "YulIdentifier", - "src": "4994:2:62" - }, - "nativeSrc": "4994:62:62", - "nodeType": "YulFunctionCall", - "src": "4994:62:62" - }, - "nativeSrc": "4991:185:62", - "nodeType": "YulIf", - "src": "4991:185:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5192:2:62", - "nodeType": "YulLiteral", - "src": "5192:2:62", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "5196:10:62", - "nodeType": "YulIdentifier", - "src": "5196:10:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5185:6:62", - "nodeType": "YulIdentifier", - "src": "5185:6:62" - }, - "nativeSrc": "5185:22:62", - "nodeType": "YulFunctionCall", - "src": "5185:22:62" - }, - "nativeSrc": "5185:22:62", - "nodeType": "YulExpressionStatement", - "src": "5185:22:62" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "4869:344:62", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "4899:6:62", - "nodeType": "YulTypedName", - "src": "4899:6:62", - "type": "" - } - ], - "src": "4869:344:62" - }, - { - "body": { - "nativeSrc": "5264:303:62", - "nodeType": "YulBlock", - "src": "5264:303:62", - "statements": [ - { - "nativeSrc": "5274:19:62", - "nodeType": "YulAssignment", - "src": "5274:19:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5290:2:62", - "nodeType": "YulLiteral", - "src": "5290:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5284:5:62", - "nodeType": "YulIdentifier", - "src": "5284:5:62" - }, - "nativeSrc": "5284:9:62", - "nodeType": "YulFunctionCall", - "src": "5284:9:62" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "5274:6:62", - "nodeType": "YulIdentifier", - "src": "5274:6:62" - } - ] - }, - { - "nativeSrc": "5302:34:62", - "nodeType": "YulVariableDeclaration", - "src": "5302:34:62", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "5324:6:62", - "nodeType": "YulIdentifier", - "src": "5324:6:62" - }, - { - "kind": "number", - "nativeSrc": "5332:3:62", - "nodeType": "YulLiteral", - "src": "5332:3:62", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5320:3:62", - "nodeType": "YulIdentifier", - "src": "5320:3:62" - }, - "nativeSrc": "5320:16:62", - "nodeType": "YulFunctionCall", - "src": "5320:16:62" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "5306:10:62", - "nodeType": "YulTypedName", - "src": "5306:10:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5419:111:62", - "nodeType": "YulBlock", - "src": "5419:111:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5440:1:62", - "nodeType": "YulLiteral", - "src": "5440:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5447:3:62", - "nodeType": "YulLiteral", - "src": "5447:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "5452:10:62", - "nodeType": "YulLiteral", - "src": "5452:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "5443:3:62", - "nodeType": "YulIdentifier", - "src": "5443:3:62" - }, - "nativeSrc": "5443:20:62", - "nodeType": "YulFunctionCall", - "src": "5443:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5433:6:62", - "nodeType": "YulIdentifier", - "src": "5433:6:62" - }, - "nativeSrc": "5433:31:62", - "nodeType": "YulFunctionCall", - "src": "5433:31:62" - }, - "nativeSrc": "5433:31:62", - "nodeType": "YulExpressionStatement", - "src": "5433:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5484:1:62", - "nodeType": "YulLiteral", - "src": "5484:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "5487:4:62", - "nodeType": "YulLiteral", - "src": "5487:4:62", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5477:6:62", - "nodeType": "YulIdentifier", - "src": "5477:6:62" - }, - "nativeSrc": "5477:15:62", - "nodeType": "YulFunctionCall", - "src": "5477:15:62" - }, - "nativeSrc": "5477:15:62", - "nodeType": "YulExpressionStatement", - "src": "5477:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5512:1:62", - "nodeType": "YulLiteral", - "src": "5512:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5515:4:62", - "nodeType": "YulLiteral", - "src": "5515:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5505:6:62", - "nodeType": "YulIdentifier", - "src": "5505:6:62" - }, - "nativeSrc": "5505:15:62", - "nodeType": "YulFunctionCall", - "src": "5505:15:62" - }, - "nativeSrc": "5505:15:62", - "nodeType": "YulExpressionStatement", - "src": "5505:15:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "5354:10:62", - "nodeType": "YulIdentifier", - "src": "5354:10:62" - }, - { - "kind": "number", - "nativeSrc": "5366:18:62", - "nodeType": "YulLiteral", - "src": "5366:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "5351:2:62", - "nodeType": "YulIdentifier", - "src": "5351:2:62" - }, - "nativeSrc": "5351:34:62", - "nodeType": "YulFunctionCall", - "src": "5351:34:62" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "5390:10:62", - "nodeType": "YulIdentifier", - "src": "5390:10:62" - }, - { - "name": "memPtr", - "nativeSrc": "5402:6:62", - "nodeType": "YulIdentifier", - "src": "5402:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5387:2:62", - "nodeType": "YulIdentifier", - "src": "5387:2:62" - }, - "nativeSrc": "5387:22:62", - "nodeType": "YulFunctionCall", - "src": "5387:22:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "5348:2:62", - "nodeType": "YulIdentifier", - "src": "5348:2:62" - }, - "nativeSrc": "5348:62:62", - "nodeType": "YulFunctionCall", - "src": "5348:62:62" - }, - "nativeSrc": "5345:185:62", - "nodeType": "YulIf", - "src": "5345:185:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5546:2:62", - "nodeType": "YulLiteral", - "src": "5546:2:62", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "5550:10:62", - "nodeType": "YulIdentifier", - "src": "5550:10:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5539:6:62", - "nodeType": "YulIdentifier", - "src": "5539:6:62" - }, - "nativeSrc": "5539:22:62", - "nodeType": "YulFunctionCall", - "src": "5539:22:62" - }, - "nativeSrc": "5539:22:62", - "nodeType": "YulExpressionStatement", - "src": "5539:22:62" - } - ] - }, - "name": "allocate_memory_2167", - "nativeSrc": "5218:349:62", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "5253:6:62", - "nodeType": "YulTypedName", - "src": "5253:6:62", - "type": "" - } - ], - "src": "5218:349:62" - }, - { - "body": { - "nativeSrc": "5668:785:62", - "nodeType": "YulBlock", - "src": "5668:785:62", - "statements": [ - { - "nativeSrc": "5678:42:62", - "nodeType": "YulVariableDeclaration", - "src": "5678:42:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "5696:7:62", - "nodeType": "YulIdentifier", - "src": "5696:7:62" - }, - { - "name": "headStart", - "nativeSrc": "5705:9:62", - "nodeType": "YulIdentifier", - "src": "5705:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5692:3:62", - "nodeType": "YulIdentifier", - "src": "5692:3:62" - }, - "nativeSrc": "5692:23:62", - "nodeType": "YulFunctionCall", - "src": "5692:23:62" - }, - { - "kind": "number", - "nativeSrc": "5717:2:62", - "nodeType": "YulLiteral", - "src": "5717:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "5688:3:62", - "nodeType": "YulIdentifier", - "src": "5688:3:62" - }, - "nativeSrc": "5688:32:62", - "nodeType": "YulFunctionCall", - "src": "5688:32:62" - }, - "variables": [ - { - "name": "_1", - "nativeSrc": "5682:2:62", - "nodeType": "YulTypedName", - "src": "5682:2:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5735:16:62", - "nodeType": "YulBlock", - "src": "5735:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5744:1:62", - "nodeType": "YulLiteral", - "src": "5744:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5747:1:62", - "nodeType": "YulLiteral", - "src": "5747:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5737:6:62", - "nodeType": "YulIdentifier", - "src": "5737:6:62" - }, - "nativeSrc": "5737:12:62", - "nodeType": "YulFunctionCall", - "src": "5737:12:62" - }, - "nativeSrc": "5737:12:62", - "nodeType": "YulExpressionStatement", - "src": "5737:12:62" - } - ] - }, - "condition": { - "name": "_1", - "nativeSrc": "5732:2:62", - "nodeType": "YulIdentifier", - "src": "5732:2:62" - }, - "nativeSrc": "5729:22:62", - "nodeType": "YulIf", - "src": "5729:22:62" - }, - { - "nativeSrc": "5760:7:62", - "nodeType": "YulAssignment", - "src": "5760:7:62", - "value": { - "kind": "number", - "nativeSrc": "5766:1:62", - "nodeType": "YulLiteral", - "src": "5766:1:62", - "type": "", - "value": "0" - }, - "variableNames": [ - { - "name": "_1", - "nativeSrc": "5760:2:62", - "nodeType": "YulIdentifier", - "src": "5760:2:62" - } - ] - }, - { - "nativeSrc": "5776:16:62", - "nodeType": "YulVariableDeclaration", - "src": "5776:16:62", - "value": { - "name": "_1", - "nativeSrc": "5790:2:62", - "nodeType": "YulIdentifier", - "src": "5790:2:62" - }, - "variables": [ - { - "name": "memPtr", - "nativeSrc": "5780:6:62", - "nodeType": "YulTypedName", - "src": "5780:6:62", - "type": "" - } - ] - }, - { - "nativeSrc": "5801:19:62", - "nodeType": "YulAssignment", - "src": "5801:19:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5817:2:62", - "nodeType": "YulLiteral", - "src": "5817:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5811:5:62", - "nodeType": "YulIdentifier", - "src": "5811:5:62" - }, - "nativeSrc": "5811:9:62", - "nodeType": "YulFunctionCall", - "src": "5811:9:62" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "5801:6:62", - "nodeType": "YulIdentifier", - "src": "5801:6:62" - } - ] - }, - { - "nativeSrc": "5829:33:62", - "nodeType": "YulVariableDeclaration", - "src": "5829:33:62", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "5851:6:62", - "nodeType": "YulIdentifier", - "src": "5851:6:62" - }, - { - "kind": "number", - "nativeSrc": "5859:2:62", - "nodeType": "YulLiteral", - "src": "5859:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5847:3:62", - "nodeType": "YulIdentifier", - "src": "5847:3:62" - }, - "nativeSrc": "5847:15:62", - "nodeType": "YulFunctionCall", - "src": "5847:15:62" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "5833:10:62", - "nodeType": "YulTypedName", - "src": "5833:10:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5945:113:62", - "nodeType": "YulBlock", - "src": "5945:113:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "_1", - "nativeSrc": "5966:2:62", - "nodeType": "YulIdentifier", - "src": "5966:2:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5974:3:62", - "nodeType": "YulLiteral", - "src": "5974:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "5979:10:62", - "nodeType": "YulLiteral", - "src": "5979:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "5970:3:62", - "nodeType": "YulIdentifier", - "src": "5970:3:62" - }, - "nativeSrc": "5970:20:62", - "nodeType": "YulFunctionCall", - "src": "5970:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5959:6:62", - "nodeType": "YulIdentifier", - "src": "5959:6:62" - }, - "nativeSrc": "5959:32:62", - "nodeType": "YulFunctionCall", - "src": "5959:32:62" - }, - "nativeSrc": "5959:32:62", - "nodeType": "YulExpressionStatement", - "src": "5959:32:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6011:1:62", - "nodeType": "YulLiteral", - "src": "6011:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "6014:4:62", - "nodeType": "YulLiteral", - "src": "6014:4:62", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6004:6:62", - "nodeType": "YulIdentifier", - "src": "6004:6:62" - }, - "nativeSrc": "6004:15:62", - "nodeType": "YulFunctionCall", - "src": "6004:15:62" - }, - "nativeSrc": "6004:15:62", - "nodeType": "YulExpressionStatement", - "src": "6004:15:62" - }, - { - "expression": { - "arguments": [ - { - "name": "_1", - "nativeSrc": "6039:2:62", - "nodeType": "YulIdentifier", - "src": "6039:2:62" - }, - { - "kind": "number", - "nativeSrc": "6043:4:62", - "nodeType": "YulLiteral", - "src": "6043:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6032:6:62", - "nodeType": "YulIdentifier", - "src": "6032:6:62" - }, - "nativeSrc": "6032:16:62", - "nodeType": "YulFunctionCall", - "src": "6032:16:62" - }, - "nativeSrc": "6032:16:62", - "nodeType": "YulExpressionStatement", - "src": "6032:16:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "5880:10:62", - "nodeType": "YulIdentifier", - "src": "5880:10:62" - }, - { - "kind": "number", - "nativeSrc": "5892:18:62", - "nodeType": "YulLiteral", - "src": "5892:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "5877:2:62", - "nodeType": "YulIdentifier", - "src": "5877:2:62" - }, - "nativeSrc": "5877:34:62", - "nodeType": "YulFunctionCall", - "src": "5877:34:62" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "5916:10:62", - "nodeType": "YulIdentifier", - "src": "5916:10:62" - }, - { - "name": "memPtr", - "nativeSrc": "5928:6:62", - "nodeType": "YulIdentifier", - "src": "5928:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5913:2:62", - "nodeType": "YulIdentifier", - "src": "5913:2:62" - }, - "nativeSrc": "5913:22:62", - "nodeType": "YulFunctionCall", - "src": "5913:22:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "5874:2:62", - "nodeType": "YulIdentifier", - "src": "5874:2:62" - }, - "nativeSrc": "5874:62:62", - "nodeType": "YulFunctionCall", - "src": "5874:62:62" - }, - "nativeSrc": "5871:187:62", - "nodeType": "YulIf", - "src": "5871:187:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6074:2:62", - "nodeType": "YulLiteral", - "src": "6074:2:62", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "6078:10:62", - "nodeType": "YulIdentifier", - "src": "6078:10:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6067:6:62", - "nodeType": "YulIdentifier", - "src": "6067:6:62" - }, - "nativeSrc": "6067:22:62", - "nodeType": "YulFunctionCall", - "src": "6067:22:62" - }, - "nativeSrc": "6067:22:62", - "nodeType": "YulExpressionStatement", - "src": "6067:22:62" - }, - { - "nativeSrc": "6098:15:62", - "nodeType": "YulVariableDeclaration", - "src": "6098:15:62", - "value": { - "name": "_1", - "nativeSrc": "6111:2:62", - "nodeType": "YulIdentifier", - "src": "6111:2:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "6102:5:62", - "nodeType": "YulTypedName", - "src": "6102:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "6122:32:62", - "nodeType": "YulAssignment", - "src": "6122:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6144:9:62", - "nodeType": "YulIdentifier", - "src": "6144:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "6131:12:62", - "nodeType": "YulIdentifier", - "src": "6131:12:62" - }, - "nativeSrc": "6131:23:62", - "nodeType": "YulFunctionCall", - "src": "6131:23:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "6122:5:62", - "nodeType": "YulIdentifier", - "src": "6122:5:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "6170:6:62", - "nodeType": "YulIdentifier", - "src": "6170:6:62" - }, - { - "name": "value", - "nativeSrc": "6178:5:62", - "nodeType": "YulIdentifier", - "src": "6178:5:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6163:6:62", - "nodeType": "YulIdentifier", - "src": "6163:6:62" - }, - "nativeSrc": "6163:21:62", - "nodeType": "YulFunctionCall", - "src": "6163:21:62" - }, - "nativeSrc": "6163:21:62", - "nodeType": "YulExpressionStatement", - "src": "6163:21:62" - }, - { - "nativeSrc": "6193:17:62", - "nodeType": "YulVariableDeclaration", - "src": "6193:17:62", - "value": { - "name": "_1", - "nativeSrc": "6208:2:62", - "nodeType": "YulIdentifier", - "src": "6208:2:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "6197:7:62", - "nodeType": "YulTypedName", - "src": "6197:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "6219:43:62", - "nodeType": "YulAssignment", - "src": "6219:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6247:9:62", - "nodeType": "YulIdentifier", - "src": "6247:9:62" - }, - { - "kind": "number", - "nativeSrc": "6258:2:62", - "nodeType": "YulLiteral", - "src": "6258:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6243:3:62", - "nodeType": "YulIdentifier", - "src": "6243:3:62" - }, - "nativeSrc": "6243:18:62", - "nodeType": "YulFunctionCall", - "src": "6243:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "6230:12:62", - "nodeType": "YulIdentifier", - "src": "6230:12:62" - }, - "nativeSrc": "6230:32:62", - "nodeType": "YulFunctionCall", - "src": "6230:32:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "6219:7:62", - "nodeType": "YulIdentifier", - "src": "6219:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "6282:6:62", - "nodeType": "YulIdentifier", - "src": "6282:6:62" - }, - { - "kind": "number", - "nativeSrc": "6290:2:62", - "nodeType": "YulLiteral", - "src": "6290:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6278:3:62", - "nodeType": "YulIdentifier", - "src": "6278:3:62" - }, - "nativeSrc": "6278:15:62", - "nodeType": "YulFunctionCall", - "src": "6278:15:62" - }, - { - "name": "value_1", - "nativeSrc": "6295:7:62", - "nodeType": "YulIdentifier", - "src": "6295:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6271:6:62", - "nodeType": "YulIdentifier", - "src": "6271:6:62" - }, - "nativeSrc": "6271:32:62", - "nodeType": "YulFunctionCall", - "src": "6271:32:62" - }, - "nativeSrc": "6271:32:62", - "nodeType": "YulExpressionStatement", - "src": "6271:32:62" - }, - { - "nativeSrc": "6312:17:62", - "nodeType": "YulVariableDeclaration", - "src": "6312:17:62", - "value": { - "name": "_1", - "nativeSrc": "6327:2:62", - "nodeType": "YulIdentifier", - "src": "6327:2:62" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "6316:7:62", - "nodeType": "YulTypedName", - "src": "6316:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "6338:43:62", - "nodeType": "YulAssignment", - "src": "6338:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6366:9:62", - "nodeType": "YulIdentifier", - "src": "6366:9:62" - }, - { - "kind": "number", - "nativeSrc": "6377:2:62", - "nodeType": "YulLiteral", - "src": "6377:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6362:3:62", - "nodeType": "YulIdentifier", - "src": "6362:3:62" - }, - "nativeSrc": "6362:18:62", - "nodeType": "YulFunctionCall", - "src": "6362:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "6349:12:62", - "nodeType": "YulIdentifier", - "src": "6349:12:62" - }, - "nativeSrc": "6349:32:62", - "nodeType": "YulFunctionCall", - "src": "6349:32:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "6338:7:62", - "nodeType": "YulIdentifier", - "src": "6338:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "6401:6:62", - "nodeType": "YulIdentifier", - "src": "6401:6:62" - }, - { - "kind": "number", - "nativeSrc": "6409:2:62", - "nodeType": "YulLiteral", - "src": "6409:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6397:3:62", - "nodeType": "YulIdentifier", - "src": "6397:3:62" - }, - "nativeSrc": "6397:15:62", - "nodeType": "YulFunctionCall", - "src": "6397:15:62" - }, - { - "name": "value_2", - "nativeSrc": "6414:7:62", - "nodeType": "YulIdentifier", - "src": "6414:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6390:6:62", - "nodeType": "YulIdentifier", - "src": "6390:6:62" - }, - "nativeSrc": "6390:32:62", - "nodeType": "YulFunctionCall", - "src": "6390:32:62" - }, - "nativeSrc": "6390:32:62", - "nodeType": "YulExpressionStatement", - "src": "6390:32:62" - }, - { - "nativeSrc": "6431:16:62", - "nodeType": "YulAssignment", - "src": "6431:16:62", - "value": { - "name": "memPtr", - "nativeSrc": "6441:6:62", - "nodeType": "YulIdentifier", - "src": "6441:6:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6431:6:62", - "nodeType": "YulIdentifier", - "src": "6431:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_struct$_Receipt_$11685_memory_ptr", - "nativeSrc": "5572:881:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5634:9:62", - "nodeType": "YulTypedName", - "src": "5634:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "5645:7:62", - "nodeType": "YulTypedName", - "src": "5645:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "5657:6:62", - "nodeType": "YulTypedName", - "src": "5657:6:62", - "type": "" - } - ], - "src": "5572:881:62" - }, - { - "body": { - "nativeSrc": "6559:102:62", - "nodeType": "YulBlock", - "src": "6559:102:62", - "statements": [ - { - "nativeSrc": "6569:26:62", - "nodeType": "YulAssignment", - "src": "6569:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6581:9:62", - "nodeType": "YulIdentifier", - "src": "6581:9:62" - }, - { - "kind": "number", - "nativeSrc": "6592:2:62", - "nodeType": "YulLiteral", - "src": "6592:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6577:3:62", - "nodeType": "YulIdentifier", - "src": "6577:3:62" - }, - "nativeSrc": "6577:18:62", - "nodeType": "YulFunctionCall", - "src": "6577:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "6569:4:62", - "nodeType": "YulIdentifier", - "src": "6569:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6611:9:62", - "nodeType": "YulIdentifier", - "src": "6611:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6626:6:62", - "nodeType": "YulIdentifier", - "src": "6626:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6642:3:62", - "nodeType": "YulLiteral", - "src": "6642:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "6647:1:62", - "nodeType": "YulLiteral", - "src": "6647:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "6638:3:62", - "nodeType": "YulIdentifier", - "src": "6638:3:62" - }, - "nativeSrc": "6638:11:62", - "nodeType": "YulFunctionCall", - "src": "6638:11:62" - }, - { - "kind": "number", - "nativeSrc": "6651:1:62", - "nodeType": "YulLiteral", - "src": "6651:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6634:3:62", - "nodeType": "YulIdentifier", - "src": "6634:3:62" - }, - "nativeSrc": "6634:19:62", - "nodeType": "YulFunctionCall", - "src": "6634:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "6622:3:62", - "nodeType": "YulIdentifier", - "src": "6622:3:62" - }, - "nativeSrc": "6622:32:62", - "nodeType": "YulFunctionCall", - "src": "6622:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6604:6:62", - "nodeType": "YulIdentifier", - "src": "6604:6:62" - }, - "nativeSrc": "6604:51:62", - "nodeType": "YulFunctionCall", - "src": "6604:51:62" - }, - "nativeSrc": "6604:51:62", - "nodeType": "YulExpressionStatement", - "src": "6604:51:62" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "6458:203:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6528:9:62", - "nodeType": "YulTypedName", - "src": "6528:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "6539:6:62", - "nodeType": "YulTypedName", - "src": "6539:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "6550:4:62", - "nodeType": "YulTypedName", - "src": "6550:4:62", - "type": "" - } - ], - "src": "6458:203:62" - }, - { - "body": { - "nativeSrc": "6735:176:62", - "nodeType": "YulBlock", - "src": "6735:176:62", - "statements": [ - { - "body": { - "nativeSrc": "6781:16:62", - "nodeType": "YulBlock", - "src": "6781:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6790:1:62", - "nodeType": "YulLiteral", - "src": "6790:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "6793:1:62", - "nodeType": "YulLiteral", - "src": "6793:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "6783:6:62", - "nodeType": "YulIdentifier", - "src": "6783:6:62" - }, - "nativeSrc": "6783:12:62", - "nodeType": "YulFunctionCall", - "src": "6783:12:62" - }, - "nativeSrc": "6783:12:62", - "nodeType": "YulExpressionStatement", - "src": "6783:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "6756:7:62", - "nodeType": "YulIdentifier", - "src": "6756:7:62" - }, - { - "name": "headStart", - "nativeSrc": "6765:9:62", - "nodeType": "YulIdentifier", - "src": "6765:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6752:3:62", - "nodeType": "YulIdentifier", - "src": "6752:3:62" - }, - "nativeSrc": "6752:23:62", - "nodeType": "YulFunctionCall", - "src": "6752:23:62" - }, - { - "kind": "number", - "nativeSrc": "6777:2:62", - "nodeType": "YulLiteral", - "src": "6777:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6748:3:62", - "nodeType": "YulIdentifier", - "src": "6748:3:62" - }, - "nativeSrc": "6748:32:62", - "nodeType": "YulFunctionCall", - "src": "6748:32:62" - }, - "nativeSrc": "6745:52:62", - "nodeType": "YulIf", - "src": "6745:52:62" - }, - { - "nativeSrc": "6806:36:62", - "nodeType": "YulVariableDeclaration", - "src": "6806:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6832:9:62", - "nodeType": "YulIdentifier", - "src": "6832:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "6819:12:62", - "nodeType": "YulIdentifier", - "src": "6819:12:62" - }, - "nativeSrc": "6819:23:62", - "nodeType": "YulFunctionCall", - "src": "6819:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "6810:5:62", - "nodeType": "YulTypedName", - "src": "6810:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "6875:5:62", - "nodeType": "YulIdentifier", - "src": "6875:5:62" - } - ], - "functionName": { - "name": "validator_revert_uint32", - "nativeSrc": "6851:23:62", - "nodeType": "YulIdentifier", - "src": "6851:23:62" - }, - "nativeSrc": "6851:30:62", - "nodeType": "YulFunctionCall", - "src": "6851:30:62" - }, - "nativeSrc": "6851:30:62", - "nodeType": "YulExpressionStatement", - "src": "6851:30:62" - }, - { - "nativeSrc": "6890:15:62", - "nodeType": "YulAssignment", - "src": "6890:15:62", - "value": { - "name": "value", - "nativeSrc": "6900:5:62", - "nodeType": "YulIdentifier", - "src": "6900:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "6890:6:62", - "nodeType": "YulIdentifier", - "src": "6890:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint32", - "nativeSrc": "6666:245:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6701:9:62", - "nodeType": "YulTypedName", - "src": "6701:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "6712:7:62", - "nodeType": "YulTypedName", - "src": "6712:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "6724:6:62", - "nodeType": "YulTypedName", - "src": "6724:6:62", - "type": "" - } - ], - "src": "6666:245:62" - }, - { - "body": { - "nativeSrc": "6986:177:62", - "nodeType": "YulBlock", - "src": "6986:177:62", - "statements": [ - { - "body": { - "nativeSrc": "7032:16:62", - "nodeType": "YulBlock", - "src": "7032:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7041:1:62", - "nodeType": "YulLiteral", - "src": "7041:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "7044:1:62", - "nodeType": "YulLiteral", - "src": "7044:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "7034:6:62", - "nodeType": "YulIdentifier", - "src": "7034:6:62" - }, - "nativeSrc": "7034:12:62", - "nodeType": "YulFunctionCall", - "src": "7034:12:62" - }, - "nativeSrc": "7034:12:62", - "nodeType": "YulExpressionStatement", - "src": "7034:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "7007:7:62", - "nodeType": "YulIdentifier", - "src": "7007:7:62" - }, - { - "name": "headStart", - "nativeSrc": "7016:9:62", - "nodeType": "YulIdentifier", - "src": "7016:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7003:3:62", - "nodeType": "YulIdentifier", - "src": "7003:3:62" - }, - "nativeSrc": "7003:23:62", - "nodeType": "YulFunctionCall", - "src": "7003:23:62" - }, - { - "kind": "number", - "nativeSrc": "7028:2:62", - "nodeType": "YulLiteral", - "src": "7028:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "6999:3:62", - "nodeType": "YulIdentifier", - "src": "6999:3:62" - }, - "nativeSrc": "6999:32:62", - "nodeType": "YulFunctionCall", - "src": "6999:32:62" - }, - "nativeSrc": "6996:52:62", - "nodeType": "YulIf", - "src": "6996:52:62" - }, - { - "nativeSrc": "7057:36:62", - "nodeType": "YulVariableDeclaration", - "src": "7057:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7083:9:62", - "nodeType": "YulIdentifier", - "src": "7083:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "7070:12:62", - "nodeType": "YulIdentifier", - "src": "7070:12:62" - }, - "nativeSrc": "7070:23:62", - "nodeType": "YulFunctionCall", - "src": "7070:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "7061:5:62", - "nodeType": "YulTypedName", - "src": "7061:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "7127:5:62", - "nodeType": "YulIdentifier", - "src": "7127:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "7102:24:62", - "nodeType": "YulIdentifier", - "src": "7102:24:62" - }, - "nativeSrc": "7102:31:62", - "nodeType": "YulFunctionCall", - "src": "7102:31:62" - }, - "nativeSrc": "7102:31:62", - "nodeType": "YulExpressionStatement", - "src": "7102:31:62" - }, - { - "nativeSrc": "7142:15:62", - "nodeType": "YulAssignment", - "src": "7142:15:62", - "value": { - "name": "value", - "nativeSrc": "7152:5:62", - "nodeType": "YulIdentifier", - "src": "7152:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "7142:6:62", - "nodeType": "YulIdentifier", - "src": "7142:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "6916:247:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6952:9:62", - "nodeType": "YulTypedName", - "src": "6952:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "6963:7:62", - "nodeType": "YulTypedName", - "src": "6963:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "6975:6:62", - "nodeType": "YulTypedName", - "src": "6975:6:62", - "type": "" - } - ], - "src": "6916:247:62" - }, - { - "body": { - "nativeSrc": "7263:92:62", - "nodeType": "YulBlock", - "src": "7263:92:62", - "statements": [ - { - "nativeSrc": "7273:26:62", - "nodeType": "YulAssignment", - "src": "7273:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7285:9:62", - "nodeType": "YulIdentifier", - "src": "7285:9:62" - }, - { - "kind": "number", - "nativeSrc": "7296:2:62", - "nodeType": "YulLiteral", - "src": "7296:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7281:3:62", - "nodeType": "YulIdentifier", - "src": "7281:3:62" - }, - "nativeSrc": "7281:18:62", - "nodeType": "YulFunctionCall", - "src": "7281:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7273:4:62", - "nodeType": "YulIdentifier", - "src": "7273:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7315:9:62", - "nodeType": "YulIdentifier", - "src": "7315:9:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7340:6:62", - "nodeType": "YulIdentifier", - "src": "7340:6:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "7333:6:62", - "nodeType": "YulIdentifier", - "src": "7333:6:62" - }, - "nativeSrc": "7333:14:62", - "nodeType": "YulFunctionCall", - "src": "7333:14:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "7326:6:62", - "nodeType": "YulIdentifier", - "src": "7326:6:62" - }, - "nativeSrc": "7326:22:62", - "nodeType": "YulFunctionCall", - "src": "7326:22:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7308:6:62", - "nodeType": "YulIdentifier", - "src": "7308:6:62" - }, - "nativeSrc": "7308:41:62", - "nodeType": "YulFunctionCall", - "src": "7308:41:62" - }, - "nativeSrc": "7308:41:62", - "nodeType": "YulExpressionStatement", - "src": "7308:41:62" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nativeSrc": "7168:187:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7232:9:62", - "nodeType": "YulTypedName", - "src": "7232:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7243:6:62", - "nodeType": "YulTypedName", - "src": "7243:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7254:4:62", - "nodeType": "YulTypedName", - "src": "7254:4:62", - "type": "" - } - ], - "src": "7168:187:62" - }, - { - "body": { - "nativeSrc": "7432:275:62", - "nodeType": "YulBlock", - "src": "7432:275:62", - "statements": [ - { - "body": { - "nativeSrc": "7481:16:62", - "nodeType": "YulBlock", - "src": "7481:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7490:1:62", - "nodeType": "YulLiteral", - "src": "7490:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "7493:1:62", - "nodeType": "YulLiteral", - "src": "7493:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "7483:6:62", - "nodeType": "YulIdentifier", - "src": "7483:6:62" - }, - "nativeSrc": "7483:12:62", - "nodeType": "YulFunctionCall", - "src": "7483:12:62" - }, - "nativeSrc": "7483:12:62", - "nodeType": "YulExpressionStatement", - "src": "7483:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7460:6:62", - "nodeType": "YulIdentifier", - "src": "7460:6:62" - }, - { - "kind": "number", - "nativeSrc": "7468:4:62", - "nodeType": "YulLiteral", - "src": "7468:4:62", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7456:3:62", - "nodeType": "YulIdentifier", - "src": "7456:3:62" - }, - "nativeSrc": "7456:17:62", - "nodeType": "YulFunctionCall", - "src": "7456:17:62" - }, - { - "name": "end", - "nativeSrc": "7475:3:62", - "nodeType": "YulIdentifier", - "src": "7475:3:62" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "7452:3:62", - "nodeType": "YulIdentifier", - "src": "7452:3:62" - }, - "nativeSrc": "7452:27:62", - "nodeType": "YulFunctionCall", - "src": "7452:27:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "7445:6:62", - "nodeType": "YulIdentifier", - "src": "7445:6:62" - }, - "nativeSrc": "7445:35:62", - "nodeType": "YulFunctionCall", - "src": "7445:35:62" - }, - "nativeSrc": "7442:55:62", - "nodeType": "YulIf", - "src": "7442:55:62" - }, - { - "nativeSrc": "7506:30:62", - "nodeType": "YulAssignment", - "src": "7506:30:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7529:6:62", - "nodeType": "YulIdentifier", - "src": "7529:6:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "7516:12:62", - "nodeType": "YulIdentifier", - "src": "7516:12:62" - }, - "nativeSrc": "7516:20:62", - "nodeType": "YulFunctionCall", - "src": "7516:20:62" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "7506:6:62", - "nodeType": "YulIdentifier", - "src": "7506:6:62" - } - ] - }, - { - "body": { - "nativeSrc": "7579:16:62", - "nodeType": "YulBlock", - "src": "7579:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7588:1:62", - "nodeType": "YulLiteral", - "src": "7588:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "7591:1:62", - "nodeType": "YulLiteral", - "src": "7591:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "7581:6:62", - "nodeType": "YulIdentifier", - "src": "7581:6:62" - }, - "nativeSrc": "7581:12:62", - "nodeType": "YulFunctionCall", - "src": "7581:12:62" - }, - "nativeSrc": "7581:12:62", - "nodeType": "YulExpressionStatement", - "src": "7581:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "7551:6:62", - "nodeType": "YulIdentifier", - "src": "7551:6:62" - }, - { - "kind": "number", - "nativeSrc": "7559:18:62", - "nodeType": "YulLiteral", - "src": "7559:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "7548:2:62", - "nodeType": "YulIdentifier", - "src": "7548:2:62" - }, - "nativeSrc": "7548:30:62", - "nodeType": "YulFunctionCall", - "src": "7548:30:62" - }, - "nativeSrc": "7545:50:62", - "nodeType": "YulIf", - "src": "7545:50:62" - }, - { - "nativeSrc": "7604:29:62", - "nodeType": "YulAssignment", - "src": "7604:29:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7620:6:62", - "nodeType": "YulIdentifier", - "src": "7620:6:62" - }, - { - "kind": "number", - "nativeSrc": "7628:4:62", - "nodeType": "YulLiteral", - "src": "7628:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7616:3:62", - "nodeType": "YulIdentifier", - "src": "7616:3:62" - }, - "nativeSrc": "7616:17:62", - "nodeType": "YulFunctionCall", - "src": "7616:17:62" - }, - "variableNames": [ - { - "name": "arrayPos", - "nativeSrc": "7604:8:62", - "nodeType": "YulIdentifier", - "src": "7604:8:62" - } - ] - }, - { - "body": { - "nativeSrc": "7685:16:62", - "nodeType": "YulBlock", - "src": "7685:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7694:1:62", - "nodeType": "YulLiteral", - "src": "7694:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "7697:1:62", - "nodeType": "YulLiteral", - "src": "7697:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "7687:6:62", - "nodeType": "YulIdentifier", - "src": "7687:6:62" - }, - "nativeSrc": "7687:12:62", - "nodeType": "YulFunctionCall", - "src": "7687:12:62" - }, - "nativeSrc": "7687:12:62", - "nodeType": "YulExpressionStatement", - "src": "7687:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7656:6:62", - "nodeType": "YulIdentifier", - "src": "7656:6:62" - }, - { - "name": "length", - "nativeSrc": "7664:6:62", - "nodeType": "YulIdentifier", - "src": "7664:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7652:3:62", - "nodeType": "YulIdentifier", - "src": "7652:3:62" - }, - "nativeSrc": "7652:19:62", - "nodeType": "YulFunctionCall", - "src": "7652:19:62" - }, - { - "kind": "number", - "nativeSrc": "7673:4:62", - "nodeType": "YulLiteral", - "src": "7673:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7648:3:62", - "nodeType": "YulIdentifier", - "src": "7648:3:62" - }, - "nativeSrc": "7648:30:62", - "nodeType": "YulFunctionCall", - "src": "7648:30:62" - }, - { - "name": "end", - "nativeSrc": "7680:3:62", - "nodeType": "YulIdentifier", - "src": "7680:3:62" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "7645:2:62", - "nodeType": "YulIdentifier", - "src": "7645:2:62" - }, - "nativeSrc": "7645:39:62", - "nodeType": "YulFunctionCall", - "src": "7645:39:62" - }, - "nativeSrc": "7642:59:62", - "nodeType": "YulIf", - "src": "7642:59:62" - } - ] - }, - "name": "abi_decode_bytes_calldata", - "nativeSrc": "7360:347:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "7395:6:62", - "nodeType": "YulTypedName", - "src": "7395:6:62", - "type": "" - }, - { - "name": "end", - "nativeSrc": "7403:3:62", - "nodeType": "YulTypedName", - "src": "7403:3:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "arrayPos", - "nativeSrc": "7411:8:62", - "nodeType": "YulTypedName", - "src": "7411:8:62", - "type": "" - }, - { - "name": "length", - "nativeSrc": "7421:6:62", - "nodeType": "YulTypedName", - "src": "7421:6:62", - "type": "" - } - ], - "src": "7360:347:62" - }, - { - "body": { - "nativeSrc": "7801:320:62", - "nodeType": "YulBlock", - "src": "7801:320:62", - "statements": [ - { - "body": { - "nativeSrc": "7847:16:62", - "nodeType": "YulBlock", - "src": "7847:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7856:1:62", - "nodeType": "YulLiteral", - "src": "7856:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "7859:1:62", - "nodeType": "YulLiteral", - "src": "7859:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "7849:6:62", - "nodeType": "YulIdentifier", - "src": "7849:6:62" - }, - "nativeSrc": "7849:12:62", - "nodeType": "YulFunctionCall", - "src": "7849:12:62" - }, - "nativeSrc": "7849:12:62", - "nodeType": "YulExpressionStatement", - "src": "7849:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "7822:7:62", - "nodeType": "YulIdentifier", - "src": "7822:7:62" - }, - { - "name": "headStart", - "nativeSrc": "7831:9:62", - "nodeType": "YulIdentifier", - "src": "7831:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7818:3:62", - "nodeType": "YulIdentifier", - "src": "7818:3:62" - }, - "nativeSrc": "7818:23:62", - "nodeType": "YulFunctionCall", - "src": "7818:23:62" - }, - { - "kind": "number", - "nativeSrc": "7843:2:62", - "nodeType": "YulLiteral", - "src": "7843:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "7814:3:62", - "nodeType": "YulIdentifier", - "src": "7814:3:62" - }, - "nativeSrc": "7814:32:62", - "nodeType": "YulFunctionCall", - "src": "7814:32:62" - }, - "nativeSrc": "7811:52:62", - "nodeType": "YulIf", - "src": "7811:52:62" - }, - { - "nativeSrc": "7872:37:62", - "nodeType": "YulVariableDeclaration", - "src": "7872:37:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7899:9:62", - "nodeType": "YulIdentifier", - "src": "7899:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "7886:12:62", - "nodeType": "YulIdentifier", - "src": "7886:12:62" - }, - "nativeSrc": "7886:23:62", - "nodeType": "YulFunctionCall", - "src": "7886:23:62" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "7876:6:62", - "nodeType": "YulTypedName", - "src": "7876:6:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "7952:16:62", - "nodeType": "YulBlock", - "src": "7952:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7961:1:62", - "nodeType": "YulLiteral", - "src": "7961:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "7964:1:62", - "nodeType": "YulLiteral", - "src": "7964:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "7954:6:62", - "nodeType": "YulIdentifier", - "src": "7954:6:62" - }, - "nativeSrc": "7954:12:62", - "nodeType": "YulFunctionCall", - "src": "7954:12:62" - }, - "nativeSrc": "7954:12:62", - "nodeType": "YulExpressionStatement", - "src": "7954:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7924:6:62", - "nodeType": "YulIdentifier", - "src": "7924:6:62" - }, - { - "kind": "number", - "nativeSrc": "7932:18:62", - "nodeType": "YulLiteral", - "src": "7932:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "7921:2:62", - "nodeType": "YulIdentifier", - "src": "7921:2:62" - }, - "nativeSrc": "7921:30:62", - "nodeType": "YulFunctionCall", - "src": "7921:30:62" - }, - "nativeSrc": "7918:50:62", - "nodeType": "YulIf", - "src": "7918:50:62" - }, - { - "nativeSrc": "7977:84:62", - "nodeType": "YulVariableDeclaration", - "src": "7977:84:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8033:9:62", - "nodeType": "YulIdentifier", - "src": "8033:9:62" - }, - { - "name": "offset", - "nativeSrc": "8044:6:62", - "nodeType": "YulIdentifier", - "src": "8044:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8029:3:62", - "nodeType": "YulIdentifier", - "src": "8029:3:62" - }, - "nativeSrc": "8029:22:62", - "nodeType": "YulFunctionCall", - "src": "8029:22:62" - }, - { - "name": "dataEnd", - "nativeSrc": "8053:7:62", - "nodeType": "YulIdentifier", - "src": "8053:7:62" - } - ], - "functionName": { - "name": "abi_decode_bytes_calldata", - "nativeSrc": "8003:25:62", - "nodeType": "YulIdentifier", - "src": "8003:25:62" - }, - "nativeSrc": "8003:58:62", - "nodeType": "YulFunctionCall", - "src": "8003:58:62" - }, - "variables": [ - { - "name": "value0_1", - "nativeSrc": "7981:8:62", - "nodeType": "YulTypedName", - "src": "7981:8:62", - "type": "" - }, - { - "name": "value1_1", - "nativeSrc": "7991:8:62", - "nodeType": "YulTypedName", - "src": "7991:8:62", - "type": "" - } - ] - }, - { - "nativeSrc": "8070:18:62", - "nodeType": "YulAssignment", - "src": "8070:18:62", - "value": { - "name": "value0_1", - "nativeSrc": "8080:8:62", - "nodeType": "YulIdentifier", - "src": "8080:8:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "8070:6:62", - "nodeType": "YulIdentifier", - "src": "8070:6:62" - } - ] - }, - { - "nativeSrc": "8097:18:62", - "nodeType": "YulAssignment", - "src": "8097:18:62", - "value": { - "name": "value1_1", - "nativeSrc": "8107:8:62", - "nodeType": "YulIdentifier", - "src": "8107:8:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "8097:6:62", - "nodeType": "YulIdentifier", - "src": "8097:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes_calldata_ptr", - "nativeSrc": "7712:409:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7759:9:62", - "nodeType": "YulTypedName", - "src": "7759:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "7770:7:62", - "nodeType": "YulTypedName", - "src": "7770:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "7782:6:62", - "nodeType": "YulTypedName", - "src": "7782:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7790:6:62", - "nodeType": "YulTypedName", - "src": "7790:6:62", - "type": "" - } - ], - "src": "7712:409:62" - }, - { - "body": { - "nativeSrc": "8251:587:62", - "nodeType": "YulBlock", - "src": "8251:587:62", - "statements": [ - { - "body": { - "nativeSrc": "8297:16:62", - "nodeType": "YulBlock", - "src": "8297:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8306:1:62", - "nodeType": "YulLiteral", - "src": "8306:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "8309:1:62", - "nodeType": "YulLiteral", - "src": "8309:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "8299:6:62", - "nodeType": "YulIdentifier", - "src": "8299:6:62" - }, - "nativeSrc": "8299:12:62", - "nodeType": "YulFunctionCall", - "src": "8299:12:62" - }, - "nativeSrc": "8299:12:62", - "nodeType": "YulExpressionStatement", - "src": "8299:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "8272:7:62", - "nodeType": "YulIdentifier", - "src": "8272:7:62" - }, - { - "name": "headStart", - "nativeSrc": "8281:9:62", - "nodeType": "YulIdentifier", - "src": "8281:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "8268:3:62", - "nodeType": "YulIdentifier", - "src": "8268:3:62" - }, - "nativeSrc": "8268:23:62", - "nodeType": "YulFunctionCall", - "src": "8268:23:62" - }, - { - "kind": "number", - "nativeSrc": "8293:2:62", - "nodeType": "YulLiteral", - "src": "8293:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "8264:3:62", - "nodeType": "YulIdentifier", - "src": "8264:3:62" - }, - "nativeSrc": "8264:32:62", - "nodeType": "YulFunctionCall", - "src": "8264:32:62" - }, - "nativeSrc": "8261:52:62", - "nodeType": "YulIf", - "src": "8261:52:62" - }, - { - "nativeSrc": "8322:37:62", - "nodeType": "YulVariableDeclaration", - "src": "8322:37:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8349:9:62", - "nodeType": "YulIdentifier", - "src": "8349:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "8336:12:62", - "nodeType": "YulIdentifier", - "src": "8336:12:62" - }, - "nativeSrc": "8336:23:62", - "nodeType": "YulFunctionCall", - "src": "8336:23:62" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "8326:6:62", - "nodeType": "YulTypedName", - "src": "8326:6:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "8402:16:62", - "nodeType": "YulBlock", - "src": "8402:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8411:1:62", - "nodeType": "YulLiteral", - "src": "8411:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "8414:1:62", - "nodeType": "YulLiteral", - "src": "8414:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "8404:6:62", - "nodeType": "YulIdentifier", - "src": "8404:6:62" - }, - "nativeSrc": "8404:12:62", - "nodeType": "YulFunctionCall", - "src": "8404:12:62" - }, - "nativeSrc": "8404:12:62", - "nodeType": "YulExpressionStatement", - "src": "8404:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "8374:6:62", - "nodeType": "YulIdentifier", - "src": "8374:6:62" - }, - { - "kind": "number", - "nativeSrc": "8382:18:62", - "nodeType": "YulLiteral", - "src": "8382:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "8371:2:62", - "nodeType": "YulIdentifier", - "src": "8371:2:62" - }, - "nativeSrc": "8371:30:62", - "nodeType": "YulFunctionCall", - "src": "8371:30:62" - }, - "nativeSrc": "8368:50:62", - "nodeType": "YulIf", - "src": "8368:50:62" - }, - { - "nativeSrc": "8427:84:62", - "nodeType": "YulVariableDeclaration", - "src": "8427:84:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8483:9:62", - "nodeType": "YulIdentifier", - "src": "8483:9:62" - }, - { - "name": "offset", - "nativeSrc": "8494:6:62", - "nodeType": "YulIdentifier", - "src": "8494:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8479:3:62", - "nodeType": "YulIdentifier", - "src": "8479:3:62" - }, - "nativeSrc": "8479:22:62", - "nodeType": "YulFunctionCall", - "src": "8479:22:62" - }, - { - "name": "dataEnd", - "nativeSrc": "8503:7:62", - "nodeType": "YulIdentifier", - "src": "8503:7:62" - } - ], - "functionName": { - "name": "abi_decode_bytes_calldata", - "nativeSrc": "8453:25:62", - "nodeType": "YulIdentifier", - "src": "8453:25:62" - }, - "nativeSrc": "8453:58:62", - "nodeType": "YulFunctionCall", - "src": "8453:58:62" - }, - "variables": [ - { - "name": "value0_1", - "nativeSrc": "8431:8:62", - "nodeType": "YulTypedName", - "src": "8431:8:62", - "type": "" - }, - { - "name": "value1_1", - "nativeSrc": "8441:8:62", - "nodeType": "YulTypedName", - "src": "8441:8:62", - "type": "" - } - ] - }, - { - "nativeSrc": "8520:18:62", - "nodeType": "YulAssignment", - "src": "8520:18:62", - "value": { - "name": "value0_1", - "nativeSrc": "8530:8:62", - "nodeType": "YulIdentifier", - "src": "8530:8:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "8520:6:62", - "nodeType": "YulIdentifier", - "src": "8520:6:62" - } - ] - }, - { - "nativeSrc": "8547:18:62", - "nodeType": "YulAssignment", - "src": "8547:18:62", - "value": { - "name": "value1_1", - "nativeSrc": "8557:8:62", - "nodeType": "YulIdentifier", - "src": "8557:8:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "8547:6:62", - "nodeType": "YulIdentifier", - "src": "8547:6:62" - } - ] - }, - { - "nativeSrc": "8574:48:62", - "nodeType": "YulVariableDeclaration", - "src": "8574:48:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8607:9:62", - "nodeType": "YulIdentifier", - "src": "8607:9:62" - }, - { - "kind": "number", - "nativeSrc": "8618:2:62", - "nodeType": "YulLiteral", - "src": "8618:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8603:3:62", - "nodeType": "YulIdentifier", - "src": "8603:3:62" - }, - "nativeSrc": "8603:18:62", - "nodeType": "YulFunctionCall", - "src": "8603:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "8590:12:62", - "nodeType": "YulIdentifier", - "src": "8590:12:62" - }, - "nativeSrc": "8590:32:62", - "nodeType": "YulFunctionCall", - "src": "8590:32:62" - }, - "variables": [ - { - "name": "offset_1", - "nativeSrc": "8578:8:62", - "nodeType": "YulTypedName", - "src": "8578:8:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "8667:16:62", - "nodeType": "YulBlock", - "src": "8667:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8676:1:62", - "nodeType": "YulLiteral", - "src": "8676:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "8679:1:62", - "nodeType": "YulLiteral", - "src": "8679:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "8669:6:62", - "nodeType": "YulIdentifier", - "src": "8669:6:62" - }, - "nativeSrc": "8669:12:62", - "nodeType": "YulFunctionCall", - "src": "8669:12:62" - }, - "nativeSrc": "8669:12:62", - "nodeType": "YulExpressionStatement", - "src": "8669:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_1", - "nativeSrc": "8637:8:62", - "nodeType": "YulIdentifier", - "src": "8637:8:62" - }, - { - "kind": "number", - "nativeSrc": "8647:18:62", - "nodeType": "YulLiteral", - "src": "8647:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "8634:2:62", - "nodeType": "YulIdentifier", - "src": "8634:2:62" - }, - "nativeSrc": "8634:32:62", - "nodeType": "YulFunctionCall", - "src": "8634:32:62" - }, - "nativeSrc": "8631:52:62", - "nodeType": "YulIf", - "src": "8631:52:62" - }, - { - "nativeSrc": "8692:86:62", - "nodeType": "YulVariableDeclaration", - "src": "8692:86:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8748:9:62", - "nodeType": "YulIdentifier", - "src": "8748:9:62" - }, - { - "name": "offset_1", - "nativeSrc": "8759:8:62", - "nodeType": "YulIdentifier", - "src": "8759:8:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8744:3:62", - "nodeType": "YulIdentifier", - "src": "8744:3:62" - }, - "nativeSrc": "8744:24:62", - "nodeType": "YulFunctionCall", - "src": "8744:24:62" - }, - { - "name": "dataEnd", - "nativeSrc": "8770:7:62", - "nodeType": "YulIdentifier", - "src": "8770:7:62" - } - ], - "functionName": { - "name": "abi_decode_bytes_calldata", - "nativeSrc": "8718:25:62", - "nodeType": "YulIdentifier", - "src": "8718:25:62" - }, - "nativeSrc": "8718:60:62", - "nodeType": "YulFunctionCall", - "src": "8718:60:62" - }, - "variables": [ - { - "name": "value2_1", - "nativeSrc": "8696:8:62", - "nodeType": "YulTypedName", - "src": "8696:8:62", - "type": "" - }, - { - "name": "value3_1", - "nativeSrc": "8706:8:62", - "nodeType": "YulTypedName", - "src": "8706:8:62", - "type": "" - } - ] - }, - { - "nativeSrc": "8787:18:62", - "nodeType": "YulAssignment", - "src": "8787:18:62", - "value": { - "name": "value2_1", - "nativeSrc": "8797:8:62", - "nodeType": "YulIdentifier", - "src": "8797:8:62" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "8787:6:62", - "nodeType": "YulIdentifier", - "src": "8787:6:62" - } - ] - }, - { - "nativeSrc": "8814:18:62", - "nodeType": "YulAssignment", - "src": "8814:18:62", - "value": { - "name": "value3_1", - "nativeSrc": "8824:8:62", - "nodeType": "YulIdentifier", - "src": "8824:8:62" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "8814:6:62", - "nodeType": "YulIdentifier", - "src": "8814:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr", - "nativeSrc": "8126:712:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8193:9:62", - "nodeType": "YulTypedName", - "src": "8193:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "8204:7:62", - "nodeType": "YulTypedName", - "src": "8204:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "8216:6:62", - "nodeType": "YulTypedName", - "src": "8216:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8224:6:62", - "nodeType": "YulTypedName", - "src": "8224:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "8232:6:62", - "nodeType": "YulTypedName", - "src": "8232:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "8240:6:62", - "nodeType": "YulTypedName", - "src": "8240:6:62", - "type": "" - } - ], - "src": "8126:712:62" - }, - { - "body": { - "nativeSrc": "8972:119:62", - "nodeType": "YulBlock", - "src": "8972:119:62", - "statements": [ - { - "nativeSrc": "8982:26:62", - "nodeType": "YulAssignment", - "src": "8982:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8994:9:62", - "nodeType": "YulIdentifier", - "src": "8994:9:62" - }, - { - "kind": "number", - "nativeSrc": "9005:2:62", - "nodeType": "YulLiteral", - "src": "9005:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8990:3:62", - "nodeType": "YulIdentifier", - "src": "8990:3:62" - }, - "nativeSrc": "8990:18:62", - "nodeType": "YulFunctionCall", - "src": "8990:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8982:4:62", - "nodeType": "YulIdentifier", - "src": "8982:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9024:9:62", - "nodeType": "YulIdentifier", - "src": "9024:9:62" - }, - { - "name": "value0", - "nativeSrc": "9035:6:62", - "nodeType": "YulIdentifier", - "src": "9035:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9017:6:62", - "nodeType": "YulIdentifier", - "src": "9017:6:62" - }, - "nativeSrc": "9017:25:62", - "nodeType": "YulFunctionCall", - "src": "9017:25:62" - }, - "nativeSrc": "9017:25:62", - "nodeType": "YulExpressionStatement", - "src": "9017:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9062:9:62", - "nodeType": "YulIdentifier", - "src": "9062:9:62" - }, - { - "kind": "number", - "nativeSrc": "9073:2:62", - "nodeType": "YulLiteral", - "src": "9073:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9058:3:62", - "nodeType": "YulIdentifier", - "src": "9058:3:62" - }, - "nativeSrc": "9058:18:62", - "nodeType": "YulFunctionCall", - "src": "9058:18:62" - }, - { - "name": "value1", - "nativeSrc": "9078:6:62", - "nodeType": "YulIdentifier", - "src": "9078:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9051:6:62", - "nodeType": "YulIdentifier", - "src": "9051:6:62" - }, - "nativeSrc": "9051:34:62", - "nodeType": "YulFunctionCall", - "src": "9051:34:62" - }, - "nativeSrc": "9051:34:62", - "nodeType": "YulExpressionStatement", - "src": "9051:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed", - "nativeSrc": "8843:248:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8933:9:62", - "nodeType": "YulTypedName", - "src": "8933:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8944:6:62", - "nodeType": "YulTypedName", - "src": "8944:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8952:6:62", - "nodeType": "YulTypedName", - "src": "8952:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8963:4:62", - "nodeType": "YulTypedName", - "src": "8963:4:62", - "type": "" - } - ], - "src": "8843:248:62" - }, - { - "body": { - "nativeSrc": "9158:841:62", - "nodeType": "YulBlock", - "src": "9158:841:62", - "statements": [ - { - "body": { - "nativeSrc": "9202:16:62", - "nodeType": "YulBlock", - "src": "9202:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9211:1:62", - "nodeType": "YulLiteral", - "src": "9211:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "9214:1:62", - "nodeType": "YulLiteral", - "src": "9214:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "9204:6:62", - "nodeType": "YulIdentifier", - "src": "9204:6:62" - }, - "nativeSrc": "9204:12:62", - "nodeType": "YulFunctionCall", - "src": "9204:12:62" - }, - "nativeSrc": "9204:12:62", - "nodeType": "YulExpressionStatement", - "src": "9204:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "end", - "nativeSrc": "9179:3:62", - "nodeType": "YulIdentifier", - "src": "9179:3:62" - }, - { - "name": "headStart", - "nativeSrc": "9184:9:62", - "nodeType": "YulIdentifier", - "src": "9184:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "9175:3:62", - "nodeType": "YulIdentifier", - "src": "9175:3:62" - }, - "nativeSrc": "9175:19:62", - "nodeType": "YulFunctionCall", - "src": "9175:19:62" - }, - { - "kind": "number", - "nativeSrc": "9196:4:62", - "nodeType": "YulLiteral", - "src": "9196:4:62", - "type": "", - "value": "0xc0" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "9171:3:62", - "nodeType": "YulIdentifier", - "src": "9171:3:62" - }, - "nativeSrc": "9171:30:62", - "nodeType": "YulFunctionCall", - "src": "9171:30:62" - }, - "nativeSrc": "9168:50:62", - "nodeType": "YulIf", - "src": "9168:50:62" - }, - { - "nativeSrc": "9227:31:62", - "nodeType": "YulAssignment", - "src": "9227:31:62", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_memory_2163", - "nativeSrc": "9236:20:62", - "nodeType": "YulIdentifier", - "src": "9236:20:62" - }, - "nativeSrc": "9236:22:62", - "nodeType": "YulFunctionCall", - "src": "9236:22:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "9227:5:62", - "nodeType": "YulIdentifier", - "src": "9227:5:62" - } - ] - }, - { - "nativeSrc": "9267:16:62", - "nodeType": "YulVariableDeclaration", - "src": "9267:16:62", - "value": { - "kind": "number", - "nativeSrc": "9282:1:62", - "nodeType": "YulLiteral", - "src": "9282:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "9271:7:62", - "nodeType": "YulTypedName", - "src": "9271:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "9292:34:62", - "nodeType": "YulAssignment", - "src": "9292:34:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9316:9:62", - "nodeType": "YulIdentifier", - "src": "9316:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "9303:12:62", - "nodeType": "YulIdentifier", - "src": "9303:12:62" - }, - "nativeSrc": "9303:23:62", - "nodeType": "YulFunctionCall", - "src": "9303:23:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "9292:7:62", - "nodeType": "YulIdentifier", - "src": "9292:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "9342:5:62", - "nodeType": "YulIdentifier", - "src": "9342:5:62" - }, - { - "name": "value_1", - "nativeSrc": "9349:7:62", - "nodeType": "YulIdentifier", - "src": "9349:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9335:6:62", - "nodeType": "YulIdentifier", - "src": "9335:6:62" - }, - "nativeSrc": "9335:22:62", - "nodeType": "YulFunctionCall", - "src": "9335:22:62" - }, - "nativeSrc": "9335:22:62", - "nodeType": "YulExpressionStatement", - "src": "9335:22:62" - }, - { - "nativeSrc": "9366:16:62", - "nodeType": "YulVariableDeclaration", - "src": "9366:16:62", - "value": { - "kind": "number", - "nativeSrc": "9381:1:62", - "nodeType": "YulLiteral", - "src": "9381:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "9370:7:62", - "nodeType": "YulTypedName", - "src": "9370:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "9391:43:62", - "nodeType": "YulAssignment", - "src": "9391:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9419:9:62", - "nodeType": "YulIdentifier", - "src": "9419:9:62" - }, - { - "kind": "number", - "nativeSrc": "9430:2:62", - "nodeType": "YulLiteral", - "src": "9430:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9415:3:62", - "nodeType": "YulIdentifier", - "src": "9415:3:62" - }, - "nativeSrc": "9415:18:62", - "nodeType": "YulFunctionCall", - "src": "9415:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "9402:12:62", - "nodeType": "YulIdentifier", - "src": "9402:12:62" - }, - "nativeSrc": "9402:32:62", - "nodeType": "YulFunctionCall", - "src": "9402:32:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "9391:7:62", - "nodeType": "YulIdentifier", - "src": "9391:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "9454:5:62", - "nodeType": "YulIdentifier", - "src": "9454:5:62" - }, - { - "kind": "number", - "nativeSrc": "9461:2:62", - "nodeType": "YulLiteral", - "src": "9461:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9450:3:62", - "nodeType": "YulIdentifier", - "src": "9450:3:62" - }, - "nativeSrc": "9450:14:62", - "nodeType": "YulFunctionCall", - "src": "9450:14:62" - }, - { - "name": "value_2", - "nativeSrc": "9466:7:62", - "nodeType": "YulIdentifier", - "src": "9466:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9443:6:62", - "nodeType": "YulIdentifier", - "src": "9443:6:62" - }, - "nativeSrc": "9443:31:62", - "nodeType": "YulFunctionCall", - "src": "9443:31:62" - }, - "nativeSrc": "9443:31:62", - "nodeType": "YulExpressionStatement", - "src": "9443:31:62" - }, - { - "nativeSrc": "9483:16:62", - "nodeType": "YulVariableDeclaration", - "src": "9483:16:62", - "value": { - "kind": "number", - "nativeSrc": "9498:1:62", - "nodeType": "YulLiteral", - "src": "9498:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_3", - "nativeSrc": "9487:7:62", - "nodeType": "YulTypedName", - "src": "9487:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "9508:43:62", - "nodeType": "YulAssignment", - "src": "9508:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9536:9:62", - "nodeType": "YulIdentifier", - "src": "9536:9:62" - }, - { - "kind": "number", - "nativeSrc": "9547:2:62", - "nodeType": "YulLiteral", - "src": "9547:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9532:3:62", - "nodeType": "YulIdentifier", - "src": "9532:3:62" - }, - "nativeSrc": "9532:18:62", - "nodeType": "YulFunctionCall", - "src": "9532:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "9519:12:62", - "nodeType": "YulIdentifier", - "src": "9519:12:62" - }, - "nativeSrc": "9519:32:62", - "nodeType": "YulFunctionCall", - "src": "9519:32:62" - }, - "variableNames": [ - { - "name": "value_3", - "nativeSrc": "9508:7:62", - "nodeType": "YulIdentifier", - "src": "9508:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "9571:5:62", - "nodeType": "YulIdentifier", - "src": "9571:5:62" - }, - { - "kind": "number", - "nativeSrc": "9578:2:62", - "nodeType": "YulLiteral", - "src": "9578:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9567:3:62", - "nodeType": "YulIdentifier", - "src": "9567:3:62" - }, - "nativeSrc": "9567:14:62", - "nodeType": "YulFunctionCall", - "src": "9567:14:62" - }, - { - "name": "value_3", - "nativeSrc": "9583:7:62", - "nodeType": "YulIdentifier", - "src": "9583:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9560:6:62", - "nodeType": "YulIdentifier", - "src": "9560:6:62" - }, - "nativeSrc": "9560:31:62", - "nodeType": "YulFunctionCall", - "src": "9560:31:62" - }, - "nativeSrc": "9560:31:62", - "nodeType": "YulExpressionStatement", - "src": "9560:31:62" - }, - { - "nativeSrc": "9600:16:62", - "nodeType": "YulVariableDeclaration", - "src": "9600:16:62", - "value": { - "kind": "number", - "nativeSrc": "9615:1:62", - "nodeType": "YulLiteral", - "src": "9615:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_4", - "nativeSrc": "9604:7:62", - "nodeType": "YulTypedName", - "src": "9604:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "9625:43:62", - "nodeType": "YulAssignment", - "src": "9625:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9653:9:62", - "nodeType": "YulIdentifier", - "src": "9653:9:62" - }, - { - "kind": "number", - "nativeSrc": "9664:2:62", - "nodeType": "YulLiteral", - "src": "9664:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9649:3:62", - "nodeType": "YulIdentifier", - "src": "9649:3:62" - }, - "nativeSrc": "9649:18:62", - "nodeType": "YulFunctionCall", - "src": "9649:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "9636:12:62", - "nodeType": "YulIdentifier", - "src": "9636:12:62" - }, - "nativeSrc": "9636:32:62", - "nodeType": "YulFunctionCall", - "src": "9636:32:62" - }, - "variableNames": [ - { - "name": "value_4", - "nativeSrc": "9625:7:62", - "nodeType": "YulIdentifier", - "src": "9625:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "9688:5:62", - "nodeType": "YulIdentifier", - "src": "9688:5:62" - }, - { - "kind": "number", - "nativeSrc": "9695:2:62", - "nodeType": "YulLiteral", - "src": "9695:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9684:3:62", - "nodeType": "YulIdentifier", - "src": "9684:3:62" - }, - "nativeSrc": "9684:14:62", - "nodeType": "YulFunctionCall", - "src": "9684:14:62" - }, - { - "name": "value_4", - "nativeSrc": "9700:7:62", - "nodeType": "YulIdentifier", - "src": "9700:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9677:6:62", - "nodeType": "YulIdentifier", - "src": "9677:6:62" - }, - "nativeSrc": "9677:31:62", - "nodeType": "YulFunctionCall", - "src": "9677:31:62" - }, - "nativeSrc": "9677:31:62", - "nodeType": "YulExpressionStatement", - "src": "9677:31:62" - }, - { - "nativeSrc": "9717:16:62", - "nodeType": "YulVariableDeclaration", - "src": "9717:16:62", - "value": { - "kind": "number", - "nativeSrc": "9732:1:62", - "nodeType": "YulLiteral", - "src": "9732:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_5", - "nativeSrc": "9721:7:62", - "nodeType": "YulTypedName", - "src": "9721:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "9742:44:62", - "nodeType": "YulAssignment", - "src": "9742:44:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9770:9:62", - "nodeType": "YulIdentifier", - "src": "9770:9:62" - }, - { - "kind": "number", - "nativeSrc": "9781:3:62", - "nodeType": "YulLiteral", - "src": "9781:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9766:3:62", - "nodeType": "YulIdentifier", - "src": "9766:3:62" - }, - "nativeSrc": "9766:19:62", - "nodeType": "YulFunctionCall", - "src": "9766:19:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "9753:12:62", - "nodeType": "YulIdentifier", - "src": "9753:12:62" - }, - "nativeSrc": "9753:33:62", - "nodeType": "YulFunctionCall", - "src": "9753:33:62" - }, - "variableNames": [ - { - "name": "value_5", - "nativeSrc": "9742:7:62", - "nodeType": "YulIdentifier", - "src": "9742:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "9806:5:62", - "nodeType": "YulIdentifier", - "src": "9806:5:62" - }, - { - "kind": "number", - "nativeSrc": "9813:3:62", - "nodeType": "YulLiteral", - "src": "9813:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9802:3:62", - "nodeType": "YulIdentifier", - "src": "9802:3:62" - }, - "nativeSrc": "9802:15:62", - "nodeType": "YulFunctionCall", - "src": "9802:15:62" - }, - { - "name": "value_5", - "nativeSrc": "9819:7:62", - "nodeType": "YulIdentifier", - "src": "9819:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9795:6:62", - "nodeType": "YulIdentifier", - "src": "9795:6:62" - }, - "nativeSrc": "9795:32:62", - "nodeType": "YulFunctionCall", - "src": "9795:32:62" - }, - "nativeSrc": "9795:32:62", - "nodeType": "YulExpressionStatement", - "src": "9795:32:62" - }, - { - "nativeSrc": "9836:48:62", - "nodeType": "YulVariableDeclaration", - "src": "9836:48:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9868:9:62", - "nodeType": "YulIdentifier", - "src": "9868:9:62" - }, - { - "kind": "number", - "nativeSrc": "9879:3:62", - "nodeType": "YulLiteral", - "src": "9879:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9864:3:62", - "nodeType": "YulIdentifier", - "src": "9864:3:62" - }, - "nativeSrc": "9864:19:62", - "nodeType": "YulFunctionCall", - "src": "9864:19:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "9851:12:62", - "nodeType": "YulIdentifier", - "src": "9851:12:62" - }, - "nativeSrc": "9851:33:62", - "nodeType": "YulFunctionCall", - "src": "9851:33:62" - }, - "variables": [ - { - "name": "value_6", - "nativeSrc": "9840:7:62", - "nodeType": "YulTypedName", - "src": "9840:7:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "9936:16:62", - "nodeType": "YulBlock", - "src": "9936:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9945:1:62", - "nodeType": "YulLiteral", - "src": "9945:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "9948:1:62", - "nodeType": "YulLiteral", - "src": "9948:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "9938:6:62", - "nodeType": "YulIdentifier", - "src": "9938:6:62" - }, - "nativeSrc": "9938:12:62", - "nodeType": "YulFunctionCall", - "src": "9938:12:62" - }, - "nativeSrc": "9938:12:62", - "nodeType": "YulExpressionStatement", - "src": "9938:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value_6", - "nativeSrc": "9906:7:62", - "nodeType": "YulIdentifier", - "src": "9906:7:62" - }, - { - "arguments": [ - { - "name": "value_6", - "nativeSrc": "9919:7:62", - "nodeType": "YulIdentifier", - "src": "9919:7:62" - }, - { - "kind": "number", - "nativeSrc": "9928:4:62", - "nodeType": "YulLiteral", - "src": "9928:4:62", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "9915:3:62", - "nodeType": "YulIdentifier", - "src": "9915:3:62" - }, - "nativeSrc": "9915:18:62", - "nodeType": "YulFunctionCall", - "src": "9915:18:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "9903:2:62", - "nodeType": "YulIdentifier", - "src": "9903:2:62" - }, - "nativeSrc": "9903:31:62", - "nodeType": "YulFunctionCall", - "src": "9903:31:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "9896:6:62", - "nodeType": "YulIdentifier", - "src": "9896:6:62" - }, - "nativeSrc": "9896:39:62", - "nodeType": "YulFunctionCall", - "src": "9896:39:62" - }, - "nativeSrc": "9893:59:62", - "nodeType": "YulIf", - "src": "9893:59:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "9972:5:62", - "nodeType": "YulIdentifier", - "src": "9972:5:62" - }, - { - "kind": "number", - "nativeSrc": "9979:3:62", - "nodeType": "YulLiteral", - "src": "9979:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9968:3:62", - "nodeType": "YulIdentifier", - "src": "9968:3:62" - }, - "nativeSrc": "9968:15:62", - "nodeType": "YulFunctionCall", - "src": "9968:15:62" - }, - { - "name": "value_6", - "nativeSrc": "9985:7:62", - "nodeType": "YulIdentifier", - "src": "9985:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9961:6:62", - "nodeType": "YulIdentifier", - "src": "9961:6:62" - }, - "nativeSrc": "9961:32:62", - "nodeType": "YulFunctionCall", - "src": "9961:32:62" - }, - "nativeSrc": "9961:32:62", - "nodeType": "YulExpressionStatement", - "src": "9961:32:62" - } - ] - }, - "name": "abi_decode_struct_State", - "nativeSrc": "9096:903:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9129:9:62", - "nodeType": "YulTypedName", - "src": "9129:9:62", - "type": "" - }, - { - "name": "end", - "nativeSrc": "9140:3:62", - "nodeType": "YulTypedName", - "src": "9140:3:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "9148:5:62", - "nodeType": "YulTypedName", - "src": "9148:5:62", - "type": "" - } - ], - "src": "9096:903:62" - }, - { - "body": { - "nativeSrc": "10098:131:62", - "nodeType": "YulBlock", - "src": "10098:131:62", - "statements": [ - { - "body": { - "nativeSrc": "10145:16:62", - "nodeType": "YulBlock", - "src": "10145:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "10154:1:62", - "nodeType": "YulLiteral", - "src": "10154:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "10157:1:62", - "nodeType": "YulLiteral", - "src": "10157:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "10147:6:62", - "nodeType": "YulIdentifier", - "src": "10147:6:62" - }, - "nativeSrc": "10147:12:62", - "nodeType": "YulFunctionCall", - "src": "10147:12:62" - }, - "nativeSrc": "10147:12:62", - "nodeType": "YulExpressionStatement", - "src": "10147:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "10119:7:62", - "nodeType": "YulIdentifier", - "src": "10119:7:62" - }, - { - "name": "headStart", - "nativeSrc": "10128:9:62", - "nodeType": "YulIdentifier", - "src": "10128:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "10115:3:62", - "nodeType": "YulIdentifier", - "src": "10115:3:62" - }, - "nativeSrc": "10115:23:62", - "nodeType": "YulFunctionCall", - "src": "10115:23:62" - }, - { - "kind": "number", - "nativeSrc": "10140:3:62", - "nodeType": "YulLiteral", - "src": "10140:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "10111:3:62", - "nodeType": "YulIdentifier", - "src": "10111:3:62" - }, - "nativeSrc": "10111:33:62", - "nodeType": "YulFunctionCall", - "src": "10111:33:62" - }, - "nativeSrc": "10108:53:62", - "nodeType": "YulIf", - "src": "10108:53:62" - }, - { - "nativeSrc": "10170:53:62", - "nodeType": "YulAssignment", - "src": "10170:53:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10204:9:62", - "nodeType": "YulIdentifier", - "src": "10204:9:62" - }, - { - "name": "dataEnd", - "nativeSrc": "10215:7:62", - "nodeType": "YulIdentifier", - "src": "10215:7:62" - } - ], - "functionName": { - "name": "abi_decode_struct_State", - "nativeSrc": "10180:23:62", - "nodeType": "YulIdentifier", - "src": "10180:23:62" - }, - "nativeSrc": "10180:43:62", - "nodeType": "YulFunctionCall", - "src": "10180:43:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "10170:6:62", - "nodeType": "YulIdentifier", - "src": "10170:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_struct$_State_$11699_memory_ptr", - "nativeSrc": "10004:225:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10064:9:62", - "nodeType": "YulTypedName", - "src": "10064:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "10075:7:62", - "nodeType": "YulTypedName", - "src": "10075:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "10087:6:62", - "nodeType": "YulTypedName", - "src": "10087:6:62", - "type": "" - } - ], - "src": "10004:225:62" - }, - { - "body": { - "nativeSrc": "10369:203:62", - "nodeType": "YulBlock", - "src": "10369:203:62", - "statements": [ - { - "body": { - "nativeSrc": "10416:16:62", - "nodeType": "YulBlock", - "src": "10416:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "10425:1:62", - "nodeType": "YulLiteral", - "src": "10425:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "10428:1:62", - "nodeType": "YulLiteral", - "src": "10428:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "10418:6:62", - "nodeType": "YulIdentifier", - "src": "10418:6:62" - }, - "nativeSrc": "10418:12:62", - "nodeType": "YulFunctionCall", - "src": "10418:12:62" - }, - "nativeSrc": "10418:12:62", - "nodeType": "YulExpressionStatement", - "src": "10418:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "10390:7:62", - "nodeType": "YulIdentifier", - "src": "10390:7:62" - }, - { - "name": "headStart", - "nativeSrc": "10399:9:62", - "nodeType": "YulIdentifier", - "src": "10399:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "10386:3:62", - "nodeType": "YulIdentifier", - "src": "10386:3:62" - }, - "nativeSrc": "10386:23:62", - "nodeType": "YulFunctionCall", - "src": "10386:23:62" - }, - { - "kind": "number", - "nativeSrc": "10411:3:62", - "nodeType": "YulLiteral", - "src": "10411:3:62", - "type": "", - "value": "384" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "10382:3:62", - "nodeType": "YulIdentifier", - "src": "10382:3:62" - }, - "nativeSrc": "10382:33:62", - "nodeType": "YulFunctionCall", - "src": "10382:33:62" - }, - "nativeSrc": "10379:53:62", - "nodeType": "YulIf", - "src": "10379:53:62" - }, - { - "nativeSrc": "10441:53:62", - "nodeType": "YulAssignment", - "src": "10441:53:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10475:9:62", - "nodeType": "YulIdentifier", - "src": "10475:9:62" - }, - { - "name": "dataEnd", - "nativeSrc": "10486:7:62", - "nodeType": "YulIdentifier", - "src": "10486:7:62" - } - ], - "functionName": { - "name": "abi_decode_struct_State", - "nativeSrc": "10451:23:62", - "nodeType": "YulIdentifier", - "src": "10451:23:62" - }, - "nativeSrc": "10451:43:62", - "nodeType": "YulFunctionCall", - "src": "10451:43:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "10441:6:62", - "nodeType": "YulIdentifier", - "src": "10441:6:62" - } - ] - }, - { - "nativeSrc": "10503:63:62", - "nodeType": "YulAssignment", - "src": "10503:63:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10541:9:62", - "nodeType": "YulIdentifier", - "src": "10541:9:62" - }, - { - "kind": "number", - "nativeSrc": "10552:3:62", - "nodeType": "YulLiteral", - "src": "10552:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10537:3:62", - "nodeType": "YulIdentifier", - "src": "10537:3:62" - }, - "nativeSrc": "10537:19:62", - "nodeType": "YulFunctionCall", - "src": "10537:19:62" - }, - { - "name": "dataEnd", - "nativeSrc": "10558:7:62", - "nodeType": "YulIdentifier", - "src": "10558:7:62" - } - ], - "functionName": { - "name": "abi_decode_struct_State", - "nativeSrc": "10513:23:62", - "nodeType": "YulIdentifier", - "src": "10513:23:62" - }, - "nativeSrc": "10513:53:62", - "nodeType": "YulFunctionCall", - "src": "10513:53:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "10503:6:62", - "nodeType": "YulIdentifier", - "src": "10503:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_struct$_State_$11699_memory_ptrt_struct$_State_$11699_memory_ptr", - "nativeSrc": "10234:338:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10327:9:62", - "nodeType": "YulTypedName", - "src": "10327:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "10338:7:62", - "nodeType": "YulTypedName", - "src": "10338:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "10350:6:62", - "nodeType": "YulTypedName", - "src": "10350:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "10358:6:62", - "nodeType": "YulTypedName", - "src": "10358:6:62", - "type": "" - } - ], - "src": "10234:338:62" - }, - { - "body": { - "nativeSrc": "10646:176:62", - "nodeType": "YulBlock", - "src": "10646:176:62", - "statements": [ - { - "body": { - "nativeSrc": "10692:16:62", - "nodeType": "YulBlock", - "src": "10692:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "10701:1:62", - "nodeType": "YulLiteral", - "src": "10701:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "10704:1:62", - "nodeType": "YulLiteral", - "src": "10704:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "10694:6:62", - "nodeType": "YulIdentifier", - "src": "10694:6:62" - }, - "nativeSrc": "10694:12:62", - "nodeType": "YulFunctionCall", - "src": "10694:12:62" - }, - "nativeSrc": "10694:12:62", - "nodeType": "YulExpressionStatement", - "src": "10694:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "10667:7:62", - "nodeType": "YulIdentifier", - "src": "10667:7:62" - }, - { - "name": "headStart", - "nativeSrc": "10676:9:62", - "nodeType": "YulIdentifier", - "src": "10676:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "10663:3:62", - "nodeType": "YulIdentifier", - "src": "10663:3:62" - }, - "nativeSrc": "10663:23:62", - "nodeType": "YulFunctionCall", - "src": "10663:23:62" - }, - { - "kind": "number", - "nativeSrc": "10688:2:62", - "nodeType": "YulLiteral", - "src": "10688:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "10659:3:62", - "nodeType": "YulIdentifier", - "src": "10659:3:62" - }, - "nativeSrc": "10659:32:62", - "nodeType": "YulFunctionCall", - "src": "10659:32:62" - }, - "nativeSrc": "10656:52:62", - "nodeType": "YulIf", - "src": "10656:52:62" - }, - { - "nativeSrc": "10717:36:62", - "nodeType": "YulVariableDeclaration", - "src": "10717:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10743:9:62", - "nodeType": "YulIdentifier", - "src": "10743:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "10730:12:62", - "nodeType": "YulIdentifier", - "src": "10730:12:62" - }, - "nativeSrc": "10730:23:62", - "nodeType": "YulFunctionCall", - "src": "10730:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "10721:5:62", - "nodeType": "YulTypedName", - "src": "10721:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "10786:5:62", - "nodeType": "YulIdentifier", - "src": "10786:5:62" - } - ], - "functionName": { - "name": "validator_revert_uint64", - "nativeSrc": "10762:23:62", - "nodeType": "YulIdentifier", - "src": "10762:23:62" - }, - "nativeSrc": "10762:30:62", - "nodeType": "YulFunctionCall", - "src": "10762:30:62" - }, - "nativeSrc": "10762:30:62", - "nodeType": "YulExpressionStatement", - "src": "10762:30:62" - }, - { - "nativeSrc": "10801:15:62", - "nodeType": "YulAssignment", - "src": "10801:15:62", - "value": { - "name": "value", - "nativeSrc": "10811:5:62", - "nodeType": "YulIdentifier", - "src": "10811:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "10801:6:62", - "nodeType": "YulIdentifier", - "src": "10801:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint64", - "nativeSrc": "10577:245:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10612:9:62", - "nodeType": "YulTypedName", - "src": "10612:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "10623:7:62", - "nodeType": "YulTypedName", - "src": "10623:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "10635:6:62", - "nodeType": "YulTypedName", - "src": "10635:6:62", - "type": "" - } - ], - "src": "10577:245:62" - }, - { - "body": { - "nativeSrc": "10945:99:62", - "nodeType": "YulBlock", - "src": "10945:99:62", - "statements": [ - { - "nativeSrc": "10955:26:62", - "nodeType": "YulAssignment", - "src": "10955:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10967:9:62", - "nodeType": "YulIdentifier", - "src": "10967:9:62" - }, - { - "kind": "number", - "nativeSrc": "10978:2:62", - "nodeType": "YulLiteral", - "src": "10978:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10963:3:62", - "nodeType": "YulIdentifier", - "src": "10963:3:62" - }, - "nativeSrc": "10963:18:62", - "nodeType": "YulFunctionCall", - "src": "10963:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "10955:4:62", - "nodeType": "YulIdentifier", - "src": "10955:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "11020:6:62", - "nodeType": "YulIdentifier", - "src": "11020:6:62" - }, - { - "name": "headStart", - "nativeSrc": "11028:9:62", - "nodeType": "YulIdentifier", - "src": "11028:9:62" - } - ], - "functionName": { - "name": "abi_encode_enum_DisputeStatus", - "nativeSrc": "10990:29:62", - "nodeType": "YulIdentifier", - "src": "10990:29:62" - }, - "nativeSrc": "10990:48:62", - "nodeType": "YulFunctionCall", - "src": "10990:48:62" - }, - "nativeSrc": "10990:48:62", - "nodeType": "YulExpressionStatement", - "src": "10990:48:62" - } - ] - }, - "name": "abi_encode_tuple_t_enum$_DisputeStatus_$10718__to_t_uint8__fromStack_reversed", - "nativeSrc": "10827:217:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10914:9:62", - "nodeType": "YulTypedName", - "src": "10914:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "10925:6:62", - "nodeType": "YulTypedName", - "src": "10925:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "10936:4:62", - "nodeType": "YulTypedName", - "src": "10936:4:62", - "type": "" - } - ], - "src": "10827:217:62" - }, - { - "body": { - "nativeSrc": "11081:95:62", - "nodeType": "YulBlock", - "src": "11081:95:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11098:1:62", - "nodeType": "YulLiteral", - "src": "11098:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11105:3:62", - "nodeType": "YulLiteral", - "src": "11105:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "11110:10:62", - "nodeType": "YulLiteral", - "src": "11110:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "11101:3:62", - "nodeType": "YulIdentifier", - "src": "11101:3:62" - }, - "nativeSrc": "11101:20:62", - "nodeType": "YulFunctionCall", - "src": "11101:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11091:6:62", - "nodeType": "YulIdentifier", - "src": "11091:6:62" - }, - "nativeSrc": "11091:31:62", - "nodeType": "YulFunctionCall", - "src": "11091:31:62" - }, - "nativeSrc": "11091:31:62", - "nodeType": "YulExpressionStatement", - "src": "11091:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11138:1:62", - "nodeType": "YulLiteral", - "src": "11138:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "11141:4:62", - "nodeType": "YulLiteral", - "src": "11141:4:62", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11131:6:62", - "nodeType": "YulIdentifier", - "src": "11131:6:62" - }, - "nativeSrc": "11131:15:62", - "nodeType": "YulFunctionCall", - "src": "11131:15:62" - }, - "nativeSrc": "11131:15:62", - "nodeType": "YulExpressionStatement", - "src": "11131:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11162:1:62", - "nodeType": "YulLiteral", - "src": "11162:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "11165:4:62", - "nodeType": "YulLiteral", - "src": "11165:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "11155:6:62", - "nodeType": "YulIdentifier", - "src": "11155:6:62" - }, - "nativeSrc": "11155:15:62", - "nodeType": "YulFunctionCall", - "src": "11155:15:62" - }, - "nativeSrc": "11155:15:62", - "nodeType": "YulExpressionStatement", - "src": "11155:15:62" - } - ] - }, - "name": "panic_error_0x11", - "nativeSrc": "11049:127:62", - "nodeType": "YulFunctionDefinition", - "src": "11049:127:62" - }, - { - "body": { - "nativeSrc": "11229:77:62", - "nodeType": "YulBlock", - "src": "11229:77:62", - "statements": [ - { - "nativeSrc": "11239:16:62", - "nodeType": "YulAssignment", - "src": "11239:16:62", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "11250:1:62", - "nodeType": "YulIdentifier", - "src": "11250:1:62" - }, - { - "name": "y", - "nativeSrc": "11253:1:62", - "nodeType": "YulIdentifier", - "src": "11253:1:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11246:3:62", - "nodeType": "YulIdentifier", - "src": "11246:3:62" - }, - "nativeSrc": "11246:9:62", - "nodeType": "YulFunctionCall", - "src": "11246:9:62" - }, - "variableNames": [ - { - "name": "sum", - "nativeSrc": "11239:3:62", - "nodeType": "YulIdentifier", - "src": "11239:3:62" - } - ] - }, - { - "body": { - "nativeSrc": "11278:22:62", - "nodeType": "YulBlock", - "src": "11278:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "11280:16:62", - "nodeType": "YulIdentifier", - "src": "11280:16:62" - }, - "nativeSrc": "11280:18:62", - "nodeType": "YulFunctionCall", - "src": "11280:18:62" - }, - "nativeSrc": "11280:18:62", - "nodeType": "YulExpressionStatement", - "src": "11280:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "x", - "nativeSrc": "11270:1:62", - "nodeType": "YulIdentifier", - "src": "11270:1:62" - }, - { - "name": "sum", - "nativeSrc": "11273:3:62", - "nodeType": "YulIdentifier", - "src": "11273:3:62" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "11267:2:62", - "nodeType": "YulIdentifier", - "src": "11267:2:62" - }, - "nativeSrc": "11267:10:62", - "nodeType": "YulFunctionCall", - "src": "11267:10:62" - }, - "nativeSrc": "11264:36:62", - "nodeType": "YulIf", - "src": "11264:36:62" - } - ] - }, - "name": "checked_add_t_uint256", - "nativeSrc": "11181:125:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "11212:1:62", - "nodeType": "YulTypedName", - "src": "11212:1:62", - "type": "" - }, - { - "name": "y", - "nativeSrc": "11215:1:62", - "nodeType": "YulTypedName", - "src": "11215:1:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nativeSrc": "11221:3:62", - "nodeType": "YulTypedName", - "src": "11221:3:62", - "type": "" - } - ], - "src": "11181:125:62" - }, - { - "body": { - "nativeSrc": "11419:101:62", - "nodeType": "YulBlock", - "src": "11419:101:62", - "statements": [ - { - "nativeSrc": "11429:26:62", - "nodeType": "YulAssignment", - "src": "11429:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11441:9:62", - "nodeType": "YulIdentifier", - "src": "11441:9:62" - }, - { - "kind": "number", - "nativeSrc": "11452:2:62", - "nodeType": "YulLiteral", - "src": "11452:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11437:3:62", - "nodeType": "YulIdentifier", - "src": "11437:3:62" - }, - "nativeSrc": "11437:18:62", - "nodeType": "YulFunctionCall", - "src": "11437:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "11429:4:62", - "nodeType": "YulIdentifier", - "src": "11429:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11471:9:62", - "nodeType": "YulIdentifier", - "src": "11471:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "11486:6:62", - "nodeType": "YulIdentifier", - "src": "11486:6:62" - }, - { - "kind": "number", - "nativeSrc": "11494:18:62", - "nodeType": "YulLiteral", - "src": "11494:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "11482:3:62", - "nodeType": "YulIdentifier", - "src": "11482:3:62" - }, - "nativeSrc": "11482:31:62", - "nodeType": "YulFunctionCall", - "src": "11482:31:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11464:6:62", - "nodeType": "YulIdentifier", - "src": "11464:6:62" - }, - "nativeSrc": "11464:50:62", - "nodeType": "YulFunctionCall", - "src": "11464:50:62" - }, - "nativeSrc": "11464:50:62", - "nodeType": "YulExpressionStatement", - "src": "11464:50:62" - } - ] - }, - "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", - "nativeSrc": "11311:209:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "11388:9:62", - "nodeType": "YulTypedName", - "src": "11388:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "11399:6:62", - "nodeType": "YulTypedName", - "src": "11399:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "11410:4:62", - "nodeType": "YulTypedName", - "src": "11410:4:62", - "type": "" - } - ], - "src": "11311:209:62" - }, - { - "body": { - "nativeSrc": "11654:171:62", - "nodeType": "YulBlock", - "src": "11654:171:62", - "statements": [ - { - "nativeSrc": "11664:26:62", - "nodeType": "YulAssignment", - "src": "11664:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11676:9:62", - "nodeType": "YulIdentifier", - "src": "11676:9:62" - }, - { - "kind": "number", - "nativeSrc": "11687:2:62", - "nodeType": "YulLiteral", - "src": "11687:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11672:3:62", - "nodeType": "YulIdentifier", - "src": "11672:3:62" - }, - "nativeSrc": "11672:18:62", - "nodeType": "YulFunctionCall", - "src": "11672:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "11664:4:62", - "nodeType": "YulIdentifier", - "src": "11664:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11706:9:62", - "nodeType": "YulIdentifier", - "src": "11706:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "11721:6:62", - "nodeType": "YulIdentifier", - "src": "11721:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11737:3:62", - "nodeType": "YulLiteral", - "src": "11737:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "11742:1:62", - "nodeType": "YulLiteral", - "src": "11742:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "11733:3:62", - "nodeType": "YulIdentifier", - "src": "11733:3:62" - }, - "nativeSrc": "11733:11:62", - "nodeType": "YulFunctionCall", - "src": "11733:11:62" - }, - { - "kind": "number", - "nativeSrc": "11746:1:62", - "nodeType": "YulLiteral", - "src": "11746:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "11729:3:62", - "nodeType": "YulIdentifier", - "src": "11729:3:62" - }, - "nativeSrc": "11729:19:62", - "nodeType": "YulFunctionCall", - "src": "11729:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "11717:3:62", - "nodeType": "YulIdentifier", - "src": "11717:3:62" - }, - "nativeSrc": "11717:32:62", - "nodeType": "YulFunctionCall", - "src": "11717:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11699:6:62", - "nodeType": "YulIdentifier", - "src": "11699:6:62" - }, - "nativeSrc": "11699:51:62", - "nodeType": "YulFunctionCall", - "src": "11699:51:62" - }, - "nativeSrc": "11699:51:62", - "nodeType": "YulExpressionStatement", - "src": "11699:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11770:9:62", - "nodeType": "YulIdentifier", - "src": "11770:9:62" - }, - { - "kind": "number", - "nativeSrc": "11781:2:62", - "nodeType": "YulLiteral", - "src": "11781:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11766:3:62", - "nodeType": "YulIdentifier", - "src": "11766:3:62" - }, - "nativeSrc": "11766:18:62", - "nodeType": "YulFunctionCall", - "src": "11766:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "11790:6:62", - "nodeType": "YulIdentifier", - "src": "11790:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11806:3:62", - "nodeType": "YulLiteral", - "src": "11806:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "11811:1:62", - "nodeType": "YulLiteral", - "src": "11811:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "11802:3:62", - "nodeType": "YulIdentifier", - "src": "11802:3:62" - }, - "nativeSrc": "11802:11:62", - "nodeType": "YulFunctionCall", - "src": "11802:11:62" - }, - { - "kind": "number", - "nativeSrc": "11815:1:62", - "nodeType": "YulLiteral", - "src": "11815:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "11798:3:62", - "nodeType": "YulIdentifier", - "src": "11798:3:62" - }, - "nativeSrc": "11798:19:62", - "nodeType": "YulFunctionCall", - "src": "11798:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "11786:3:62", - "nodeType": "YulIdentifier", - "src": "11786:3:62" - }, - "nativeSrc": "11786:32:62", - "nodeType": "YulFunctionCall", - "src": "11786:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11759:6:62", - "nodeType": "YulIdentifier", - "src": "11759:6:62" - }, - "nativeSrc": "11759:60:62", - "nodeType": "YulFunctionCall", - "src": "11759:60:62" - }, - "nativeSrc": "11759:60:62", - "nodeType": "YulExpressionStatement", - "src": "11759:60:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", - "nativeSrc": "11525:300:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "11615:9:62", - "nodeType": "YulTypedName", - "src": "11615:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "11626:6:62", - "nodeType": "YulTypedName", - "src": "11626:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "11634:6:62", - "nodeType": "YulTypedName", - "src": "11634:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "11645:4:62", - "nodeType": "YulTypedName", - "src": "11645:4:62", - "type": "" - } - ], - "src": "11525:300:62" - }, - { - "body": { - "nativeSrc": "11889:77:62", - "nodeType": "YulBlock", - "src": "11889:77:62", - "statements": [ - { - "nativeSrc": "11899:22:62", - "nodeType": "YulAssignment", - "src": "11899:22:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "11914:6:62", - "nodeType": "YulIdentifier", - "src": "11914:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "11908:5:62", - "nodeType": "YulIdentifier", - "src": "11908:5:62" - }, - "nativeSrc": "11908:13:62", - "nodeType": "YulFunctionCall", - "src": "11908:13:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "11899:5:62", - "nodeType": "YulIdentifier", - "src": "11899:5:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "11954:5:62", - "nodeType": "YulIdentifier", - "src": "11954:5:62" - } - ], - "functionName": { - "name": "validator_revert_uint32", - "nativeSrc": "11930:23:62", - "nodeType": "YulIdentifier", - "src": "11930:23:62" - }, - "nativeSrc": "11930:30:62", - "nodeType": "YulFunctionCall", - "src": "11930:30:62" - }, - "nativeSrc": "11930:30:62", - "nodeType": "YulExpressionStatement", - "src": "11930:30:62" - } - ] - }, - "name": "abi_decode_uint32_fromMemory", - "nativeSrc": "11830:136:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "11868:6:62", - "nodeType": "YulTypedName", - "src": "11868:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "11879:5:62", - "nodeType": "YulTypedName", - "src": "11879:5:62", - "type": "" - } - ], - "src": "11830:136:62" - }, - { - "body": { - "nativeSrc": "12030:77:62", - "nodeType": "YulBlock", - "src": "12030:77:62", - "statements": [ - { - "nativeSrc": "12040:22:62", - "nodeType": "YulAssignment", - "src": "12040:22:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "12055:6:62", - "nodeType": "YulIdentifier", - "src": "12055:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "12049:5:62", - "nodeType": "YulIdentifier", - "src": "12049:5:62" - }, - "nativeSrc": "12049:13:62", - "nodeType": "YulFunctionCall", - "src": "12049:13:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "12040:5:62", - "nodeType": "YulIdentifier", - "src": "12040:5:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "12095:5:62", - "nodeType": "YulIdentifier", - "src": "12095:5:62" - } - ], - "functionName": { - "name": "validator_revert_uint64", - "nativeSrc": "12071:23:62", - "nodeType": "YulIdentifier", - "src": "12071:23:62" - }, - "nativeSrc": "12071:30:62", - "nodeType": "YulFunctionCall", - "src": "12071:30:62" - }, - "nativeSrc": "12071:30:62", - "nodeType": "YulExpressionStatement", - "src": "12071:30:62" - } - ] - }, - "name": "abi_decode_uint64_fromMemory", - "nativeSrc": "11971:136:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "12009:6:62", - "nodeType": "YulTypedName", - "src": "12009:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "12020:5:62", - "nodeType": "YulTypedName", - "src": "12020:5:62", - "type": "" - } - ], - "src": "11971:136:62" - }, - { - "body": { - "nativeSrc": "12220:1010:62", - "nodeType": "YulBlock", - "src": "12220:1010:62", - "statements": [ - { - "nativeSrc": "12230:43:62", - "nodeType": "YulVariableDeclaration", - "src": "12230:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "12248:7:62", - "nodeType": "YulIdentifier", - "src": "12248:7:62" - }, - { - "name": "headStart", - "nativeSrc": "12257:9:62", - "nodeType": "YulIdentifier", - "src": "12257:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "12244:3:62", - "nodeType": "YulIdentifier", - "src": "12244:3:62" - }, - "nativeSrc": "12244:23:62", - "nodeType": "YulFunctionCall", - "src": "12244:23:62" - }, - { - "kind": "number", - "nativeSrc": "12269:3:62", - "nodeType": "YulLiteral", - "src": "12269:3:62", - "type": "", - "value": "288" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "12240:3:62", - "nodeType": "YulIdentifier", - "src": "12240:3:62" - }, - "nativeSrc": "12240:33:62", - "nodeType": "YulFunctionCall", - "src": "12240:33:62" - }, - "variables": [ - { - "name": "_1", - "nativeSrc": "12234:2:62", - "nodeType": "YulTypedName", - "src": "12234:2:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "12288:16:62", - "nodeType": "YulBlock", - "src": "12288:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "12297:1:62", - "nodeType": "YulLiteral", - "src": "12297:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "12300:1:62", - "nodeType": "YulLiteral", - "src": "12300:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "12290:6:62", - "nodeType": "YulIdentifier", - "src": "12290:6:62" - }, - "nativeSrc": "12290:12:62", - "nodeType": "YulFunctionCall", - "src": "12290:12:62" - }, - "nativeSrc": "12290:12:62", - "nodeType": "YulExpressionStatement", - "src": "12290:12:62" - } - ] - }, - "condition": { - "name": "_1", - "nativeSrc": "12285:2:62", - "nodeType": "YulIdentifier", - "src": "12285:2:62" - }, - "nativeSrc": "12282:22:62", - "nodeType": "YulIf", - "src": "12282:22:62" - }, - { - "nativeSrc": "12313:7:62", - "nodeType": "YulAssignment", - "src": "12313:7:62", - "value": { - "kind": "number", - "nativeSrc": "12319:1:62", - "nodeType": "YulLiteral", - "src": "12319:1:62", - "type": "", - "value": "0" - }, - "variableNames": [ - { - "name": "_1", - "nativeSrc": "12313:2:62", - "nodeType": "YulIdentifier", - "src": "12313:2:62" - } - ] - }, - { - "nativeSrc": "12329:30:62", - "nodeType": "YulVariableDeclaration", - "src": "12329:30:62", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "12342:15:62", - "nodeType": "YulIdentifier", - "src": "12342:15:62" - }, - "nativeSrc": "12342:17:62", - "nodeType": "YulFunctionCall", - "src": "12342:17:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "12333:5:62", - "nodeType": "YulTypedName", - "src": "12333:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "12368:17:62", - "nodeType": "YulVariableDeclaration", - "src": "12368:17:62", - "value": { - "name": "_1", - "nativeSrc": "12383:2:62", - "nodeType": "YulIdentifier", - "src": "12383:2:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "12372:7:62", - "nodeType": "YulTypedName", - "src": "12372:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "12394:27:62", - "nodeType": "YulAssignment", - "src": "12394:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12411:9:62", - "nodeType": "YulIdentifier", - "src": "12411:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "12405:5:62", - "nodeType": "YulIdentifier", - "src": "12405:5:62" - }, - "nativeSrc": "12405:16:62", - "nodeType": "YulFunctionCall", - "src": "12405:16:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "12394:7:62", - "nodeType": "YulIdentifier", - "src": "12394:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "12437:5:62", - "nodeType": "YulIdentifier", - "src": "12437:5:62" - }, - { - "name": "value_1", - "nativeSrc": "12444:7:62", - "nodeType": "YulIdentifier", - "src": "12444:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12430:6:62", - "nodeType": "YulIdentifier", - "src": "12430:6:62" - }, - "nativeSrc": "12430:22:62", - "nodeType": "YulFunctionCall", - "src": "12430:22:62" - }, - "nativeSrc": "12430:22:62", - "nodeType": "YulExpressionStatement", - "src": "12430:22:62" - }, - { - "nativeSrc": "12461:17:62", - "nodeType": "YulVariableDeclaration", - "src": "12461:17:62", - "value": { - "name": "_1", - "nativeSrc": "12476:2:62", - "nodeType": "YulIdentifier", - "src": "12476:2:62" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "12465:7:62", - "nodeType": "YulTypedName", - "src": "12465:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "12487:36:62", - "nodeType": "YulAssignment", - "src": "12487:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12508:9:62", - "nodeType": "YulIdentifier", - "src": "12508:9:62" - }, - { - "kind": "number", - "nativeSrc": "12519:2:62", - "nodeType": "YulLiteral", - "src": "12519:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12504:3:62", - "nodeType": "YulIdentifier", - "src": "12504:3:62" - }, - "nativeSrc": "12504:18:62", - "nodeType": "YulFunctionCall", - "src": "12504:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "12498:5:62", - "nodeType": "YulIdentifier", - "src": "12498:5:62" - }, - "nativeSrc": "12498:25:62", - "nodeType": "YulFunctionCall", - "src": "12498:25:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "12487:7:62", - "nodeType": "YulIdentifier", - "src": "12487:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "12543:5:62", - "nodeType": "YulIdentifier", - "src": "12543:5:62" - }, - { - "kind": "number", - "nativeSrc": "12550:2:62", - "nodeType": "YulLiteral", - "src": "12550:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12539:3:62", - "nodeType": "YulIdentifier", - "src": "12539:3:62" - }, - "nativeSrc": "12539:14:62", - "nodeType": "YulFunctionCall", - "src": "12539:14:62" - }, - { - "name": "value_2", - "nativeSrc": "12555:7:62", - "nodeType": "YulIdentifier", - "src": "12555:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12532:6:62", - "nodeType": "YulIdentifier", - "src": "12532:6:62" - }, - "nativeSrc": "12532:31:62", - "nodeType": "YulFunctionCall", - "src": "12532:31:62" - }, - "nativeSrc": "12532:31:62", - "nodeType": "YulExpressionStatement", - "src": "12532:31:62" - }, - { - "nativeSrc": "12572:17:62", - "nodeType": "YulVariableDeclaration", - "src": "12572:17:62", - "value": { - "name": "_1", - "nativeSrc": "12587:2:62", - "nodeType": "YulIdentifier", - "src": "12587:2:62" - }, - "variables": [ - { - "name": "value_3", - "nativeSrc": "12576:7:62", - "nodeType": "YulTypedName", - "src": "12576:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "12598:36:62", - "nodeType": "YulAssignment", - "src": "12598:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12619:9:62", - "nodeType": "YulIdentifier", - "src": "12619:9:62" - }, - { - "kind": "number", - "nativeSrc": "12630:2:62", - "nodeType": "YulLiteral", - "src": "12630:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12615:3:62", - "nodeType": "YulIdentifier", - "src": "12615:3:62" - }, - "nativeSrc": "12615:18:62", - "nodeType": "YulFunctionCall", - "src": "12615:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "12609:5:62", - "nodeType": "YulIdentifier", - "src": "12609:5:62" - }, - "nativeSrc": "12609:25:62", - "nodeType": "YulFunctionCall", - "src": "12609:25:62" - }, - "variableNames": [ - { - "name": "value_3", - "nativeSrc": "12598:7:62", - "nodeType": "YulIdentifier", - "src": "12598:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "12654:5:62", - "nodeType": "YulIdentifier", - "src": "12654:5:62" - }, - { - "kind": "number", - "nativeSrc": "12661:2:62", - "nodeType": "YulLiteral", - "src": "12661:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12650:3:62", - "nodeType": "YulIdentifier", - "src": "12650:3:62" - }, - "nativeSrc": "12650:14:62", - "nodeType": "YulFunctionCall", - "src": "12650:14:62" - }, - { - "name": "value_3", - "nativeSrc": "12666:7:62", - "nodeType": "YulIdentifier", - "src": "12666:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12643:6:62", - "nodeType": "YulIdentifier", - "src": "12643:6:62" - }, - "nativeSrc": "12643:31:62", - "nodeType": "YulFunctionCall", - "src": "12643:31:62" - }, - "nativeSrc": "12643:31:62", - "nodeType": "YulExpressionStatement", - "src": "12643:31:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "12694:5:62", - "nodeType": "YulIdentifier", - "src": "12694:5:62" - }, - { - "kind": "number", - "nativeSrc": "12701:2:62", - "nodeType": "YulLiteral", - "src": "12701:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12690:3:62", - "nodeType": "YulIdentifier", - "src": "12690:3:62" - }, - "nativeSrc": "12690:14:62", - "nodeType": "YulFunctionCall", - "src": "12690:14:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12739:9:62", - "nodeType": "YulIdentifier", - "src": "12739:9:62" - }, - { - "kind": "number", - "nativeSrc": "12750:2:62", - "nodeType": "YulLiteral", - "src": "12750:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12735:3:62", - "nodeType": "YulIdentifier", - "src": "12735:3:62" - }, - "nativeSrc": "12735:18:62", - "nodeType": "YulFunctionCall", - "src": "12735:18:62" - } - ], - "functionName": { - "name": "abi_decode_uint32_fromMemory", - "nativeSrc": "12706:28:62", - "nodeType": "YulIdentifier", - "src": "12706:28:62" - }, - "nativeSrc": "12706:48:62", - "nodeType": "YulFunctionCall", - "src": "12706:48:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12683:6:62", - "nodeType": "YulIdentifier", - "src": "12683:6:62" - }, - "nativeSrc": "12683:72:62", - "nodeType": "YulFunctionCall", - "src": "12683:72:62" - }, - "nativeSrc": "12683:72:62", - "nodeType": "YulExpressionStatement", - "src": "12683:72:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "12775:5:62", - "nodeType": "YulIdentifier", - "src": "12775:5:62" - }, - { - "kind": "number", - "nativeSrc": "12782:3:62", - "nodeType": "YulLiteral", - "src": "12782:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12771:3:62", - "nodeType": "YulIdentifier", - "src": "12771:3:62" - }, - "nativeSrc": "12771:15:62", - "nodeType": "YulFunctionCall", - "src": "12771:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12821:9:62", - "nodeType": "YulIdentifier", - "src": "12821:9:62" - }, - { - "kind": "number", - "nativeSrc": "12832:3:62", - "nodeType": "YulLiteral", - "src": "12832:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12817:3:62", - "nodeType": "YulIdentifier", - "src": "12817:3:62" - }, - "nativeSrc": "12817:19:62", - "nodeType": "YulFunctionCall", - "src": "12817:19:62" - } - ], - "functionName": { - "name": "abi_decode_uint64_fromMemory", - "nativeSrc": "12788:28:62", - "nodeType": "YulIdentifier", - "src": "12788:28:62" - }, - "nativeSrc": "12788:49:62", - "nodeType": "YulFunctionCall", - "src": "12788:49:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12764:6:62", - "nodeType": "YulIdentifier", - "src": "12764:6:62" - }, - "nativeSrc": "12764:74:62", - "nodeType": "YulFunctionCall", - "src": "12764:74:62" - }, - "nativeSrc": "12764:74:62", - "nodeType": "YulExpressionStatement", - "src": "12764:74:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "12858:5:62", - "nodeType": "YulIdentifier", - "src": "12858:5:62" - }, - { - "kind": "number", - "nativeSrc": "12865:3:62", - "nodeType": "YulLiteral", - "src": "12865:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12854:3:62", - "nodeType": "YulIdentifier", - "src": "12854:3:62" - }, - "nativeSrc": "12854:15:62", - "nodeType": "YulFunctionCall", - "src": "12854:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12904:9:62", - "nodeType": "YulIdentifier", - "src": "12904:9:62" - }, - { - "kind": "number", - "nativeSrc": "12915:3:62", - "nodeType": "YulLiteral", - "src": "12915:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12900:3:62", - "nodeType": "YulIdentifier", - "src": "12900:3:62" - }, - "nativeSrc": "12900:19:62", - "nodeType": "YulFunctionCall", - "src": "12900:19:62" - } - ], - "functionName": { - "name": "abi_decode_uint64_fromMemory", - "nativeSrc": "12871:28:62", - "nodeType": "YulIdentifier", - "src": "12871:28:62" - }, - "nativeSrc": "12871:49:62", - "nodeType": "YulFunctionCall", - "src": "12871:49:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12847:6:62", - "nodeType": "YulIdentifier", - "src": "12847:6:62" - }, - "nativeSrc": "12847:74:62", - "nodeType": "YulFunctionCall", - "src": "12847:74:62" - }, - "nativeSrc": "12847:74:62", - "nodeType": "YulExpressionStatement", - "src": "12847:74:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "12941:5:62", - "nodeType": "YulIdentifier", - "src": "12941:5:62" - }, - { - "kind": "number", - "nativeSrc": "12948:3:62", - "nodeType": "YulLiteral", - "src": "12948:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12937:3:62", - "nodeType": "YulIdentifier", - "src": "12937:3:62" - }, - "nativeSrc": "12937:15:62", - "nodeType": "YulFunctionCall", - "src": "12937:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12987:9:62", - "nodeType": "YulIdentifier", - "src": "12987:9:62" - }, - { - "kind": "number", - "nativeSrc": "12998:3:62", - "nodeType": "YulLiteral", - "src": "12998:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12983:3:62", - "nodeType": "YulIdentifier", - "src": "12983:3:62" - }, - "nativeSrc": "12983:19:62", - "nodeType": "YulFunctionCall", - "src": "12983:19:62" - } - ], - "functionName": { - "name": "abi_decode_uint32_fromMemory", - "nativeSrc": "12954:28:62", - "nodeType": "YulIdentifier", - "src": "12954:28:62" - }, - "nativeSrc": "12954:49:62", - "nodeType": "YulFunctionCall", - "src": "12954:49:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12930:6:62", - "nodeType": "YulIdentifier", - "src": "12930:6:62" - }, - "nativeSrc": "12930:74:62", - "nodeType": "YulFunctionCall", - "src": "12930:74:62" - }, - "nativeSrc": "12930:74:62", - "nodeType": "YulExpressionStatement", - "src": "12930:74:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "13024:5:62", - "nodeType": "YulIdentifier", - "src": "13024:5:62" - }, - { - "kind": "number", - "nativeSrc": "13031:3:62", - "nodeType": "YulLiteral", - "src": "13031:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13020:3:62", - "nodeType": "YulIdentifier", - "src": "13020:3:62" - }, - "nativeSrc": "13020:15:62", - "nodeType": "YulFunctionCall", - "src": "13020:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13070:9:62", - "nodeType": "YulIdentifier", - "src": "13070:9:62" - }, - { - "kind": "number", - "nativeSrc": "13081:3:62", - "nodeType": "YulLiteral", - "src": "13081:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13066:3:62", - "nodeType": "YulIdentifier", - "src": "13066:3:62" - }, - "nativeSrc": "13066:19:62", - "nodeType": "YulFunctionCall", - "src": "13066:19:62" - } - ], - "functionName": { - "name": "abi_decode_uint64_fromMemory", - "nativeSrc": "13037:28:62", - "nodeType": "YulIdentifier", - "src": "13037:28:62" - }, - "nativeSrc": "13037:49:62", - "nodeType": "YulFunctionCall", - "src": "13037:49:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "13013:6:62", - "nodeType": "YulIdentifier", - "src": "13013:6:62" - }, - "nativeSrc": "13013:74:62", - "nodeType": "YulFunctionCall", - "src": "13013:74:62" - }, - "nativeSrc": "13013:74:62", - "nodeType": "YulExpressionStatement", - "src": "13013:74:62" - }, - { - "nativeSrc": "13096:17:62", - "nodeType": "YulVariableDeclaration", - "src": "13096:17:62", - "value": { - "name": "_1", - "nativeSrc": "13111:2:62", - "nodeType": "YulIdentifier", - "src": "13111:2:62" - }, - "variables": [ - { - "name": "value_4", - "nativeSrc": "13100:7:62", - "nodeType": "YulTypedName", - "src": "13100:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "13122:37:62", - "nodeType": "YulAssignment", - "src": "13122:37:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13143:9:62", - "nodeType": "YulIdentifier", - "src": "13143:9:62" - }, - { - "kind": "number", - "nativeSrc": "13154:3:62", - "nodeType": "YulLiteral", - "src": "13154:3:62", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13139:3:62", - "nodeType": "YulIdentifier", - "src": "13139:3:62" - }, - "nativeSrc": "13139:19:62", - "nodeType": "YulFunctionCall", - "src": "13139:19:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "13133:5:62", - "nodeType": "YulIdentifier", - "src": "13133:5:62" - }, - "nativeSrc": "13133:26:62", - "nodeType": "YulFunctionCall", - "src": "13133:26:62" - }, - "variableNames": [ - { - "name": "value_4", - "nativeSrc": "13122:7:62", - "nodeType": "YulIdentifier", - "src": "13122:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "13179:5:62", - "nodeType": "YulIdentifier", - "src": "13179:5:62" - }, - { - "kind": "number", - "nativeSrc": "13186:3:62", - "nodeType": "YulLiteral", - "src": "13186:3:62", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13175:3:62", - "nodeType": "YulIdentifier", - "src": "13175:3:62" - }, - "nativeSrc": "13175:15:62", - "nodeType": "YulFunctionCall", - "src": "13175:15:62" - }, - { - "name": "value_4", - "nativeSrc": "13192:7:62", - "nodeType": "YulIdentifier", - "src": "13192:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "13168:6:62", - "nodeType": "YulIdentifier", - "src": "13168:6:62" - }, - "nativeSrc": "13168:32:62", - "nodeType": "YulFunctionCall", - "src": "13168:32:62" - }, - "nativeSrc": "13168:32:62", - "nodeType": "YulExpressionStatement", - "src": "13168:32:62" - }, - { - "nativeSrc": "13209:15:62", - "nodeType": "YulAssignment", - "src": "13209:15:62", - "value": { - "name": "value", - "nativeSrc": "13219:5:62", - "nodeType": "YulIdentifier", - "src": "13219:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "13209:6:62", - "nodeType": "YulIdentifier", - "src": "13209:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_struct$_Provision_$3718_memory_ptr_fromMemory", - "nativeSrc": "12112:1118:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "12186:9:62", - "nodeType": "YulTypedName", - "src": "12186:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "12197:7:62", - "nodeType": "YulTypedName", - "src": "12197:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "12209:6:62", - "nodeType": "YulTypedName", - "src": "12209:6:62", - "type": "" - } - ], - "src": "12112:1118:62" - }, - { - "body": { - "nativeSrc": "13476:294:62", - "nodeType": "YulBlock", - "src": "13476:294:62", - "statements": [ - { - "nativeSrc": "13486:27:62", - "nodeType": "YulAssignment", - "src": "13486:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13498:9:62", - "nodeType": "YulIdentifier", - "src": "13498:9:62" - }, - { - "kind": "number", - "nativeSrc": "13509:3:62", - "nodeType": "YulLiteral", - "src": "13509:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13494:3:62", - "nodeType": "YulIdentifier", - "src": "13494:3:62" - }, - "nativeSrc": "13494:19:62", - "nodeType": "YulFunctionCall", - "src": "13494:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "13486:4:62", - "nodeType": "YulIdentifier", - "src": "13486:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13529:9:62", - "nodeType": "YulIdentifier", - "src": "13529:9:62" - }, - { - "name": "value0", - "nativeSrc": "13540:6:62", - "nodeType": "YulIdentifier", - "src": "13540:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "13522:6:62", - "nodeType": "YulIdentifier", - "src": "13522:6:62" - }, - "nativeSrc": "13522:25:62", - "nodeType": "YulFunctionCall", - "src": "13522:25:62" - }, - "nativeSrc": "13522:25:62", - "nodeType": "YulExpressionStatement", - "src": "13522:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13567:9:62", - "nodeType": "YulIdentifier", - "src": "13567:9:62" - }, - { - "kind": "number", - "nativeSrc": "13578:2:62", - "nodeType": "YulLiteral", - "src": "13578:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13563:3:62", - "nodeType": "YulIdentifier", - "src": "13563:3:62" - }, - "nativeSrc": "13563:18:62", - "nodeType": "YulFunctionCall", - "src": "13563:18:62" - }, - { - "name": "value1", - "nativeSrc": "13583:6:62", - "nodeType": "YulIdentifier", - "src": "13583:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "13556:6:62", - "nodeType": "YulIdentifier", - "src": "13556:6:62" - }, - "nativeSrc": "13556:34:62", - "nodeType": "YulFunctionCall", - "src": "13556:34:62" - }, - "nativeSrc": "13556:34:62", - "nodeType": "YulExpressionStatement", - "src": "13556:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13610:9:62", - "nodeType": "YulIdentifier", - "src": "13610:9:62" - }, - { - "kind": "number", - "nativeSrc": "13621:2:62", - "nodeType": "YulLiteral", - "src": "13621:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13606:3:62", - "nodeType": "YulIdentifier", - "src": "13606:3:62" - }, - "nativeSrc": "13606:18:62", - "nodeType": "YulFunctionCall", - "src": "13606:18:62" - }, - { - "name": "value2", - "nativeSrc": "13626:6:62", - "nodeType": "YulIdentifier", - "src": "13626:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "13599:6:62", - "nodeType": "YulIdentifier", - "src": "13599:6:62" - }, - "nativeSrc": "13599:34:62", - "nodeType": "YulFunctionCall", - "src": "13599:34:62" - }, - "nativeSrc": "13599:34:62", - "nodeType": "YulExpressionStatement", - "src": "13599:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13653:9:62", - "nodeType": "YulIdentifier", - "src": "13653:9:62" - }, - { - "kind": "number", - "nativeSrc": "13664:2:62", - "nodeType": "YulLiteral", - "src": "13664:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13649:3:62", - "nodeType": "YulIdentifier", - "src": "13649:3:62" - }, - "nativeSrc": "13649:18:62", - "nodeType": "YulFunctionCall", - "src": "13649:18:62" - }, - { - "name": "value3", - "nativeSrc": "13669:6:62", - "nodeType": "YulIdentifier", - "src": "13669:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "13642:6:62", - "nodeType": "YulIdentifier", - "src": "13642:6:62" - }, - "nativeSrc": "13642:34:62", - "nodeType": "YulFunctionCall", - "src": "13642:34:62" - }, - "nativeSrc": "13642:34:62", - "nodeType": "YulExpressionStatement", - "src": "13642:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13696:9:62", - "nodeType": "YulIdentifier", - "src": "13696:9:62" - }, - { - "kind": "number", - "nativeSrc": "13707:3:62", - "nodeType": "YulLiteral", - "src": "13707:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13692:3:62", - "nodeType": "YulIdentifier", - "src": "13692:3:62" - }, - "nativeSrc": "13692:19:62", - "nodeType": "YulFunctionCall", - "src": "13692:19:62" - }, - { - "name": "value4", - "nativeSrc": "13713:6:62", - "nodeType": "YulIdentifier", - "src": "13713:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "13685:6:62", - "nodeType": "YulIdentifier", - "src": "13685:6:62" - }, - "nativeSrc": "13685:35:62", - "nodeType": "YulFunctionCall", - "src": "13685:35:62" - }, - "nativeSrc": "13685:35:62", - "nodeType": "YulExpressionStatement", - "src": "13685:35:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13740:9:62", - "nodeType": "YulIdentifier", - "src": "13740:9:62" - }, - { - "kind": "number", - "nativeSrc": "13751:3:62", - "nodeType": "YulLiteral", - "src": "13751:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13736:3:62", - "nodeType": "YulIdentifier", - "src": "13736:3:62" - }, - "nativeSrc": "13736:19:62", - "nodeType": "YulFunctionCall", - "src": "13736:19:62" - }, - { - "name": "value5", - "nativeSrc": "13757:6:62", - "nodeType": "YulIdentifier", - "src": "13757:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "13729:6:62", - "nodeType": "YulIdentifier", - "src": "13729:6:62" - }, - "nativeSrc": "13729:35:62", - "nodeType": "YulFunctionCall", - "src": "13729:35:62" - }, - "nativeSrc": "13729:35:62", - "nodeType": "YulExpressionStatement", - "src": "13729:35:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed", - "nativeSrc": "13235:535:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "13405:9:62", - "nodeType": "YulTypedName", - "src": "13405:9:62", - "type": "" - }, - { - "name": "value5", - "nativeSrc": "13416:6:62", - "nodeType": "YulTypedName", - "src": "13416:6:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "13424:6:62", - "nodeType": "YulTypedName", - "src": "13424:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "13432:6:62", - "nodeType": "YulTypedName", - "src": "13432:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "13440:6:62", - "nodeType": "YulTypedName", - "src": "13440:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "13448:6:62", - "nodeType": "YulTypedName", - "src": "13448:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "13456:6:62", - "nodeType": "YulTypedName", - "src": "13456:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "13467:4:62", - "nodeType": "YulTypedName", - "src": "13467:4:62", - "type": "" - } - ], - "src": "13235:535:62" - }, - { - "body": { - "nativeSrc": "13880:1072:62", - "nodeType": "YulBlock", - "src": "13880:1072:62", - "statements": [ - { - "nativeSrc": "13890:43:62", - "nodeType": "YulVariableDeclaration", - "src": "13890:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "13908:7:62", - "nodeType": "YulIdentifier", - "src": "13908:7:62" - }, - { - "name": "headStart", - "nativeSrc": "13917:9:62", - "nodeType": "YulIdentifier", - "src": "13917:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "13904:3:62", - "nodeType": "YulIdentifier", - "src": "13904:3:62" - }, - "nativeSrc": "13904:23:62", - "nodeType": "YulFunctionCall", - "src": "13904:23:62" - }, - { - "kind": "number", - "nativeSrc": "13929:3:62", - "nodeType": "YulLiteral", - "src": "13929:3:62", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "13900:3:62", - "nodeType": "YulIdentifier", - "src": "13900:3:62" - }, - "nativeSrc": "13900:33:62", - "nodeType": "YulFunctionCall", - "src": "13900:33:62" - }, - "variables": [ - { - "name": "_1", - "nativeSrc": "13894:2:62", - "nodeType": "YulTypedName", - "src": "13894:2:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "13948:16:62", - "nodeType": "YulBlock", - "src": "13948:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "13957:1:62", - "nodeType": "YulLiteral", - "src": "13957:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "13960:1:62", - "nodeType": "YulLiteral", - "src": "13960:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "13950:6:62", - "nodeType": "YulIdentifier", - "src": "13950:6:62" - }, - "nativeSrc": "13950:12:62", - "nodeType": "YulFunctionCall", - "src": "13950:12:62" - }, - "nativeSrc": "13950:12:62", - "nodeType": "YulExpressionStatement", - "src": "13950:12:62" - } - ] - }, - "condition": { - "name": "_1", - "nativeSrc": "13945:2:62", - "nodeType": "YulIdentifier", - "src": "13945:2:62" - }, - "nativeSrc": "13942:22:62", - "nodeType": "YulIf", - "src": "13942:22:62" - }, - { - "nativeSrc": "13973:7:62", - "nodeType": "YulAssignment", - "src": "13973:7:62", - "value": { - "kind": "number", - "nativeSrc": "13979:1:62", - "nodeType": "YulLiteral", - "src": "13979:1:62", - "type": "", - "value": "0" - }, - "variableNames": [ - { - "name": "_1", - "nativeSrc": "13973:2:62", - "nodeType": "YulIdentifier", - "src": "13973:2:62" - } - ] - }, - { - "nativeSrc": "13989:35:62", - "nodeType": "YulVariableDeclaration", - "src": "13989:35:62", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_memory_2167", - "nativeSrc": "14002:20:62", - "nodeType": "YulIdentifier", - "src": "14002:20:62" - }, - "nativeSrc": "14002:22:62", - "nodeType": "YulFunctionCall", - "src": "14002:22:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "13993:5:62", - "nodeType": "YulTypedName", - "src": "13993:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "14033:31:62", - "nodeType": "YulVariableDeclaration", - "src": "14033:31:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14054:9:62", - "nodeType": "YulIdentifier", - "src": "14054:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "14048:5:62", - "nodeType": "YulIdentifier", - "src": "14048:5:62" - }, - "nativeSrc": "14048:16:62", - "nodeType": "YulFunctionCall", - "src": "14048:16:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "14037:7:62", - "nodeType": "YulTypedName", - "src": "14037:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "14098:7:62", - "nodeType": "YulIdentifier", - "src": "14098:7:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "14073:24:62", - "nodeType": "YulIdentifier", - "src": "14073:24:62" - }, - "nativeSrc": "14073:33:62", - "nodeType": "YulFunctionCall", - "src": "14073:33:62" - }, - "nativeSrc": "14073:33:62", - "nodeType": "YulExpressionStatement", - "src": "14073:33:62" - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "14122:5:62", - "nodeType": "YulIdentifier", - "src": "14122:5:62" - }, - { - "name": "value_1", - "nativeSrc": "14129:7:62", - "nodeType": "YulIdentifier", - "src": "14129:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14115:6:62", - "nodeType": "YulIdentifier", - "src": "14115:6:62" - }, - "nativeSrc": "14115:22:62", - "nodeType": "YulFunctionCall", - "src": "14115:22:62" - }, - "nativeSrc": "14115:22:62", - "nodeType": "YulExpressionStatement", - "src": "14115:22:62" - }, - { - "nativeSrc": "14146:17:62", - "nodeType": "YulVariableDeclaration", - "src": "14146:17:62", - "value": { - "name": "_1", - "nativeSrc": "14161:2:62", - "nodeType": "YulIdentifier", - "src": "14161:2:62" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "14150:7:62", - "nodeType": "YulTypedName", - "src": "14150:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "14172:36:62", - "nodeType": "YulAssignment", - "src": "14172:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14193:9:62", - "nodeType": "YulIdentifier", - "src": "14193:9:62" - }, - { - "kind": "number", - "nativeSrc": "14204:2:62", - "nodeType": "YulLiteral", - "src": "14204:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14189:3:62", - "nodeType": "YulIdentifier", - "src": "14189:3:62" - }, - "nativeSrc": "14189:18:62", - "nodeType": "YulFunctionCall", - "src": "14189:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "14183:5:62", - "nodeType": "YulIdentifier", - "src": "14183:5:62" - }, - "nativeSrc": "14183:25:62", - "nodeType": "YulFunctionCall", - "src": "14183:25:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "14172:7:62", - "nodeType": "YulIdentifier", - "src": "14172:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "14228:5:62", - "nodeType": "YulIdentifier", - "src": "14228:5:62" - }, - { - "kind": "number", - "nativeSrc": "14235:2:62", - "nodeType": "YulLiteral", - "src": "14235:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14224:3:62", - "nodeType": "YulIdentifier", - "src": "14224:3:62" - }, - "nativeSrc": "14224:14:62", - "nodeType": "YulFunctionCall", - "src": "14224:14:62" - }, - { - "name": "value_2", - "nativeSrc": "14240:7:62", - "nodeType": "YulIdentifier", - "src": "14240:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14217:6:62", - "nodeType": "YulIdentifier", - "src": "14217:6:62" - }, - "nativeSrc": "14217:31:62", - "nodeType": "YulFunctionCall", - "src": "14217:31:62" - }, - "nativeSrc": "14217:31:62", - "nodeType": "YulExpressionStatement", - "src": "14217:31:62" - }, - { - "nativeSrc": "14257:17:62", - "nodeType": "YulVariableDeclaration", - "src": "14257:17:62", - "value": { - "name": "_1", - "nativeSrc": "14272:2:62", - "nodeType": "YulIdentifier", - "src": "14272:2:62" - }, - "variables": [ - { - "name": "value_3", - "nativeSrc": "14261:7:62", - "nodeType": "YulTypedName", - "src": "14261:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "14283:36:62", - "nodeType": "YulAssignment", - "src": "14283:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14304:9:62", - "nodeType": "YulIdentifier", - "src": "14304:9:62" - }, - { - "kind": "number", - "nativeSrc": "14315:2:62", - "nodeType": "YulLiteral", - "src": "14315:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14300:3:62", - "nodeType": "YulIdentifier", - "src": "14300:3:62" - }, - "nativeSrc": "14300:18:62", - "nodeType": "YulFunctionCall", - "src": "14300:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "14294:5:62", - "nodeType": "YulIdentifier", - "src": "14294:5:62" - }, - "nativeSrc": "14294:25:62", - "nodeType": "YulFunctionCall", - "src": "14294:25:62" - }, - "variableNames": [ - { - "name": "value_3", - "nativeSrc": "14283:7:62", - "nodeType": "YulIdentifier", - "src": "14283:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "14339:5:62", - "nodeType": "YulIdentifier", - "src": "14339:5:62" - }, - { - "kind": "number", - "nativeSrc": "14346:2:62", - "nodeType": "YulLiteral", - "src": "14346:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14335:3:62", - "nodeType": "YulIdentifier", - "src": "14335:3:62" - }, - "nativeSrc": "14335:14:62", - "nodeType": "YulFunctionCall", - "src": "14335:14:62" - }, - { - "name": "value_3", - "nativeSrc": "14351:7:62", - "nodeType": "YulIdentifier", - "src": "14351:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14328:6:62", - "nodeType": "YulIdentifier", - "src": "14328:6:62" - }, - "nativeSrc": "14328:31:62", - "nodeType": "YulFunctionCall", - "src": "14328:31:62" - }, - "nativeSrc": "14328:31:62", - "nodeType": "YulExpressionStatement", - "src": "14328:31:62" - }, - { - "nativeSrc": "14368:17:62", - "nodeType": "YulVariableDeclaration", - "src": "14368:17:62", - "value": { - "name": "_1", - "nativeSrc": "14383:2:62", - "nodeType": "YulIdentifier", - "src": "14383:2:62" - }, - "variables": [ - { - "name": "value_4", - "nativeSrc": "14372:7:62", - "nodeType": "YulTypedName", - "src": "14372:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "14394:36:62", - "nodeType": "YulAssignment", - "src": "14394:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14415:9:62", - "nodeType": "YulIdentifier", - "src": "14415:9:62" - }, - { - "kind": "number", - "nativeSrc": "14426:2:62", - "nodeType": "YulLiteral", - "src": "14426:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14411:3:62", - "nodeType": "YulIdentifier", - "src": "14411:3:62" - }, - "nativeSrc": "14411:18:62", - "nodeType": "YulFunctionCall", - "src": "14411:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "14405:5:62", - "nodeType": "YulIdentifier", - "src": "14405:5:62" - }, - "nativeSrc": "14405:25:62", - "nodeType": "YulFunctionCall", - "src": "14405:25:62" - }, - "variableNames": [ - { - "name": "value_4", - "nativeSrc": "14394:7:62", - "nodeType": "YulIdentifier", - "src": "14394:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "14450:5:62", - "nodeType": "YulIdentifier", - "src": "14450:5:62" - }, - { - "kind": "number", - "nativeSrc": "14457:2:62", - "nodeType": "YulLiteral", - "src": "14457:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14446:3:62", - "nodeType": "YulIdentifier", - "src": "14446:3:62" - }, - "nativeSrc": "14446:14:62", - "nodeType": "YulFunctionCall", - "src": "14446:14:62" - }, - { - "name": "value_4", - "nativeSrc": "14462:7:62", - "nodeType": "YulIdentifier", - "src": "14462:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14439:6:62", - "nodeType": "YulIdentifier", - "src": "14439:6:62" - }, - "nativeSrc": "14439:31:62", - "nodeType": "YulFunctionCall", - "src": "14439:31:62" - }, - "nativeSrc": "14439:31:62", - "nodeType": "YulExpressionStatement", - "src": "14439:31:62" - }, - { - "nativeSrc": "14479:17:62", - "nodeType": "YulVariableDeclaration", - "src": "14479:17:62", - "value": { - "name": "_1", - "nativeSrc": "14494:2:62", - "nodeType": "YulIdentifier", - "src": "14494:2:62" - }, - "variables": [ - { - "name": "value_5", - "nativeSrc": "14483:7:62", - "nodeType": "YulTypedName", - "src": "14483:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "14505:37:62", - "nodeType": "YulAssignment", - "src": "14505:37:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14526:9:62", - "nodeType": "YulIdentifier", - "src": "14526:9:62" - }, - { - "kind": "number", - "nativeSrc": "14537:3:62", - "nodeType": "YulLiteral", - "src": "14537:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14522:3:62", - "nodeType": "YulIdentifier", - "src": "14522:3:62" - }, - "nativeSrc": "14522:19:62", - "nodeType": "YulFunctionCall", - "src": "14522:19:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "14516:5:62", - "nodeType": "YulIdentifier", - "src": "14516:5:62" - }, - "nativeSrc": "14516:26:62", - "nodeType": "YulFunctionCall", - "src": "14516:26:62" - }, - "variableNames": [ - { - "name": "value_5", - "nativeSrc": "14505:7:62", - "nodeType": "YulIdentifier", - "src": "14505:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "14562:5:62", - "nodeType": "YulIdentifier", - "src": "14562:5:62" - }, - { - "kind": "number", - "nativeSrc": "14569:3:62", - "nodeType": "YulLiteral", - "src": "14569:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14558:3:62", - "nodeType": "YulIdentifier", - "src": "14558:3:62" - }, - "nativeSrc": "14558:15:62", - "nodeType": "YulFunctionCall", - "src": "14558:15:62" - }, - { - "name": "value_5", - "nativeSrc": "14575:7:62", - "nodeType": "YulIdentifier", - "src": "14575:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14551:6:62", - "nodeType": "YulIdentifier", - "src": "14551:6:62" - }, - "nativeSrc": "14551:32:62", - "nodeType": "YulFunctionCall", - "src": "14551:32:62" - }, - "nativeSrc": "14551:32:62", - "nodeType": "YulExpressionStatement", - "src": "14551:32:62" - }, - { - "nativeSrc": "14592:17:62", - "nodeType": "YulVariableDeclaration", - "src": "14592:17:62", - "value": { - "name": "_1", - "nativeSrc": "14607:2:62", - "nodeType": "YulIdentifier", - "src": "14607:2:62" - }, - "variables": [ - { - "name": "value_6", - "nativeSrc": "14596:7:62", - "nodeType": "YulTypedName", - "src": "14596:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "14618:37:62", - "nodeType": "YulAssignment", - "src": "14618:37:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14639:9:62", - "nodeType": "YulIdentifier", - "src": "14639:9:62" - }, - { - "kind": "number", - "nativeSrc": "14650:3:62", - "nodeType": "YulLiteral", - "src": "14650:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14635:3:62", - "nodeType": "YulIdentifier", - "src": "14635:3:62" - }, - "nativeSrc": "14635:19:62", - "nodeType": "YulFunctionCall", - "src": "14635:19:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "14629:5:62", - "nodeType": "YulIdentifier", - "src": "14629:5:62" - }, - "nativeSrc": "14629:26:62", - "nodeType": "YulFunctionCall", - "src": "14629:26:62" - }, - "variableNames": [ - { - "name": "value_6", - "nativeSrc": "14618:7:62", - "nodeType": "YulIdentifier", - "src": "14618:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "14675:5:62", - "nodeType": "YulIdentifier", - "src": "14675:5:62" - }, - { - "kind": "number", - "nativeSrc": "14682:3:62", - "nodeType": "YulLiteral", - "src": "14682:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14671:3:62", - "nodeType": "YulIdentifier", - "src": "14671:3:62" - }, - "nativeSrc": "14671:15:62", - "nodeType": "YulFunctionCall", - "src": "14671:15:62" - }, - { - "name": "value_6", - "nativeSrc": "14688:7:62", - "nodeType": "YulIdentifier", - "src": "14688:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14664:6:62", - "nodeType": "YulIdentifier", - "src": "14664:6:62" - }, - "nativeSrc": "14664:32:62", - "nodeType": "YulFunctionCall", - "src": "14664:32:62" - }, - "nativeSrc": "14664:32:62", - "nodeType": "YulExpressionStatement", - "src": "14664:32:62" - }, - { - "nativeSrc": "14705:17:62", - "nodeType": "YulVariableDeclaration", - "src": "14705:17:62", - "value": { - "name": "_1", - "nativeSrc": "14720:2:62", - "nodeType": "YulIdentifier", - "src": "14720:2:62" - }, - "variables": [ - { - "name": "value_7", - "nativeSrc": "14709:7:62", - "nodeType": "YulTypedName", - "src": "14709:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "14731:37:62", - "nodeType": "YulAssignment", - "src": "14731:37:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14752:9:62", - "nodeType": "YulIdentifier", - "src": "14752:9:62" - }, - { - "kind": "number", - "nativeSrc": "14763:3:62", - "nodeType": "YulLiteral", - "src": "14763:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14748:3:62", - "nodeType": "YulIdentifier", - "src": "14748:3:62" - }, - "nativeSrc": "14748:19:62", - "nodeType": "YulFunctionCall", - "src": "14748:19:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "14742:5:62", - "nodeType": "YulIdentifier", - "src": "14742:5:62" - }, - "nativeSrc": "14742:26:62", - "nodeType": "YulFunctionCall", - "src": "14742:26:62" - }, - "variableNames": [ - { - "name": "value_7", - "nativeSrc": "14731:7:62", - "nodeType": "YulIdentifier", - "src": "14731:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "14788:5:62", - "nodeType": "YulIdentifier", - "src": "14788:5:62" - }, - { - "kind": "number", - "nativeSrc": "14795:3:62", - "nodeType": "YulLiteral", - "src": "14795:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14784:3:62", - "nodeType": "YulIdentifier", - "src": "14784:3:62" - }, - "nativeSrc": "14784:15:62", - "nodeType": "YulFunctionCall", - "src": "14784:15:62" - }, - { - "name": "value_7", - "nativeSrc": "14801:7:62", - "nodeType": "YulIdentifier", - "src": "14801:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14777:6:62", - "nodeType": "YulIdentifier", - "src": "14777:6:62" - }, - "nativeSrc": "14777:32:62", - "nodeType": "YulFunctionCall", - "src": "14777:32:62" - }, - "nativeSrc": "14777:32:62", - "nodeType": "YulExpressionStatement", - "src": "14777:32:62" - }, - { - "nativeSrc": "14818:17:62", - "nodeType": "YulVariableDeclaration", - "src": "14818:17:62", - "value": { - "name": "_1", - "nativeSrc": "14833:2:62", - "nodeType": "YulIdentifier", - "src": "14833:2:62" - }, - "variables": [ - { - "name": "value_8", - "nativeSrc": "14822:7:62", - "nodeType": "YulTypedName", - "src": "14822:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "14844:37:62", - "nodeType": "YulAssignment", - "src": "14844:37:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14865:9:62", - "nodeType": "YulIdentifier", - "src": "14865:9:62" - }, - { - "kind": "number", - "nativeSrc": "14876:3:62", - "nodeType": "YulLiteral", - "src": "14876:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14861:3:62", - "nodeType": "YulIdentifier", - "src": "14861:3:62" - }, - "nativeSrc": "14861:19:62", - "nodeType": "YulFunctionCall", - "src": "14861:19:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "14855:5:62", - "nodeType": "YulIdentifier", - "src": "14855:5:62" - }, - "nativeSrc": "14855:26:62", - "nodeType": "YulFunctionCall", - "src": "14855:26:62" - }, - "variableNames": [ - { - "name": "value_8", - "nativeSrc": "14844:7:62", - "nodeType": "YulIdentifier", - "src": "14844:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "14901:5:62", - "nodeType": "YulIdentifier", - "src": "14901:5:62" - }, - { - "kind": "number", - "nativeSrc": "14908:3:62", - "nodeType": "YulLiteral", - "src": "14908:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14897:3:62", - "nodeType": "YulIdentifier", - "src": "14897:3:62" - }, - "nativeSrc": "14897:15:62", - "nodeType": "YulFunctionCall", - "src": "14897:15:62" - }, - { - "name": "value_8", - "nativeSrc": "14914:7:62", - "nodeType": "YulIdentifier", - "src": "14914:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14890:6:62", - "nodeType": "YulIdentifier", - "src": "14890:6:62" - }, - "nativeSrc": "14890:32:62", - "nodeType": "YulFunctionCall", - "src": "14890:32:62" - }, - "nativeSrc": "14890:32:62", - "nodeType": "YulExpressionStatement", - "src": "14890:32:62" - }, - { - "nativeSrc": "14931:15:62", - "nodeType": "YulAssignment", - "src": "14931:15:62", - "value": { - "name": "value", - "nativeSrc": "14941:5:62", - "nodeType": "YulIdentifier", - "src": "14941:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "14931:6:62", - "nodeType": "YulIdentifier", - "src": "14931:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_struct$_State_$11307_memory_ptr_fromMemory", - "nativeSrc": "13775:1177:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "13846:9:62", - "nodeType": "YulTypedName", - "src": "13846:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "13857:7:62", - "nodeType": "YulTypedName", - "src": "13857:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "13869:6:62", - "nodeType": "YulTypedName", - "src": "13869:6:62", - "type": "" - } - ], - "src": "13775:1177:62" - }, - { - "body": { - "nativeSrc": "15086:119:62", - "nodeType": "YulBlock", - "src": "15086:119:62", - "statements": [ - { - "nativeSrc": "15096:26:62", - "nodeType": "YulAssignment", - "src": "15096:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15108:9:62", - "nodeType": "YulIdentifier", - "src": "15108:9:62" - }, - { - "kind": "number", - "nativeSrc": "15119:2:62", - "nodeType": "YulLiteral", - "src": "15119:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15104:3:62", - "nodeType": "YulIdentifier", - "src": "15104:3:62" - }, - "nativeSrc": "15104:18:62", - "nodeType": "YulFunctionCall", - "src": "15104:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "15096:4:62", - "nodeType": "YulIdentifier", - "src": "15096:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15138:9:62", - "nodeType": "YulIdentifier", - "src": "15138:9:62" - }, - { - "name": "value0", - "nativeSrc": "15149:6:62", - "nodeType": "YulIdentifier", - "src": "15149:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15131:6:62", - "nodeType": "YulIdentifier", - "src": "15131:6:62" - }, - "nativeSrc": "15131:25:62", - "nodeType": "YulFunctionCall", - "src": "15131:25:62" - }, - "nativeSrc": "15131:25:62", - "nodeType": "YulExpressionStatement", - "src": "15131:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15176:9:62", - "nodeType": "YulIdentifier", - "src": "15176:9:62" - }, - { - "kind": "number", - "nativeSrc": "15187:2:62", - "nodeType": "YulLiteral", - "src": "15187:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15172:3:62", - "nodeType": "YulIdentifier", - "src": "15172:3:62" - }, - "nativeSrc": "15172:18:62", - "nodeType": "YulFunctionCall", - "src": "15172:18:62" - }, - { - "name": "value1", - "nativeSrc": "15192:6:62", - "nodeType": "YulIdentifier", - "src": "15192:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15165:6:62", - "nodeType": "YulIdentifier", - "src": "15165:6:62" - }, - "nativeSrc": "15165:34:62", - "nodeType": "YulFunctionCall", - "src": "15165:34:62" - }, - "nativeSrc": "15165:34:62", - "nodeType": "YulExpressionStatement", - "src": "15165:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "14957:248:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "15047:9:62", - "nodeType": "YulTypedName", - "src": "15047:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "15058:6:62", - "nodeType": "YulTypedName", - "src": "15058:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "15066:6:62", - "nodeType": "YulTypedName", - "src": "15066:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "15077:4:62", - "nodeType": "YulTypedName", - "src": "15077:4:62", - "type": "" - } - ], - "src": "14957:248:62" - }, - { - "body": { - "nativeSrc": "15259:350:62", - "nodeType": "YulBlock", - "src": "15259:350:62", - "statements": [ - { - "nativeSrc": "15269:26:62", - "nodeType": "YulVariableDeclaration", - "src": "15269:26:62", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "15289:5:62", - "nodeType": "YulIdentifier", - "src": "15289:5:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "15283:5:62", - "nodeType": "YulIdentifier", - "src": "15283:5:62" - }, - "nativeSrc": "15283:12:62", - "nodeType": "YulFunctionCall", - "src": "15283:12:62" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "15273:6:62", - "nodeType": "YulTypedName", - "src": "15273:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "15311:3:62", - "nodeType": "YulIdentifier", - "src": "15311:3:62" - }, - { - "name": "length", - "nativeSrc": "15316:6:62", - "nodeType": "YulIdentifier", - "src": "15316:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15304:6:62", - "nodeType": "YulIdentifier", - "src": "15304:6:62" - }, - "nativeSrc": "15304:19:62", - "nodeType": "YulFunctionCall", - "src": "15304:19:62" - }, - "nativeSrc": "15304:19:62", - "nodeType": "YulExpressionStatement", - "src": "15304:19:62" - }, - { - "nativeSrc": "15332:10:62", - "nodeType": "YulVariableDeclaration", - "src": "15332:10:62", - "value": { - "kind": "number", - "nativeSrc": "15341:1:62", - "nodeType": "YulLiteral", - "src": "15341:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "15336:1:62", - "nodeType": "YulTypedName", - "src": "15336:1:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "15403:87:62", - "nodeType": "YulBlock", - "src": "15403:87:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "15432:3:62", - "nodeType": "YulIdentifier", - "src": "15432:3:62" - }, - { - "name": "i", - "nativeSrc": "15437:1:62", - "nodeType": "YulIdentifier", - "src": "15437:1:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15428:3:62", - "nodeType": "YulIdentifier", - "src": "15428:3:62" - }, - "nativeSrc": "15428:11:62", - "nodeType": "YulFunctionCall", - "src": "15428:11:62" - }, - { - "kind": "number", - "nativeSrc": "15441:4:62", - "nodeType": "YulLiteral", - "src": "15441:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15424:3:62", - "nodeType": "YulIdentifier", - "src": "15424:3:62" - }, - "nativeSrc": "15424:22:62", - "nodeType": "YulFunctionCall", - "src": "15424:22:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "15462:5:62", - "nodeType": "YulIdentifier", - "src": "15462:5:62" - }, - { - "name": "i", - "nativeSrc": "15469:1:62", - "nodeType": "YulIdentifier", - "src": "15469:1:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15458:3:62", - "nodeType": "YulIdentifier", - "src": "15458:3:62" - }, - "nativeSrc": "15458:13:62", - "nodeType": "YulFunctionCall", - "src": "15458:13:62" - }, - { - "kind": "number", - "nativeSrc": "15473:4:62", - "nodeType": "YulLiteral", - "src": "15473:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15454:3:62", - "nodeType": "YulIdentifier", - "src": "15454:3:62" - }, - "nativeSrc": "15454:24:62", - "nodeType": "YulFunctionCall", - "src": "15454:24:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "15448:5:62", - "nodeType": "YulIdentifier", - "src": "15448:5:62" - }, - "nativeSrc": "15448:31:62", - "nodeType": "YulFunctionCall", - "src": "15448:31:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15417:6:62", - "nodeType": "YulIdentifier", - "src": "15417:6:62" - }, - "nativeSrc": "15417:63:62", - "nodeType": "YulFunctionCall", - "src": "15417:63:62" - }, - "nativeSrc": "15417:63:62", - "nodeType": "YulExpressionStatement", - "src": "15417:63:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "15362:1:62", - "nodeType": "YulIdentifier", - "src": "15362:1:62" - }, - { - "name": "length", - "nativeSrc": "15365:6:62", - "nodeType": "YulIdentifier", - "src": "15365:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "15359:2:62", - "nodeType": "YulIdentifier", - "src": "15359:2:62" - }, - "nativeSrc": "15359:13:62", - "nodeType": "YulFunctionCall", - "src": "15359:13:62" - }, - "nativeSrc": "15351:139:62", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "15373:21:62", - "nodeType": "YulBlock", - "src": "15373:21:62", - "statements": [ - { - "nativeSrc": "15375:17:62", - "nodeType": "YulAssignment", - "src": "15375:17:62", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "15384:1:62", - "nodeType": "YulIdentifier", - "src": "15384:1:62" - }, - { - "kind": "number", - "nativeSrc": "15387:4:62", - "nodeType": "YulLiteral", - "src": "15387:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15380:3:62", - "nodeType": "YulIdentifier", - "src": "15380:3:62" - }, - "nativeSrc": "15380:12:62", - "nodeType": "YulFunctionCall", - "src": "15380:12:62" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "15375:1:62", - "nodeType": "YulIdentifier", - "src": "15375:1:62" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "15355:3:62", - "nodeType": "YulBlock", - "src": "15355:3:62", - "statements": [] - }, - "src": "15351:139:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "15514:3:62", - "nodeType": "YulIdentifier", - "src": "15514:3:62" - }, - { - "name": "length", - "nativeSrc": "15519:6:62", - "nodeType": "YulIdentifier", - "src": "15519:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15510:3:62", - "nodeType": "YulIdentifier", - "src": "15510:3:62" - }, - "nativeSrc": "15510:16:62", - "nodeType": "YulFunctionCall", - "src": "15510:16:62" - }, - { - "kind": "number", - "nativeSrc": "15528:4:62", - "nodeType": "YulLiteral", - "src": "15528:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15506:3:62", - "nodeType": "YulIdentifier", - "src": "15506:3:62" - }, - "nativeSrc": "15506:27:62", - "nodeType": "YulFunctionCall", - "src": "15506:27:62" - }, - { - "kind": "number", - "nativeSrc": "15535:1:62", - "nodeType": "YulLiteral", - "src": "15535:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15499:6:62", - "nodeType": "YulIdentifier", - "src": "15499:6:62" - }, - "nativeSrc": "15499:38:62", - "nodeType": "YulFunctionCall", - "src": "15499:38:62" - }, - "nativeSrc": "15499:38:62", - "nodeType": "YulExpressionStatement", - "src": "15499:38:62" - }, - { - "nativeSrc": "15546:57:62", - "nodeType": "YulAssignment", - "src": "15546:57:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "15561:3:62", - "nodeType": "YulIdentifier", - "src": "15561:3:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "15574:6:62", - "nodeType": "YulIdentifier", - "src": "15574:6:62" - }, - { - "kind": "number", - "nativeSrc": "15582:2:62", - "nodeType": "YulLiteral", - "src": "15582:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15570:3:62", - "nodeType": "YulIdentifier", - "src": "15570:3:62" - }, - "nativeSrc": "15570:15:62", - "nodeType": "YulFunctionCall", - "src": "15570:15:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15591:2:62", - "nodeType": "YulLiteral", - "src": "15591:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "15587:3:62", - "nodeType": "YulIdentifier", - "src": "15587:3:62" - }, - "nativeSrc": "15587:7:62", - "nodeType": "YulFunctionCall", - "src": "15587:7:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "15566:3:62", - "nodeType": "YulIdentifier", - "src": "15566:3:62" - }, - "nativeSrc": "15566:29:62", - "nodeType": "YulFunctionCall", - "src": "15566:29:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15557:3:62", - "nodeType": "YulIdentifier", - "src": "15557:3:62" - }, - "nativeSrc": "15557:39:62", - "nodeType": "YulFunctionCall", - "src": "15557:39:62" - }, - { - "kind": "number", - "nativeSrc": "15598:4:62", - "nodeType": "YulLiteral", - "src": "15598:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15553:3:62", - "nodeType": "YulIdentifier", - "src": "15553:3:62" - }, - "nativeSrc": "15553:50:62", - "nodeType": "YulFunctionCall", - "src": "15553:50:62" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "15546:3:62", - "nodeType": "YulIdentifier", - "src": "15546:3:62" - } - ] - } - ] - }, - "name": "abi_encode_bytes", - "nativeSrc": "15210:399:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "15236:5:62", - "nodeType": "YulTypedName", - "src": "15236:5:62", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "15243:3:62", - "nodeType": "YulTypedName", - "src": "15243:3:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "15251:3:62", - "nodeType": "YulTypedName", - "src": "15251:3:62", - "type": "" - } - ], - "src": "15210:399:62" - }, - { - "body": { - "nativeSrc": "15761:167:62", - "nodeType": "YulBlock", - "src": "15761:167:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15778:9:62", - "nodeType": "YulIdentifier", - "src": "15778:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "15793:6:62", - "nodeType": "YulIdentifier", - "src": "15793:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15809:3:62", - "nodeType": "YulLiteral", - "src": "15809:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "15814:1:62", - "nodeType": "YulLiteral", - "src": "15814:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "15805:3:62", - "nodeType": "YulIdentifier", - "src": "15805:3:62" - }, - "nativeSrc": "15805:11:62", - "nodeType": "YulFunctionCall", - "src": "15805:11:62" - }, - { - "kind": "number", - "nativeSrc": "15818:1:62", - "nodeType": "YulLiteral", - "src": "15818:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "15801:3:62", - "nodeType": "YulIdentifier", - "src": "15801:3:62" - }, - "nativeSrc": "15801:19:62", - "nodeType": "YulFunctionCall", - "src": "15801:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "15789:3:62", - "nodeType": "YulIdentifier", - "src": "15789:3:62" - }, - "nativeSrc": "15789:32:62", - "nodeType": "YulFunctionCall", - "src": "15789:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15771:6:62", - "nodeType": "YulIdentifier", - "src": "15771:6:62" - }, - "nativeSrc": "15771:51:62", - "nodeType": "YulFunctionCall", - "src": "15771:51:62" - }, - "nativeSrc": "15771:51:62", - "nodeType": "YulExpressionStatement", - "src": "15771:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15842:9:62", - "nodeType": "YulIdentifier", - "src": "15842:9:62" - }, - { - "kind": "number", - "nativeSrc": "15853:2:62", - "nodeType": "YulLiteral", - "src": "15853:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15838:3:62", - "nodeType": "YulIdentifier", - "src": "15838:3:62" - }, - "nativeSrc": "15838:18:62", - "nodeType": "YulFunctionCall", - "src": "15838:18:62" - }, - { - "kind": "number", - "nativeSrc": "15858:2:62", - "nodeType": "YulLiteral", - "src": "15858:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15831:6:62", - "nodeType": "YulIdentifier", - "src": "15831:6:62" - }, - "nativeSrc": "15831:30:62", - "nodeType": "YulFunctionCall", - "src": "15831:30:62" - }, - "nativeSrc": "15831:30:62", - "nodeType": "YulExpressionStatement", - "src": "15831:30:62" - }, - { - "nativeSrc": "15870:52:62", - "nodeType": "YulAssignment", - "src": "15870:52:62", - "value": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "15895:6:62", - "nodeType": "YulIdentifier", - "src": "15895:6:62" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15907:9:62", - "nodeType": "YulIdentifier", - "src": "15907:9:62" - }, - { - "kind": "number", - "nativeSrc": "15918:2:62", - "nodeType": "YulLiteral", - "src": "15918:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15903:3:62", - "nodeType": "YulIdentifier", - "src": "15903:3:62" - }, - "nativeSrc": "15903:18:62", - "nodeType": "YulFunctionCall", - "src": "15903:18:62" - } - ], - "functionName": { - "name": "abi_encode_bytes", - "nativeSrc": "15878:16:62", - "nodeType": "YulIdentifier", - "src": "15878:16:62" - }, - "nativeSrc": "15878:44:62", - "nodeType": "YulFunctionCall", - "src": "15878:44:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "15870:4:62", - "nodeType": "YulIdentifier", - "src": "15870:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "15614:314:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "15722:9:62", - "nodeType": "YulTypedName", - "src": "15722:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "15733:6:62", - "nodeType": "YulTypedName", - "src": "15733:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "15741:6:62", - "nodeType": "YulTypedName", - "src": "15741:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "15752:4:62", - "nodeType": "YulTypedName", - "src": "15752:4:62", - "type": "" - } - ], - "src": "15614:314:62" - }, - { - "body": { - "nativeSrc": "16062:145:62", - "nodeType": "YulBlock", - "src": "16062:145:62", - "statements": [ - { - "nativeSrc": "16072:26:62", - "nodeType": "YulAssignment", - "src": "16072:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "16084:9:62", - "nodeType": "YulIdentifier", - "src": "16084:9:62" - }, - { - "kind": "number", - "nativeSrc": "16095:2:62", - "nodeType": "YulLiteral", - "src": "16095:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16080:3:62", - "nodeType": "YulIdentifier", - "src": "16080:3:62" - }, - "nativeSrc": "16080:18:62", - "nodeType": "YulFunctionCall", - "src": "16080:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "16072:4:62", - "nodeType": "YulIdentifier", - "src": "16072:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "16114:9:62", - "nodeType": "YulIdentifier", - "src": "16114:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "16129:6:62", - "nodeType": "YulIdentifier", - "src": "16129:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16145:3:62", - "nodeType": "YulLiteral", - "src": "16145:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "16150:1:62", - "nodeType": "YulLiteral", - "src": "16150:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "16141:3:62", - "nodeType": "YulIdentifier", - "src": "16141:3:62" - }, - "nativeSrc": "16141:11:62", - "nodeType": "YulFunctionCall", - "src": "16141:11:62" - }, - { - "kind": "number", - "nativeSrc": "16154:1:62", - "nodeType": "YulLiteral", - "src": "16154:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "16137:3:62", - "nodeType": "YulIdentifier", - "src": "16137:3:62" - }, - "nativeSrc": "16137:19:62", - "nodeType": "YulFunctionCall", - "src": "16137:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "16125:3:62", - "nodeType": "YulIdentifier", - "src": "16125:3:62" - }, - "nativeSrc": "16125:32:62", - "nodeType": "YulFunctionCall", - "src": "16125:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "16107:6:62", - "nodeType": "YulIdentifier", - "src": "16107:6:62" - }, - "nativeSrc": "16107:51:62", - "nodeType": "YulFunctionCall", - "src": "16107:51:62" - }, - "nativeSrc": "16107:51:62", - "nodeType": "YulExpressionStatement", - "src": "16107:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "16178:9:62", - "nodeType": "YulIdentifier", - "src": "16178:9:62" - }, - { - "kind": "number", - "nativeSrc": "16189:2:62", - "nodeType": "YulLiteral", - "src": "16189:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16174:3:62", - "nodeType": "YulIdentifier", - "src": "16174:3:62" - }, - "nativeSrc": "16174:18:62", - "nodeType": "YulFunctionCall", - "src": "16174:18:62" - }, - { - "name": "value1", - "nativeSrc": "16194:6:62", - "nodeType": "YulIdentifier", - "src": "16194:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "16167:6:62", - "nodeType": "YulIdentifier", - "src": "16167:6:62" - }, - "nativeSrc": "16167:34:62", - "nodeType": "YulFunctionCall", - "src": "16167:34:62" - }, - "nativeSrc": "16167:34:62", - "nodeType": "YulExpressionStatement", - "src": "16167:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", - "nativeSrc": "15933:274:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "16023:9:62", - "nodeType": "YulTypedName", - "src": "16023:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "16034:6:62", - "nodeType": "YulTypedName", - "src": "16034:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "16042:6:62", - "nodeType": "YulTypedName", - "src": "16042:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "16053:4:62", - "nodeType": "YulTypedName", - "src": "16053:4:62", - "type": "" - } - ], - "src": "15933:274:62" - }, - { - "body": { - "nativeSrc": "16290:199:62", - "nodeType": "YulBlock", - "src": "16290:199:62", - "statements": [ - { - "body": { - "nativeSrc": "16336:16:62", - "nodeType": "YulBlock", - "src": "16336:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16345:1:62", - "nodeType": "YulLiteral", - "src": "16345:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "16348:1:62", - "nodeType": "YulLiteral", - "src": "16348:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "16338:6:62", - "nodeType": "YulIdentifier", - "src": "16338:6:62" - }, - "nativeSrc": "16338:12:62", - "nodeType": "YulFunctionCall", - "src": "16338:12:62" - }, - "nativeSrc": "16338:12:62", - "nodeType": "YulExpressionStatement", - "src": "16338:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "16311:7:62", - "nodeType": "YulIdentifier", - "src": "16311:7:62" - }, - { - "name": "headStart", - "nativeSrc": "16320:9:62", - "nodeType": "YulIdentifier", - "src": "16320:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "16307:3:62", - "nodeType": "YulIdentifier", - "src": "16307:3:62" - }, - "nativeSrc": "16307:23:62", - "nodeType": "YulFunctionCall", - "src": "16307:23:62" - }, - { - "kind": "number", - "nativeSrc": "16332:2:62", - "nodeType": "YulLiteral", - "src": "16332:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "16303:3:62", - "nodeType": "YulIdentifier", - "src": "16303:3:62" - }, - "nativeSrc": "16303:32:62", - "nodeType": "YulFunctionCall", - "src": "16303:32:62" - }, - "nativeSrc": "16300:52:62", - "nodeType": "YulIf", - "src": "16300:52:62" - }, - { - "nativeSrc": "16361:29:62", - "nodeType": "YulVariableDeclaration", - "src": "16361:29:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "16380:9:62", - "nodeType": "YulIdentifier", - "src": "16380:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "16374:5:62", - "nodeType": "YulIdentifier", - "src": "16374:5:62" - }, - "nativeSrc": "16374:16:62", - "nodeType": "YulFunctionCall", - "src": "16374:16:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "16365:5:62", - "nodeType": "YulTypedName", - "src": "16365:5:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "16443:16:62", - "nodeType": "YulBlock", - "src": "16443:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16452:1:62", - "nodeType": "YulLiteral", - "src": "16452:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "16455:1:62", - "nodeType": "YulLiteral", - "src": "16455:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "16445:6:62", - "nodeType": "YulIdentifier", - "src": "16445:6:62" - }, - "nativeSrc": "16445:12:62", - "nodeType": "YulFunctionCall", - "src": "16445:12:62" - }, - "nativeSrc": "16445:12:62", - "nodeType": "YulExpressionStatement", - "src": "16445:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "16412:5:62", - "nodeType": "YulIdentifier", - "src": "16412:5:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "16433:5:62", - "nodeType": "YulIdentifier", - "src": "16433:5:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "16426:6:62", - "nodeType": "YulIdentifier", - "src": "16426:6:62" - }, - "nativeSrc": "16426:13:62", - "nodeType": "YulFunctionCall", - "src": "16426:13:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "16419:6:62", - "nodeType": "YulIdentifier", - "src": "16419:6:62" - }, - "nativeSrc": "16419:21:62", - "nodeType": "YulFunctionCall", - "src": "16419:21:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "16409:2:62", - "nodeType": "YulIdentifier", - "src": "16409:2:62" - }, - "nativeSrc": "16409:32:62", - "nodeType": "YulFunctionCall", - "src": "16409:32:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "16402:6:62", - "nodeType": "YulIdentifier", - "src": "16402:6:62" - }, - "nativeSrc": "16402:40:62", - "nodeType": "YulFunctionCall", - "src": "16402:40:62" - }, - "nativeSrc": "16399:60:62", - "nodeType": "YulIf", - "src": "16399:60:62" - }, - { - "nativeSrc": "16468:15:62", - "nodeType": "YulAssignment", - "src": "16468:15:62", - "value": { - "name": "value", - "nativeSrc": "16478:5:62", - "nodeType": "YulIdentifier", - "src": "16478:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "16468:6:62", - "nodeType": "YulIdentifier", - "src": "16468:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bool_fromMemory", - "nativeSrc": "16212:277:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "16256:9:62", - "nodeType": "YulTypedName", - "src": "16256:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "16267:7:62", - "nodeType": "YulTypedName", - "src": "16267:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "16279:6:62", - "nodeType": "YulTypedName", - "src": "16279:6:62", - "type": "" - } - ], - "src": "16212:277:62" - }, - { - "body": { - "nativeSrc": "16668:158:62", - "nodeType": "YulBlock", - "src": "16668:158:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "16685:9:62", - "nodeType": "YulIdentifier", - "src": "16685:9:62" - }, - { - "kind": "number", - "nativeSrc": "16696:2:62", - "nodeType": "YulLiteral", - "src": "16696:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "16678:6:62", - "nodeType": "YulIdentifier", - "src": "16678:6:62" - }, - "nativeSrc": "16678:21:62", - "nodeType": "YulFunctionCall", - "src": "16678:21:62" - }, - "nativeSrc": "16678:21:62", - "nodeType": "YulExpressionStatement", - "src": "16678:21:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "16719:9:62", - "nodeType": "YulIdentifier", - "src": "16719:9:62" - }, - { - "kind": "number", - "nativeSrc": "16730:2:62", - "nodeType": "YulLiteral", - "src": "16730:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16715:3:62", - "nodeType": "YulIdentifier", - "src": "16715:3:62" - }, - "nativeSrc": "16715:18:62", - "nodeType": "YulFunctionCall", - "src": "16715:18:62" - }, - { - "kind": "number", - "nativeSrc": "16735:1:62", - "nodeType": "YulLiteral", - "src": "16735:1:62", - "type": "", - "value": "9" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "16708:6:62", - "nodeType": "YulIdentifier", - "src": "16708:6:62" - }, - "nativeSrc": "16708:29:62", - "nodeType": "YulFunctionCall", - "src": "16708:29:62" - }, - "nativeSrc": "16708:29:62", - "nodeType": "YulExpressionStatement", - "src": "16708:29:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "16757:9:62", - "nodeType": "YulIdentifier", - "src": "16757:9:62" - }, - { - "kind": "number", - "nativeSrc": "16768:2:62", - "nodeType": "YulLiteral", - "src": "16768:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16753:3:62", - "nodeType": "YulIdentifier", - "src": "16753:3:62" - }, - "nativeSrc": "16753:18:62", - "nodeType": "YulFunctionCall", - "src": "16753:18:62" - }, - { - "hexValue": "217472616e73666572", - "kind": "string", - "nativeSrc": "16773:11:62", - "nodeType": "YulLiteral", - "src": "16773:11:62", - "type": "", - "value": "!transfer" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "16746:6:62", - "nodeType": "YulIdentifier", - "src": "16746:6:62" - }, - "nativeSrc": "16746:39:62", - "nodeType": "YulFunctionCall", - "src": "16746:39:62" - }, - "nativeSrc": "16746:39:62", - "nodeType": "YulExpressionStatement", - "src": "16746:39:62" - }, - { - "nativeSrc": "16794:26:62", - "nodeType": "YulAssignment", - "src": "16794:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "16806:9:62", - "nodeType": "YulIdentifier", - "src": "16806:9:62" - }, - { - "kind": "number", - "nativeSrc": "16817:2:62", - "nodeType": "YulLiteral", - "src": "16817:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16802:3:62", - "nodeType": "YulIdentifier", - "src": "16802:3:62" - }, - "nativeSrc": "16802:18:62", - "nodeType": "YulFunctionCall", - "src": "16802:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "16794:4:62", - "nodeType": "YulIdentifier", - "src": "16794:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "16494:332:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "16645:9:62", - "nodeType": "YulTypedName", - "src": "16645:9:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "16659:4:62", - "nodeType": "YulTypedName", - "src": "16659:4:62", - "type": "" - } - ], - "src": "16494:332:62" - }, - { - "body": { - "nativeSrc": "16978:139:62", - "nodeType": "YulBlock", - "src": "16978:139:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "16995:3:62", - "nodeType": "YulIdentifier", - "src": "16995:3:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "17008:2:62", - "nodeType": "YulLiteral", - "src": "17008:2:62", - "type": "", - "value": "96" - }, - { - "name": "value0", - "nativeSrc": "17012:6:62", - "nodeType": "YulIdentifier", - "src": "17012:6:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "17004:3:62", - "nodeType": "YulIdentifier", - "src": "17004:3:62" - }, - "nativeSrc": "17004:15:62", - "nodeType": "YulFunctionCall", - "src": "17004:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "17033:2:62", - "nodeType": "YulLiteral", - "src": "17033:2:62", - "type": "", - "value": "96" - }, - { - "kind": "number", - "nativeSrc": "17037:1:62", - "nodeType": "YulLiteral", - "src": "17037:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "17029:3:62", - "nodeType": "YulIdentifier", - "src": "17029:3:62" - }, - "nativeSrc": "17029:10:62", - "nodeType": "YulFunctionCall", - "src": "17029:10:62" - }, - { - "kind": "number", - "nativeSrc": "17041:1:62", - "nodeType": "YulLiteral", - "src": "17041:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "17025:3:62", - "nodeType": "YulIdentifier", - "src": "17025:3:62" - }, - "nativeSrc": "17025:18:62", - "nodeType": "YulFunctionCall", - "src": "17025:18:62" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "17021:3:62", - "nodeType": "YulIdentifier", - "src": "17021:3:62" - }, - "nativeSrc": "17021:23:62", - "nodeType": "YulFunctionCall", - "src": "17021:23:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "17000:3:62", - "nodeType": "YulIdentifier", - "src": "17000:3:62" - }, - "nativeSrc": "17000:45:62", - "nodeType": "YulFunctionCall", - "src": "17000:45:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "16988:6:62", - "nodeType": "YulIdentifier", - "src": "16988:6:62" - }, - "nativeSrc": "16988:58:62", - "nodeType": "YulFunctionCall", - "src": "16988:58:62" - }, - "nativeSrc": "16988:58:62", - "nodeType": "YulExpressionStatement", - "src": "16988:58:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "17066:3:62", - "nodeType": "YulIdentifier", - "src": "17066:3:62" - }, - { - "kind": "number", - "nativeSrc": "17071:2:62", - "nodeType": "YulLiteral", - "src": "17071:2:62", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17062:3:62", - "nodeType": "YulIdentifier", - "src": "17062:3:62" - }, - "nativeSrc": "17062:12:62", - "nodeType": "YulFunctionCall", - "src": "17062:12:62" - }, - { - "name": "value1", - "nativeSrc": "17076:6:62", - "nodeType": "YulIdentifier", - "src": "17076:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17055:6:62", - "nodeType": "YulIdentifier", - "src": "17055:6:62" - }, - "nativeSrc": "17055:28:62", - "nodeType": "YulFunctionCall", - "src": "17055:28:62" - }, - "nativeSrc": "17055:28:62", - "nodeType": "YulExpressionStatement", - "src": "17055:28:62" - }, - { - "nativeSrc": "17092:19:62", - "nodeType": "YulAssignment", - "src": "17092:19:62", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "17103:3:62", - "nodeType": "YulIdentifier", - "src": "17103:3:62" - }, - { - "kind": "number", - "nativeSrc": "17108:2:62", - "nodeType": "YulLiteral", - "src": "17108:2:62", - "type": "", - "value": "52" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17099:3:62", - "nodeType": "YulIdentifier", - "src": "17099:3:62" - }, - "nativeSrc": "17099:12:62", - "nodeType": "YulFunctionCall", - "src": "17099:12:62" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "17092:3:62", - "nodeType": "YulIdentifier", - "src": "17092:3:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_address_t_bytes32__to_t_address_t_bytes32__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "16831:286:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "16946:3:62", - "nodeType": "YulTypedName", - "src": "16946:3:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "16951:6:62", - "nodeType": "YulTypedName", - "src": "16951:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "16959:6:62", - "nodeType": "YulTypedName", - "src": "16959:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "16970:3:62", - "nodeType": "YulTypedName", - "src": "16970:3:62", - "type": "" - } - ], - "src": "16831:286:62" - }, - { - "body": { - "nativeSrc": "17307:232:62", - "nodeType": "YulBlock", - "src": "17307:232:62", - "statements": [ - { - "nativeSrc": "17317:27:62", - "nodeType": "YulAssignment", - "src": "17317:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17329:9:62", - "nodeType": "YulIdentifier", - "src": "17329:9:62" - }, - { - "kind": "number", - "nativeSrc": "17340:3:62", - "nodeType": "YulLiteral", - "src": "17340:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17325:3:62", - "nodeType": "YulIdentifier", - "src": "17325:3:62" - }, - "nativeSrc": "17325:19:62", - "nodeType": "YulFunctionCall", - "src": "17325:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "17317:4:62", - "nodeType": "YulIdentifier", - "src": "17317:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17360:9:62", - "nodeType": "YulIdentifier", - "src": "17360:9:62" - }, - { - "name": "value0", - "nativeSrc": "17371:6:62", - "nodeType": "YulIdentifier", - "src": "17371:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17353:6:62", - "nodeType": "YulIdentifier", - "src": "17353:6:62" - }, - "nativeSrc": "17353:25:62", - "nodeType": "YulFunctionCall", - "src": "17353:25:62" - }, - "nativeSrc": "17353:25:62", - "nodeType": "YulExpressionStatement", - "src": "17353:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17398:9:62", - "nodeType": "YulIdentifier", - "src": "17398:9:62" - }, - { - "kind": "number", - "nativeSrc": "17409:2:62", - "nodeType": "YulLiteral", - "src": "17409:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17394:3:62", - "nodeType": "YulIdentifier", - "src": "17394:3:62" - }, - "nativeSrc": "17394:18:62", - "nodeType": "YulFunctionCall", - "src": "17394:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "17418:6:62", - "nodeType": "YulIdentifier", - "src": "17418:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "17434:3:62", - "nodeType": "YulLiteral", - "src": "17434:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "17439:1:62", - "nodeType": "YulLiteral", - "src": "17439:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "17430:3:62", - "nodeType": "YulIdentifier", - "src": "17430:3:62" - }, - "nativeSrc": "17430:11:62", - "nodeType": "YulFunctionCall", - "src": "17430:11:62" - }, - { - "kind": "number", - "nativeSrc": "17443:1:62", - "nodeType": "YulLiteral", - "src": "17443:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "17426:3:62", - "nodeType": "YulIdentifier", - "src": "17426:3:62" - }, - "nativeSrc": "17426:19:62", - "nodeType": "YulFunctionCall", - "src": "17426:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "17414:3:62", - "nodeType": "YulIdentifier", - "src": "17414:3:62" - }, - "nativeSrc": "17414:32:62", - "nodeType": "YulFunctionCall", - "src": "17414:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17387:6:62", - "nodeType": "YulIdentifier", - "src": "17387:6:62" - }, - "nativeSrc": "17387:60:62", - "nodeType": "YulFunctionCall", - "src": "17387:60:62" - }, - "nativeSrc": "17387:60:62", - "nodeType": "YulExpressionStatement", - "src": "17387:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17467:9:62", - "nodeType": "YulIdentifier", - "src": "17467:9:62" - }, - { - "kind": "number", - "nativeSrc": "17478:2:62", - "nodeType": "YulLiteral", - "src": "17478:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17463:3:62", - "nodeType": "YulIdentifier", - "src": "17463:3:62" - }, - "nativeSrc": "17463:18:62", - "nodeType": "YulFunctionCall", - "src": "17463:18:62" - }, - { - "name": "value2", - "nativeSrc": "17483:6:62", - "nodeType": "YulIdentifier", - "src": "17483:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17456:6:62", - "nodeType": "YulIdentifier", - "src": "17456:6:62" - }, - "nativeSrc": "17456:34:62", - "nodeType": "YulFunctionCall", - "src": "17456:34:62" - }, - "nativeSrc": "17456:34:62", - "nodeType": "YulExpressionStatement", - "src": "17456:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17510:9:62", - "nodeType": "YulIdentifier", - "src": "17510:9:62" - }, - { - "kind": "number", - "nativeSrc": "17521:2:62", - "nodeType": "YulLiteral", - "src": "17521:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17506:3:62", - "nodeType": "YulIdentifier", - "src": "17506:3:62" - }, - "nativeSrc": "17506:18:62", - "nodeType": "YulFunctionCall", - "src": "17506:18:62" - }, - { - "name": "value3", - "nativeSrc": "17526:6:62", - "nodeType": "YulIdentifier", - "src": "17526:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17499:6:62", - "nodeType": "YulIdentifier", - "src": "17499:6:62" - }, - "nativeSrc": "17499:34:62", - "nodeType": "YulFunctionCall", - "src": "17499:34:62" - }, - "nativeSrc": "17499:34:62", - "nodeType": "YulExpressionStatement", - "src": "17499:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_address_t_bytes32_t_uint256__to_t_uint256_t_address_t_bytes32_t_uint256__fromStack_reversed", - "nativeSrc": "17122:417:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "17252:9:62", - "nodeType": "YulTypedName", - "src": "17252:9:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "17263:6:62", - "nodeType": "YulTypedName", - "src": "17263:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "17271:6:62", - "nodeType": "YulTypedName", - "src": "17271:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "17279:6:62", - "nodeType": "YulTypedName", - "src": "17279:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "17287:6:62", - "nodeType": "YulTypedName", - "src": "17287:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "17298:4:62", - "nodeType": "YulTypedName", - "src": "17298:4:62", - "type": "" - } - ], - "src": "17122:417:62" - }, - { - "body": { - "nativeSrc": "17729:206:62", - "nodeType": "YulBlock", - "src": "17729:206:62", - "statements": [ - { - "nativeSrc": "17739:27:62", - "nodeType": "YulAssignment", - "src": "17739:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17751:9:62", - "nodeType": "YulIdentifier", - "src": "17751:9:62" - }, - { - "kind": "number", - "nativeSrc": "17762:3:62", - "nodeType": "YulLiteral", - "src": "17762:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17747:3:62", - "nodeType": "YulIdentifier", - "src": "17747:3:62" - }, - "nativeSrc": "17747:19:62", - "nodeType": "YulFunctionCall", - "src": "17747:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "17739:4:62", - "nodeType": "YulIdentifier", - "src": "17739:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17782:9:62", - "nodeType": "YulIdentifier", - "src": "17782:9:62" - }, - { - "name": "value0", - "nativeSrc": "17793:6:62", - "nodeType": "YulIdentifier", - "src": "17793:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17775:6:62", - "nodeType": "YulIdentifier", - "src": "17775:6:62" - }, - "nativeSrc": "17775:25:62", - "nodeType": "YulFunctionCall", - "src": "17775:25:62" - }, - "nativeSrc": "17775:25:62", - "nodeType": "YulExpressionStatement", - "src": "17775:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17820:9:62", - "nodeType": "YulIdentifier", - "src": "17820:9:62" - }, - { - "kind": "number", - "nativeSrc": "17831:2:62", - "nodeType": "YulLiteral", - "src": "17831:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17816:3:62", - "nodeType": "YulIdentifier", - "src": "17816:3:62" - }, - "nativeSrc": "17816:18:62", - "nodeType": "YulFunctionCall", - "src": "17816:18:62" - }, - { - "name": "value1", - "nativeSrc": "17836:6:62", - "nodeType": "YulIdentifier", - "src": "17836:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17809:6:62", - "nodeType": "YulIdentifier", - "src": "17809:6:62" - }, - "nativeSrc": "17809:34:62", - "nodeType": "YulFunctionCall", - "src": "17809:34:62" - }, - "nativeSrc": "17809:34:62", - "nodeType": "YulExpressionStatement", - "src": "17809:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17863:9:62", - "nodeType": "YulIdentifier", - "src": "17863:9:62" - }, - { - "kind": "number", - "nativeSrc": "17874:2:62", - "nodeType": "YulLiteral", - "src": "17874:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17859:3:62", - "nodeType": "YulIdentifier", - "src": "17859:3:62" - }, - "nativeSrc": "17859:18:62", - "nodeType": "YulFunctionCall", - "src": "17859:18:62" - }, - { - "name": "value2", - "nativeSrc": "17879:6:62", - "nodeType": "YulIdentifier", - "src": "17879:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17852:6:62", - "nodeType": "YulIdentifier", - "src": "17852:6:62" - }, - "nativeSrc": "17852:34:62", - "nodeType": "YulFunctionCall", - "src": "17852:34:62" - }, - "nativeSrc": "17852:34:62", - "nodeType": "YulExpressionStatement", - "src": "17852:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17906:9:62", - "nodeType": "YulIdentifier", - "src": "17906:9:62" - }, - { - "kind": "number", - "nativeSrc": "17917:2:62", - "nodeType": "YulLiteral", - "src": "17917:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17902:3:62", - "nodeType": "YulIdentifier", - "src": "17902:3:62" - }, - "nativeSrc": "17902:18:62", - "nodeType": "YulFunctionCall", - "src": "17902:18:62" - }, - { - "name": "value3", - "nativeSrc": "17922:6:62", - "nodeType": "YulIdentifier", - "src": "17922:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17895:6:62", - "nodeType": "YulIdentifier", - "src": "17895:6:62" - }, - "nativeSrc": "17895:34:62", - "nodeType": "YulFunctionCall", - "src": "17895:34:62" - }, - "nativeSrc": "17895:34:62", - "nodeType": "YulExpressionStatement", - "src": "17895:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed", - "nativeSrc": "17544:391:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "17674:9:62", - "nodeType": "YulTypedName", - "src": "17674:9:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "17685:6:62", - "nodeType": "YulTypedName", - "src": "17685:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "17693:6:62", - "nodeType": "YulTypedName", - "src": "17693:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "17701:6:62", - "nodeType": "YulTypedName", - "src": "17701:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "17709:6:62", - "nodeType": "YulTypedName", - "src": "17709:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "17720:4:62", - "nodeType": "YulTypedName", - "src": "17720:4:62", - "type": "" - } - ], - "src": "17544:391:62" - }, - { - "body": { - "nativeSrc": "18188:144:62", - "nodeType": "YulBlock", - "src": "18188:144:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "18205:3:62", - "nodeType": "YulIdentifier", - "src": "18205:3:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18214:3:62", - "nodeType": "YulLiteral", - "src": "18214:3:62", - "type": "", - "value": "240" - }, - { - "kind": "number", - "nativeSrc": "18219:4:62", - "nodeType": "YulLiteral", - "src": "18219:4:62", - "type": "", - "value": "6401" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "18210:3:62", - "nodeType": "YulIdentifier", - "src": "18210:3:62" - }, - "nativeSrc": "18210:14:62", - "nodeType": "YulFunctionCall", - "src": "18210:14:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18198:6:62", - "nodeType": "YulIdentifier", - "src": "18198:6:62" - }, - "nativeSrc": "18198:27:62", - "nodeType": "YulFunctionCall", - "src": "18198:27:62" - }, - "nativeSrc": "18198:27:62", - "nodeType": "YulExpressionStatement", - "src": "18198:27:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "18245:3:62", - "nodeType": "YulIdentifier", - "src": "18245:3:62" - }, - { - "kind": "number", - "nativeSrc": "18250:1:62", - "nodeType": "YulLiteral", - "src": "18250:1:62", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18241:3:62", - "nodeType": "YulIdentifier", - "src": "18241:3:62" - }, - "nativeSrc": "18241:11:62", - "nodeType": "YulFunctionCall", - "src": "18241:11:62" - }, - { - "name": "value0", - "nativeSrc": "18254:6:62", - "nodeType": "YulIdentifier", - "src": "18254:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18234:6:62", - "nodeType": "YulIdentifier", - "src": "18234:6:62" - }, - "nativeSrc": "18234:27:62", - "nodeType": "YulFunctionCall", - "src": "18234:27:62" - }, - "nativeSrc": "18234:27:62", - "nodeType": "YulExpressionStatement", - "src": "18234:27:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "18281:3:62", - "nodeType": "YulIdentifier", - "src": "18281:3:62" - }, - { - "kind": "number", - "nativeSrc": "18286:2:62", - "nodeType": "YulLiteral", - "src": "18286:2:62", - "type": "", - "value": "34" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18277:3:62", - "nodeType": "YulIdentifier", - "src": "18277:3:62" - }, - "nativeSrc": "18277:12:62", - "nodeType": "YulFunctionCall", - "src": "18277:12:62" - }, - { - "name": "value1", - "nativeSrc": "18291:6:62", - "nodeType": "YulIdentifier", - "src": "18291:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18270:6:62", - "nodeType": "YulIdentifier", - "src": "18270:6:62" - }, - "nativeSrc": "18270:28:62", - "nodeType": "YulFunctionCall", - "src": "18270:28:62" - }, - "nativeSrc": "18270:28:62", - "nodeType": "YulExpressionStatement", - "src": "18270:28:62" - }, - { - "nativeSrc": "18307:19:62", - "nodeType": "YulAssignment", - "src": "18307:19:62", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "18318:3:62", - "nodeType": "YulIdentifier", - "src": "18318:3:62" - }, - { - "kind": "number", - "nativeSrc": "18323:2:62", - "nodeType": "YulLiteral", - "src": "18323:2:62", - "type": "", - "value": "66" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18314:3:62", - "nodeType": "YulIdentifier", - "src": "18314:3:62" - }, - "nativeSrc": "18314:12:62", - "nodeType": "YulFunctionCall", - "src": "18314:12:62" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "18307:3:62", - "nodeType": "YulIdentifier", - "src": "18307:3:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "17940:392:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "18156:3:62", - "nodeType": "YulTypedName", - "src": "18156:3:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "18161:6:62", - "nodeType": "YulTypedName", - "src": "18161:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "18169:6:62", - "nodeType": "YulTypedName", - "src": "18169:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "18180:3:62", - "nodeType": "YulTypedName", - "src": "18180:3:62", - "type": "" - } - ], - "src": "17940:392:62" - }, - { - "body": { - "nativeSrc": "18450:992:62", - "nodeType": "YulBlock", - "src": "18450:992:62", - "statements": [ - { - "nativeSrc": "18460:43:62", - "nodeType": "YulVariableDeclaration", - "src": "18460:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "18478:7:62", - "nodeType": "YulIdentifier", - "src": "18478:7:62" - }, - { - "name": "headStart", - "nativeSrc": "18487:9:62", - "nodeType": "YulIdentifier", - "src": "18487:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "18474:3:62", - "nodeType": "YulIdentifier", - "src": "18474:3:62" - }, - "nativeSrc": "18474:23:62", - "nodeType": "YulFunctionCall", - "src": "18474:23:62" - }, - { - "kind": "number", - "nativeSrc": "18499:3:62", - "nodeType": "YulLiteral", - "src": "18499:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "18470:3:62", - "nodeType": "YulIdentifier", - "src": "18470:3:62" - }, - "nativeSrc": "18470:33:62", - "nodeType": "YulFunctionCall", - "src": "18470:33:62" - }, - "variables": [ - { - "name": "_1", - "nativeSrc": "18464:2:62", - "nodeType": "YulTypedName", - "src": "18464:2:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "18518:16:62", - "nodeType": "YulBlock", - "src": "18518:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18527:1:62", - "nodeType": "YulLiteral", - "src": "18527:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "18530:1:62", - "nodeType": "YulLiteral", - "src": "18530:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "18520:6:62", - "nodeType": "YulIdentifier", - "src": "18520:6:62" - }, - "nativeSrc": "18520:12:62", - "nodeType": "YulFunctionCall", - "src": "18520:12:62" - }, - "nativeSrc": "18520:12:62", - "nodeType": "YulExpressionStatement", - "src": "18520:12:62" - } - ] - }, - "condition": { - "name": "_1", - "nativeSrc": "18515:2:62", - "nodeType": "YulIdentifier", - "src": "18515:2:62" - }, - "nativeSrc": "18512:22:62", - "nodeType": "YulIf", - "src": "18512:22:62" - }, - { - "nativeSrc": "18543:7:62", - "nodeType": "YulAssignment", - "src": "18543:7:62", - "value": { - "kind": "number", - "nativeSrc": "18549:1:62", - "nodeType": "YulLiteral", - "src": "18549:1:62", - "type": "", - "value": "0" - }, - "variableNames": [ - { - "name": "_1", - "nativeSrc": "18543:2:62", - "nodeType": "YulIdentifier", - "src": "18543:2:62" - } - ] - }, - { - "nativeSrc": "18559:16:62", - "nodeType": "YulVariableDeclaration", - "src": "18559:16:62", - "value": { - "name": "_1", - "nativeSrc": "18573:2:62", - "nodeType": "YulIdentifier", - "src": "18573:2:62" - }, - "variables": [ - { - "name": "memPtr", - "nativeSrc": "18563:6:62", - "nodeType": "YulTypedName", - "src": "18563:6:62", - "type": "" - } - ] - }, - { - "nativeSrc": "18584:19:62", - "nodeType": "YulAssignment", - "src": "18584:19:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18600:2:62", - "nodeType": "YulLiteral", - "src": "18600:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "18594:5:62", - "nodeType": "YulIdentifier", - "src": "18594:5:62" - }, - "nativeSrc": "18594:9:62", - "nodeType": "YulFunctionCall", - "src": "18594:9:62" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "18584:6:62", - "nodeType": "YulIdentifier", - "src": "18584:6:62" - } - ] - }, - { - "nativeSrc": "18612:34:62", - "nodeType": "YulVariableDeclaration", - "src": "18612:34:62", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "18634:6:62", - "nodeType": "YulIdentifier", - "src": "18634:6:62" - }, - { - "kind": "number", - "nativeSrc": "18642:3:62", - "nodeType": "YulLiteral", - "src": "18642:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18630:3:62", - "nodeType": "YulIdentifier", - "src": "18630:3:62" - }, - "nativeSrc": "18630:16:62", - "nodeType": "YulFunctionCall", - "src": "18630:16:62" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "18616:10:62", - "nodeType": "YulTypedName", - "src": "18616:10:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "18729:113:62", - "nodeType": "YulBlock", - "src": "18729:113:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "_1", - "nativeSrc": "18750:2:62", - "nodeType": "YulIdentifier", - "src": "18750:2:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18758:3:62", - "nodeType": "YulLiteral", - "src": "18758:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "18763:10:62", - "nodeType": "YulLiteral", - "src": "18763:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "18754:3:62", - "nodeType": "YulIdentifier", - "src": "18754:3:62" - }, - "nativeSrc": "18754:20:62", - "nodeType": "YulFunctionCall", - "src": "18754:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18743:6:62", - "nodeType": "YulIdentifier", - "src": "18743:6:62" - }, - "nativeSrc": "18743:32:62", - "nodeType": "YulFunctionCall", - "src": "18743:32:62" - }, - "nativeSrc": "18743:32:62", - "nodeType": "YulExpressionStatement", - "src": "18743:32:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18795:1:62", - "nodeType": "YulLiteral", - "src": "18795:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "18798:4:62", - "nodeType": "YulLiteral", - "src": "18798:4:62", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18788:6:62", - "nodeType": "YulIdentifier", - "src": "18788:6:62" - }, - "nativeSrc": "18788:15:62", - "nodeType": "YulFunctionCall", - "src": "18788:15:62" - }, - "nativeSrc": "18788:15:62", - "nodeType": "YulExpressionStatement", - "src": "18788:15:62" - }, - { - "expression": { - "arguments": [ - { - "name": "_1", - "nativeSrc": "18823:2:62", - "nodeType": "YulIdentifier", - "src": "18823:2:62" - }, - { - "kind": "number", - "nativeSrc": "18827:4:62", - "nodeType": "YulLiteral", - "src": "18827:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "18816:6:62", - "nodeType": "YulIdentifier", - "src": "18816:6:62" - }, - "nativeSrc": "18816:16:62", - "nodeType": "YulFunctionCall", - "src": "18816:16:62" - }, - "nativeSrc": "18816:16:62", - "nodeType": "YulExpressionStatement", - "src": "18816:16:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "18664:10:62", - "nodeType": "YulIdentifier", - "src": "18664:10:62" - }, - { - "kind": "number", - "nativeSrc": "18676:18:62", - "nodeType": "YulLiteral", - "src": "18676:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "18661:2:62", - "nodeType": "YulIdentifier", - "src": "18661:2:62" - }, - "nativeSrc": "18661:34:62", - "nodeType": "YulFunctionCall", - "src": "18661:34:62" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "18700:10:62", - "nodeType": "YulIdentifier", - "src": "18700:10:62" - }, - { - "name": "memPtr", - "nativeSrc": "18712:6:62", - "nodeType": "YulIdentifier", - "src": "18712:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "18697:2:62", - "nodeType": "YulIdentifier", - "src": "18697:2:62" - }, - "nativeSrc": "18697:22:62", - "nodeType": "YulFunctionCall", - "src": "18697:22:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "18658:2:62", - "nodeType": "YulIdentifier", - "src": "18658:2:62" - }, - "nativeSrc": "18658:62:62", - "nodeType": "YulFunctionCall", - "src": "18658:62:62" - }, - "nativeSrc": "18655:187:62", - "nodeType": "YulIf", - "src": "18655:187:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18858:2:62", - "nodeType": "YulLiteral", - "src": "18858:2:62", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "18862:10:62", - "nodeType": "YulIdentifier", - "src": "18862:10:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18851:6:62", - "nodeType": "YulIdentifier", - "src": "18851:6:62" - }, - "nativeSrc": "18851:22:62", - "nodeType": "YulFunctionCall", - "src": "18851:22:62" - }, - "nativeSrc": "18851:22:62", - "nodeType": "YulExpressionStatement", - "src": "18851:22:62" - }, - { - "nativeSrc": "18882:15:62", - "nodeType": "YulVariableDeclaration", - "src": "18882:15:62", - "value": { - "name": "_1", - "nativeSrc": "18895:2:62", - "nodeType": "YulIdentifier", - "src": "18895:2:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "18886:5:62", - "nodeType": "YulTypedName", - "src": "18886:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "18906:25:62", - "nodeType": "YulAssignment", - "src": "18906:25:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "18921:9:62", - "nodeType": "YulIdentifier", - "src": "18921:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "18915:5:62", - "nodeType": "YulIdentifier", - "src": "18915:5:62" - }, - "nativeSrc": "18915:16:62", - "nodeType": "YulFunctionCall", - "src": "18915:16:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "18906:5:62", - "nodeType": "YulIdentifier", - "src": "18906:5:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "18947:6:62", - "nodeType": "YulIdentifier", - "src": "18947:6:62" - }, - { - "name": "value", - "nativeSrc": "18955:5:62", - "nodeType": "YulIdentifier", - "src": "18955:5:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18940:6:62", - "nodeType": "YulIdentifier", - "src": "18940:6:62" - }, - "nativeSrc": "18940:21:62", - "nodeType": "YulFunctionCall", - "src": "18940:21:62" - }, - "nativeSrc": "18940:21:62", - "nodeType": "YulExpressionStatement", - "src": "18940:21:62" - }, - { - "nativeSrc": "18970:17:62", - "nodeType": "YulVariableDeclaration", - "src": "18970:17:62", - "value": { - "name": "_1", - "nativeSrc": "18985:2:62", - "nodeType": "YulIdentifier", - "src": "18985:2:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "18974:7:62", - "nodeType": "YulTypedName", - "src": "18974:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "18996:36:62", - "nodeType": "YulAssignment", - "src": "18996:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "19017:9:62", - "nodeType": "YulIdentifier", - "src": "19017:9:62" - }, - { - "kind": "number", - "nativeSrc": "19028:2:62", - "nodeType": "YulLiteral", - "src": "19028:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19013:3:62", - "nodeType": "YulIdentifier", - "src": "19013:3:62" - }, - "nativeSrc": "19013:18:62", - "nodeType": "YulFunctionCall", - "src": "19013:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "19007:5:62", - "nodeType": "YulIdentifier", - "src": "19007:5:62" - }, - "nativeSrc": "19007:25:62", - "nodeType": "YulFunctionCall", - "src": "19007:25:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "18996:7:62", - "nodeType": "YulIdentifier", - "src": "18996:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "19052:6:62", - "nodeType": "YulIdentifier", - "src": "19052:6:62" - }, - { - "kind": "number", - "nativeSrc": "19060:2:62", - "nodeType": "YulLiteral", - "src": "19060:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19048:3:62", - "nodeType": "YulIdentifier", - "src": "19048:3:62" - }, - "nativeSrc": "19048:15:62", - "nodeType": "YulFunctionCall", - "src": "19048:15:62" - }, - { - "name": "value_1", - "nativeSrc": "19065:7:62", - "nodeType": "YulIdentifier", - "src": "19065:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "19041:6:62", - "nodeType": "YulIdentifier", - "src": "19041:6:62" - }, - "nativeSrc": "19041:32:62", - "nodeType": "YulFunctionCall", - "src": "19041:32:62" - }, - "nativeSrc": "19041:32:62", - "nodeType": "YulExpressionStatement", - "src": "19041:32:62" - }, - { - "nativeSrc": "19082:17:62", - "nodeType": "YulVariableDeclaration", - "src": "19082:17:62", - "value": { - "name": "_1", - "nativeSrc": "19097:2:62", - "nodeType": "YulIdentifier", - "src": "19097:2:62" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "19086:7:62", - "nodeType": "YulTypedName", - "src": "19086:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "19108:36:62", - "nodeType": "YulAssignment", - "src": "19108:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "19129:9:62", - "nodeType": "YulIdentifier", - "src": "19129:9:62" - }, - { - "kind": "number", - "nativeSrc": "19140:2:62", - "nodeType": "YulLiteral", - "src": "19140:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19125:3:62", - "nodeType": "YulIdentifier", - "src": "19125:3:62" - }, - "nativeSrc": "19125:18:62", - "nodeType": "YulFunctionCall", - "src": "19125:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "19119:5:62", - "nodeType": "YulIdentifier", - "src": "19119:5:62" - }, - "nativeSrc": "19119:25:62", - "nodeType": "YulFunctionCall", - "src": "19119:25:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "19108:7:62", - "nodeType": "YulIdentifier", - "src": "19108:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "19164:6:62", - "nodeType": "YulIdentifier", - "src": "19164:6:62" - }, - { - "kind": "number", - "nativeSrc": "19172:2:62", - "nodeType": "YulLiteral", - "src": "19172:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19160:3:62", - "nodeType": "YulIdentifier", - "src": "19160:3:62" - }, - "nativeSrc": "19160:15:62", - "nodeType": "YulFunctionCall", - "src": "19160:15:62" - }, - { - "name": "value_2", - "nativeSrc": "19177:7:62", - "nodeType": "YulIdentifier", - "src": "19177:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "19153:6:62", - "nodeType": "YulIdentifier", - "src": "19153:6:62" - }, - "nativeSrc": "19153:32:62", - "nodeType": "YulFunctionCall", - "src": "19153:32:62" - }, - "nativeSrc": "19153:32:62", - "nodeType": "YulExpressionStatement", - "src": "19153:32:62" - }, - { - "nativeSrc": "19194:17:62", - "nodeType": "YulVariableDeclaration", - "src": "19194:17:62", - "value": { - "name": "_1", - "nativeSrc": "19209:2:62", - "nodeType": "YulIdentifier", - "src": "19209:2:62" - }, - "variables": [ - { - "name": "value_3", - "nativeSrc": "19198:7:62", - "nodeType": "YulTypedName", - "src": "19198:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "19220:36:62", - "nodeType": "YulAssignment", - "src": "19220:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "19241:9:62", - "nodeType": "YulIdentifier", - "src": "19241:9:62" - }, - { - "kind": "number", - "nativeSrc": "19252:2:62", - "nodeType": "YulLiteral", - "src": "19252:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19237:3:62", - "nodeType": "YulIdentifier", - "src": "19237:3:62" - }, - "nativeSrc": "19237:18:62", - "nodeType": "YulFunctionCall", - "src": "19237:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "19231:5:62", - "nodeType": "YulIdentifier", - "src": "19231:5:62" - }, - "nativeSrc": "19231:25:62", - "nodeType": "YulFunctionCall", - "src": "19231:25:62" - }, - "variableNames": [ - { - "name": "value_3", - "nativeSrc": "19220:7:62", - "nodeType": "YulIdentifier", - "src": "19220:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "19276:6:62", - "nodeType": "YulIdentifier", - "src": "19276:6:62" - }, - { - "kind": "number", - "nativeSrc": "19284:2:62", - "nodeType": "YulLiteral", - "src": "19284:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19272:3:62", - "nodeType": "YulIdentifier", - "src": "19272:3:62" - }, - "nativeSrc": "19272:15:62", - "nodeType": "YulFunctionCall", - "src": "19272:15:62" - }, - { - "name": "value_3", - "nativeSrc": "19289:7:62", - "nodeType": "YulIdentifier", - "src": "19289:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "19265:6:62", - "nodeType": "YulIdentifier", - "src": "19265:6:62" - }, - "nativeSrc": "19265:32:62", - "nodeType": "YulFunctionCall", - "src": "19265:32:62" - }, - "nativeSrc": "19265:32:62", - "nodeType": "YulExpressionStatement", - "src": "19265:32:62" - }, - { - "nativeSrc": "19306:17:62", - "nodeType": "YulVariableDeclaration", - "src": "19306:17:62", - "value": { - "name": "_1", - "nativeSrc": "19321:2:62", - "nodeType": "YulIdentifier", - "src": "19321:2:62" - }, - "variables": [ - { - "name": "value_4", - "nativeSrc": "19310:7:62", - "nodeType": "YulTypedName", - "src": "19310:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "19332:37:62", - "nodeType": "YulAssignment", - "src": "19332:37:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "19353:9:62", - "nodeType": "YulIdentifier", - "src": "19353:9:62" - }, - { - "kind": "number", - "nativeSrc": "19364:3:62", - "nodeType": "YulLiteral", - "src": "19364:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19349:3:62", - "nodeType": "YulIdentifier", - "src": "19349:3:62" - }, - "nativeSrc": "19349:19:62", - "nodeType": "YulFunctionCall", - "src": "19349:19:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "19343:5:62", - "nodeType": "YulIdentifier", - "src": "19343:5:62" - }, - "nativeSrc": "19343:26:62", - "nodeType": "YulFunctionCall", - "src": "19343:26:62" - }, - "variableNames": [ - { - "name": "value_4", - "nativeSrc": "19332:7:62", - "nodeType": "YulIdentifier", - "src": "19332:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "19389:6:62", - "nodeType": "YulIdentifier", - "src": "19389:6:62" - }, - { - "kind": "number", - "nativeSrc": "19397:3:62", - "nodeType": "YulLiteral", - "src": "19397:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19385:3:62", - "nodeType": "YulIdentifier", - "src": "19385:3:62" - }, - "nativeSrc": "19385:16:62", - "nodeType": "YulFunctionCall", - "src": "19385:16:62" - }, - { - "name": "value_4", - "nativeSrc": "19403:7:62", - "nodeType": "YulIdentifier", - "src": "19403:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "19378:6:62", - "nodeType": "YulIdentifier", - "src": "19378:6:62" - }, - "nativeSrc": "19378:33:62", - "nodeType": "YulFunctionCall", - "src": "19378:33:62" - }, - "nativeSrc": "19378:33:62", - "nodeType": "YulExpressionStatement", - "src": "19378:33:62" - }, - { - "nativeSrc": "19420:16:62", - "nodeType": "YulAssignment", - "src": "19420:16:62", - "value": { - "name": "memPtr", - "nativeSrc": "19430:6:62", - "nodeType": "YulIdentifier", - "src": "19430:6:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "19420:6:62", - "nodeType": "YulIdentifier", - "src": "19420:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_struct$_DelegationPool_$3748_memory_ptr_fromMemory", - "nativeSrc": "18337:1105:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "18416:9:62", - "nodeType": "YulTypedName", - "src": "18416:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "18427:7:62", - "nodeType": "YulTypedName", - "src": "18427:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "18439:6:62", - "nodeType": "YulTypedName", - "src": "18439:6:62", - "type": "" - } - ], - "src": "18337:1105:62" - }, - { - "body": { - "nativeSrc": "19527:169:62", - "nodeType": "YulBlock", - "src": "19527:169:62", - "statements": [ - { - "body": { - "nativeSrc": "19573:16:62", - "nodeType": "YulBlock", - "src": "19573:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "19582:1:62", - "nodeType": "YulLiteral", - "src": "19582:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "19585:1:62", - "nodeType": "YulLiteral", - "src": "19585:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "19575:6:62", - "nodeType": "YulIdentifier", - "src": "19575:6:62" - }, - "nativeSrc": "19575:12:62", - "nodeType": "YulFunctionCall", - "src": "19575:12:62" - }, - "nativeSrc": "19575:12:62", - "nodeType": "YulExpressionStatement", - "src": "19575:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "19548:7:62", - "nodeType": "YulIdentifier", - "src": "19548:7:62" - }, - { - "name": "headStart", - "nativeSrc": "19557:9:62", - "nodeType": "YulIdentifier", - "src": "19557:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "19544:3:62", - "nodeType": "YulIdentifier", - "src": "19544:3:62" - }, - "nativeSrc": "19544:23:62", - "nodeType": "YulFunctionCall", - "src": "19544:23:62" - }, - { - "kind": "number", - "nativeSrc": "19569:2:62", - "nodeType": "YulLiteral", - "src": "19569:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "19540:3:62", - "nodeType": "YulIdentifier", - "src": "19540:3:62" - }, - "nativeSrc": "19540:32:62", - "nodeType": "YulFunctionCall", - "src": "19540:32:62" - }, - "nativeSrc": "19537:52:62", - "nodeType": "YulIf", - "src": "19537:52:62" - }, - { - "nativeSrc": "19598:29:62", - "nodeType": "YulVariableDeclaration", - "src": "19598:29:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "19617:9:62", - "nodeType": "YulIdentifier", - "src": "19617:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "19611:5:62", - "nodeType": "YulIdentifier", - "src": "19611:5:62" - }, - "nativeSrc": "19611:16:62", - "nodeType": "YulFunctionCall", - "src": "19611:16:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "19602:5:62", - "nodeType": "YulTypedName", - "src": "19602:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "19660:5:62", - "nodeType": "YulIdentifier", - "src": "19660:5:62" - } - ], - "functionName": { - "name": "validator_revert_uint32", - "nativeSrc": "19636:23:62", - "nodeType": "YulIdentifier", - "src": "19636:23:62" - }, - "nativeSrc": "19636:30:62", - "nodeType": "YulFunctionCall", - "src": "19636:30:62" - }, - "nativeSrc": "19636:30:62", - "nodeType": "YulExpressionStatement", - "src": "19636:30:62" - }, - { - "nativeSrc": "19675:15:62", - "nodeType": "YulAssignment", - "src": "19675:15:62", - "value": { - "name": "value", - "nativeSrc": "19685:5:62", - "nodeType": "YulIdentifier", - "src": "19685:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "19675:6:62", - "nodeType": "YulIdentifier", - "src": "19675:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint32_fromMemory", - "nativeSrc": "19447:249:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "19493:9:62", - "nodeType": "YulTypedName", - "src": "19493:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "19504:7:62", - "nodeType": "YulTypedName", - "src": "19504:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "19516:6:62", - "nodeType": "YulTypedName", - "src": "19516:6:62", - "type": "" - } - ], - "src": "19447:249:62" - }, - { - "body": { - "nativeSrc": "19753:116:62", - "nodeType": "YulBlock", - "src": "19753:116:62", - "statements": [ - { - "nativeSrc": "19763:20:62", - "nodeType": "YulAssignment", - "src": "19763:20:62", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "19778:1:62", - "nodeType": "YulIdentifier", - "src": "19778:1:62" - }, - { - "name": "y", - "nativeSrc": "19781:1:62", - "nodeType": "YulIdentifier", - "src": "19781:1:62" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "19774:3:62", - "nodeType": "YulIdentifier", - "src": "19774:3:62" - }, - "nativeSrc": "19774:9:62", - "nodeType": "YulFunctionCall", - "src": "19774:9:62" - }, - "variableNames": [ - { - "name": "product", - "nativeSrc": "19763:7:62", - "nodeType": "YulIdentifier", - "src": "19763:7:62" - } - ] - }, - { - "body": { - "nativeSrc": "19841:22:62", - "nodeType": "YulBlock", - "src": "19841:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "19843:16:62", - "nodeType": "YulIdentifier", - "src": "19843:16:62" - }, - "nativeSrc": "19843:18:62", - "nodeType": "YulFunctionCall", - "src": "19843:18:62" - }, - "nativeSrc": "19843:18:62", - "nodeType": "YulExpressionStatement", - "src": "19843:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "x", - "nativeSrc": "19812:1:62", - "nodeType": "YulIdentifier", - "src": "19812:1:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "19805:6:62", - "nodeType": "YulIdentifier", - "src": "19805:6:62" - }, - "nativeSrc": "19805:9:62", - "nodeType": "YulFunctionCall", - "src": "19805:9:62" - }, - { - "arguments": [ - { - "name": "y", - "nativeSrc": "19819:1:62", - "nodeType": "YulIdentifier", - "src": "19819:1:62" - }, - { - "arguments": [ - { - "name": "product", - "nativeSrc": "19826:7:62", - "nodeType": "YulIdentifier", - "src": "19826:7:62" - }, - { - "name": "x", - "nativeSrc": "19835:1:62", - "nodeType": "YulIdentifier", - "src": "19835:1:62" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "19822:3:62", - "nodeType": "YulIdentifier", - "src": "19822:3:62" - }, - "nativeSrc": "19822:15:62", - "nodeType": "YulFunctionCall", - "src": "19822:15:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "19816:2:62", - "nodeType": "YulIdentifier", - "src": "19816:2:62" - }, - "nativeSrc": "19816:22:62", - "nodeType": "YulFunctionCall", - "src": "19816:22:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "19802:2:62", - "nodeType": "YulIdentifier", - "src": "19802:2:62" - }, - "nativeSrc": "19802:37:62", - "nodeType": "YulFunctionCall", - "src": "19802:37:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "19795:6:62", - "nodeType": "YulIdentifier", - "src": "19795:6:62" - }, - "nativeSrc": "19795:45:62", - "nodeType": "YulFunctionCall", - "src": "19795:45:62" - }, - "nativeSrc": "19792:71:62", - "nodeType": "YulIf", - "src": "19792:71:62" - } - ] - }, - "name": "checked_mul_t_uint256", - "nativeSrc": "19701:168:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "19732:1:62", - "nodeType": "YulTypedName", - "src": "19732:1:62", - "type": "" - }, - { - "name": "y", - "nativeSrc": "19735:1:62", - "nodeType": "YulTypedName", - "src": "19735:1:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "product", - "nativeSrc": "19741:7:62", - "nodeType": "YulTypedName", - "src": "19741:7:62", - "type": "" - } - ], - "src": "19701:168:62" - }, - { - "body": { - "nativeSrc": "19989:341:62", - "nodeType": "YulBlock", - "src": "19989:341:62", - "statements": [ - { - "body": { - "nativeSrc": "20035:16:62", - "nodeType": "YulBlock", - "src": "20035:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "20044:1:62", - "nodeType": "YulLiteral", - "src": "20044:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "20047:1:62", - "nodeType": "YulLiteral", - "src": "20047:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "20037:6:62", - "nodeType": "YulIdentifier", - "src": "20037:6:62" - }, - "nativeSrc": "20037:12:62", - "nodeType": "YulFunctionCall", - "src": "20037:12:62" - }, - "nativeSrc": "20037:12:62", - "nodeType": "YulExpressionStatement", - "src": "20037:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "20010:7:62", - "nodeType": "YulIdentifier", - "src": "20010:7:62" - }, - { - "name": "headStart", - "nativeSrc": "20019:9:62", - "nodeType": "YulIdentifier", - "src": "20019:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "20006:3:62", - "nodeType": "YulIdentifier", - "src": "20006:3:62" - }, - "nativeSrc": "20006:23:62", - "nodeType": "YulFunctionCall", - "src": "20006:23:62" - }, - { - "kind": "number", - "nativeSrc": "20031:2:62", - "nodeType": "YulLiteral", - "src": "20031:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "20002:3:62", - "nodeType": "YulIdentifier", - "src": "20002:3:62" - }, - "nativeSrc": "20002:32:62", - "nodeType": "YulFunctionCall", - "src": "20002:32:62" - }, - "nativeSrc": "19999:52:62", - "nodeType": "YulIf", - "src": "19999:52:62" - }, - { - "nativeSrc": "20060:14:62", - "nodeType": "YulVariableDeclaration", - "src": "20060:14:62", - "value": { - "kind": "number", - "nativeSrc": "20073:1:62", - "nodeType": "YulLiteral", - "src": "20073:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "20064:5:62", - "nodeType": "YulTypedName", - "src": "20064:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "20083:25:62", - "nodeType": "YulAssignment", - "src": "20083:25:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20098:9:62", - "nodeType": "YulIdentifier", - "src": "20098:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "20092:5:62", - "nodeType": "YulIdentifier", - "src": "20092:5:62" - }, - "nativeSrc": "20092:16:62", - "nodeType": "YulFunctionCall", - "src": "20092:16:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "20083:5:62", - "nodeType": "YulIdentifier", - "src": "20083:5:62" - } - ] - }, - { - "nativeSrc": "20117:15:62", - "nodeType": "YulAssignment", - "src": "20117:15:62", - "value": { - "name": "value", - "nativeSrc": "20127:5:62", - "nodeType": "YulIdentifier", - "src": "20127:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "20117:6:62", - "nodeType": "YulIdentifier", - "src": "20117:6:62" - } - ] - }, - { - "nativeSrc": "20141:16:62", - "nodeType": "YulVariableDeclaration", - "src": "20141:16:62", - "value": { - "kind": "number", - "nativeSrc": "20156:1:62", - "nodeType": "YulLiteral", - "src": "20156:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "20145:7:62", - "nodeType": "YulTypedName", - "src": "20145:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "20166:36:62", - "nodeType": "YulAssignment", - "src": "20166:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20187:9:62", - "nodeType": "YulIdentifier", - "src": "20187:9:62" - }, - { - "kind": "number", - "nativeSrc": "20198:2:62", - "nodeType": "YulLiteral", - "src": "20198:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20183:3:62", - "nodeType": "YulIdentifier", - "src": "20183:3:62" - }, - "nativeSrc": "20183:18:62", - "nodeType": "YulFunctionCall", - "src": "20183:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "20177:5:62", - "nodeType": "YulIdentifier", - "src": "20177:5:62" - }, - "nativeSrc": "20177:25:62", - "nodeType": "YulFunctionCall", - "src": "20177:25:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "20166:7:62", - "nodeType": "YulIdentifier", - "src": "20166:7:62" - } - ] - }, - { - "nativeSrc": "20211:17:62", - "nodeType": "YulAssignment", - "src": "20211:17:62", - "value": { - "name": "value_1", - "nativeSrc": "20221:7:62", - "nodeType": "YulIdentifier", - "src": "20221:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "20211:6:62", - "nodeType": "YulIdentifier", - "src": "20211:6:62" - } - ] - }, - { - "nativeSrc": "20237:16:62", - "nodeType": "YulVariableDeclaration", - "src": "20237:16:62", - "value": { - "kind": "number", - "nativeSrc": "20252:1:62", - "nodeType": "YulLiteral", - "src": "20252:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "20241:7:62", - "nodeType": "YulTypedName", - "src": "20241:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "20262:36:62", - "nodeType": "YulAssignment", - "src": "20262:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20283:9:62", - "nodeType": "YulIdentifier", - "src": "20283:9:62" - }, - { - "kind": "number", - "nativeSrc": "20294:2:62", - "nodeType": "YulLiteral", - "src": "20294:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20279:3:62", - "nodeType": "YulIdentifier", - "src": "20279:3:62" - }, - "nativeSrc": "20279:18:62", - "nodeType": "YulFunctionCall", - "src": "20279:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "20273:5:62", - "nodeType": "YulIdentifier", - "src": "20273:5:62" - }, - "nativeSrc": "20273:25:62", - "nodeType": "YulFunctionCall", - "src": "20273:25:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "20262:7:62", - "nodeType": "YulIdentifier", - "src": "20262:7:62" - } - ] - }, - { - "nativeSrc": "20307:17:62", - "nodeType": "YulAssignment", - "src": "20307:17:62", - "value": { - "name": "value_2", - "nativeSrc": "20317:7:62", - "nodeType": "YulIdentifier", - "src": "20317:7:62" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "20307:6:62", - "nodeType": "YulIdentifier", - "src": "20307:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_bytes32t_bytes32_fromMemory", - "nativeSrc": "19874:456:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "19939:9:62", - "nodeType": "YulTypedName", - "src": "19939:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "19950:7:62", - "nodeType": "YulTypedName", - "src": "19950:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "19962:6:62", - "nodeType": "YulTypedName", - "src": "19962:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "19970:6:62", - "nodeType": "YulTypedName", - "src": "19970:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "19978:6:62", - "nodeType": "YulTypedName", - "src": "19978:6:62", - "type": "" - } - ], - "src": "19874:456:62" - }, - { - "body": { - "nativeSrc": "20566:291:62", - "nodeType": "YulBlock", - "src": "20566:291:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "20583:3:62", - "nodeType": "YulIdentifier", - "src": "20583:3:62" - }, - { - "name": "value0", - "nativeSrc": "20588:6:62", - "nodeType": "YulIdentifier", - "src": "20588:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "20576:6:62", - "nodeType": "YulIdentifier", - "src": "20576:6:62" - }, - "nativeSrc": "20576:19:62", - "nodeType": "YulFunctionCall", - "src": "20576:19:62" - }, - "nativeSrc": "20576:19:62", - "nodeType": "YulExpressionStatement", - "src": "20576:19:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "20615:3:62", - "nodeType": "YulIdentifier", - "src": "20615:3:62" - }, - { - "kind": "number", - "nativeSrc": "20620:2:62", - "nodeType": "YulLiteral", - "src": "20620:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20611:3:62", - "nodeType": "YulIdentifier", - "src": "20611:3:62" - }, - "nativeSrc": "20611:12:62", - "nodeType": "YulFunctionCall", - "src": "20611:12:62" - }, - { - "name": "value1", - "nativeSrc": "20625:6:62", - "nodeType": "YulIdentifier", - "src": "20625:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "20604:6:62", - "nodeType": "YulIdentifier", - "src": "20604:6:62" - }, - "nativeSrc": "20604:28:62", - "nodeType": "YulFunctionCall", - "src": "20604:28:62" - }, - "nativeSrc": "20604:28:62", - "nodeType": "YulExpressionStatement", - "src": "20604:28:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "20652:3:62", - "nodeType": "YulIdentifier", - "src": "20652:3:62" - }, - { - "kind": "number", - "nativeSrc": "20657:2:62", - "nodeType": "YulLiteral", - "src": "20657:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20648:3:62", - "nodeType": "YulIdentifier", - "src": "20648:3:62" - }, - "nativeSrc": "20648:12:62", - "nodeType": "YulFunctionCall", - "src": "20648:12:62" - }, - { - "name": "value2", - "nativeSrc": "20662:6:62", - "nodeType": "YulIdentifier", - "src": "20662:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "20641:6:62", - "nodeType": "YulIdentifier", - "src": "20641:6:62" - }, - "nativeSrc": "20641:28:62", - "nodeType": "YulFunctionCall", - "src": "20641:28:62" - }, - "nativeSrc": "20641:28:62", - "nodeType": "YulExpressionStatement", - "src": "20641:28:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "20689:3:62", - "nodeType": "YulIdentifier", - "src": "20689:3:62" - }, - { - "kind": "number", - "nativeSrc": "20694:2:62", - "nodeType": "YulLiteral", - "src": "20694:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20685:3:62", - "nodeType": "YulIdentifier", - "src": "20685:3:62" - }, - "nativeSrc": "20685:12:62", - "nodeType": "YulFunctionCall", - "src": "20685:12:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "20707:2:62", - "nodeType": "YulLiteral", - "src": "20707:2:62", - "type": "", - "value": "96" - }, - { - "name": "value3", - "nativeSrc": "20711:6:62", - "nodeType": "YulIdentifier", - "src": "20711:6:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "20703:3:62", - "nodeType": "YulIdentifier", - "src": "20703:3:62" - }, - "nativeSrc": "20703:15:62", - "nodeType": "YulFunctionCall", - "src": "20703:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "20732:2:62", - "nodeType": "YulLiteral", - "src": "20732:2:62", - "type": "", - "value": "96" - }, - { - "kind": "number", - "nativeSrc": "20736:1:62", - "nodeType": "YulLiteral", - "src": "20736:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "20728:3:62", - "nodeType": "YulIdentifier", - "src": "20728:3:62" - }, - "nativeSrc": "20728:10:62", - "nodeType": "YulFunctionCall", - "src": "20728:10:62" - }, - { - "kind": "number", - "nativeSrc": "20740:1:62", - "nodeType": "YulLiteral", - "src": "20740:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "20724:3:62", - "nodeType": "YulIdentifier", - "src": "20724:3:62" - }, - "nativeSrc": "20724:18:62", - "nodeType": "YulFunctionCall", - "src": "20724:18:62" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "20720:3:62", - "nodeType": "YulIdentifier", - "src": "20720:3:62" - }, - "nativeSrc": "20720:23:62", - "nodeType": "YulFunctionCall", - "src": "20720:23:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "20699:3:62", - "nodeType": "YulIdentifier", - "src": "20699:3:62" - }, - "nativeSrc": "20699:45:62", - "nodeType": "YulFunctionCall", - "src": "20699:45:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "20678:6:62", - "nodeType": "YulIdentifier", - "src": "20678:6:62" - }, - "nativeSrc": "20678:67:62", - "nodeType": "YulFunctionCall", - "src": "20678:67:62" - }, - "nativeSrc": "20678:67:62", - "nodeType": "YulExpressionStatement", - "src": "20678:67:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "20765:3:62", - "nodeType": "YulIdentifier", - "src": "20765:3:62" - }, - { - "kind": "number", - "nativeSrc": "20770:3:62", - "nodeType": "YulLiteral", - "src": "20770:3:62", - "type": "", - "value": "116" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20761:3:62", - "nodeType": "YulIdentifier", - "src": "20761:3:62" - }, - "nativeSrc": "20761:13:62", - "nodeType": "YulFunctionCall", - "src": "20761:13:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "20784:2:62", - "nodeType": "YulLiteral", - "src": "20784:2:62", - "type": "", - "value": "96" - }, - { - "name": "value4", - "nativeSrc": "20788:6:62", - "nodeType": "YulIdentifier", - "src": "20788:6:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "20780:3:62", - "nodeType": "YulIdentifier", - "src": "20780:3:62" - }, - "nativeSrc": "20780:15:62", - "nodeType": "YulFunctionCall", - "src": "20780:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "20809:2:62", - "nodeType": "YulLiteral", - "src": "20809:2:62", - "type": "", - "value": "96" - }, - { - "kind": "number", - "nativeSrc": "20813:1:62", - "nodeType": "YulLiteral", - "src": "20813:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "20805:3:62", - "nodeType": "YulIdentifier", - "src": "20805:3:62" - }, - "nativeSrc": "20805:10:62", - "nodeType": "YulFunctionCall", - "src": "20805:10:62" - }, - { - "kind": "number", - "nativeSrc": "20817:1:62", - "nodeType": "YulLiteral", - "src": "20817:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "20801:3:62", - "nodeType": "YulIdentifier", - "src": "20801:3:62" - }, - "nativeSrc": "20801:18:62", - "nodeType": "YulFunctionCall", - "src": "20801:18:62" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "20797:3:62", - "nodeType": "YulIdentifier", - "src": "20797:3:62" - }, - "nativeSrc": "20797:23:62", - "nodeType": "YulFunctionCall", - "src": "20797:23:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "20776:3:62", - "nodeType": "YulIdentifier", - "src": "20776:3:62" - }, - "nativeSrc": "20776:45:62", - "nodeType": "YulFunctionCall", - "src": "20776:45:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "20754:6:62", - "nodeType": "YulIdentifier", - "src": "20754:6:62" - }, - "nativeSrc": "20754:68:62", - "nodeType": "YulFunctionCall", - "src": "20754:68:62" - }, - "nativeSrc": "20754:68:62", - "nodeType": "YulExpressionStatement", - "src": "20754:68:62" - }, - { - "nativeSrc": "20831:20:62", - "nodeType": "YulAssignment", - "src": "20831:20:62", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "20842:3:62", - "nodeType": "YulIdentifier", - "src": "20842:3:62" - }, - { - "kind": "number", - "nativeSrc": "20847:3:62", - "nodeType": "YulLiteral", - "src": "20847:3:62", - "type": "", - "value": "136" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20838:3:62", - "nodeType": "YulIdentifier", - "src": "20838:3:62" - }, - "nativeSrc": "20838:13:62", - "nodeType": "YulFunctionCall", - "src": "20838:13:62" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "20831:3:62", - "nodeType": "YulIdentifier", - "src": "20831:3:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32_t_address_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_address__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "20335:522:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "20510:3:62", - "nodeType": "YulTypedName", - "src": "20510:3:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "20515:6:62", - "nodeType": "YulTypedName", - "src": "20515:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "20523:6:62", - "nodeType": "YulTypedName", - "src": "20523:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "20531:6:62", - "nodeType": "YulTypedName", - "src": "20531:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "20539:6:62", - "nodeType": "YulTypedName", - "src": "20539:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "20547:6:62", - "nodeType": "YulTypedName", - "src": "20547:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "20558:3:62", - "nodeType": "YulTypedName", - "src": "20558:3:62", - "type": "" - } - ], - "src": "20335:522:62" - }, - { - "body": { - "nativeSrc": "21065:229:62", - "nodeType": "YulBlock", - "src": "21065:229:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21082:9:62", - "nodeType": "YulIdentifier", - "src": "21082:9:62" - }, - { - "name": "value0", - "nativeSrc": "21093:6:62", - "nodeType": "YulIdentifier", - "src": "21093:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21075:6:62", - "nodeType": "YulIdentifier", - "src": "21075:6:62" - }, - "nativeSrc": "21075:25:62", - "nodeType": "YulFunctionCall", - "src": "21075:25:62" - }, - "nativeSrc": "21075:25:62", - "nodeType": "YulExpressionStatement", - "src": "21075:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21120:9:62", - "nodeType": "YulIdentifier", - "src": "21120:9:62" - }, - { - "kind": "number", - "nativeSrc": "21131:2:62", - "nodeType": "YulLiteral", - "src": "21131:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21116:3:62", - "nodeType": "YulIdentifier", - "src": "21116:3:62" - }, - "nativeSrc": "21116:18:62", - "nodeType": "YulFunctionCall", - "src": "21116:18:62" - }, - { - "name": "value1", - "nativeSrc": "21136:6:62", - "nodeType": "YulIdentifier", - "src": "21136:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21109:6:62", - "nodeType": "YulIdentifier", - "src": "21109:6:62" - }, - "nativeSrc": "21109:34:62", - "nodeType": "YulFunctionCall", - "src": "21109:34:62" - }, - "nativeSrc": "21109:34:62", - "nodeType": "YulExpressionStatement", - "src": "21109:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21163:9:62", - "nodeType": "YulIdentifier", - "src": "21163:9:62" - }, - { - "kind": "number", - "nativeSrc": "21174:2:62", - "nodeType": "YulLiteral", - "src": "21174:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21159:3:62", - "nodeType": "YulIdentifier", - "src": "21159:3:62" - }, - "nativeSrc": "21159:18:62", - "nodeType": "YulFunctionCall", - "src": "21159:18:62" - }, - { - "kind": "number", - "nativeSrc": "21179:3:62", - "nodeType": "YulLiteral", - "src": "21179:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21152:6:62", - "nodeType": "YulIdentifier", - "src": "21152:6:62" - }, - "nativeSrc": "21152:31:62", - "nodeType": "YulFunctionCall", - "src": "21152:31:62" - }, - "nativeSrc": "21152:31:62", - "nodeType": "YulExpressionStatement", - "src": "21152:31:62" - }, - { - "nativeSrc": "21192:53:62", - "nodeType": "YulAssignment", - "src": "21192:53:62", - "value": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "21217:6:62", - "nodeType": "YulIdentifier", - "src": "21217:6:62" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21229:9:62", - "nodeType": "YulIdentifier", - "src": "21229:9:62" - }, - { - "kind": "number", - "nativeSrc": "21240:3:62", - "nodeType": "YulLiteral", - "src": "21240:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21225:3:62", - "nodeType": "YulIdentifier", - "src": "21225:3:62" - }, - "nativeSrc": "21225:19:62", - "nodeType": "YulFunctionCall", - "src": "21225:19:62" - } - ], - "functionName": { - "name": "abi_encode_bytes", - "nativeSrc": "21200:16:62", - "nodeType": "YulIdentifier", - "src": "21200:16:62" - }, - "nativeSrc": "21200:45:62", - "nodeType": "YulFunctionCall", - "src": "21200:45:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "21192:4:62", - "nodeType": "YulIdentifier", - "src": "21192:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21265:9:62", - "nodeType": "YulIdentifier", - "src": "21265:9:62" - }, - { - "kind": "number", - "nativeSrc": "21276:2:62", - "nodeType": "YulLiteral", - "src": "21276:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21261:3:62", - "nodeType": "YulIdentifier", - "src": "21261:3:62" - }, - "nativeSrc": "21261:18:62", - "nodeType": "YulFunctionCall", - "src": "21261:18:62" - }, - { - "name": "value3", - "nativeSrc": "21281:6:62", - "nodeType": "YulIdentifier", - "src": "21281:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21254:6:62", - "nodeType": "YulIdentifier", - "src": "21254:6:62" - }, - "nativeSrc": "21254:34:62", - "nodeType": "YulFunctionCall", - "src": "21254:34:62" - }, - "nativeSrc": "21254:34:62", - "nodeType": "YulExpressionStatement", - "src": "21254:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256__to_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256__fromStack_reversed", - "nativeSrc": "20862:432:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "21010:9:62", - "nodeType": "YulTypedName", - "src": "21010:9:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "21021:6:62", - "nodeType": "YulTypedName", - "src": "21021:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "21029:6:62", - "nodeType": "YulTypedName", - "src": "21029:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "21037:6:62", - "nodeType": "YulTypedName", - "src": "21037:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "21045:6:62", - "nodeType": "YulTypedName", - "src": "21045:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "21056:4:62", - "nodeType": "YulTypedName", - "src": "21056:4:62", - "type": "" - } - ], - "src": "20862:432:62" - }, - { - "body": { - "nativeSrc": "21470:167:62", - "nodeType": "YulBlock", - "src": "21470:167:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "21487:3:62", - "nodeType": "YulIdentifier", - "src": "21487:3:62" - }, - { - "name": "value0", - "nativeSrc": "21492:6:62", - "nodeType": "YulIdentifier", - "src": "21492:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21480:6:62", - "nodeType": "YulIdentifier", - "src": "21480:6:62" - }, - "nativeSrc": "21480:19:62", - "nodeType": "YulFunctionCall", - "src": "21480:19:62" - }, - "nativeSrc": "21480:19:62", - "nodeType": "YulExpressionStatement", - "src": "21480:19:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "21519:3:62", - "nodeType": "YulIdentifier", - "src": "21519:3:62" - }, - { - "kind": "number", - "nativeSrc": "21524:2:62", - "nodeType": "YulLiteral", - "src": "21524:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21515:3:62", - "nodeType": "YulIdentifier", - "src": "21515:3:62" - }, - "nativeSrc": "21515:12:62", - "nodeType": "YulFunctionCall", - "src": "21515:12:62" - }, - { - "name": "value1", - "nativeSrc": "21529:6:62", - "nodeType": "YulIdentifier", - "src": "21529:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21508:6:62", - "nodeType": "YulIdentifier", - "src": "21508:6:62" - }, - "nativeSrc": "21508:28:62", - "nodeType": "YulFunctionCall", - "src": "21508:28:62" - }, - "nativeSrc": "21508:28:62", - "nodeType": "YulExpressionStatement", - "src": "21508:28:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "21556:3:62", - "nodeType": "YulIdentifier", - "src": "21556:3:62" - }, - { - "kind": "number", - "nativeSrc": "21561:2:62", - "nodeType": "YulLiteral", - "src": "21561:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21552:3:62", - "nodeType": "YulIdentifier", - "src": "21552:3:62" - }, - "nativeSrc": "21552:12:62", - "nodeType": "YulFunctionCall", - "src": "21552:12:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21574:3:62", - "nodeType": "YulLiteral", - "src": "21574:3:62", - "type": "", - "value": "248" - }, - { - "name": "value2", - "nativeSrc": "21579:6:62", - "nodeType": "YulIdentifier", - "src": "21579:6:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "21570:3:62", - "nodeType": "YulIdentifier", - "src": "21570:3:62" - }, - "nativeSrc": "21570:16:62", - "nodeType": "YulFunctionCall", - "src": "21570:16:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21592:3:62", - "nodeType": "YulLiteral", - "src": "21592:3:62", - "type": "", - "value": "248" - }, - { - "kind": "number", - "nativeSrc": "21597:3:62", - "nodeType": "YulLiteral", - "src": "21597:3:62", - "type": "", - "value": "255" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "21588:3:62", - "nodeType": "YulIdentifier", - "src": "21588:3:62" - }, - "nativeSrc": "21588:13:62", - "nodeType": "YulFunctionCall", - "src": "21588:13:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "21566:3:62", - "nodeType": "YulIdentifier", - "src": "21566:3:62" - }, - "nativeSrc": "21566:36:62", - "nodeType": "YulFunctionCall", - "src": "21566:36:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21545:6:62", - "nodeType": "YulIdentifier", - "src": "21545:6:62" - }, - "nativeSrc": "21545:58:62", - "nodeType": "YulFunctionCall", - "src": "21545:58:62" - }, - "nativeSrc": "21545:58:62", - "nodeType": "YulExpressionStatement", - "src": "21545:58:62" - }, - { - "nativeSrc": "21612:19:62", - "nodeType": "YulAssignment", - "src": "21612:19:62", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "21623:3:62", - "nodeType": "YulIdentifier", - "src": "21623:3:62" - }, - { - "kind": "number", - "nativeSrc": "21628:2:62", - "nodeType": "YulLiteral", - "src": "21628:2:62", - "type": "", - "value": "65" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21619:3:62", - "nodeType": "YulIdentifier", - "src": "21619:3:62" - }, - "nativeSrc": "21619:12:62", - "nodeType": "YulFunctionCall", - "src": "21619:12:62" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "21612:3:62", - "nodeType": "YulIdentifier", - "src": "21612:3:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes32_t_bytes32_t_uint8__to_t_bytes32_t_bytes32_t_uint8__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "21299:338:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "21430:3:62", - "nodeType": "YulTypedName", - "src": "21430:3:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "21435:6:62", - "nodeType": "YulTypedName", - "src": "21435:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "21443:6:62", - "nodeType": "YulTypedName", - "src": "21443:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "21451:6:62", - "nodeType": "YulTypedName", - "src": "21451:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "21462:3:62", - "nodeType": "YulTypedName", - "src": "21462:3:62", - "type": "" - } - ], - "src": "21299:338:62" - }, - { - "body": { - "nativeSrc": "21688:171:62", - "nodeType": "YulBlock", - "src": "21688:171:62", - "statements": [ - { - "body": { - "nativeSrc": "21719:111:62", - "nodeType": "YulBlock", - "src": "21719:111:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21740:1:62", - "nodeType": "YulLiteral", - "src": "21740:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21747:3:62", - "nodeType": "YulLiteral", - "src": "21747:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "21752:10:62", - "nodeType": "YulLiteral", - "src": "21752:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "21743:3:62", - "nodeType": "YulIdentifier", - "src": "21743:3:62" - }, - "nativeSrc": "21743:20:62", - "nodeType": "YulFunctionCall", - "src": "21743:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21733:6:62", - "nodeType": "YulIdentifier", - "src": "21733:6:62" - }, - "nativeSrc": "21733:31:62", - "nodeType": "YulFunctionCall", - "src": "21733:31:62" - }, - "nativeSrc": "21733:31:62", - "nodeType": "YulExpressionStatement", - "src": "21733:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21784:1:62", - "nodeType": "YulLiteral", - "src": "21784:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "21787:4:62", - "nodeType": "YulLiteral", - "src": "21787:4:62", - "type": "", - "value": "0x12" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21777:6:62", - "nodeType": "YulIdentifier", - "src": "21777:6:62" - }, - "nativeSrc": "21777:15:62", - "nodeType": "YulFunctionCall", - "src": "21777:15:62" - }, - "nativeSrc": "21777:15:62", - "nodeType": "YulExpressionStatement", - "src": "21777:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21812:1:62", - "nodeType": "YulLiteral", - "src": "21812:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "21815:4:62", - "nodeType": "YulLiteral", - "src": "21815:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "21805:6:62", - "nodeType": "YulIdentifier", - "src": "21805:6:62" - }, - "nativeSrc": "21805:15:62", - "nodeType": "YulFunctionCall", - "src": "21805:15:62" - }, - "nativeSrc": "21805:15:62", - "nodeType": "YulExpressionStatement", - "src": "21805:15:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "y", - "nativeSrc": "21708:1:62", - "nodeType": "YulIdentifier", - "src": "21708:1:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "21701:6:62", - "nodeType": "YulIdentifier", - "src": "21701:6:62" - }, - "nativeSrc": "21701:9:62", - "nodeType": "YulFunctionCall", - "src": "21701:9:62" - }, - "nativeSrc": "21698:132:62", - "nodeType": "YulIf", - "src": "21698:132:62" - }, - { - "nativeSrc": "21839:14:62", - "nodeType": "YulAssignment", - "src": "21839:14:62", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "21848:1:62", - "nodeType": "YulIdentifier", - "src": "21848:1:62" - }, - { - "name": "y", - "nativeSrc": "21851:1:62", - "nodeType": "YulIdentifier", - "src": "21851:1:62" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "21844:3:62", - "nodeType": "YulIdentifier", - "src": "21844:3:62" - }, - "nativeSrc": "21844:9:62", - "nodeType": "YulFunctionCall", - "src": "21844:9:62" - }, - "variableNames": [ - { - "name": "r", - "nativeSrc": "21839:1:62", - "nodeType": "YulIdentifier", - "src": "21839:1:62" - } - ] - } - ] - }, - "name": "checked_div_t_uint256", - "nativeSrc": "21642:217:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "21673:1:62", - "nodeType": "YulTypedName", - "src": "21673:1:62", - "type": "" - }, - { - "name": "y", - "nativeSrc": "21676:1:62", - "nodeType": "YulTypedName", - "src": "21676:1:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "r", - "nativeSrc": "21682:1:62", - "nodeType": "YulTypedName", - "src": "21682:1:62", - "type": "" - } - ], - "src": "21642:217:62" - }, - { - "body": { - "nativeSrc": "22021:214:62", - "nodeType": "YulBlock", - "src": "22021:214:62", - "statements": [ - { - "nativeSrc": "22031:26:62", - "nodeType": "YulAssignment", - "src": "22031:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22043:9:62", - "nodeType": "YulIdentifier", - "src": "22043:9:62" - }, - { - "kind": "number", - "nativeSrc": "22054:2:62", - "nodeType": "YulLiteral", - "src": "22054:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22039:3:62", - "nodeType": "YulIdentifier", - "src": "22039:3:62" - }, - "nativeSrc": "22039:18:62", - "nodeType": "YulFunctionCall", - "src": "22039:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "22031:4:62", - "nodeType": "YulIdentifier", - "src": "22031:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22073:9:62", - "nodeType": "YulIdentifier", - "src": "22073:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "22088:6:62", - "nodeType": "YulIdentifier", - "src": "22088:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22104:3:62", - "nodeType": "YulLiteral", - "src": "22104:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "22109:1:62", - "nodeType": "YulLiteral", - "src": "22109:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "22100:3:62", - "nodeType": "YulIdentifier", - "src": "22100:3:62" - }, - "nativeSrc": "22100:11:62", - "nodeType": "YulFunctionCall", - "src": "22100:11:62" - }, - { - "kind": "number", - "nativeSrc": "22113:1:62", - "nodeType": "YulLiteral", - "src": "22113:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "22096:3:62", - "nodeType": "YulIdentifier", - "src": "22096:3:62" - }, - "nativeSrc": "22096:19:62", - "nodeType": "YulFunctionCall", - "src": "22096:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "22084:3:62", - "nodeType": "YulIdentifier", - "src": "22084:3:62" - }, - "nativeSrc": "22084:32:62", - "nodeType": "YulFunctionCall", - "src": "22084:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22066:6:62", - "nodeType": "YulIdentifier", - "src": "22066:6:62" - }, - "nativeSrc": "22066:51:62", - "nodeType": "YulFunctionCall", - "src": "22066:51:62" - }, - "nativeSrc": "22066:51:62", - "nodeType": "YulExpressionStatement", - "src": "22066:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22137:9:62", - "nodeType": "YulIdentifier", - "src": "22137:9:62" - }, - { - "kind": "number", - "nativeSrc": "22148:2:62", - "nodeType": "YulLiteral", - "src": "22148:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22133:3:62", - "nodeType": "YulIdentifier", - "src": "22133:3:62" - }, - "nativeSrc": "22133:18:62", - "nodeType": "YulFunctionCall", - "src": "22133:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "22157:6:62", - "nodeType": "YulIdentifier", - "src": "22157:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22173:3:62", - "nodeType": "YulLiteral", - "src": "22173:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "22178:1:62", - "nodeType": "YulLiteral", - "src": "22178:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "22169:3:62", - "nodeType": "YulIdentifier", - "src": "22169:3:62" - }, - "nativeSrc": "22169:11:62", - "nodeType": "YulFunctionCall", - "src": "22169:11:62" - }, - { - "kind": "number", - "nativeSrc": "22182:1:62", - "nodeType": "YulLiteral", - "src": "22182:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "22165:3:62", - "nodeType": "YulIdentifier", - "src": "22165:3:62" - }, - "nativeSrc": "22165:19:62", - "nodeType": "YulFunctionCall", - "src": "22165:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "22153:3:62", - "nodeType": "YulIdentifier", - "src": "22153:3:62" - }, - "nativeSrc": "22153:32:62", - "nodeType": "YulFunctionCall", - "src": "22153:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22126:6:62", - "nodeType": "YulIdentifier", - "src": "22126:6:62" - }, - "nativeSrc": "22126:60:62", - "nodeType": "YulFunctionCall", - "src": "22126:60:62" - }, - "nativeSrc": "22126:60:62", - "nodeType": "YulExpressionStatement", - "src": "22126:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22206:9:62", - "nodeType": "YulIdentifier", - "src": "22206:9:62" - }, - { - "kind": "number", - "nativeSrc": "22217:2:62", - "nodeType": "YulLiteral", - "src": "22217:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22202:3:62", - "nodeType": "YulIdentifier", - "src": "22202:3:62" - }, - "nativeSrc": "22202:18:62", - "nodeType": "YulFunctionCall", - "src": "22202:18:62" - }, - { - "name": "value2", - "nativeSrc": "22222:6:62", - "nodeType": "YulIdentifier", - "src": "22222:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22195:6:62", - "nodeType": "YulIdentifier", - "src": "22195:6:62" - }, - "nativeSrc": "22195:34:62", - "nodeType": "YulFunctionCall", - "src": "22195:34:62" - }, - "nativeSrc": "22195:34:62", - "nodeType": "YulExpressionStatement", - "src": "22195:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", - "nativeSrc": "21864:371:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "21974:9:62", - "nodeType": "YulTypedName", - "src": "21974:9:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "21985:6:62", - "nodeType": "YulTypedName", - "src": "21985:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "21993:6:62", - "nodeType": "YulTypedName", - "src": "21993:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "22001:6:62", - "nodeType": "YulTypedName", - "src": "22001:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "22012:4:62", - "nodeType": "YulTypedName", - "src": "22012:4:62", - "type": "" - } - ], - "src": "21864:371:62" - }, - { - "body": { - "nativeSrc": "22481:320:62", - "nodeType": "YulBlock", - "src": "22481:320:62", - "statements": [ - { - "nativeSrc": "22491:27:62", - "nodeType": "YulAssignment", - "src": "22491:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22503:9:62", - "nodeType": "YulIdentifier", - "src": "22503:9:62" - }, - { - "kind": "number", - "nativeSrc": "22514:3:62", - "nodeType": "YulLiteral", - "src": "22514:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22499:3:62", - "nodeType": "YulIdentifier", - "src": "22499:3:62" - }, - "nativeSrc": "22499:19:62", - "nodeType": "YulFunctionCall", - "src": "22499:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "22491:4:62", - "nodeType": "YulIdentifier", - "src": "22491:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22534:9:62", - "nodeType": "YulIdentifier", - "src": "22534:9:62" - }, - { - "name": "value0", - "nativeSrc": "22545:6:62", - "nodeType": "YulIdentifier", - "src": "22545:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22527:6:62", - "nodeType": "YulIdentifier", - "src": "22527:6:62" - }, - "nativeSrc": "22527:25:62", - "nodeType": "YulFunctionCall", - "src": "22527:25:62" - }, - "nativeSrc": "22527:25:62", - "nodeType": "YulExpressionStatement", - "src": "22527:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22572:9:62", - "nodeType": "YulIdentifier", - "src": "22572:9:62" - }, - { - "kind": "number", - "nativeSrc": "22583:2:62", - "nodeType": "YulLiteral", - "src": "22583:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22568:3:62", - "nodeType": "YulIdentifier", - "src": "22568:3:62" - }, - "nativeSrc": "22568:18:62", - "nodeType": "YulFunctionCall", - "src": "22568:18:62" - }, - { - "name": "value1", - "nativeSrc": "22588:6:62", - "nodeType": "YulIdentifier", - "src": "22588:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22561:6:62", - "nodeType": "YulIdentifier", - "src": "22561:6:62" - }, - "nativeSrc": "22561:34:62", - "nodeType": "YulFunctionCall", - "src": "22561:34:62" - }, - "nativeSrc": "22561:34:62", - "nodeType": "YulExpressionStatement", - "src": "22561:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22615:9:62", - "nodeType": "YulIdentifier", - "src": "22615:9:62" - }, - { - "kind": "number", - "nativeSrc": "22626:2:62", - "nodeType": "YulLiteral", - "src": "22626:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22611:3:62", - "nodeType": "YulIdentifier", - "src": "22611:3:62" - }, - "nativeSrc": "22611:18:62", - "nodeType": "YulFunctionCall", - "src": "22611:18:62" - }, - { - "name": "value2", - "nativeSrc": "22631:6:62", - "nodeType": "YulIdentifier", - "src": "22631:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22604:6:62", - "nodeType": "YulIdentifier", - "src": "22604:6:62" - }, - "nativeSrc": "22604:34:62", - "nodeType": "YulFunctionCall", - "src": "22604:34:62" - }, - "nativeSrc": "22604:34:62", - "nodeType": "YulExpressionStatement", - "src": "22604:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22658:9:62", - "nodeType": "YulIdentifier", - "src": "22658:9:62" - }, - { - "kind": "number", - "nativeSrc": "22669:2:62", - "nodeType": "YulLiteral", - "src": "22669:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22654:3:62", - "nodeType": "YulIdentifier", - "src": "22654:3:62" - }, - "nativeSrc": "22654:18:62", - "nodeType": "YulFunctionCall", - "src": "22654:18:62" - }, - { - "name": "value3", - "nativeSrc": "22674:6:62", - "nodeType": "YulIdentifier", - "src": "22674:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22647:6:62", - "nodeType": "YulIdentifier", - "src": "22647:6:62" - }, - "nativeSrc": "22647:34:62", - "nodeType": "YulFunctionCall", - "src": "22647:34:62" - }, - "nativeSrc": "22647:34:62", - "nodeType": "YulExpressionStatement", - "src": "22647:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22701:9:62", - "nodeType": "YulIdentifier", - "src": "22701:9:62" - }, - { - "kind": "number", - "nativeSrc": "22712:3:62", - "nodeType": "YulLiteral", - "src": "22712:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22697:3:62", - "nodeType": "YulIdentifier", - "src": "22697:3:62" - }, - "nativeSrc": "22697:19:62", - "nodeType": "YulFunctionCall", - "src": "22697:19:62" - }, - { - "arguments": [ - { - "name": "value4", - "nativeSrc": "22722:6:62", - "nodeType": "YulIdentifier", - "src": "22722:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22738:3:62", - "nodeType": "YulLiteral", - "src": "22738:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "22743:1:62", - "nodeType": "YulLiteral", - "src": "22743:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "22734:3:62", - "nodeType": "YulIdentifier", - "src": "22734:3:62" - }, - "nativeSrc": "22734:11:62", - "nodeType": "YulFunctionCall", - "src": "22734:11:62" - }, - { - "kind": "number", - "nativeSrc": "22747:1:62", - "nodeType": "YulLiteral", - "src": "22747:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "22730:3:62", - "nodeType": "YulIdentifier", - "src": "22730:3:62" - }, - "nativeSrc": "22730:19:62", - "nodeType": "YulFunctionCall", - "src": "22730:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "22718:3:62", - "nodeType": "YulIdentifier", - "src": "22718:3:62" - }, - "nativeSrc": "22718:32:62", - "nodeType": "YulFunctionCall", - "src": "22718:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22690:6:62", - "nodeType": "YulIdentifier", - "src": "22690:6:62" - }, - "nativeSrc": "22690:61:62", - "nodeType": "YulFunctionCall", - "src": "22690:61:62" - }, - "nativeSrc": "22690:61:62", - "nodeType": "YulExpressionStatement", - "src": "22690:61:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22771:9:62", - "nodeType": "YulIdentifier", - "src": "22771:9:62" - }, - { - "kind": "number", - "nativeSrc": "22782:3:62", - "nodeType": "YulLiteral", - "src": "22782:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22767:3:62", - "nodeType": "YulIdentifier", - "src": "22767:3:62" - }, - "nativeSrc": "22767:19:62", - "nodeType": "YulFunctionCall", - "src": "22767:19:62" - }, - { - "name": "value5", - "nativeSrc": "22788:6:62", - "nodeType": "YulIdentifier", - "src": "22788:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22760:6:62", - "nodeType": "YulIdentifier", - "src": "22760:6:62" - }, - "nativeSrc": "22760:35:62", - "nodeType": "YulFunctionCall", - "src": "22760:35:62" - }, - "nativeSrc": "22760:35:62", - "nodeType": "YulExpressionStatement", - "src": "22760:35:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "22240:561:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "22410:9:62", - "nodeType": "YulTypedName", - "src": "22410:9:62", - "type": "" - }, - { - "name": "value5", - "nativeSrc": "22421:6:62", - "nodeType": "YulTypedName", - "src": "22421:6:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "22429:6:62", - "nodeType": "YulTypedName", - "src": "22429:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "22437:6:62", - "nodeType": "YulTypedName", - "src": "22437:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "22445:6:62", - "nodeType": "YulTypedName", - "src": "22445:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "22453:6:62", - "nodeType": "YulTypedName", - "src": "22453:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "22461:6:62", - "nodeType": "YulTypedName", - "src": "22461:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "22472:4:62", - "nodeType": "YulTypedName", - "src": "22472:4:62", - "type": "" - } - ], - "src": "22240:561:62" - }, - { - "body": { - "nativeSrc": "22987:217:62", - "nodeType": "YulBlock", - "src": "22987:217:62", - "statements": [ - { - "nativeSrc": "22997:27:62", - "nodeType": "YulAssignment", - "src": "22997:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "23009:9:62", - "nodeType": "YulIdentifier", - "src": "23009:9:62" - }, - { - "kind": "number", - "nativeSrc": "23020:3:62", - "nodeType": "YulLiteral", - "src": "23020:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23005:3:62", - "nodeType": "YulIdentifier", - "src": "23005:3:62" - }, - "nativeSrc": "23005:19:62", - "nodeType": "YulFunctionCall", - "src": "23005:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "22997:4:62", - "nodeType": "YulIdentifier", - "src": "22997:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "23040:9:62", - "nodeType": "YulIdentifier", - "src": "23040:9:62" - }, - { - "name": "value0", - "nativeSrc": "23051:6:62", - "nodeType": "YulIdentifier", - "src": "23051:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "23033:6:62", - "nodeType": "YulIdentifier", - "src": "23033:6:62" - }, - "nativeSrc": "23033:25:62", - "nodeType": "YulFunctionCall", - "src": "23033:25:62" - }, - "nativeSrc": "23033:25:62", - "nodeType": "YulExpressionStatement", - "src": "23033:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "23078:9:62", - "nodeType": "YulIdentifier", - "src": "23078:9:62" - }, - { - "kind": "number", - "nativeSrc": "23089:2:62", - "nodeType": "YulLiteral", - "src": "23089:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23074:3:62", - "nodeType": "YulIdentifier", - "src": "23074:3:62" - }, - "nativeSrc": "23074:18:62", - "nodeType": "YulFunctionCall", - "src": "23074:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "23098:6:62", - "nodeType": "YulIdentifier", - "src": "23098:6:62" - }, - { - "kind": "number", - "nativeSrc": "23106:4:62", - "nodeType": "YulLiteral", - "src": "23106:4:62", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "23094:3:62", - "nodeType": "YulIdentifier", - "src": "23094:3:62" - }, - "nativeSrc": "23094:17:62", - "nodeType": "YulFunctionCall", - "src": "23094:17:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "23067:6:62", - "nodeType": "YulIdentifier", - "src": "23067:6:62" - }, - "nativeSrc": "23067:45:62", - "nodeType": "YulFunctionCall", - "src": "23067:45:62" - }, - "nativeSrc": "23067:45:62", - "nodeType": "YulExpressionStatement", - "src": "23067:45:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "23132:9:62", - "nodeType": "YulIdentifier", - "src": "23132:9:62" - }, - { - "kind": "number", - "nativeSrc": "23143:2:62", - "nodeType": "YulLiteral", - "src": "23143:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23128:3:62", - "nodeType": "YulIdentifier", - "src": "23128:3:62" - }, - "nativeSrc": "23128:18:62", - "nodeType": "YulFunctionCall", - "src": "23128:18:62" - }, - { - "name": "value2", - "nativeSrc": "23148:6:62", - "nodeType": "YulIdentifier", - "src": "23148:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "23121:6:62", - "nodeType": "YulIdentifier", - "src": "23121:6:62" - }, - "nativeSrc": "23121:34:62", - "nodeType": "YulFunctionCall", - "src": "23121:34:62" - }, - "nativeSrc": "23121:34:62", - "nodeType": "YulExpressionStatement", - "src": "23121:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "23175:9:62", - "nodeType": "YulIdentifier", - "src": "23175:9:62" - }, - { - "kind": "number", - "nativeSrc": "23186:2:62", - "nodeType": "YulLiteral", - "src": "23186:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23171:3:62", - "nodeType": "YulIdentifier", - "src": "23171:3:62" - }, - "nativeSrc": "23171:18:62", - "nodeType": "YulFunctionCall", - "src": "23171:18:62" - }, - { - "name": "value3", - "nativeSrc": "23191:6:62", - "nodeType": "YulIdentifier", - "src": "23191:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "23164:6:62", - "nodeType": "YulIdentifier", - "src": "23164:6:62" - }, - "nativeSrc": "23164:34:62", - "nodeType": "YulFunctionCall", - "src": "23164:34:62" - }, - "nativeSrc": "23164:34:62", - "nodeType": "YulExpressionStatement", - "src": "23164:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed", - "nativeSrc": "22806:398:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "22932:9:62", - "nodeType": "YulTypedName", - "src": "22932:9:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "22943:6:62", - "nodeType": "YulTypedName", - "src": "22943:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "22951:6:62", - "nodeType": "YulTypedName", - "src": "22951:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "22959:6:62", - "nodeType": "YulTypedName", - "src": "22959:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "22967:6:62", - "nodeType": "YulTypedName", - "src": "22967:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "22978:4:62", - "nodeType": "YulTypedName", - "src": "22978:4:62", - "type": "" - } - ], - "src": "22806:398:62" - } - ] - }, - "contents": "{\n { }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n }\n function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffff))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_enum_DisputeStatus(value, pos)\n {\n if iszero(lt(value, 6)) { panic_error_0x21() }\n mstore(pos, value)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes32_t_enum$_DisputeType_$10710_t_enum$_DisputeStatus_$10718_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_bytes32_t_uint8_t_uint8_t_uint256_t_uint256__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 256)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n if iszero(lt(value4, 3)) { panic_error_0x21() }\n mstore(add(headStart, 128), value4)\n abi_encode_enum_DisputeStatus(value5, add(headStart, 160))\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), value7)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n }\n function abi_encode_tuple_t_contract$_ISubgraphService_$11280__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function validator_revert_uint64(value)\n {\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function validator_revert_uint32(value)\n {\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint64t_uint256t_uint32t_uint32(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint64(value_1)\n value1 := value_1\n let value_2 := 0\n value_2 := calldataload(add(headStart, 64))\n value2 := value_2\n let value_3 := calldataload(add(headStart, 96))\n validator_revert_uint32(value_3)\n value3 := value_3\n let value_4 := calldataload(add(headStart, 128))\n validator_revert_uint32(value_4)\n value4 := value_4\n }\n function allocate_memory_2163() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0xc0)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function allocate_memory() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 288)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function allocate_memory_2167() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 256)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function abi_decode_tuple_t_struct$_Receipt_$11685_memory_ptr(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 96)\n if _1 { revert(0, 0) }\n _1 := 0\n let memPtr := _1\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 96)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(_1, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(_1, 0x24)\n }\n mstore(64, newFreePtr)\n let value := _1\n value := calldataload(headStart)\n mstore(memPtr, value)\n let value_1 := _1\n value_1 := calldataload(add(headStart, 32))\n mstore(add(memPtr, 32), value_1)\n let value_2 := _1\n value_2 := calldataload(add(headStart, 64))\n mstore(add(memPtr, 64), value_2)\n value0 := memPtr\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint32(value)\n value0 := value\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_decode_tuple_t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_struct_State(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0xc0) { revert(0, 0) }\n value := allocate_memory_2163()\n let value_1 := 0\n value_1 := calldataload(headStart)\n mstore(value, value_1)\n let value_2 := 0\n value_2 := calldataload(add(headStart, 32))\n mstore(add(value, 32), value_2)\n let value_3 := 0\n value_3 := calldataload(add(headStart, 64))\n mstore(add(value, 64), value_3)\n let value_4 := 0\n value_4 := calldataload(add(headStart, 96))\n mstore(add(value, 96), value_4)\n let value_5 := 0\n value_5 := calldataload(add(headStart, 128))\n mstore(add(value, 128), value_5)\n let value_6 := calldataload(add(headStart, 160))\n if iszero(eq(value_6, and(value_6, 0xff))) { revert(0, 0) }\n mstore(add(value, 160), value_6)\n }\n function abi_decode_tuple_t_struct$_State_$11699_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_struct_State(headStart, dataEnd)\n }\n function abi_decode_tuple_t_struct$_State_$11699_memory_ptrt_struct$_State_$11699_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 384) { revert(0, 0) }\n value0 := abi_decode_struct_State(headStart, dataEnd)\n value1 := abi_decode_struct_State(add(headStart, 192), dataEnd)\n }\n function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint64(value)\n value0 := value\n }\n function abi_encode_tuple_t_enum$_DisputeStatus_$10718__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_DisputeStatus(value0, headStart)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_decode_uint32_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_uint32(value)\n }\n function abi_decode_uint64_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_uint64(value)\n }\n function abi_decode_tuple_t_struct$_Provision_$3718_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 288)\n if _1 { revert(0, 0) }\n _1 := 0\n let value := allocate_memory()\n let value_1 := _1\n value_1 := mload(headStart)\n mstore(value, value_1)\n let value_2 := _1\n value_2 := mload(add(headStart, 32))\n mstore(add(value, 32), value_2)\n let value_3 := _1\n value_3 := mload(add(headStart, 64))\n mstore(add(value, 64), value_3)\n mstore(add(value, 96), abi_decode_uint32_fromMemory(add(headStart, 96)))\n mstore(add(value, 128), abi_decode_uint64_fromMemory(add(headStart, 128)))\n mstore(add(value, 160), abi_decode_uint64_fromMemory(add(headStart, 160)))\n mstore(add(value, 192), abi_decode_uint32_fromMemory(add(headStart, 192)))\n mstore(add(value, 224), abi_decode_uint64_fromMemory(add(headStart, 224)))\n let value_4 := _1\n value_4 := mload(add(headStart, 256))\n mstore(add(value, 256), value_4)\n value0 := value\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 192)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function abi_decode_tuple_t_struct$_State_$11307_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 256)\n if _1 { revert(0, 0) }\n _1 := 0\n let value := allocate_memory_2167()\n let value_1 := mload(headStart)\n validator_revert_address(value_1)\n mstore(value, value_1)\n let value_2 := _1\n value_2 := mload(add(headStart, 32))\n mstore(add(value, 32), value_2)\n let value_3 := _1\n value_3 := mload(add(headStart, 64))\n mstore(add(value, 64), value_3)\n let value_4 := _1\n value_4 := mload(add(headStart, 96))\n mstore(add(value, 96), value_4)\n let value_5 := _1\n value_5 := mload(add(headStart, 128))\n mstore(add(value, 128), value_5)\n let value_6 := _1\n value_6 := mload(add(headStart, 160))\n mstore(add(value, 160), value_6)\n let value_7 := _1\n value_7 := mload(add(headStart, 192))\n mstore(add(value, 192), value_7)\n let value_8 := _1\n value_8 := mload(add(headStart, 224))\n mstore(add(value, 224), value_8)\n value0 := value\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n mstore(add(add(pos, i), 0x20), mload(add(add(value, i), 0x20)))\n }\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 9)\n mstore(add(headStart, 64), \"!transfer\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_address_t_bytes32__to_t_address_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(sub(shl(96, 1), 1))))\n mstore(add(pos, 20), value1)\n end := add(pos, 52)\n }\n function abi_encode_tuple_t_uint256_t_address_t_bytes32_t_uint256__to_t_uint256_t_address_t_bytes32_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_packed_t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541_t_bytes32_t_bytes32__to_t_string_memory_ptr_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, shl(240, 6401))\n mstore(add(pos, 2), value0)\n mstore(add(pos, 34), value1)\n end := add(pos, 66)\n }\n function abi_decode_tuple_t_struct$_DelegationPool_$3748_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 160)\n if _1 { revert(0, 0) }\n _1 := 0\n let memPtr := _1\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 160)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(_1, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(_1, 0x24)\n }\n mstore(64, newFreePtr)\n let value := _1\n value := mload(headStart)\n mstore(memPtr, value)\n let value_1 := _1\n value_1 := mload(add(headStart, 32))\n mstore(add(memPtr, 32), value_1)\n let value_2 := _1\n value_2 := mload(add(headStart, 64))\n mstore(add(memPtr, 64), value_2)\n let value_3 := _1\n value_3 := mload(add(headStart, 96))\n mstore(add(memPtr, 96), value_3)\n let value_4 := _1\n value_4 := mload(add(headStart, 128))\n mstore(add(memPtr, 128), value_4)\n value0 := memPtr\n }\n function abi_decode_tuple_t_uint32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_uint32(value)\n value0 := value\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := 0\n value := mload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := mload(add(headStart, 32))\n value1 := value_1\n let value_2 := 0\n value_2 := mload(add(headStart, 64))\n value2 := value_2\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32_t_address_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos, value4, value3, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n mstore(add(pos, 96), and(shl(96, value3), not(sub(shl(96, 1), 1))))\n mstore(add(pos, 116), and(shl(96, value4), not(sub(shl(96, 1), 1))))\n end := add(pos, 136)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256__to_t_uint256_t_bytes32_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 128)\n tail := abi_encode_bytes(value2, add(headStart, 128))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_uint8__to_t_bytes32_t_bytes32_t_uint8__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), and(shl(248, value2), shl(248, 255)))\n end := add(pos, 65)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address_t_bytes32__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 192)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n}", - "id": 62, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "4317": [ - { - "length": 32, - "start": 5646 - } - ], - "4321": [ - { - "length": 32, - "start": 8163 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106101b05760003560e01c806376c993ae116100ef578063be41f38411610092578063be41f3841461040b578063c133b4291461042e578063c50a77b114610441578063c894222e14610454578063c9747f511461047c578063d36fc9d41461048f578063d76f62d1146104a2578063f2fde38b146104b557600080fd5b806376c993ae1461038657806384633713146103995780638da5cb5b146103a7578063902a4938146103af5780639334ea52146103bf57806393a90a1e146103d25780639f81a7cf146103e5578063b0eefabe146103f857600080fd5b806336167e031161015757806336167e03146102d95780634bc5839a146102ec5780635aea0ec4146102ff5780635bf31d4d1461032b5780635ed2c96c146103455780636369df6b146103585780636cc6cde11461036b578063715018a61461037e57600080fd5b8063050b17ad146101b55780630533e1ba146101ca57806311be1997146101fb578063169729781461027257806317337b46146102855780631792f1941461028f57806326058249146102a257806329e03ff1146102c2575b600080fd5b6101c86101c3366004612a74565b6104c8565b005b6036546101e190600160201b900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61025e610209366004612a96565b60376020526000908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b039586169695909416949293919260ff80831693610100909304169188565b6040516101f2989796959493929190612ad9565b6101c8610280366004612a96565b61074b565b6101e16207a12081565b6101c861029d366004612a96565b61075f565b6033546102b5906001600160a01b031681565b6040516101f29190612b39565b6102cb60355481565b6040519081526020016101f2565b6101c86102e7366004612a96565b610a07565b6102cb6102fa366004612b62565b610bef565b603454600160a01b90046001600160401b03165b6040516001600160401b0390911681526020016101f2565b60345461031390600160a01b90046001600160401b031681565b6101c8610353366004612bb5565b610c10565b6102cb610366366004612cb5565b610d43565b6034546102b5906001600160a01b031681565b6101c8610d4e565b6101c8610394366004612d20565b610d62565b60365463ffffffff166101e1565b6102b5610d73565b6036546101e19063ffffffff1681565b6101c86103cd366004612a96565b610d8e565b6101c86103e0366004612d3d565b610fae565b6101c86103f3366004612d20565b610fbf565b6101c8610406366004612d3d565b610fd0565b61041e610419366004612a96565b610fe1565b60405190151581526020016101f2565b6102cb61043c366004612d3d565b611017565b6102cb61044f366004612da2565b6110af565b610467610462366004612de3565b61113b565b604080519283526020830191909152016101f2565b6102b561048a366004612eb9565b611320565b61041e61049d366004612ed5565b611411565b6101c86104b0366004612f0b565b61141d565b6101c86104c3366004612d3d565b61142e565b6034546001600160a01b031633146104f35760405163a8baf3bb60e01b815260040160405180910390fd5b816104fd81610fe1565b8190610528576040516314a03bbd60e21b815260040161051f91815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561055657610556612aaf565b600083815260376020526040902060040154610100900460ff1691146105905760405163146e540f60e21b815260040161051f9190612f28565b50600083815260376020526040812060048101805461ff001916610100179055805460068201549192916105cf916001600160a01b0316908690611469565b6001830154600284015491925061060e916001600160a01b03909116906105f69084612f4c565b6105fe61160c565b6001600160a01b03169190611630565b604080516101008101825283546001600160a01b0390811682526001850154166020820152600280850154928201929092526003840154606082015260048401546106d6928591608084019160ff9091169081111561066f5761066f612aaf565b600281111561068057610680612aaf565b81526020016004820160019054906101000a900460ff1660058111156106a8576106a8612aaf565b60058111156106b9576106b9612aaf565b8152602001600582015481526020016006820154815250506116e7565b156106e8576106e88260030154610a07565b6001820154825460028401546001600160a01b03928316929091169087907f6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c490610733908690612f4c565b60405190815260200160405180910390a45050505050565b61075361172e565b61075c81611760565b50565b8061076981610fe1565b819061078b576040516314a03bbd60e21b815260040161051f91815260200190565b506000818152603760205260409020600101546001600160a01b031633146107c65760405163082c005560e41b815260040160405180910390fd5b816107d081610fe1565b81906107f2576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561082057610820612aaf565b600083815260376020526040902060040154610100900460ff16911461085a5760405163146e540f60e21b815260040161051f9190612f28565b5060008381526037602052604090206034546005820154429161088e91600160a01b9091046001600160401b031690612f4c565b106108ac57604051631d7753d560e11b815260040160405180910390fd5b6002810154156108d657600181015460028201546108d6916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b03908116825260018401541660208201526002808401549282019290925260038301546060820152600483015461099e928491608084019160ff9091169081111561093757610937612aaf565b600281111561094857610948612aaf565b81526020016004820160019054906101000a900460ff16600581111561097057610970612aaf565b600581111561098157610981612aaf565b8152602001600582015481526020016006820154815250506117bf565b5060048101805461ff00191661050017905560018101548154600283015460408051918252516001600160a01b03938416939092169187917f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2919081900360200190a450505050565b6034546001600160a01b03163314610a325760405163a8baf3bb60e01b815260040160405180910390fd5b80610a3c81610fe1565b8190610a5e576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610a8c57610a8c612aaf565b600083815260376020526040902060040154610100900460ff169114610ac65760405163146e540f60e21b815260040161051f9190612f28565b5060008281526037602090815260409182902060048101805461020061ff001982161790915583516101008101855282546001600160a01b0390811682526001840154169381019390935260028083015494840194909452600382015460608401529092610b4992918491608084019160ff169081111561066f5761066f612aaf565b6003820154849115610b7757604051634137159360e11b81526004810192909252602482015260440161051f565b5050610b988160020154610b8961160c565b6001600160a01b03169061180d565b6001810154815460028301546040519081526001600160a01b03928316929091169085907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d906020015b60405180910390a4505050565b6000610bf9611872565b610c07336035548585611891565b90505b92915050565b6000610c1a611bd3565b805490915060ff600160401b82041615906001600160401b0316600081158015610c415750825b90506000826001600160401b03166001148015610c5d5750303b155b905081158015610c6b575080155b15610c895760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610cb357845460ff60401b1916600160401b1785555b610cbc33611bf7565b610cc4611c08565b610ccd8a611c18565b610cd689611c89565b610cdf88611760565b610ce887611d0e565b610cf186611d8b565b8315610d3757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6000610c0a82611e18565b610d5661172e565b610d606000611eb5565b565b610d6a61172e565b61075c81611d0e565b600080610d7e611f11565b546001600160a01b031692915050565b6034546001600160a01b03163314610db95760405163a8baf3bb60e01b815260040160405180910390fd5b80610dc381610fe1565b8190610de5576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e1357610e13612aaf565b600083815260376020526040902060040154610100900460ff169114610e4d5760405163146e540f60e21b815260040161051f9190612f28565b506000828152603760205260409020600281015415610e865760018101546002820154610e86916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b039081168252600184015416602082015260028084015492820192909252600383015460608201526004830154610f4e928491608084019160ff90911690811115610ee757610ee7612aaf565b6002811115610ef857610ef8612aaf565b81526020016004820160019054906101000a900460ff166005811115610f2057610f20612aaf565b6005811115610f3157610f31612aaf565b815260200160058201548152602001600682015481525050611f35565b5060048101805461ff0019166103001790556001810154815460028301546040519081526001600160a01b03928316929091169085907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b790602001610be2565b610fb661172e565b61075c81611f70565b610fc761172e565b61075c81611d8b565b610fd861172e565b61075c81611c18565b600080600083815260376020526040902060040154610100900460ff16600581111561100f5761100f612aaf565b141592915050565b600080611022611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e9261105692889290911690600401612f5f565b61012060405180830381865afa158015611074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110989190612f94565b90506110a8838260000151612005565b9392505050565b60006110b9611872565b610c07336035546110ff86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b6000806000339050600061118488888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b905060006111c787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b90506111d38282612532565b8251602080850151604080870151865193870151918701519495929490939261123257604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c40161051f565b505050505050600061127d846000858d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b905060006112c4856000858c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b60008061132c83612563565b603354604051630e02292360e01b81529192506000916001600160a01b0390911690630e02292390611362908590600401612b39565b61010060405180830381865afa158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613036565b805190915082906001600160a01b03166113d2576040516334789d8b60e21b815260040161051f9190612b39565b50604084015160208201519081811461140757604051630a24cfe560e21b81526004810192909252602482015260440161051f565b5050519392505050565b6000610c078383612532565b61142561172e565b61075c81611c89565b61143661172e565b6001600160a01b038116611460576000604051631e4fbdf760e01b815260040161051f9190612b39565b61075c81611eb5565b600080611474611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926114a8928a9290911690600401612f5f565b61012060405180830381865afa1580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190612f94565b60365490915060009061150f90859063ffffffff600160201b9091048116906125f416565b905084158015906115205750808511155b8582909161154a5760405163cc6b7c4160e01b81526004810192909252602482015260440161051f565b5050600061155c86846000015161265b565b60365490915060009061157a9063ffffffff9081169084906125f416565b60335460408051602081018b905280820184905281518082038301815260608201928390526365c1a3ff60e11b9092529293506001600160a01b039091169163cb8347fe916115ce918c91906064016130f9565b600060405180830381600087803b1580156115e857600080fd5b505af11580156115fc573d6000803e3d6000fd5b50929a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156116e25760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015611686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116aa919061311d565b6116e25760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161051f565b505050565b606081015160009080158015906110a857506004600082815260376020526040902060040154610100900460ff16600581111561172657611726612aaf565b149392505050565b33611737610d73565b6001600160a01b031614610d60573360405163118cdaa760e01b815260040161051f9190612b39565b80806117825760405163033f4e0560e01b815260040161051f91815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f8906020015b60405180910390a150565b60006117ca826116e7565b1561180557606082015160008181526037602052604090206004810180546005919061ff001916610100835b02179055506001949350505050565b506000919050565b801561186e57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561185557600080fd5b505af1158015611869573d6000803e3d6000fd5b505050505b5050565b610d603360355461188161160c565b6001600160a01b03169190612671565b6040516001600160601b0319606084901b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506118d881610fe1565b1581906118fb5760405163124a23f160e11b815260040161051f91815260200190565b50603354604051630e02292360e01b81526000916001600160a01b031690630e0229239061192d908890600401612b39565b61010060405180830381865afa15801561194b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196f9190613036565b8051909150856001600160a01b03821661199d576040516334789d8b60e21b815260040161051f9190612b39565b5060006119a8611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926119dc92879290911690600401612f5f565b61012060405180830381865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190612f94565b8051909150600003611a435760405163307efdb760e11b815260040160405180910390fd5b6000611a53838360000151612005565b604080516101008101825286516001600160a01b0390811682528d1660208201529081018b905260006060820152909150608081016001815260200160048152426020808301919091526040918201849052600088815260378252829020835181546001600160a01b039182166001600160a01b031991821617835592850151600180840180549290931691909416179055918301516002808401919091556060840151600384015560808401516004840180549193909260ff19909216918490811115611b2357611b23612aaf565b021790555060a082015160048201805461ff001916610100836005811115611b4d57611b4d612aaf565b021790555060c0820151600582015560e0909101516006909101558351604080518b81526001600160a01b038b811660208301529181018a905260608101849052818d16929091169087907fbfd6e5f61b4aa04b088a513a833705c7c703b907516c1dbfa66f93d1f725d33d9060800160405180910390a4509298975050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611bff6126b2565b61075c816126d7565b611c106126b2565b610d606126df565b6001600160a01b038116611c3f5760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b0316600003611cb35760405163c4411f1160e01b815260040160405180910390fd5b6034805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416908102919091179091556040519081527f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e6906020016117b4565b806207a12063ffffffff82161115611d425760405163432e664360e11b815263ffffffff909116600482015260240161051f565b506036805463ffffffff191663ffffffff83169081179091556040519081527fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab906020016117b4565b8063ffffffff8116620f42401015611dbf57604051634e9374fb60e11b815263ffffffff909116600482015260240161051f565b506036805467ffffffff000000001916600160201b63ffffffff8481168202929092179283905560405192041681527f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d680502906020016117b4565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ebf611f11565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000611f40826116e7565b1561180557606082015160008181526037602052604090206004810180546003919061ff001916610100836117f6565b6001600160a01b038116611f975760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b7f000000000000000000000000000000000000000000000000000000000000000090565b600080612010611fe1565b603354604051631584a17960e21b81526001600160a01b039283169263561285e49261204492899290911690600401612f5f565b60a060405180830381865afa158015612061573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612085919061313f565b6000015190506000603360009054906101000a90046001600160a01b03166001600160a01b0316631ebb7c306040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210491906131be565b6121149063ffffffff16856131db565b9050600061212283836127b1565b61212c9086612f4c565b9695505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526001612175602080612f4c565b61217f9190612f4c565b61218a906060612f4c565b825190811490600161219d602080612f4c565b6121a79190612f4c565b6121b2906060612f4c565b90916121da57604051633fdf342360e01b81526004810192909252602482015260440161051f565b50506000806000848060200190518101906121f591906131f2565b92509250925060006122088660606127c1565b905060006122218761221c60206060612f4c565b6127c1565b90506000612245886020612236816060612f4c565b6122409190612f4c565b612813565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b60008061228984611320565b90506000612295611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926122c992879290911690600401612f5f565b61012060405180830381865afa1580156122e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230b9190612f94565b80519091506000036123305760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a80160405160208183030381529060405280519060200120905061239981610fe1565b1581906123bc5760405163124a23f160e11b815260040161051f91815260200190565b5060006123cd848460000151612005565b60408051610100810182526001600160a01b0387811682528c811660208084019182528385018e8152600060608601818152600260808801818152600460a08a018190524260c08b015260e08a018c90528d8552603790965298909220875181549088166001600160a01b031991821617825595516001808301805492909916919097161790965591518582015590516003850155945190830180549697509395929490939260ff19169190849081111561248a5761248a612aaf565b021790555060a082015160048201805461ff0019166101008360058111156124b4576124b4612aaf565b021790555060c0820151816005015560e08201518160060155905050886001600160a01b0316846001600160a01b0316837ffb609a7fd5eb7947365d2f96d051030cac33a27e3e4923f97ea4e03aaa2bcb148b8b604001518b8760405161251e9493929190613220565b60405180910390a450979650505050505050565b8051825160009114801561254d575081604001518360400151145b8015610c07575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161259382611e18565b90506125ec81856060015186608001518760a001516040516020016125d893929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612865565b949350505050565b600061260383620f4240101590565b80612616575061261682620f4240101590565b838390916126405760405163768bf0eb60e11b81526004810192909252602482015260440161051f565b50620f4240905061265183856131db565b610c079190613250565b600081831061266a5781610c07565b5090919050565b80156116e2576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401611667565b6126ba61288f565b610d6057604051631afcd79f60e31b815260040160405180910390fd5b6114366126b2565b6126e76126b2565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b60008183111561266a5781610c07565b60006127ce602083612f4c565b835190811015906127e0602085612f4c565b909161280857604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016020015190565b6000612820600183612f4c565b83519081101590612832600185612f4c565b909161285a57604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016001015190565b60008060008061287586866128a9565b92509250925061288582826128f6565b5090949350505050565b6000612899611bd3565b54600160401b900460ff16919050565b600080600083516041036128e35760208401516040850151606086015160001a6128d5888285856129af565b9550955095505050506128ef565b50508151600091506002905b9250925092565b600082600381111561290a5761290a612aaf565b03612913575050565b600182600381111561292757612927612aaf565b036129455760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561295957612959612aaf565b0361297a5760405163fce698f760e01b81526004810182905260240161051f565b600382600381111561298e5761298e612aaf565b0361186e576040516335e2f38360e21b81526004810182905260240161051f565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156129e05750600091506003905082612a6a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612a34573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612a6057506000925060019150829050612a6a565b9250600091508190505b9450945094915050565b60008060408385031215612a8757600080fd5b50508035926020909101359150565b600060208284031215612aa857600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612ad557612ad5612aaf565b9052565b6001600160a01b038981168252881660208201526040810187905260608101869052610100810160038610612b1057612b10612aaf565b856080830152612b2360a0830186612ac5565b60c082019390935260e001529695505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461075c57600080fd5b60008060408385031215612b7557600080fd5b8235612b8081612b4d565b946020939093013593505050565b6001600160401b038116811461075c57600080fd5b63ffffffff8116811461075c57600080fd5b600080600080600060a08688031215612bcd57600080fd5b8535612bd881612b4d565b94506020860135612be881612b8e565b9350604086013592506060860135612bff81612ba3565b91506080860135612c0f81612ba3565b809150509295509295909350565b60405160c081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60006060828403128015612cc857600080fd5b50604051600090606081016001600160401b0381118282101715612cfa57634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b600060208284031215612d3257600080fd5b81356110a881612ba3565b600060208284031215612d4f57600080fd5b81356110a881612b4d565b60008083601f840112612d6c57600080fd5b5081356001600160401b03811115612d8357600080fd5b602083019150836020828501011115612d9b57600080fd5b9250929050565b60008060208385031215612db557600080fd5b82356001600160401b03811115612dcb57600080fd5b612dd785828601612d5a565b90969095509350505050565b60008060008060408587031215612df957600080fd5b84356001600160401b03811115612e0f57600080fd5b612e1b87828801612d5a565b90955093505060208501356001600160401b03811115612e3a57600080fd5b612e4687828801612d5a565b95989497509550505050565b600060c08284031215612e6457600080fd5b612e6c612c1d565b8235815260208084013590820152604080840135908201526060808401359082015260808084013590820152905060a082013560ff81168114612eae57600080fd5b60a082015292915050565b600060c08284031215612ecb57600080fd5b610c078383612e52565b6000806101808385031215612ee957600080fd5b612ef38484612e52565b9150612f028460c08501612e52565b90509250929050565b600060208284031215612f1d57600080fd5b81356110a881612b8e565b60208101610c0a8284612ac5565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c0a57610c0a612f36565b6001600160a01b0392831681529116602082015260400190565b8051612f8481612ba3565b919050565b8051612f8481612b8e565b6000610120828403128015612fa857600080fd5b506000612fb3612c53565b835181526020808501519082015260408085015190820152612fd760608501612f79565b6060820152612fe860808501612f89565b6080820152612ff960a08501612f89565b60a082015261300a60c08501612f79565b60c082015261301b60e08501612f89565b60e08201526101009384015193810193909352509092915050565b600061010082840312801561304a57600080fd5b506000613055612c84565b835161306081612b4d565b81526020848101519082015260408085015190820152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e09384015193810193909352509092915050565b6000815180845260005b818110156130d9576020818501810151868301820152016130bd565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190526000906125ec908301846130b3565b60006020828403121561312f57600080fd5b815180151581146110a857600080fd5b600060a082840312801561315257600080fd5b5060405160009060a081016001600160401b038111828210171561318457634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6000602082840312156131d057600080fd5b81516110a881612ba3565b8082028115828204841417610c0a57610c0a612f36565b60008060006060848603121561320757600080fd5b5050815160208301516040909301519094929350919050565b84815283602082015260806040820152600061323f60808301856130b3565b905082606083015295945050505050565b60008261326d57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122015fc51a79247a9edf26bdaf727ea63de7398a97bc3a27ad1e74c0ff8bf34282e64736f6c634300081b0033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1B0 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76C993AE GT PUSH2 0xEF JUMPI DUP1 PUSH4 0xBE41F384 GT PUSH2 0x92 JUMPI DUP1 PUSH4 0xBE41F384 EQ PUSH2 0x40B JUMPI DUP1 PUSH4 0xC133B429 EQ PUSH2 0x42E JUMPI DUP1 PUSH4 0xC50A77B1 EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0xC894222E EQ PUSH2 0x454 JUMPI DUP1 PUSH4 0xC9747F51 EQ PUSH2 0x47C JUMPI DUP1 PUSH4 0xD36FC9D4 EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0xD76F62D1 EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x4B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x76C993AE EQ PUSH2 0x386 JUMPI DUP1 PUSH4 0x84633713 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3A7 JUMPI DUP1 PUSH4 0x902A4938 EQ PUSH2 0x3AF JUMPI DUP1 PUSH4 0x9334EA52 EQ PUSH2 0x3BF JUMPI DUP1 PUSH4 0x93A90A1E EQ PUSH2 0x3D2 JUMPI DUP1 PUSH4 0x9F81A7CF EQ PUSH2 0x3E5 JUMPI DUP1 PUSH4 0xB0EEFABE EQ PUSH2 0x3F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x36167E03 GT PUSH2 0x157 JUMPI DUP1 PUSH4 0x36167E03 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0x4BC5839A EQ PUSH2 0x2EC JUMPI DUP1 PUSH4 0x5AEA0EC4 EQ PUSH2 0x2FF JUMPI DUP1 PUSH4 0x5BF31D4D EQ PUSH2 0x32B JUMPI DUP1 PUSH4 0x5ED2C96C EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0x6369DF6B EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x6CC6CDE1 EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x37E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x50B17AD EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x533E1BA EQ PUSH2 0x1CA JUMPI DUP1 PUSH4 0x11BE1997 EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x16972978 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0x17337B46 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x1792F194 EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0x26058249 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0x29E03FF1 EQ PUSH2 0x2C2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C8 PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A74 JUMP JUMPDEST PUSH2 0x4C8 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x36 SLOAD PUSH2 0x1E1 SWAP1 PUSH1 0x1 PUSH1 0x20 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x25E PUSH2 0x209 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 DUP7 ADD SLOAD PUSH1 0x6 SWAP1 SWAP7 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 DUP7 AND SWAP7 SWAP6 SWAP1 SWAP5 AND SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 PUSH1 0xFF DUP1 DUP4 AND SWAP4 PUSH2 0x100 SWAP1 SWAP4 DIV AND SWAP2 DUP9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2AD9 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x74B JUMP JUMPDEST PUSH2 0x1E1 PUSH3 0x7A120 DUP2 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0x75F JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH2 0x2B5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x2CB PUSH1 0x35 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F2 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x2E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0xA07 JUMP JUMPDEST PUSH2 0x2CB PUSH2 0x2FA CALLDATASIZE PUSH1 0x4 PUSH2 0x2B62 JUMP JUMPDEST PUSH2 0xBEF JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F2 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH2 0x313 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x353 CALLDATASIZE PUSH1 0x4 PUSH2 0x2BB5 JUMP JUMPDEST PUSH2 0xC10 JUMP JUMPDEST PUSH2 0x2CB PUSH2 0x366 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CB5 JUMP JUMPDEST PUSH2 0xD43 JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH2 0x2B5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0xD4E JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x394 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D20 JUMP JUMPDEST PUSH2 0xD62 JUMP JUMPDEST PUSH1 0x36 SLOAD PUSH4 0xFFFFFFFF AND PUSH2 0x1E1 JUMP JUMPDEST PUSH2 0x2B5 PUSH2 0xD73 JUMP JUMPDEST PUSH1 0x36 SLOAD PUSH2 0x1E1 SWAP1 PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x3CD CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0xD8E JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x3E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0xFAE JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x3F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D20 JUMP JUMPDEST PUSH2 0xFBF JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x406 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0xFD0 JUMP JUMPDEST PUSH2 0x41E PUSH2 0x419 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A96 JUMP JUMPDEST PUSH2 0xFE1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1F2 JUMP JUMPDEST PUSH2 0x2CB PUSH2 0x43C CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x1017 JUMP JUMPDEST PUSH2 0x2CB PUSH2 0x44F CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA2 JUMP JUMPDEST PUSH2 0x10AF JUMP JUMPDEST PUSH2 0x467 PUSH2 0x462 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DE3 JUMP JUMPDEST PUSH2 0x113B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x1F2 JUMP JUMPDEST PUSH2 0x2B5 PUSH2 0x48A CALLDATASIZE PUSH1 0x4 PUSH2 0x2EB9 JUMP JUMPDEST PUSH2 0x1320 JUMP JUMPDEST PUSH2 0x41E PUSH2 0x49D CALLDATASIZE PUSH1 0x4 PUSH2 0x2ED5 JUMP JUMPDEST PUSH2 0x1411 JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x4B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2F0B JUMP JUMPDEST PUSH2 0x141D JUMP JUMPDEST PUSH2 0x1C8 PUSH2 0x4C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D3D JUMP JUMPDEST PUSH2 0x142E JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x4F3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA8BAF3BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH2 0x4FD DUP2 PUSH2 0xFE1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x528 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x556 JUMPI PUSH2 0x556 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP2 EQ PUSH2 0x590 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2F28 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE DUP1 SLOAD PUSH1 0x6 DUP3 ADD SLOAD SWAP2 SWAP3 SWAP2 PUSH2 0x5CF SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP7 SWAP1 PUSH2 0x1469 JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x2 DUP5 ADD SLOAD SWAP2 SWAP3 POP PUSH2 0x60E SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH2 0x5F6 SWAP1 DUP5 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x5FE PUSH2 0x160C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x1630 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x1 DUP6 ADD SLOAD AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP1 DUP6 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP5 ADD SLOAD PUSH2 0x6D6 SWAP3 DUP6 SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0x66F JUMPI PUSH2 0x66F PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x680 JUMPI PUSH2 0x680 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x6A8 JUMPI PUSH2 0x6A8 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x6B9 JUMPI PUSH2 0x6B9 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE POP POP PUSH2 0x16E7 JUMP JUMPDEST ISZERO PUSH2 0x6E8 JUMPI PUSH2 0x6E8 DUP3 PUSH1 0x3 ADD SLOAD PUSH2 0xA07 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD DUP3 SLOAD PUSH1 0x2 DUP5 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP8 SWAP1 PUSH32 0x6D800AAAF64B9A1F321DCD63DA04369D33D8A0D49AD0FBBA085AAB4A98BF31C4 SWAP1 PUSH2 0x733 SWAP1 DUP7 SWAP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x753 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1760 JUMP JUMPDEST POP JUMP JUMPDEST DUP1 PUSH2 0x769 DUP2 PUSH2 0xFE1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x78B JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7C6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x82C0055 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH2 0x7D0 DUP2 PUSH2 0xFE1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x7F2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x820 JUMPI PUSH2 0x820 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP2 EQ PUSH2 0x85A JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2F28 JUMP JUMPDEST POP PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x34 SLOAD PUSH1 0x5 DUP3 ADD SLOAD TIMESTAMP SWAP2 PUSH2 0x88E SWAP2 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND SWAP1 PUSH2 0x2F4C JUMP JUMPDEST LT PUSH2 0x8AC JUMPI PUSH1 0x40 MLOAD PUSH4 0x1D7753D5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP2 ADD SLOAD ISZERO PUSH2 0x8D6 JUMPI PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH2 0x8D6 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x5FE PUSH2 0x160C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x1 DUP5 ADD SLOAD AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP1 DUP5 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP4 ADD SLOAD PUSH2 0x99E SWAP3 DUP5 SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0x937 JUMPI PUSH2 0x937 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x948 JUMPI PUSH2 0x948 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x970 JUMPI PUSH2 0x970 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x981 JUMPI PUSH2 0x981 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE POP POP PUSH2 0x17BF JUMP JUMPDEST POP PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x500 OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD SLOAD DUP2 SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND SWAP4 SWAP1 SWAP3 AND SWAP2 DUP8 SWAP2 PUSH32 0x223103F8EB52E5F43A75655152ACD882A605D70DF57A5C0FEFD30F516B1756D2 SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG4 POP POP POP POP JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA32 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA8BAF3BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0xA3C DUP2 PUSH2 0xFE1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0xA5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0xA8C JUMPI PUSH2 0xA8C PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP2 EQ PUSH2 0xAC6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2F28 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0x200 PUSH2 0xFF00 NOT DUP3 AND OR SWAP1 SWAP2 SSTORE DUP4 MLOAD PUSH2 0x100 DUP2 ADD DUP6 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x1 DUP5 ADD SLOAD AND SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP1 DUP4 ADD SLOAD SWAP5 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE SWAP1 SWAP3 PUSH2 0xB49 SWAP3 SWAP2 DUP5 SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x66F JUMPI PUSH2 0x66F PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x3 DUP3 ADD SLOAD DUP5 SWAP2 ISZERO PUSH2 0xB77 JUMPI PUSH1 0x40 MLOAD PUSH4 0x41371593 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP PUSH2 0xB98 DUP2 PUSH1 0x2 ADD SLOAD PUSH2 0xB89 PUSH2 0x160C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD DUP2 SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP6 SWAP1 PUSH32 0x2226EBD23625A7938FB786DF2248BD171D2E6AD70CB2B654EA1BE830CA17224D SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF9 PUSH2 0x1872 JUMP JUMPDEST PUSH2 0xC07 CALLER PUSH1 0x35 SLOAD DUP6 DUP6 PUSH2 0x1891 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC1A PUSH2 0x1BD3 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0xC41 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0xC5D JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0xC6B JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xC89 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xCB3 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0xCBC CALLER PUSH2 0x1BF7 JUMP JUMPDEST PUSH2 0xCC4 PUSH2 0x1C08 JUMP JUMPDEST PUSH2 0xCCD DUP11 PUSH2 0x1C18 JUMP JUMPDEST PUSH2 0xCD6 DUP10 PUSH2 0x1C89 JUMP JUMPDEST PUSH2 0xCDF DUP9 PUSH2 0x1760 JUMP JUMPDEST PUSH2 0xCE8 DUP8 PUSH2 0x1D0E JUMP JUMPDEST PUSH2 0xCF1 DUP7 PUSH2 0x1D8B JUMP JUMPDEST DUP4 ISZERO PUSH2 0xD37 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC0A DUP3 PUSH2 0x1E18 JUMP JUMPDEST PUSH2 0xD56 PUSH2 0x172E JUMP JUMPDEST PUSH2 0xD60 PUSH1 0x0 PUSH2 0x1EB5 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xD6A PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1D0E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD7E PUSH2 0x1F11 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x34 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xDB9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA8BAF3BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0xDC3 DUP2 PUSH2 0xFE1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0xDE5 JUMPI PUSH1 0x40 MLOAD PUSH4 0x14A03BBD PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0xE13 JUMPI PUSH2 0xE13 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP2 EQ PUSH2 0xE4D JUMPI PUSH1 0x40 MLOAD PUSH4 0x146E540F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2F28 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD SLOAD ISZERO PUSH2 0xE86 JUMPI PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH2 0xE86 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH2 0x5FE PUSH2 0x160C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE PUSH1 0x1 DUP5 ADD SLOAD AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP1 DUP5 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP4 ADD SLOAD PUSH2 0xF4E SWAP3 DUP5 SWAP2 PUSH1 0x80 DUP5 ADD SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0xEE7 JUMPI PUSH2 0xEE7 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xEF8 JUMPI PUSH2 0xEF8 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0xF20 JUMPI PUSH2 0xF20 PUSH2 0x2AAF JUMP JUMPDEST PUSH1 0x5 DUP2 GT ISZERO PUSH2 0xF31 JUMPI PUSH2 0xF31 PUSH2 0x2AAF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE POP POP PUSH2 0x1F35 JUMP JUMPDEST POP PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x300 OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD SLOAD DUP2 SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP6 SWAP1 PUSH32 0xF0912EFB86EA1D65A17D64D48393CDB1CA0EA5220DD2BBE438621199D30955B7 SWAP1 PUSH1 0x20 ADD PUSH2 0xBE2 JUMP JUMPDEST PUSH2 0xFB6 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1F70 JUMP JUMPDEST PUSH2 0xFC7 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1D8B JUMP JUMPDEST PUSH2 0xFD8 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1C18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x100F JUMPI PUSH2 0x100F PUSH2 0x2AAF JUMP JUMPDEST EQ ISZERO SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1022 PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0x12ECC4BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x25D9897E SWAP3 PUSH2 0x1056 SWAP3 DUP9 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x2F5F JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1074 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1098 SWAP2 SWAP1 PUSH2 0x2F94 JUMP JUMPDEST SWAP1 POP PUSH2 0x10A8 DUP4 DUP3 PUSH1 0x0 ADD MLOAD PUSH2 0x2005 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x10B9 PUSH2 0x1872 JUMP JUMPDEST PUSH2 0xC07 CALLER PUSH1 0x35 SLOAD PUSH2 0x10FF DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2136 SWAP3 POP POP POP JUMP JUMPDEST DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x227D SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 CALLER SWAP1 POP PUSH1 0x0 PUSH2 0x1184 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2136 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x11C7 DUP8 DUP8 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x2136 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH2 0x11D3 DUP3 DUP3 PUSH2 0x2532 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP7 MLOAD SWAP4 DUP8 ADD MLOAD SWAP2 DUP8 ADD MLOAD SWAP5 SWAP6 SWAP3 SWAP5 SWAP1 SWAP4 SWAP3 PUSH2 0x1232 JUMPI PUSH1 0x40 MLOAD PUSH4 0x6ABA5297 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x24 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x44 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x64 DUP5 ADD MSTORE PUSH1 0x84 DUP4 ADD MSTORE PUSH1 0xA4 DUP3 ADD MSTORE PUSH1 0xC4 ADD PUSH2 0x51F JUMP JUMPDEST POP POP POP POP POP POP PUSH1 0x0 PUSH2 0x127D DUP5 PUSH1 0x0 DUP6 DUP14 DUP14 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x227D SWAP3 POP POP POP JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x12C4 DUP6 PUSH1 0x0 DUP6 DUP13 DUP13 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x227D SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 PUSH1 0x3 SWAP1 DUP2 ADD DUP5 SWAP1 SSTORE DUP4 DUP4 MSTORE DUP2 DUP4 KECCAK256 ADD DUP6 SWAP1 SSTORE MLOAD SWAP2 SWAP3 POP DUP3 SWAP2 DUP5 SWAP2 PUSH32 0xFEC135A4CF8E5C6E13DEA23BE058BF03A8BF8F1F6FB0A021B0A5AEDDFBA81407 SWAP2 LOG3 SWAP1 SWAP11 SWAP1 SWAP10 POP SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x132C DUP4 PUSH2 0x2563 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE022923 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE022923 SWAP1 PUSH2 0x1362 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x100 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1380 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13A4 SWAP2 SWAP1 PUSH2 0x3036 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP3 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x13D2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x34789D8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2B39 JUMP JUMPDEST POP PUSH1 0x40 DUP5 ADD MLOAD PUSH1 0x20 DUP3 ADD MLOAD SWAP1 DUP2 DUP2 EQ PUSH2 0x1407 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA24CFE5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP MLOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC07 DUP4 DUP4 PUSH2 0x2532 JUMP JUMPDEST PUSH2 0x1425 PUSH2 0x172E JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1C89 JUMP JUMPDEST PUSH2 0x1436 PUSH2 0x172E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1460 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1474 PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0x12ECC4BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x25D9897E SWAP3 PUSH2 0x14A8 SWAP3 DUP11 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x2F5F JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14EA SWAP2 SWAP1 PUSH2 0x2F94 JUMP JUMPDEST PUSH1 0x36 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x150F SWAP1 DUP6 SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0x20 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x25F4 AND JUMP JUMPDEST SWAP1 POP DUP5 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x1520 JUMPI POP DUP1 DUP6 GT ISZERO JUMPDEST DUP6 DUP3 SWAP1 SWAP2 PUSH2 0x154A JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC6B7C41 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP PUSH1 0x0 PUSH2 0x155C DUP7 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x265B JUMP JUMPDEST PUSH1 0x36 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x157A SWAP1 PUSH4 0xFFFFFFFF SWAP1 DUP2 AND SWAP1 DUP5 SWAP1 PUSH2 0x25F4 AND JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP12 SWAP1 MSTORE DUP1 DUP3 ADD DUP5 SWAP1 MSTORE DUP2 MLOAD DUP1 DUP3 SUB DUP4 ADD DUP2 MSTORE PUSH1 0x60 DUP3 ADD SWAP3 DUP4 SWAP1 MSTORE PUSH4 0x65C1A3FF PUSH1 0xE1 SHL SWAP1 SWAP3 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0xCB8347FE SWAP2 PUSH2 0x15CE SWAP2 DUP13 SWAP2 SWAP1 PUSH1 0x64 ADD PUSH2 0x30F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP3 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x16E2 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE DUP5 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1686 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16AA SWAP2 SWAP1 PUSH2 0x311D JUMP JUMPDEST PUSH2 0x16E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x10BA3930B739B332B9 PUSH1 0xB9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x10A8 JUMPI POP PUSH1 0x4 PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x1726 JUMPI PUSH2 0x1726 PUSH2 0x2AAF JUMP JUMPDEST EQ SWAP4 SWAP3 POP POP POP JUMP JUMPDEST CALLER PUSH2 0x1737 PUSH2 0xD73 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD60 JUMPI CALLER PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2B39 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x1782 JUMPI PUSH1 0x40 MLOAD PUSH4 0x33F4E05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x35 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x97896B9DA0F97F36BF3011570BCFF930069299DE4B1E89C9CB44909841CAC2F8 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17CA DUP3 PUSH2 0x16E7 JUMP JUMPDEST ISZERO PUSH2 0x1805 JUMPI PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH1 0x5 SWAP2 SWAP1 PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP4 JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST POP PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0x186E JUMPI PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x42966C68 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1855 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1869 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xD60 CALLER PUSH1 0x35 SLOAD PUSH2 0x1881 PUSH2 0x160C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x2671 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT PUSH1 0x60 DUP5 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x18D8 DUP2 PUSH2 0xFE1 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x18FB JUMPI PUSH1 0x40 MLOAD PUSH4 0x124A23F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE022923 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE022923 SWAP1 PUSH2 0x192D SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x100 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x194B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x196F SWAP2 SWAP1 PUSH2 0x3036 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x199D JUMPI PUSH1 0x40 MLOAD PUSH4 0x34789D8B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x2B39 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x19A8 PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0x12ECC4BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x25D9897E SWAP3 PUSH2 0x19DC SWAP3 DUP8 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x2F5F JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A1E SWAP2 SWAP1 PUSH2 0x2F94 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 SUB PUSH2 0x1A43 JUMPI PUSH1 0x40 MLOAD PUSH4 0x307EFDB7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A53 DUP4 DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x2005 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP7 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND DUP3 MSTORE DUP14 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x0 PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x80 DUP2 ADD PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP2 MSTORE TIMESTAMP PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x37 DUP3 MSTORE DUP3 SWAP1 KECCAK256 DUP4 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR DUP4 SSTORE SWAP3 DUP6 ADD MLOAD PUSH1 0x1 DUP1 DUP5 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 SWAP1 SWAP5 AND OR SWAP1 SSTORE SWAP2 DUP4 ADD MLOAD PUSH1 0x2 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x3 DUP5 ADD SSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0x4 DUP5 ADD DUP1 SLOAD SWAP2 SWAP4 SWAP1 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP3 AND SWAP2 DUP5 SWAP1 DUP2 GT ISZERO PUSH2 0x1B23 JUMPI PUSH2 0x1B23 PUSH2 0x2AAF JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP4 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x1B4D JUMPI PUSH2 0x1B4D PUSH2 0x2AAF JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xC0 DUP3 ADD MLOAD PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0xE0 SWAP1 SWAP2 ADD MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 MLOAD DUP12 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP5 SWAP1 MSTORE DUP2 DUP14 AND SWAP3 SWAP1 SWAP2 AND SWAP1 DUP8 SWAP1 PUSH32 0xBFD6E5F61B4AA04B088A513A833705C7C703B907516C1DBFA66F93D1F725D33D SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP3 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SWAP1 JUMP JUMPDEST PUSH2 0x1BFF PUSH2 0x26B2 JUMP JUMPDEST PUSH2 0x75C DUP2 PUSH2 0x26D7 JUMP JUMPDEST PUSH2 0x1C10 PUSH2 0x26B2 JUMP JUMPDEST PUSH2 0xD60 PUSH2 0x26DF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1C3F JUMPI PUSH1 0x40 MLOAD PUSH4 0x616BC441 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x34 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x51744122301B50E919F4E3D22ADF8C53ABC92195B8C667EDA98C6EF20375672E SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 SUB PUSH2 0x1CB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC4411F11 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x34 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x310462A9BF49FFF4A57910EC647C77CBF8AAF2F13394554AC6CDF14FC68DB7E6 SWAP1 PUSH1 0x20 ADD PUSH2 0x17B4 JUMP JUMPDEST DUP1 PUSH3 0x7A120 PUSH4 0xFFFFFFFF DUP3 AND GT ISZERO PUSH2 0x1D42 JUMPI PUSH1 0x40 MLOAD PUSH4 0x432E6643 PUSH1 0xE1 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x51F JUMP JUMPDEST POP PUSH1 0x36 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND PUSH4 0xFFFFFFFF DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC573DC0F869F6A1D0A74FC7712A63BAABCB5567131D2D98005E163924EDDCBAB SWAP1 PUSH1 0x20 ADD PUSH2 0x17B4 JUMP JUMPDEST DUP1 PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0xF4240 LT ISZERO PUSH2 0x1DBF JUMPI PUSH1 0x40 MLOAD PUSH4 0x4E9374FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x51F JUMP JUMPDEST POP PUSH1 0x36 DUP1 SLOAD PUSH8 0xFFFFFFFF00000000 NOT AND PUSH1 0x1 PUSH1 0x20 SHL PUSH4 0xFFFFFFFF DUP5 DUP2 AND DUP3 MUL SWAP3 SWAP1 SWAP3 OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD SWAP3 DIV AND DUP2 MSTORE PUSH32 0x7EFAF01BEC3CDA8D104163BB466D01D7E16F68848301C7EB0749CFA59D680502 SWAP1 PUSH1 0x20 ADD PUSH2 0x17B4 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 MLOAD PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x40 SWAP5 DUP6 ADD MLOAD DUP6 MLOAD PUSH32 0x32DD026408194A0D7E54CC66A2AB6C856EFC55CFCD4DD258FDE5B1A55222BAA6 DUP2 DUP6 ADD MSTORE DUP1 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP5 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xA0 DUP4 ADD DUP6 MSTORE DUP1 MLOAD SWAP1 DUP3 ADD KECCAK256 PUSH2 0x1901 PUSH1 0xF0 SHL PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xC2 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xE2 DUP1 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP4 MLOAD DUP1 DUP4 SUB SWAP1 SWAP4 ADD DUP4 MSTORE PUSH2 0x102 SWAP1 SWAP2 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EBF PUSH2 0x1F11 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP4 SWAP5 POP SWAP2 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F40 DUP3 PUSH2 0x16E7 JUMP JUMPDEST ISZERO PUSH2 0x1805 JUMPI PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x37 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD DUP1 SLOAD PUSH1 0x3 SWAP2 SWAP1 PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP4 PUSH2 0x17F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1F97 JUMPI PUSH1 0x40 MLOAD PUSH4 0x616BC441 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x33 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH32 0x81DCB738DA3DABD5BB2ADBC7DD107FBBFCA936E9C8AECAB25F5B17A710A784C7 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2010 PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1584A179 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x561285E4 SWAP3 PUSH2 0x2044 SWAP3 DUP10 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x2F5F JUMP JUMPDEST PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2061 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2085 SWAP2 SWAP1 PUSH2 0x313F JUMP JUMPDEST PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH1 0x33 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1EBB7C30 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2104 SWAP2 SWAP1 PUSH2 0x31BE JUMP JUMPDEST PUSH2 0x2114 SWAP1 PUSH4 0xFFFFFFFF AND DUP6 PUSH2 0x31DB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2122 DUP4 DUP4 PUSH2 0x27B1 JUMP JUMPDEST PUSH2 0x212C SWAP1 DUP7 PUSH2 0x2F4C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH2 0x2175 PUSH1 0x20 DUP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x217F SWAP2 SWAP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x218A SWAP1 PUSH1 0x60 PUSH2 0x2F4C JUMP JUMPDEST DUP3 MLOAD SWAP1 DUP2 EQ SWAP1 PUSH1 0x1 PUSH2 0x219D PUSH1 0x20 DUP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x21A7 SWAP2 SWAP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x21B2 SWAP1 PUSH1 0x60 PUSH2 0x2F4C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x21DA JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x21F5 SWAP2 SWAP1 PUSH2 0x31F2 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 PUSH2 0x2208 DUP7 PUSH1 0x60 PUSH2 0x27C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2221 DUP8 PUSH2 0x221C PUSH1 0x20 PUSH1 0x60 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x27C1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2245 DUP9 PUSH1 0x20 PUSH2 0x2236 DUP2 PUSH1 0x60 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x2240 SWAP2 SWAP1 PUSH2 0x2F4C JUMP JUMPDEST PUSH2 0x2813 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE SWAP8 DUP9 MSTORE PUSH1 0x20 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE SWAP5 DUP7 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP6 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 DUP5 ADD MSTORE POP PUSH1 0xFF AND PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2289 DUP5 PUSH2 0x1320 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2295 PUSH2 0x1FE1 JUMP JUMPDEST PUSH1 0x33 SLOAD PUSH1 0x40 MLOAD PUSH4 0x12ECC4BF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND SWAP3 PUSH4 0x25D9897E SWAP3 PUSH2 0x22C9 SWAP3 DUP8 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH1 0x4 ADD PUSH2 0x2F5F JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x230B SWAP2 SWAP1 PUSH2 0x2F94 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP PUSH1 0x0 SUB PUSH2 0x2330 JUMPI PUSH1 0x40 MLOAD PUSH4 0x307EFDB7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x20 DUP1 DUP8 ADD MLOAD PUSH1 0x40 DUP1 DUP10 ADD MLOAD DUP2 MLOAD SWAP4 DUP5 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT DUP5 DUP4 SHL DUP2 AND PUSH1 0x80 DUP4 ADD MSTORE SWAP2 DUP10 SWAP1 SHL SWAP1 SWAP2 AND PUSH1 0x94 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0xA8 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP PUSH2 0x2399 DUP2 PUSH2 0xFE1 JUMP JUMPDEST ISZERO DUP2 SWAP1 PUSH2 0x23BC JUMPI PUSH1 0x40 MLOAD PUSH4 0x124A23F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x51F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x23CD DUP5 DUP5 PUSH1 0x0 ADD MLOAD PUSH2 0x2005 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MSTORE DUP13 DUP2 AND PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE DUP4 DUP6 ADD DUP15 DUP2 MSTORE PUSH1 0x0 PUSH1 0x60 DUP7 ADD DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x80 DUP9 ADD DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0xA0 DUP11 ADD DUP2 SWAP1 MSTORE TIMESTAMP PUSH1 0xC0 DUP12 ADD MSTORE PUSH1 0xE0 DUP11 ADD DUP13 SWAP1 MSTORE DUP14 DUP6 MSTORE PUSH1 0x37 SWAP1 SWAP7 MSTORE SWAP9 SWAP1 SWAP3 KECCAK256 DUP8 MLOAD DUP2 SLOAD SWAP1 DUP9 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR DUP3 SSTORE SWAP6 MLOAD PUSH1 0x1 DUP1 DUP4 ADD DUP1 SLOAD SWAP3 SWAP1 SWAP10 AND SWAP2 SWAP1 SWAP8 AND OR SWAP1 SWAP7 SSTORE SWAP2 MLOAD DUP6 DUP3 ADD SSTORE SWAP1 MLOAD PUSH1 0x3 DUP6 ADD SSTORE SWAP5 MLOAD SWAP1 DUP4 ADD DUP1 SLOAD SWAP7 SWAP8 POP SWAP4 SWAP6 SWAP3 SWAP5 SWAP1 SWAP4 SWAP3 PUSH1 0xFF NOT AND SWAP2 SWAP1 DUP5 SWAP1 DUP2 GT ISZERO PUSH2 0x248A JUMPI PUSH2 0x248A PUSH2 0x2AAF JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xA0 DUP3 ADD MLOAD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 DUP4 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x24B4 JUMPI PUSH2 0x24B4 PUSH2 0x2AAF JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0xC0 DUP3 ADD MLOAD DUP2 PUSH1 0x5 ADD SSTORE PUSH1 0xE0 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD SSTORE SWAP1 POP POP DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0xFB609A7FD5EB7947365D2F96D051030CAC33A27E3E4923F97EA4E03AAA2BCB14 DUP12 DUP12 PUSH1 0x40 ADD MLOAD DUP12 DUP8 PUSH1 0x40 MLOAD PUSH2 0x251E SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3220 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD PUSH1 0x0 SWAP2 EQ DUP1 ISZERO PUSH2 0x254D JUMPI POP DUP2 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD EQ JUMPDEST DUP1 ISZERO PUSH2 0xC07 JUMPI POP POP PUSH1 0x20 SWAP1 DUP2 ADD MLOAD SWAP2 ADD MLOAD EQ ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE DUP3 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP1 DUP2 PUSH2 0x2593 DUP3 PUSH2 0x1E18 JUMP JUMPDEST SWAP1 POP PUSH2 0x25EC DUP2 DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD DUP8 PUSH1 0xA0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25D8 SWAP4 SWAP3 SWAP2 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0xF8 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x41 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x2865 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2603 DUP4 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x2616 JUMPI POP PUSH2 0x2616 DUP3 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP4 DUP4 SWAP1 SWAP2 PUSH2 0x2640 JUMPI PUSH1 0x40 MLOAD PUSH4 0x768BF0EB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP PUSH3 0xF4240 SWAP1 POP PUSH2 0x2651 DUP4 DUP6 PUSH2 0x31DB JUMP JUMPDEST PUSH2 0xC07 SWAP2 SWAP1 PUSH2 0x3250 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x266A JUMPI DUP2 PUSH2 0xC07 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0x16E2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE DUP5 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH2 0x1667 JUMP JUMPDEST PUSH2 0x26BA PUSH2 0x288F JUMP JUMPDEST PUSH2 0xD60 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1436 PUSH2 0x26B2 JUMP JUMPDEST PUSH2 0x26E7 PUSH2 0x26B2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH32 0xD87CD6EF79D4E2B95E15CE8ABF732DB51EC771F1CA2EDCCF22A46C729AC56472 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x171A7FA058648750A8C5AAE430F30DB8D0100EFC3A5E1B2E8054B1C1CE28B6B4 SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x44852B2A670ADE5407E78FB2863C51DE9FCB96542A07186FE3AEDA6BB8A116D PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0xA070FFB1CD7409649BF77822CCE74495468E06DBFAEF09556838BF188679B9C2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x266A JUMPI DUP2 PUSH2 0xC07 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27CE PUSH1 0x20 DUP4 PUSH2 0x2F4C JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP2 LT ISZERO SWAP1 PUSH2 0x27E0 PUSH1 0x20 DUP6 PUSH2 0x2F4C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x2808 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP POP ADD PUSH1 0x20 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2820 PUSH1 0x1 DUP4 PUSH2 0x2F4C JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP2 LT ISZERO SWAP1 PUSH2 0x2832 PUSH1 0x1 DUP6 PUSH2 0x2F4C JUMP JUMPDEST SWAP1 SWAP2 PUSH2 0x285A JUMPI PUSH1 0x40 MLOAD PUSH4 0x3FDF3423 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x51F JUMP JUMPDEST POP POP POP ADD PUSH1 0x1 ADD MLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2875 DUP7 DUP7 PUSH2 0x28A9 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x2885 DUP3 DUP3 PUSH2 0x28F6 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2899 PUSH2 0x1BD3 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x28E3 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x28D5 DUP9 DUP3 DUP6 DUP6 PUSH2 0x29AF JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x28EF JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x290A JUMPI PUSH2 0x290A PUSH2 0x2AAF JUMP JUMPDEST SUB PUSH2 0x2913 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2927 JUMPI PUSH2 0x2927 PUSH2 0x2AAF JUMP JUMPDEST SUB PUSH2 0x2945 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2959 JUMPI PUSH2 0x2959 PUSH2 0x2AAF JUMP JUMPDEST SUB PUSH2 0x297A JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x51F JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x298E JUMPI PUSH2 0x298E PUSH2 0x2AAF JUMP JUMPDEST SUB PUSH2 0x186E JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x51F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 GT ISZERO PUSH2 0x29E0 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x2A6A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A34 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2A60 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x2A6A JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x6 DUP2 LT PUSH2 0x2AD5 JUMPI PUSH2 0x2AD5 PUSH2 0x2AAF JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE DUP9 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP7 SWAP1 MSTORE PUSH2 0x100 DUP2 ADD PUSH1 0x3 DUP7 LT PUSH2 0x2B10 JUMPI PUSH2 0x2B10 PUSH2 0x2AAF JUMP JUMPDEST DUP6 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x2B23 PUSH1 0xA0 DUP4 ADD DUP7 PUSH2 0x2AC5 JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xE0 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x2B80 DUP2 PUSH2 0x2B4D JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x75C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2BCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x2BD8 DUP2 PUSH2 0x2B4D JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2BE8 DUP2 PUSH2 0x2B8E JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH2 0x2BFF DUP2 PUSH2 0x2BA3 JUMP JUMPDEST SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH2 0x2C0F DUP2 PUSH2 0x2BA3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xC0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2C4D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2C4D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2C4D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x2CC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2CFA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE DUP5 CALLDATALOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP7 ADD CALLDATALOAD SWAP1 DUP4 ADD MSTORE SWAP4 DUP5 ADD CALLDATALOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x10A8 DUP2 PUSH2 0x2BA3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x10A8 DUP2 PUSH2 0x2B4D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2D6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2D83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2D9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2DB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2DCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2DD7 DUP6 DUP3 DUP7 ADD PUSH2 0x2D5A JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2DF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2E0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E1B DUP8 DUP3 DUP9 ADD PUSH2 0x2D5A JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2E3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E46 DUP8 DUP3 DUP9 ADD PUSH2 0x2D5A JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E6C PUSH2 0x2C1D JUMP JUMPDEST DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP5 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE SWAP1 POP PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x2EAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ECB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC07 DUP4 DUP4 PUSH2 0x2E52 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x180 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2EE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2EF3 DUP5 DUP5 PUSH2 0x2E52 JUMP JUMPDEST SWAP2 POP PUSH2 0x2F02 DUP5 PUSH1 0xC0 DUP6 ADD PUSH2 0x2E52 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x10A8 DUP2 PUSH2 0x2B8E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xC0A DUP3 DUP5 PUSH2 0x2AC5 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xC0A JUMPI PUSH2 0xC0A PUSH2 0x2F36 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2F84 DUP2 PUSH2 0x2BA3 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x2F84 DUP2 PUSH2 0x2B8E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x2FA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x2FB3 PUSH2 0x2C53 JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2FD7 PUSH1 0x60 DUP6 ADD PUSH2 0x2F79 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x2FE8 PUSH1 0x80 DUP6 ADD PUSH2 0x2F89 JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x2FF9 PUSH1 0xA0 DUP6 ADD PUSH2 0x2F89 JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x300A PUSH1 0xC0 DUP6 ADD PUSH2 0x2F79 JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x301B PUSH1 0xE0 DUP6 ADD PUSH2 0x2F89 JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x304A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x3055 PUSH2 0x2C84 JUMP JUMPDEST DUP4 MLOAD PUSH2 0x3060 DUP2 PUSH2 0x2B4D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x30D9 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x30BD JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x25EC SWAP1 DUP4 ADD DUP5 PUSH2 0x30B3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x312F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x10A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x3152 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 PUSH1 0xA0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3184 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP4 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 DUP4 REVERT JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE DUP5 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP7 ADD MLOAD SWAP1 DUP4 ADD MSTORE DUP5 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x10A8 DUP2 PUSH2 0x2BA3 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xC0A JUMPI PUSH2 0xC0A PUSH2 0x2F36 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3207 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 SWAP1 SWAP4 ADD MLOAD SWAP1 SWAP5 SWAP3 SWAP4 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP5 DUP2 MSTORE DUP4 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x80 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x323F PUSH1 0x80 DUP4 ADD DUP6 PUSH2 0x30B3 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x326D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ISZERO 0xFC MLOAD 0xA7 SWAP3 SELFBALANCE 0xA9 0xED CALLCODE PUSH12 0xDAF727EA63DE7398A97BC3A2 PUSH27 0xD1E74C0FF8BF34282E64736F6C634300081B003300000000000000 ", - "sourceMap": "2429:26817:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9390:806;;;;;;:::i;:::-;;:::i;:::-;;882:28:49;;;;;-1:-1:-1;;;882:28:49;;;;;;;;;539:10:62;527:23;;;509:42;;497:2;482:18;882:28:49;;;;;;;;958:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;958:77:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12902:130:48:-;;;;;;:::i;:::-;;:::i;2745:56::-;;2795:6;2745:56;;11271:789;;;;;;:::i;:::-;;:::i;312:39:49:-;;;;;-1:-1:-1;;;;;312:39:49;;;;;;;;;;:::i;595:29::-;;;;;;;;;2532:25:62;;;2520:2;2505:18;595:29:49;2386:177:62;16084:685:48;;;;;;:::i;:::-;;:::i;5534:307::-;;;;;;:::i;:::-;;:::i;14965:105::-;15050:13;;-1:-1:-1;;;15050:13:48;;-1:-1:-1;;;;;15050:13:48;14965:105;;;-1:-1:-1;;;;;3420:31:62;;;3402:50;;3390:2;3375:18;14965:105:48;3258:200:62;508:27:49;;;;;-1:-1:-1;;;508:27:49;;-1:-1:-1;;;;;508:27:49;;;4443:506:48;;;;;;:::i;:::-;;:::i;14501:147::-;;;;;;:::i;:::-;;:::i;434:25:49:-;;;;;-1:-1:-1;;;;;434:25:49;;;3155:101:34;;;:::i;13270:147:48:-;;;;;;:::i;:::-;;:::i;14755:108::-;14838:18;;;;14755:108;;2441:144:34;;;:::i;749:32:49:-;;;;;;;;;10372:606:48;;;;;;:::i;:::-;;:::i;13927:134::-;;;;;;:::i;:::-;;:::i;13588:131::-;;;;;;:::i;:::-;;:::i;12250:114::-;;;;;;:::i;:::-;;:::i;17779:153::-;;;;;;:::i;:::-;;:::i;:::-;;;7333:14:62;;7326:22;7308:41;;7296:2;7281:18;17779:153:48;7168:187:62;15188:270:48;;;;;;:::i;:::-;;:::i;6270:423::-;;;;;;:::i;:::-;;:::i;7382:1483::-;;;;;;:::i;:::-;;:::i;:::-;;;;9017:25:62;;;9073:2;9058:18;;9051:34;;;;8990:18;7382:1483:48;8843:248:62;16923:667:48;;;;;;:::i;:::-;;:::i;15638:252::-;;;;;;:::i;:::-;;:::i;12548:125::-;;;;;;:::i;:::-;;:::i;3405:215:34:-;;;;;;:::i;:::-;;:::i;9390:806:48:-;2960:10;;-1:-1:-1;;;;;2960:10:48;2946;:24;2938:64;;;;-1:-1:-1;;;2938:64:48;;;;;;;;;;;;9527:9:::1;3205:27;3222:9;3205:16;:27::i;:::-;3263:9;3197:77;;;;;-1:-1:-1::0;;;3197:77:48::1;;;;;;2532:25:62::0;;2520:2;2505:18;;2386:177;3197:77:48::1;;;;;;;;;-1:-1:-1::0;3335:37:48::1;3305:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;:67;::::0;::::1;;;;;;:::i;:::-;3418:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;::::0;3305:67:::1;3284:171;;;;-1:-1:-1::0;;;3284:171:48::1;;;;;;;;:::i;:::-;-1:-1:-1::0;9548:23:48::2;9574:19:::0;;;:8:::2;:19;::::0;;;;9640:14:::2;::::0;::::2;:55:::0;;-1:-1:-1;;9640:55:48::2;;;::::0;;9762:15;;9792:21:::2;::::0;::::2;::::0;9574:19;;9548:23;9748:66:::2;::::0;-1:-1:-1;;;;;9762:15:48::2;::::0;9779:11;;9748:13:::2;:66::i;:::-;9916:17;::::0;::::2;::::0;9952:15:::2;::::0;::::2;::::0;9723:91;;-1:-1:-1;9891:77:48::2;::::0;-1:-1:-1;;;;;9916:17:48;;::::2;::::0;9935:32:::2;::::0;9723:91;9935:32:::2;:::i;:::-;9891:13;:11;:13::i;:::-;-1:-1:-1::0;;;;;9891:24:48::2;::::0;:77;:24:::2;:77::i;:::-;9983:29;::::0;;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;;;9983:29:48;;::::2;::::0;;;;::::2;::::0;::::2;;::::0;::::2;::::0;::::2;::::0;;::::2;::::0;;;;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;::::2;::::0;10004:7;;9983:29;;;;::::2;::::0;;::::2;::::0;;::::2;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;:20;:29::i;:::-;9979:99;;;10028:39;10042:7;:24;;;10028:13;:39::i;:::-;10137:17;::::0;::::2;::::0;10120:15;;10156::::2;::::0;::::2;::::0;-1:-1:-1;;;;;10137:17:48;;::::2;::::0;10120:15;;::::2;::::0;10109:9;;10093:96:::2;::::0;10156:32:::2;::::0;10174:14;;10156:32:::2;:::i;:::-;10093:96;::::0;2532:25:62;;;2520:2;2505:18;10093:96:48::2;;;;;;;9538:658;;3012:1:::1;9390:806:::0;;:::o;12902:130::-;2334:13:34;:11;:13::i;:::-;12991:34:48::1;13010:14;12991:18;:34::i;:::-;12902:130:::0;:::o;11271:789::-;11345:9;3662:27;3679:9;3662:16;:27::i;:::-;3720:9;3654:77;;;;;-1:-1:-1;;;3654:77:48;;;;;;2532:25:62;;2520:2;2505:18;;2386:177;3654:77:48;-1:-1:-1;3763:19:48;;;;:8;:19;;;;;:29;;;-1:-1:-1;;;;;3763:29:48;3749:10;:43;3741:82;;;;-1:-1:-1;;;3741:82:48;;;;;;;;;;;;11375:9:::1;3205:27;3222:9;3205:16;:27::i;:::-;3263:9;3197:77;;;;;-1:-1:-1::0;;;3197:77:48::1;;;;;;2532:25:62::0;;2520:2;2505:18;;2386:177;3197:77:48::1;-1:-1:-1::0;3335:37:48::1;3305:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;:67;::::0;::::1;;;;;;:::i;:::-;3418:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;::::0;3305:67:::1;3284:171;;;;-1:-1:-1::0;;;3284:171:48::1;;;;;;;;:::i;:::-;-1:-1:-1::0;11396:23:48::2;11422:19:::0;;;:8:::2;:19;::::0;;;;11528:13:::2;::::0;11508:17:::2;::::0;::::2;::::0;11544:15:::2;::::0;11508:33:::2;::::0;-1:-1:-1;;;11528:13:48;;::::2;-1:-1:-1::0;;;;;11528:13:48::2;::::0;11508:33:::2;:::i;:::-;:51;11500:102;;;;-1:-1:-1::0;;;11500:102:48::2;;;;;;;;;;;;11667:15;::::0;::::2;::::0;:19;11663:110:::2;;11727:17;::::0;::::2;::::0;11746:15:::2;::::0;::::2;::::0;11702:60:::2;::::0;-1:-1:-1;;;;;11727:17:48::2;::::0;11702:13:::2;:11;:13::i;:60::-;11825:33;::::0;;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;;;11825:33:48;;::::2;::::0;;;;::::2;::::0;::::2;;::::0;::::2;::::0;::::2;::::0;;::::2;::::0;;;;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;::::2;::::0;11850:7;;11825:33;;;;::::2;::::0;;::::2;::::0;;::::2;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;:24;:33::i;:::-;-1:-1:-1::0;11901:14:48::2;::::0;::::2;:56:::0;;-1:-1:-1;;11901:56:48::2;::::0;::::2;::::0;;-1:-1:-1;12018:17:48;::::2;::::0;12001:15;;12037::::2;::::0;::::2;::::0;11973:80:::2;::::0;;2532:25:62;;;11973:80:48;-1:-1:-1;;;;;12018:17:48;;::::2;::::0;12001:15;;::::2;::::0;11990:9;;11973:80:::2;::::0;;;;;2520:2:62;11973:80:48;;::::2;11386:674;3833:1:::1;11271:789:::0;;:::o;16084:685::-;2960:10;;-1:-1:-1;;;;;2960:10:48;2946;:24;2938:64;;;;-1:-1:-1;;;2938:64:48;;;;;;;;;;;;16176:9:::1;3205:27;3222:9;3205:16;:27::i;:::-;3263:9;3197:77;;;;;-1:-1:-1::0;;;3197:77:48::1;;;;;;2532:25:62::0;;2520:2;2505:18;;2386:177;3197:77:48::1;-1:-1:-1::0;3335:37:48::1;3305:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;:67;::::0;::::1;;;;;;:::i;:::-;3418:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;::::0;3305:67:::1;3284:171;;;;-1:-1:-1::0;;;3284:171:48::1;;;;;;;;:::i;:::-;-1:-1:-1::0;16197:23:48::2;16223:19:::0;;;:8:::2;:19;::::0;;;;;;;;16285:14:::2;::::0;::::2;:55:::0;;;-1:-1:-1;;16285:55:48;::::2;;::::0;;;16447:29;;16285:55:::2;16447:29:::0;::::2;::::0;;;;-1:-1:-1;;;;;16447:29:48;;::::2;::::0;;-1:-1:-1;16447:29:48;::::2;::::0;::::2;::::0;;::::2;::::0;;;;16302:38:::2;16447:29:::0;;::::2;::::0;;;;;;;;::::2;::::0;::::2;::::0;;;;;16223:19;;16447:29:::2;::::0;;16223:19;;16447:29;;;;::::2;::::0;;;::::2;;;;;;:::i;:::-;16540:24;::::0;::::2;::::0;16529:9;;16446:30:::2;16425:150;;;::::0;-1:-1:-1;;;16425:150:48;;::::2;::::0;::::2;9017:25:62::0;;;;9058:18;;;9051:34;8990:18;;16425:150:48::2;8843:248:62::0;16425:150:48::2;;;16626:41;16651:7;:15;;;16626:13;:11;:13::i;:::-;-1:-1:-1::0;;;;;16626:24:48::2;::::0;::::2;:41::i;:::-;16727:17;::::0;::::2;::::0;16710:15;;16746::::2;::::0;::::2;::::0;16683:79:::2;::::0;2532:25:62;;;-1:-1:-1;;;;;16727:17:48;;::::2;::::0;16710:15;;::::2;::::0;16699:9;;16683:79:::2;::::0;2520:2:62;2505:18;16683:79:48::2;;;;;;;;16187:582;3012:1:::1;16084:685:::0;:::o;5534:307::-;5627:7;5682:23;:21;:23::i;:::-;5751:83;5788:10;5800:14;;5816:12;5830:3;5751:36;:83::i;:::-;5744:90;;5534:307;;;;;:::o;4443:506::-;4158:30:35;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:35;-1:-1:-1;;;4302:15:35;;;4301:16;;-1:-1:-1;;;;;4348:14:35;4279:19;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;-1:-1:-1;;;;;4790:16:35;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:35;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:35;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:35;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:35;-1:-1:-1;;;5013:22:35;;;4979:67;4658:26:48::1;4673:10;4658:14;:26::i;:::-;4694:27;:25;:27::i;:::-;4732:26;4747:10;4732:14;:26::i;:::-;4768:32;4786:13;4768:17;:32::i;:::-;4810:34;4829:14;4810:18;:34::i;:::-;4854:43;4877:19;4854:22;:43::i;:::-;4907:35;4926:15;4907:18;:35::i;:::-;5070:14:35::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:35;;;5142:14;;-1:-1:-1;3402:50:62;;5142:14:35;;3390:2:62;3375:18;5142:14:35;;;;;;;5066:101;4092:1081;;;;;4443:506:48;;;;;:::o;14501:147::-;14592:7;14618:23;14633:7;14618:14;:23::i;3155:101:34:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;13270:147:48:-;2334:13:34;:11;:13::i;:::-;13367:43:48::1;13390:19;13367:22;:43::i;2441:144:34:-:0;2487:7;2506:24;2533:20;:18;:20::i;:::-;2570:8;-1:-1:-1;;;;;2570:8:34;;2441:144;-1:-1:-1;;2441:144:34:o;10372:606:48:-;2960:10;;-1:-1:-1;;;;;2960:10:48;2946;:24;2938:64;;;;-1:-1:-1;;;2938:64:48;;;;;;;;;;;;10464:9:::1;3205:27;3222:9;3205:16;:27::i;:::-;3263:9;3197:77;;;;;-1:-1:-1::0;;;3197:77:48::1;;;;;;2532:25:62::0;;2520:2;2505:18;;2386:177;3197:77:48::1;-1:-1:-1::0;3335:37:48::1;3305:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;:67;::::0;::::1;;;;;;:::i;:::-;3418:19;::::0;;;:8:::1;:19;::::0;;;;:26:::1;;::::0;::::1;::::0;::::1;;;::::0;3305:67:::1;3284:171;;;;-1:-1:-1::0;;;3284:171:48::1;;;;;;;;:::i;:::-;-1:-1:-1::0;10485:23:48::2;10511:19:::0;;;:8:::2;:19;::::0;;;;10595:15:::2;::::0;::::2;::::0;:19;10591:110:::2;;10655:17;::::0;::::2;::::0;10674:15:::2;::::0;::::2;::::0;10630:60:::2;::::0;-1:-1:-1;;;;;10655:17:48::2;::::0;10630:13:::2;:11;:13::i;:60::-;10753:31;::::0;;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;;;10753:31:48;;::::2;::::0;;;;::::2;::::0;::::2;;::::0;::::2;::::0;::::2;::::0;;::::2;::::0;;;;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;::::2;::::0;10776:7;;10753:31;;;;::::2;::::0;;::::2;::::0;;::::2;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;:22;:31::i;:::-;-1:-1:-1::0;10827:14:48::2;::::0;::::2;:52:::0;;-1:-1:-1;;10827:52:48::2;::::0;::::2;::::0;;-1:-1:-1;10936:17:48;::::2;::::0;10919:15;;10955::::2;::::0;::::2;::::0;10895:76:::2;::::0;2532:25:62;;;-1:-1:-1;;;;;10936:17:48;;::::2;::::0;10919:15;;::::2;::::0;10908:9;;10895:76:::2;::::0;2520:2:62;2505:18;10895:76:48::2;2386:177:62::0;13927:134:48;2334:13:34;:11;:13::i;:::-;14018:36:48::1;14038:15;14018:19;:36::i;13588:131::-:0;2334:13:34;:11;:13::i;:::-;13677:35:48::1;13696:15;13677:18;:35::i;12250:114::-:0;2334:13:34;:11;:13::i;:::-;12331:26:48::1;12346:10;12331:14;:26::i;17779:153::-:0;17854:4;;17877:19;;;;:8;:19;;;;;:26;;;;;;;;:48;;;;;;;;:::i;:::-;;;;17779:153;-1:-1:-1;;17779:153:48:o;15188:270::-;15263:7;15282:42;15327:15;:13;:15::i;:::-;15373;;15327:63;;-1:-1:-1;;;15327:63:48;;-1:-1:-1;;;;;15327:28:48;;;;;;:63;;15356:7;;15373:15;;;;15327:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15282:108;;15407:44;15425:7;15434:9;:16;;;15407:17;:44::i;:::-;15400:51;15188:270;-1:-1:-1;;;15188:270:48:o;6270:423::-;6357:7;6412:23;:21;:23::i;:::-;6493:193;6545:10;6573:14;;6605:34;6623:15;;6605:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6605:17:48;;-1:-1:-1;;;6605:34:48:i;:::-;6657:15;;6493:193;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6493:34:48;;-1:-1:-1;;;6493:193:48:i;7382:1483::-;7533:7;7542;7561:17;7581:10;7561:30;;7636:37;7676:35;7694:16;;7676:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7676:17:48;;-1:-1:-1;;;7676:35:48:i;:::-;7636:75;;7721:37;7761:35;7779:16;;7761:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7761:17:48;;-1:-1:-1;;;7761:35:48:i;:::-;7721:75;;7878:54;7905:12;7919;7878:26;:54::i;:::-;8004:23;;8045:24;;;;;8087:33;;;;;8138:23;;8179:24;;;;8221:33;;;;8004:23;;8045:24;;8087:33;;8138:23;7857:421;;;;-1:-1:-1;;;7857:421:48;;;;;13522:25:62;;;;13563:18;;;13556:34;;;;13606:18;;;13599:34;;;;13649:18;;;13642:34;13692:19;;;13685:35;13736:19;;;13729:35;13494:19;;7857:421:48;13235:535:62;7857:421:48;;;;;;;8380:12;8395:80;8430:9;8441:1;8444:12;8458:16;;8395:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8395:34:48;;-1:-1:-1;;;8395:80:48:i;:::-;8380:95;;8485:12;8500:80;8535:9;8546:1;8549:12;8563:16;;8500:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8500:34:48;;-1:-1:-1;;;8500:80:48:i;:::-;8643:14;;;;:8;:14;;;;;;:31;;;;:38;;;8691:14;;;;;;:31;:38;;;8803:25;8485:95;;-1:-1:-1;8485:95:48;;8652:4;;8803:25;;;8847:4;;;;-1:-1:-1;7382:1483:48;-1:-1:-1;;;;;;;;7382:1483:48:o;16923:667::-;17013:7;17104:20;17127:27;17142:11;17127:14;:27::i;:::-;17197:15;;:43;;-1:-1:-1;;;17197:43:48;;17104:50;;-1:-1:-1;17165:29:48;;-1:-1:-1;;;;;17197:15:48;;;;:29;;:43;;17104:50;;17197:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17258:13;;17165:75;;-1:-1:-1;17317:12:48;;-1:-1:-1;;;;;17258:27:48;17250:81;;;;-1:-1:-1;;;17250:81:48;;;;;;;;:::i;:::-;-1:-1:-1;17392:32:48;;;;17362:26;;;;;:62;;;17341:212;;;;-1:-1:-1;;;17341:212:48;;;;;9017:25:62;;;;9058:18;;;9051:34;8990:18;;17341:212:48;8843:248:62;17341:212:48;-1:-1:-1;;17570:13:48;;16923:667;-1:-1:-1;;;16923:667:48:o;15638:252::-;15806:4;15829:54;15856:12;15870;15829:26;:54::i;12548:125::-;2334:13:34;:11;:13::i;:::-;12634:32:48::1;12652:13;12634:17;:32::i;3405:215:34:-:0;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:34;::::1;3485:91;;3562:1;3534:31;;-1:-1:-1::0;;;3534:31:34::1;;;;;;;;:::i;3485:91::-;3585:28;3604:8;3585:18;:28::i;23818:1055:48:-:0;23958:7;24021:42;24066:15;:13;:15::i;:::-;24113;;24066:64;;-1:-1:-1;;;24066:64:48;;-1:-1:-1;;;;;24066:28:48;;;;;;:64;;24095:8;;24113:15;;;;24066:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24243:14;;24021:109;;-1:-1:-1;24190:22:48;;24215:43;;:20;;24243:14;-1:-1:-1;;;24243:14:48;;;;;;24215:27;:43;:::i;:::-;24190:68;-1:-1:-1;24289:17:48;;;;;:51;;;24326:14;24310:12;:30;;24289:51;24387:12;24401:14;24268:158;;;;;;-1:-1:-1;;;24268:158:48;;;;;9017:25:62;;;;9058:18;;;9051:34;8990:18;;24268:158:48;8843:248:62;24268:158:48;;;24594:27;24624:40;24633:12;24647:9;:16;;;24624:8;:40::i;:::-;24706:18;;24594:70;;-1:-1:-1;24674:21:48;;24698:55;;24706:18;;;;;24594:70;;24698:34;:55;:::i;:::-;24764:15;;24796:39;;;;;;9017:25:62;;;9058:18;;;9051:34;;;24796:39:48;;;;;;;;;8990:18:62;;;24796:39:48;;;;-1:-1:-1;;;24764:72:48;;;9051:34:62;;-1:-1:-1;;;;;;24764:15:48;;;;:21;;:72;;24786:8;;24796:39;24764:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24853:13:48;;23818:1055;-1:-1:-1;;;;;;;;;;23818:1055:48:o;5725:94:33:-;5801:11;;5725:94::o;1050:198:7:-;1148:11;;1144:98;;1183:34;;-1:-1:-1;;;1183:34:7;;-1:-1:-1;;;;;16125:32:62;;;1183:34:7;;;16107:51:62;16174:18;;;16167:34;;;1183:20:7;;;;;16080:18:62;;1183:34:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1175:56;;;;-1:-1:-1;;;1175:56:7;;16696:2:62;1175:56:7;;;16678:21:62;16735:1;16715:18;;;16708:29;-1:-1:-1;;;16753:18:62;;;16746:39;16802:18;;1175:56:7;16494:332:62;1175:56:7;1050:198;;;:::o;27961:329:48:-;28074:25;;;;28038:4;;28198:14;;;;;:85;;-1:-1:-1;28246:37:48;28216:19;;;;:8;:19;;;;;:26;;;;;;;;:67;;;;;;;;:::i;:::-;;28191:92;27961:329;-1:-1:-1;;;27961:329:48:o;2658:162:34:-;966:10:36;2717:7:34;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:34;;2713:101;;966:10:36;2763:40:34;;-1:-1:-1;;;2763:40:34;;;;;;;;:::i;25949:252:48:-;26028:15;:20;26020:83;;;;-1:-1:-1;;;26020:83:48;;;;;;2532:25:62;;2520:2;2505:18;;2386:177;26020:83:48;-1:-1:-1;26113:14:48;:32;;;26160:34;;2532:25:62;;;26160:34:48;;2520:2:62;2505:18;26160:34:48;;;;;;;;25949:252;:::o;22720:408::-;22796:4;22816:30;22837:8;22816:20;:30::i;:::-;22812:288;;;22889:25;;;;22862:24;22961:26;;;:8;:26;;;;;23001:21;;;:63;;23025:39;;23001:21;-1:-1:-1;;23001:63:48;;23025:39;23001:63;;;;;-1:-1:-1;23085:4:48;;22720:408;-1:-1:-1;;;;22720:408:48:o;22812:288::-;-1:-1:-1;23116:5:48;;22720:408;-1:-1:-1;22720:408:48:o;1404:154:7:-;1489:11;;1485:67;;1516:25;;-1:-1:-1;;;1516:25:7;;;;;2532::62;;;-1:-1:-1;;;;;1516:16:7;;;;;2505:18:62;;1516:25:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1485:67;1404:154;;:::o;23211:180:48:-;23332:52;23357:10;23369:14;;23332:13;:11;:13::i;:::-;-1:-1:-1;;;;;23332:24:48;;:52;:24;:52::i;20483:1468::-;20738:37;;-1:-1:-1;;;;;;17033:2:62;17004:15;;;17000:45;20738:37:48;;;16988:58:62;17062:12;;;17055:28;;;20659:7:48;;;;17099:12:62;;20738:37:48;;;;;;;;;;;;20728:48;;;;;;20708:68;;20854:27;20871:9;20854:16;:27::i;:::-;20853:28;20919:9;20845:85;;;;;-1:-1:-1;;;20845:85:48;;;;;;2532:25:62;;2520:2;2505:18;;2386:177;20845:85:48;-1:-1:-1;21006:15:48;;:44;;-1:-1:-1;;;21006:44:48;;20974:29;;-1:-1:-1;;;;;21006:15:48;;:29;;:44;;21036:13;;21006:44;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21078:13;;20974:76;;-1:-1:-1;21162:13:48;-1:-1:-1;;;;;21109:21:48;;21101:76;;;;-1:-1:-1;;;21101:76:48;;;;;;;;:::i;:::-;;21230:42;21275:15;:13;:15::i;:::-;21321;;21275:63;;-1:-1:-1;;;21275:63:48;;-1:-1:-1;;;;;21275:28:48;;;;;;:63;;21304:7;;21321:15;;;;21275:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21356:16;;21230:108;;-1:-1:-1;21356:16:48;:21;21348:58;;;;-1:-1:-1;;;21348:58:48;;;;;;;;;;;;21442:21;21466:44;21484:7;21493:9;:16;;;21466:17;:44::i;:::-;21542:253;;;;;;;;21563:13;;-1:-1:-1;;;;;21542:253:48;;;;;;;;;;;;;;;;;-1:-1:-1;21542:253:48;;;;21442:68;;-1:-1:-1;21542:253:48;;;21651:27;21542:253;;;;21692:37;21542:253;;21743:15;21542:253;;;;;;;;;;;;;;;-1:-1:-1;21520:19:48;;;:8;:19;;;;;:275;;;;-1:-1:-1;;;;;21520:275:48;;;-1:-1:-1;;;;;;21520:275:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21520:275:48;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;21520:275:48;;;;;;;;;-1:-1:-1;;21520:275:48;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;21520:275:48;;;;;;;;;;;;;;;;;;21845:13;;21811:106;;;17353:25:62;;;-1:-1:-1;;;;;17414:32:62;;;17409:2;17394:18;;17387:60;17463:18;;;17456:34;;;17521:2;17506:18;;17499:34;;;21811:106:48;;;;;;;;21834:9;;21811:106;;17340:3:62;17325:19;21811:106:48;;;;;;;-1:-1:-1;21935:9:48;;20483:1468;-1:-1:-1;;;;;;;;20483:1468:48:o;8737:170:35:-;8870:21;;8737:170::o;1847:127:34:-;6931:20:35;:18;:20::i;:::-;1929:38:34::1;1954:12;1929:24;:38::i;1599:117:59:-:0;6931:20:35;:18;:20::i;:::-;1672:37:59::1;:35;:37::i;25074:215:48:-:0;-1:-1:-1;;;;;25145:25:48;;25137:70;;;;-1:-1:-1;;;25137:70:48;;;;;;;;;;;;25217:10;:24;;-1:-1:-1;;;;;;25217:24:48;-1:-1:-1;;;;;25217:24:48;;;;;;;;25256:26;;;;-1:-1:-1;;25256:26:48;25074:215;:::o;25484:225::-;25560:14;-1:-1:-1;;;;;25560:19:48;25578:1;25560:19;25552:63;;;;-1:-1:-1;;;25552:63:48;;;;;;;;;;;;25625:13;:30;;-1:-1:-1;;;;25625:30:48;-1:-1:-1;;;;;;;;25625:30:48;;;;;;;;;;;;25670:32;;3402:50:62;;;25670:32:48;;3390:2:62;3375:18;25670:32:48;3258:200:62;26449:341:48;26548:19;2795:6;26548:47;;;;;26527:149;;;;-1:-1:-1;;;26527:149:48;;539:10:62;527:23;;;26527:149:48;;;509:42:62;482:18;;26527:149:48;365:192:62;26527:149:48;-1:-1:-1;26686:18:48;:40;;-1:-1:-1;;26686:40:48;;;;;;;;;;26741:42;;509::62;;;26741::48;;497:2:62;482:18;26741:42:48;365:192:62;26971:314:48;27098:35;;;;312:9:31;-1:-1:-1;1823:16:31;27090:98:48;;;;-1:-1:-1;;;27090:98:48;;539:10:62;527:23;;;27090:98:48;;;509:42:62;482:18;;27090:98:48;365:192:62;27090:98:48;-1:-1:-1;27198:14:48;:32;;-1:-1:-1;;27198:32:48;-1:-1:-1;;;27198:32:48;;;;;;;;;;;;;;27245:33;;27263:14;;;509:42:62;;27245:33:48;;497:2:62;482:18;27245:33:48;365:192:62;3513:669:59;3597:7;3775:16;3935:19;;3984:20;;;;;4034:29;;;;;3848:241;;785:89;3848:241;;;17775:25:62;17816:18;;;17809:34;;;;17859:18;;;17852:34;;;;17902:18;;;;17895:34;;;;3848:241:59;;;;;;;;;;17747:19:62;;;3848:241:59;;3813:330;;;;;;-1:-1:-1;;;3662:499:59;;;18198:27:62;18241:11;;;18234:27;;;;18277:12;;;;18270:28;;;;3662:499:59;;;;;;;;;;18314:12:62;;;;3662:499:59;;;3635:540;;;;;;3513:669::o;3774:248:34:-;3847:24;3874:20;:18;:20::i;:::-;3923:8;;-1:-1:-1;;;;;3941:19:34;;;-1:-1:-1;;;;;;3941:19:34;;;;;;3975:40;;3847:47;;-1:-1:-1;3923:8:34;;;;;3975:40;;3904:16;;3975:40;3837:185;;3774:248;:::o;1192:159::-;1313:22;;1192:159::o;22133:402:48:-;22207:4;22227:30;22248:8;22227:20;:30::i;:::-;22223:284;;;22300:25;;;;22273:24;22372:26;;;:8;:26;;;;;22412:21;;;:59;;22436:35;;22412:21;-1:-1:-1;;22412:59:48;;22436:35;22412:59;;27504:268;-1:-1:-1;;;;;27585:30:48;;27577:75;;;;-1:-1:-1;;;27577:75:48;;;;;;;;;;;;27662:15;:52;;-1:-1:-1;;;;;;27662:52:48;-1:-1:-1;;;;;27662:52:48;;;;;;;;27729:36;;;;-1:-1:-1;;27729:36:48;27504:268;:::o;5889:102:33:-;5971:13;;5889:102::o;28796:448:48:-;28886:7;28905:23;28931:15;:13;:15::i;:::-;28983;;28931:69;;-1:-1:-1;;;28931:69:48;;-1:-1:-1;;;;;28931:33:48;;;;;;:69;;28965:8;;28983:15;;;;28931:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;;28905:102;;29017:26;29070:15;;;;;;;;;-1:-1:-1;;;;;29070:15:48;-1:-1:-1;;;;;29070:34:48;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29046:61;;29062:45;;29046:13;:61;:::i;:::-;29017:90;;29117:21;29157:50;29171:15;29188:18;29157:13;:50::i;:::-;29141:66;;:13;:66;:::i;:::-;29117:90;28796:448;-1:-1:-1;;;;;;28796:448:48:o;2320:820:55:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;919:1:55;1205:27;871:2;;1205:27;:::i;:::-;:42;;;;:::i;:::-;1304:35;;774:2;1304:35;:::i;:::-;2464:12;;:38;;;;919:1;1205:27;871:2;;1205:27;:::i;:::-;:42;;;;:::i;:::-;1304:35;;774:2;1304:35;:::i;:::-;2443:150;;;;;;-1:-1:-1;;;2443:150:55;;;;;9017:25:62;;;;9058:18;;;9051:34;8990:18;;2443:150:55;8843:248:62;2443:150:55;;;2631:18;2651:19;2672:28;2728:5;2704:80;;;;;;;;;;;;:::i;:::-;2630:154;;;;;;2909:9;2921:31;2932:5;774:2;2921:10;:31::i;:::-;2909:43;-1:-1:-1;2962:9:55;2974:31;2985:5;1030:33;823:2;774;1030:33;:::i;:::-;2974:10;:31::i;:::-;2962:43;-1:-1:-1;3015:7:55;3025:29;3034:5;871:2;1109:33;871:2;774;1109:33;:::i;:::-;:48;;;;:::i;:::-;3025:8;:29::i;:::-;3072:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3072:61:55;;;;;;;2320:820;-1:-1:-1;;2320:820:55:o;18478:1717:48:-;18685:7;18759:15;18777:35;18799:12;18777:21;:35::i;:::-;18759:53;;18860:42;18905:15;:13;:15::i;:::-;18951;;18905:63;;-1:-1:-1;;;18905:63:48;;-1:-1:-1;;;;;18905:28:48;;;;;;:63;;18934:7;;18951:15;;;;18905:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18986:16;;18860:108;;-1:-1:-1;18986:16:48;:21;18978:58;;;;-1:-1:-1;;;18978:58:48;;;;;;;;;;;;19154:23;;19195:24;;;;;19237:33;;;;;19120:217;;;;;20576:19:62;;;;20611:12;;20604:28;20648:12;;;;20641:28;;;;-1:-1:-1;;;;;;20703:15:62;;;20699:45;;20685:12;;;20678:67;20780:15;;;;20776:45;;;20761:13;;;20754:68;19077:17:48;;20838:13:62;;19120:217:48;;;;;;;;;;;;19097:250;;;;;;19077:270;;19443:27;19460:9;19443:16;:27::i;:::-;19442:28;19508:9;19434:85;;;;;-1:-1:-1;;;19434:85:48;;;;;;2532:25:62;;2520:2;2505:18;;2386:177;19434:85:48;;19555:21;19579:44;19597:7;19606:9;:16;;;19579:17;:44::i;:::-;19655:267;;;;;;;;-1:-1:-1;;;;;19655:267:48;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19655:267:48;;;;;;19781:24;19655:267;;;;;;19819:37;19655:267;;;;;;19870:15;19655:267;;;;;;;;;;19633:19;;;:8;:19;;;;;;;:289;;;;;;;-1:-1:-1;;;;;;19633:289:48;;;;;;;;-1:-1:-1;19633:289:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19655:267;;-1:-1:-1;19655:267:48;;19633:19;;:289;;;-1:-1:-1;;19633:289:48;;-1:-1:-1;19633:289:48;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;19633:289:48;;;;;;;;;-1:-1:-1;;19633:289:48;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;20015:10;-1:-1:-1;;;;;19938:223:48;19994:7;-1:-1:-1;;;;;19938:223:48;19971:9;19938:223;20039:8;20061:12;:33;;;20108:16;20138:13;19938:223;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;20179:9:48;18478:1717;-1:-1:-1;;;;;;;18478:1717:48:o;1805:391:55:-;2006:24;;1978;;1954:4;;1978:52;:140;;;;;2084:13;:34;;;2046:13;:34;;;:72;1978:140;:210;;;;-1:-1:-1;;2163:25:55;;;;;2134;;;:54;;;1805:391::o;2372:700:59:-;2592:151;;;;;;;;2625:23;;2592:151;;;2662:24;;;;2592:151;;;;2700:33;;;;2592:151;;;;;;;2458:7;;;2775:23;2592:151;2775:14;:23::i;:::-;2753:45;;2973:92;2987:11;3017:12;:14;;;3033:12;:14;;;3049:12;:14;;;3000:64;;;;;;;;;21480:19:62;;;21524:2;21515:12;;21508:28;;;;21592:3;21570:16;-1:-1:-1;;;;;;21566:36:62;21561:2;21552:12;;21545:58;21628:2;21619:12;;21299:338;3000:64:59;;;;;;;;;;;;;2973:13;:92::i;:::-;2966:99;2372:700;-1:-1:-1;;;;2372:700:59:o;959:188:31:-;1020:7;1047:13;1058:1;312:9;-1:-1:-1;1823:16:31;;1742:104;1047:13;:30;;;;1064:13;1075:1;312:9;-1:-1:-1;1823:16:31;;1742:104;1064:13;1100:1;1103;1039:67;;;;;;-1:-1:-1;;;1039:67:31;;;;;9017:25:62;;;;9058:18;;;9051:34;8990:18;;1039:67:31;8843:248:62;1039:67:31;-1:-1:-1;312:9:31;;-1:-1:-1;1124:5:31;1128:1;1124;:5;:::i;:::-;1123:17;;;;:::i;2557:104:46:-;2615:7;2645:1;2641;:5;:13;;2653:1;2641:13;;;-1:-1:-1;2649:1:46;;2557:104;-1:-1:-1;2557:104:46:o;598:221:7:-;698:11;;694:119;;733:55;;-1:-1:-1;;;733:55:7;;-1:-1:-1;;;;;22084:32:62;;;733:55:7;;;22066:51:62;773:4:7;22133:18:62;;;22126:60;22202:18;;;22195:34;;;733:24:7;;;;;22039:18:62;;733:55:7;21864:371:62;7084:141:35;7151:17;:15;:17::i;:::-;7146:73;;7191:17;;-1:-1:-1;;;7191:17:35;;;;;;;;;;;1980:235:34;6931:20:35;:18;:20::i;1846:362:59:-;6931:20:35;:18;:20::i;:::-;1971:220:59::1;::::0;;973:108:::1;1971:220;::::0;::::1;22527:25:62::0;1167:27:59::1;22568:18:62::0;;;22561:34;;;;1286:14:59::1;22611:18:62::0;;;22604:34;2104:13:59::1;22654:18:62::0;;;22647:34;2143:4:59::1;22697:19:62::0;;;22690:61;1381:66:59::1;22767:19:62::0;;;22760:35;22499:19;;1971:220:59::1;::::0;;-1:-1:-1;;1971:220:59;;::::1;::::0;;;;;;1948:253;;1971:220:::1;1948:253:::0;;::::1;::::0;1929:16:::1;:272:::0;1846:362::o;1063:105:30:-;1121:7;1152:1;1147;:6;;:14;;1160:1;1147:14;;4048:478:55;4127:7;4184:28;1445:2;4184:6;:28;:::i;:::-;4167:13;;:45;;;;;4271:28;1445:2;4271:6;:28;:::i;:::-;4146:164;;;;;;-1:-1:-1;;;4146:164:55;;;;;9017:25:62;;;;9058:18;;;9051:34;8990:18;;4146:164:55;8843:248:62;4146:164:55;-1:-1:-1;;;4450:30:55;4466:4;4450:30;4444:37;;4048:478::o;3258:668::-;3335:5;3390:26;1391:1;3390:6;:26;:::i;:::-;3373:13;;:43;;;;;3475:26;1391:1;3475:6;:26;:::i;:::-;3352:160;;;;;;-1:-1:-1;;;3352:160:55;;;;;9017:25:62;;;;9058:18;;;9051:34;8990:18;;3352:160:55;8843:248:62;3352:160:55;-1:-1:-1;;;3854:29:55;3870:3;3854:29;3848:36;;3258:668::o;3702:255:44:-;3780:7;3800:17;3819:18;3839:16;3859:27;3870:4;3876:9;3859:10;:27::i;:::-;3799:87;;;;;;3896:28;3908:5;3915:8;3896:11;:28::i;:::-;-1:-1:-1;3941:9:44;;3702:255;-1:-1:-1;;;;3702:255:44:o;8487:120:35:-;8537:4;8560:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8560:40:35;;;;;;-1:-1:-1;8487:120:35:o;2129:766:44:-;2210:7;2219:12;2233:7;2256:9;:16;2276:2;2256:22;2252:637;;2592:4;2577:20;;2571:27;2641:4;2626:20;;2620:27;2698:4;2683:20;;2677:27;2294:9;2669:36;2739:25;2750:4;2669:36;2571:27;2620;2739:10;:25::i;:::-;2732:32;;;;;;;;;;;2252:637;-1:-1:-1;;2860:16:44;;2811:1;;-1:-1:-1;2815:35:44;;2252:637;2129:766;;;;;:::o;7196:532::-;7291:20;7282:5;:29;;;;;;;;:::i;:::-;;7278:444;;7196:532;;:::o;7278:444::-;7387:29;7378:5;:38;;;;;;;;:::i;:::-;;7374:348;;7439:23;;-1:-1:-1;;;7439:23:44;;;;;;;;;;;7374:348;7492:35;7483:5;:44;;;;;;;;:::i;:::-;;7479:243;;7550:46;;-1:-1:-1;;;7550:46:44;;;;;2532:25:62;;;2505:18;;7550:46:44;2386:177:62;7479:243:44;7626:30;7617:5;:39;;;;;;;;:::i;:::-;;7613:109;;7679:32;;-1:-1:-1;;;7679:32:44;;;;;2532:25:62;;;2505:18;;7679:32:44;2386:177:62;5140:1530:44;5266:7;;;-1:-1:-1;;;;;6186:79:44;;6182:164;;;-1:-1:-1;6297:1:44;;-1:-1:-1;6301:30:44;;-1:-1:-1;6333:1:44;6281:54;;6182:164;6457:24;;;6440:14;6457:24;;;;;;;;;23033:25:62;;;23106:4;23094:17;;23074:18;;;23067:45;;;;23128:18;;;23121:34;;;23171:18;;;23164:34;;;6457:24:44;;23005:19:62;;6457:24:44;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6457:24:44;;-1:-1:-1;;6457:24:44;;;-1:-1:-1;;;;;;;6495:20:44;;6491:113;;-1:-1:-1;6547:1:44;;-1:-1:-1;6551:29:44;;-1:-1:-1;6547:1:44;;-1:-1:-1;6531:62:44;;6491:113;6622:6;-1:-1:-1;6630:20:44;;-1:-1:-1;6630:20:44;;-1:-1:-1;5140:1530:44;;;;;;;;;:::o;14:346:62:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;204:23:62;;;324:2;309:18;;;296:32;;-1:-1:-1;14:346:62:o;562:226::-;621:6;674:2;662:9;653:7;649:23;645:32;642:52;;;690:1;687;680:12;642:52;-1:-1:-1;735:23:62;;562:226;-1:-1:-1;562:226:62:o;793:127::-;854:10;849:3;845:20;842:1;835:31;885:4;882:1;875:15;909:4;906:1;899:15;925:144;1010:1;1003:5;1000:12;990:46;;1016:18;;:::i;:::-;1045;;925:144::o;1074:842::-;-1:-1:-1;;;;;1467:32:62;;;1449:51;;1536:32;;1531:2;1516:18;;1509:60;1600:2;1585:18;;1578:34;;;1643:2;1628:18;;1621:34;;;1436:3;1421:19;;1685:1;1674:13;;1664:47;;1691:18;;:::i;:::-;1748:6;1742:3;1731:9;1727:19;1720:35;1764:58;1817:3;1806:9;1802:19;1794:6;1764:58;:::i;:::-;1853:3;1838:19;;1831:35;;;;1897:3;1882:19;1875:35;1074:842;;-1:-1:-1;;;;;;1074:842:62:o;2152:229::-;-1:-1:-1;;;;;2342:32:62;;;;2324:51;;2312:2;2297:18;;2152:229::o;2568:131::-;-1:-1:-1;;;;;2643:31:62;;2633:42;;2623:70;;2689:1;2686;2679:12;2704:367;2772:6;2780;2833:2;2821:9;2812:7;2808:23;2804:32;2801:52;;;2849:1;2846;2839:12;2801:52;2888:9;2875:23;2907:31;2932:5;2907:31;:::i;:::-;2957:5;3035:2;3020:18;;;;3007:32;;-1:-1:-1;;;2704:367:62:o;3463:129::-;-1:-1:-1;;;;;3541:5:62;3537:30;3530:5;3527:41;3517:69;;3582:1;3579;3572:12;3597:121;3682:10;3675:5;3671:22;3664:5;3661:33;3651:61;;3708:1;3705;3698:12;3723:786;3815:6;3823;3831;3839;3847;3900:3;3888:9;3879:7;3875:23;3871:33;3868:53;;;3917:1;3914;3907:12;3868:53;3956:9;3943:23;3975:31;4000:5;3975:31;:::i;:::-;4025:5;-1:-1:-1;4082:2:62;4067:18;;4054:32;4095;4054;4095;:::i;:::-;4146:7;-1:-1:-1;4226:2:62;4211:18;;4198:32;;-1:-1:-1;4308:2:62;4293:18;;4280:32;4321;4280;4321;:::i;:::-;4372:7;-1:-1:-1;4431:3:62;4416:19;;4403:33;4445:32;4403:33;4445:32;:::i;:::-;4496:7;4486:17;;;3723:786;;;;;;;;:::o;4514:350::-;4586:2;4580:9;4628:4;4616:17;;-1:-1:-1;;;;;4648:34:62;;4684:22;;;4645:62;4642:185;;;4749:10;4744:3;4740:20;4737:1;4730:31;4784:4;4781:1;4774:15;4812:4;4809:1;4802:15;4642:185;4843:2;4836:22;4514:350;:::o;4869:344::-;4936:2;4930:9;4978:3;4966:16;;-1:-1:-1;;;;;4997:34:62;;5033:22;;;4994:62;4991:185;;;5098:10;5093:3;5089:20;5086:1;5079:31;5133:4;5130:1;5123:15;5161:4;5158:1;5151:15;5218:349;5290:2;5284:9;5332:3;5320:16;;-1:-1:-1;;;;;5351:34:62;;5387:22;;;5348:62;5345:185;;;5452:10;5447:3;5443:20;5440:1;5433:31;5487:4;5484:1;5477:15;5515:4;5512:1;5505:15;5572:881;5657:6;5717:2;5705:9;5696:7;5692:23;5688:32;5732:2;5729:22;;;5747:1;5744;5737:12;5729:22;-1:-1:-1;5817:2:62;5811:9;5766:1;;5859:2;5847:15;;-1:-1:-1;;;;;5877:34:62;;5913:22;;;5874:62;5871:187;;;-1:-1:-1;;;5959:32:62;;6014:4;6011:1;6004:15;6043:4;5966:2;6032:16;5871:187;6074:2;6067:22;;;6131:23;;6163:21;;6258:2;6243:18;;;6230:32;6278:15;;;6271:32;6362:18;;;6349:32;6397:15;;;6390:32;;;;-1:-1:-1;6170:6:62;;5572:881;-1:-1:-1;;5572:881:62:o;6666:245::-;6724:6;6777:2;6765:9;6756:7;6752:23;6748:32;6745:52;;;6793:1;6790;6783:12;6745:52;6832:9;6819:23;6851:30;6875:5;6851:30;:::i;6916:247::-;6975:6;7028:2;7016:9;7007:7;7003:23;6999:32;6996:52;;;7044:1;7041;7034:12;6996:52;7083:9;7070:23;7102:31;7127:5;7102:31;:::i;7360:347::-;7411:8;7421:6;7475:3;7468:4;7460:6;7456:17;7452:27;7442:55;;7493:1;7490;7483:12;7442:55;-1:-1:-1;7516:20:62;;-1:-1:-1;;;;;7548:30:62;;7545:50;;;7591:1;7588;7581:12;7545:50;7628:4;7620:6;7616:17;7604:29;;7680:3;7673:4;7664:6;7656;7652:19;7648:30;7645:39;7642:59;;;7697:1;7694;7687:12;7642:59;7360:347;;;;;:::o;7712:409::-;7782:6;7790;7843:2;7831:9;7822:7;7818:23;7814:32;7811:52;;;7859:1;7856;7849:12;7811:52;7899:9;7886:23;-1:-1:-1;;;;;7924:6:62;7921:30;7918:50;;;7964:1;7961;7954:12;7918:50;8003:58;8053:7;8044:6;8033:9;8029:22;8003:58;:::i;:::-;8080:8;;7977:84;;-1:-1:-1;7712:409:62;-1:-1:-1;;;;7712:409:62:o;8126:712::-;8216:6;8224;8232;8240;8293:2;8281:9;8272:7;8268:23;8264:32;8261:52;;;8309:1;8306;8299:12;8261:52;8349:9;8336:23;-1:-1:-1;;;;;8374:6:62;8371:30;8368:50;;;8414:1;8411;8404:12;8368:50;8453:58;8503:7;8494:6;8483:9;8479:22;8453:58;:::i;:::-;8530:8;;-1:-1:-1;8427:84:62;-1:-1:-1;;8618:2:62;8603:18;;8590:32;-1:-1:-1;;;;;8634:32:62;;8631:52;;;8679:1;8676;8669:12;8631:52;8718:60;8770:7;8759:8;8748:9;8744:24;8718:60;:::i;:::-;8126:712;;;;-1:-1:-1;8797:8:62;-1:-1:-1;;;;8126:712:62:o;9096:903::-;9148:5;9196:4;9184:9;9179:3;9175:19;9171:30;9168:50;;;9214:1;9211;9204:12;9168:50;9236:22;;:::i;:::-;9303:23;;9335:22;;9430:2;9415:18;;;9402:32;9450:14;;;9443:31;9547:2;9532:18;;;9519:32;9567:14;;;9560:31;9664:2;9649:18;;;9636:32;9684:14;;;9677:31;9781:3;9766:19;;;9753:33;9802:15;;;9795:32;9227:31;-1:-1:-1;9879:3:62;9864:19;;9851:33;9928:4;9915:18;;9903:31;;9893:59;;9948:1;9945;9938:12;9893:59;9979:3;9968:15;;9961:32;9972:5;9096:903;-1:-1:-1;;9096:903:62:o;10004:225::-;10087:6;10140:3;10128:9;10119:7;10115:23;10111:33;10108:53;;;10157:1;10154;10147:12;10108:53;10180:43;10215:7;10204:9;10180:43;:::i;10234:338::-;10350:6;10358;10411:3;10399:9;10390:7;10386:23;10382:33;10379:53;;;10428:1;10425;10418:12;10379:53;10451:43;10486:7;10475:9;10451:43;:::i;:::-;10441:53;;10513;10558:7;10552:3;10541:9;10537:19;10513:53;:::i;:::-;10503:63;;10234:338;;;;;:::o;10577:245::-;10635:6;10688:2;10676:9;10667:7;10663:23;10659:32;10656:52;;;10704:1;10701;10694:12;10656:52;10743:9;10730:23;10762:30;10786:5;10762:30;:::i;10827:217::-;10978:2;10963:18;;10990:48;10967:9;11020:6;10990:48;:::i;11049:127::-;11110:10;11105:3;11101:20;11098:1;11091:31;11141:4;11138:1;11131:15;11165:4;11162:1;11155:15;11181:125;11246:9;;;11267:10;;;11264:36;;;11280:18;;:::i;11525:300::-;-1:-1:-1;;;;;11717:32:62;;;11699:51;;11786:32;;11781:2;11766:18;;11759:60;11687:2;11672:18;;11525:300::o;11830:136::-;11908:13;;11930:30;11908:13;11930:30;:::i;:::-;11830:136;;;:::o;11971:::-;12049:13;;12071:30;12049:13;12071:30;:::i;12112:1118::-;12209:6;12269:3;12257:9;12248:7;12244:23;12240:33;12285:2;12282:22;;;12300:1;12297;12290:12;12282:22;-1:-1:-1;12319:1:62;12342:17;;:::i;:::-;12405:16;;12430:22;;12519:2;12504:18;;;12498:25;12539:14;;;12532:31;12630:2;12615:18;;;12609:25;12650:14;;;12643:31;12706:48;12750:2;12735:18;;12706:48;:::i;:::-;12701:2;12694:5;12690:14;12683:72;12788:49;12832:3;12821:9;12817:19;12788:49;:::i;:::-;12782:3;12775:5;12771:15;12764:74;12871:49;12915:3;12904:9;12900:19;12871:49;:::i;:::-;12865:3;12858:5;12854:15;12847:74;12954:49;12998:3;12987:9;12983:19;12954:49;:::i;:::-;12948:3;12941:5;12937:15;12930:74;13037:49;13081:3;13070:9;13066:19;13037:49;:::i;:::-;13031:3;13020:15;;13013:74;13154:3;13139:19;;;13133:26;13175:15;;;13168:32;;;;-1:-1:-1;13024:5:62;;12112:1118;-1:-1:-1;;12112:1118:62:o;13775:1177::-;13869:6;13929:3;13917:9;13908:7;13904:23;13900:33;13945:2;13942:22;;;13960:1;13957;13950:12;13942:22;-1:-1:-1;13979:1:62;14002:22;;:::i;:::-;14054:9;14048:16;14073:33;14098:7;14073:33;:::i;:::-;14115:22;;14204:2;14189:18;;;14183:25;14224:14;;;14217:31;14315:2;14300:18;;;14294:25;14335:14;;;14328:31;14426:2;14411:18;;;14405:25;14446:14;;;14439:31;14537:3;14522:19;;;14516:26;14558:15;;;14551:32;14650:3;14635:19;;;14629:26;14671:15;;;14664:32;14763:3;14748:19;;;14742:26;14784:15;;;14777:32;14876:3;14861:19;;;14855:26;14897:15;;;14890:32;;;;-1:-1:-1;14122:5:62;;13775:1177;-1:-1:-1;;13775:1177:62:o;15210:399::-;15251:3;15289:5;15283:12;15316:6;15311:3;15304:19;15341:1;15351:139;15365:6;15362:1;15359:13;15351:139;;;15473:4;15458:13;;;15454:24;;15448:31;15428:11;;;15424:22;;15417:63;15380:12;15351:139;;;15355:3;15535:1;15528:4;15519:6;15514:3;15510:16;15506:27;15499:38;15598:4;15591:2;15587:7;15582:2;15574:6;15570:15;15566:29;15561:3;15557:39;15553:50;15546:57;;;15210:399;;;;:::o;15614:314::-;-1:-1:-1;;;;;15789:32:62;;15771:51;;15858:2;15853;15838:18;;15831:30;;;-1:-1:-1;;15878:44:62;;15903:18;;15895:6;15878:44;:::i;16212:277::-;16279:6;16332:2;16320:9;16311:7;16307:23;16303:32;16300:52;;;16348:1;16345;16338:12;16300:52;16380:9;16374:16;16433:5;16426:13;16419:21;16412:5;16409:32;16399:60;;16455:1;16452;16445:12;18337:1105;18439:6;18499:3;18487:9;18478:7;18474:23;18470:33;18515:2;18512:22;;;18530:1;18527;18520:12;18512:22;-1:-1:-1;18600:2:62;18594:9;18549:1;;18642:3;18630:16;;-1:-1:-1;;;;;18661:34:62;;18697:22;;;18658:62;18655:187;;;-1:-1:-1;;;18743:32:62;;18798:4;18795:1;18788:15;18827:4;18750:2;18816:16;18655:187;18858:2;18851:22;;;18915:16;;18940:21;;19028:2;19013:18;;;19007:25;19048:15;;;19041:32;19125:18;;;19119:25;19160:15;;;19153:32;19252:2;19237:18;;;19231:25;19272:15;;;19265:32;19364:3;19349:19;;;19343:26;19385:16;;;19378:33;;;;-1:-1:-1;18947:6:62;;18337:1105;-1:-1:-1;;18337:1105:62:o;19447:249::-;19516:6;19569:2;19557:9;19548:7;19544:23;19540:32;19537:52;;;19585:1;19582;19575:12;19537:52;19617:9;19611:16;19636:30;19660:5;19636:30;:::i;19701:168::-;19774:9;;;19805;;19822:15;;;19816:22;;19802:37;19792:71;;19843:18;;:::i;19874:456::-;19962:6;19970;19978;20031:2;20019:9;20010:7;20006:23;20002:32;19999:52;;;20047:1;20044;20037:12;19999:52;-1:-1:-1;;20092:16:62;;20198:2;20183:18;;20177:25;20294:2;20279:18;;;20273:25;20092:16;;20177:25;;-1:-1:-1;20273:25:62;19874:456;-1:-1:-1;19874:456:62:o;20862:432::-;21093:6;21082:9;21075:25;21136:6;21131:2;21120:9;21116:18;21109:34;21179:3;21174:2;21163:9;21159:18;21152:31;21056:4;21200:45;21240:3;21229:9;21225:19;21217:6;21200:45;:::i;:::-;21192:53;;21281:6;21276:2;21265:9;21261:18;21254:34;20862:432;;;;;;;:::o;21642:217::-;21682:1;21708;21698:132;;21752:10;21747:3;21743:20;21740:1;21733:31;21787:4;21784:1;21777:15;21815:4;21812:1;21805:15;21698:132;-1:-1:-1;21844:9:62;;21642:217::o" - }, - "methodIdentifiers": { - "MAX_FISHERMAN_REWARD_CUT()": "17337b46", - "acceptDispute(bytes32,uint256)": "050b17ad", - "arbitrator()": "6cc6cde1", - "areConflictingAttestations((bytes32,bytes32,bytes32,bytes32,bytes32,uint8),(bytes32,bytes32,bytes32,bytes32,bytes32,uint8))": "d36fc9d4", - "cancelDispute(bytes32)": "1792f194", - "createIndexingDispute(address,bytes32)": "4bc5839a", - "createQueryDispute(bytes)": "c50a77b1", - "createQueryDisputeConflict(bytes,bytes)": "c894222e", - "disputeDeposit()": "29e03ff1", - "disputePeriod()": "5bf31d4d", - "disputes(bytes32)": "11be1997", - "drawDispute(bytes32)": "9334ea52", - "encodeReceipt((bytes32,bytes32,bytes32))": "6369df6b", - "fishermanRewardCut()": "902a4938", - "getAttestationIndexer((bytes32,bytes32,bytes32,bytes32,bytes32,uint8))": "c9747f51", - "getDisputePeriod()": "5aea0ec4", - "getStakeSnapshot(address)": "c133b429", - "getVerifierCut()": "84633713", - "initialize(address,uint64,uint256,uint32,uint32)": "5ed2c96c", - "isDisputeCreated(bytes32)": "be41f384", - "maxSlashingCut()": "0533e1ba", - "owner()": "8da5cb5b", - "rejectDispute(bytes32)": "36167e03", - "renounceOwnership()": "715018a6", - "setArbitrator(address)": "b0eefabe", - "setDisputeDeposit(uint256)": "16972978", - "setDisputePeriod(uint64)": "d76f62d1", - "setFishermanRewardCut(uint32)": "76c993ae", - "setMaxSlashingCut(uint32)": "9f81a7cf", - "setSubgraphService(address)": "93a90a1e", - "subgraphService()": "26058249", - "transferOwnership(address)": "f2fde38b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedLength\",\"type\":\"uint256\"}],\"name\":\"AttestationInvalidBytesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerDisputeAlreadyCreated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDisputeManager.DisputeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"DisputeManagerDisputeNotPending\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerDisputePeriodNotFinished\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerDisputePeriodZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"DisputeManagerIndexerNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerInvalidDispute\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"disputeDeposit\",\"type\":\"uint256\"}],\"name\":\"DisputeManagerInvalidDisputeDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"cut\",\"type\":\"uint32\"}],\"name\":\"DisputeManagerInvalidFishermanReward\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"maxSlashingCut\",\"type\":\"uint32\"}],\"name\":\"DisputeManagerInvalidMaxSlashingCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokensSlash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTokensSlash\",\"type\":\"uint256\"}],\"name\":\"DisputeManagerInvalidTokensSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerInvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"relatedDisputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerMustAcceptRelatedDispute\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestCID1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"requestCID2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId2\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerNonConflictingAttestations\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId2\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerNonMatchingSubgraphDeployment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerNotArbitrator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerNotFisherman\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerZeroTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractName\",\"type\":\"bytes\"}],\"name\":\"GraphDirectoryInvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"PPMMathInvalidMulPPM\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"arbitrator\",\"type\":\"address\"}],\"name\":\"ArbitratorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DisputeAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DisputeCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"disputeDeposit\",\"type\":\"uint256\"}],\"name\":\"DisputeDepositSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DisputeDrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId1\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId2\",\"type\":\"bytes32\"}],\"name\":\"DisputeLinked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"disputePeriod\",\"type\":\"uint64\"}],\"name\":\"DisputePeriodSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DisputeRejected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"fishermanRewardCut\",\"type\":\"uint32\"}],\"name\":\"FishermanRewardCutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphStaking\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphPayments\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEscrow\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEpochManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphRewardsManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphTokenGateway\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphProxyAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphCuration\",\"type\":\"address\"}],\"name\":\"GraphDirectoryInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poi\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakeSnapshot\",\"type\":\"uint256\"}],\"name\":\"IndexingDisputeCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"maxSlashingCut\",\"type\":\"uint32\"}],\"name\":\"MaxSlashingCutSet\",\"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\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"attestation\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakeSnapshot\",\"type\":\"uint256\"}],\"name\":\"QueryDisputeCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subgraphService\",\"type\":\"address\"}],\"name\":\"SubgraphServiceSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_FISHERMAN_REWARD_CUT\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokensSlash\",\"type\":\"uint256\"}],\"name\":\"acceptDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"arbitrator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"}],\"internalType\":\"struct Attestation.State\",\"name\":\"attestation1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"}],\"internalType\":\"struct Attestation.State\",\"name\":\"attestation2\",\"type\":\"tuple\"}],\"name\":\"areConflictingAttestations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"cancelDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"poi\",\"type\":\"bytes32\"}],\"name\":\"createIndexingDispute\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"attestationData\",\"type\":\"bytes\"}],\"name\":\"createQueryDispute\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"attestationData1\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"attestationData2\",\"type\":\"bytes\"}],\"name\":\"createQueryDisputeConflict\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disputeDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disputePeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"disputes\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"relatedDisputeId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IDisputeManager.DisputeType\",\"name\":\"disputeType\",\"type\":\"uint8\"},{\"internalType\":\"enum IDisputeManager.DisputeStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stakeSnapshot\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"drawDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"internalType\":\"struct Attestation.Receipt\",\"name\":\"receipt\",\"type\":\"tuple\"}],\"name\":\"encodeReceipt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fishermanRewardCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"}],\"internalType\":\"struct Attestation.State\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"getAttestationIndexer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDisputePeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getStakeSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"arbitrator\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"disputePeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"disputeDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"fishermanRewardCut_\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxSlashingCut_\",\"type\":\"uint32\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"isDisputeCreated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSlashingCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"rejectDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"arbitrator\",\"type\":\"address\"}],\"name\":\"setArbitrator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"disputeDeposit\",\"type\":\"uint256\"}],\"name\":\"setDisputeDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"disputePeriod\",\"type\":\"uint64\"}],\"name\":\"setDisputePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"fishermanRewardCut_\",\"type\":\"uint32\"}],\"name\":\"setFishermanRewardCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"maxSlashingCut_\",\"type\":\"uint32\"}],\"name\":\"setMaxSlashingCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subgraphService\",\"type\":\"address\"}],\"name\":\"setSubgraphService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subgraphService\",\"outputs\":[{\"internalType\":\"contract ISubgraphService\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"params\":{\"contractName\":\"The name of the contract that was not found, or the controller\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"PPMMathInvalidMulPPM(uint256,uint256)\":[{\"params\":{\"a\":\"The first value in the multiplication.\",\"b\":\"The second value in the multiplication.\"}}]},\"events\":{\"ArbitratorSet(address)\":{\"params\":{\"arbitrator\":\"The address of the arbitrator.\"}},\"DisputeAccepted(bytes32,address,address,uint256)\":{\"details\":\"Emitted when arbitrator accepts a `disputeId` to `indexer` created by `fisherman`. The event emits the amount `tokens` transferred to the fisherman, the deposit plus reward.\"},\"DisputeCancelled(bytes32,address,address,uint256)\":{\"details\":\"Emitted when a dispute is cancelled by the fisherman. The event emits the amount `tokens` returned to the fisherman.\"},\"DisputeDepositSet(uint256)\":{\"params\":{\"disputeDeposit\":\"The dispute deposit required to create a dispute.\"}},\"DisputeDrawn(bytes32,address,address,uint256)\":{\"details\":\"Emitted when arbitrator draw a `disputeId` for `indexer` created by `fisherman`. The event emits the amount `tokens` used as deposit and returned to the fisherman.\"},\"DisputeLinked(bytes32,bytes32)\":{\"details\":\"Emitted when two disputes are in conflict to link them. This event will be emitted after each DisputeCreated event is emitted for each of the individual disputes.\"},\"DisputePeriodSet(uint64)\":{\"params\":{\"disputePeriod\":\"The dispute period in seconds.\"}},\"DisputeRejected(bytes32,address,address,uint256)\":{\"details\":\"Emitted when arbitrator rejects a `disputeId` for `indexer` created by `fisherman`. The event emits the amount `tokens` burned from the fisherman deposit.\"},\"FishermanRewardCutSet(uint32)\":{\"params\":{\"fishermanRewardCut\":\"The fisherman reward cut.\"}},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"params\":{\"graphController\":\"The Graph Controller contract address\",\"graphCuration\":\"The Curation contract address\",\"graphEpochManager\":\"The Epoch Manager contract address\",\"graphEscrow\":\"The Payments Escrow contract address\",\"graphPayments\":\"The Graph Payments contract address\",\"graphProxyAdmin\":\"The Graph Proxy Admin contract address\",\"graphRewardsManager\":\"The Rewards Manager contract address\",\"graphStaking\":\"The Horizon Staking contract address\",\"graphToken\":\"The Graph Token contract address\",\"graphTokenGateway\":\"The Token Gateway contract address\"}},\"IndexingDisputeCreated(bytes32,address,address,uint256,address,bytes32,uint256)\":{\"details\":\"Emitted when an indexing dispute is created for `allocationId` and `indexer` by `fisherman`. The event emits the amount of `tokens` deposited by the fisherman.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"MaxSlashingCutSet(uint32)\":{\"params\":{\"maxSlashingCut\":\"The maximum slashing cut that can be set.\"}},\"QueryDisputeCreated(bytes32,address,address,uint256,bytes32,bytes,uint256)\":{\"details\":\"Emitted when a query dispute is created for `subgraphDeploymentId` and `indexer` by `fisherman`. The event emits the amount of `tokens` deposited by the fisherman and `attestation` submitted.\"},\"SubgraphServiceSet(address)\":{\"params\":{\"subgraphService\":\"The address of the subgraph service.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptDispute(bytes32,uint256)\":{\"details\":\"Accept a dispute with Id `disputeId`\",\"params\":{\"disputeId\":\"Id of the dispute to be accepted\",\"tokensSlash\":\"Amount of tokens to slash from the indexer\"}},\"areConflictingAttestations((bytes32,bytes32,bytes32,bytes32,bytes32,uint8),(bytes32,bytes32,bytes32,bytes32,bytes32,uint8))\":{\"params\":{\"attestation1\":\"The first attestation\",\"attestation2\":\"The second attestation\"}},\"cancelDispute(bytes32)\":{\"details\":\"Cancel a dispute with Id `disputeId`\",\"params\":{\"disputeId\":\"Id of the dispute to be cancelled\"}},\"constructor\":{\"params\":{\"controller\":\"Address of the controller\"}},\"createIndexingDispute(address,bytes32)\":{\"params\":{\"allocationId\":\"The allocation to dispute\",\"poi\":\"The Proof of Indexing (POI) being disputed\"}},\"createQueryDispute(bytes)\":{\"params\":{\"attestationData\":\"Attestation bytes submitted by the fisherman\"}},\"createQueryDisputeConflict(bytes,bytes)\":{\"params\":{\"attestationData1\":\"First attestation data submitted\",\"attestationData2\":\"Second attestation data submitted\"},\"returns\":{\"_0\":\"DisputeId1, DisputeId2\"}},\"drawDispute(bytes32)\":{\"details\":\"Ignore a dispute with Id `disputeId`\",\"params\":{\"disputeId\":\"Id of the dispute to be disregarded\"}},\"encodeReceipt((bytes32,bytes32,bytes32))\":{\"details\":\"Return the message hash used to sign the receipt\",\"params\":{\"receipt\":\"Receipt returned by indexer and submitted by fisherman\"},\"returns\":{\"_0\":\"Message hash used to sign the receipt\"}},\"getAttestationIndexer((bytes32,bytes32,bytes32,bytes32,bytes32,uint8))\":{\"params\":{\"attestation\":\"Attestation\"},\"returns\":{\"_0\":\"indexer address\"}},\"getDisputePeriod()\":{\"returns\":{\"_0\":\"Dispute period in seconds\"}},\"getStakeSnapshot(address)\":{\"params\":{\"indexer\":\"The indexer address\"}},\"getVerifierCut()\":{\"returns\":{\"_0\":\"Verifier cut in percentage (ppm)\"}},\"initialize(address,uint64,uint256,uint32,uint32)\":{\"params\":{\"arbitrator\":\"Arbitrator role\",\"disputeDeposit\":\"Deposit required to create a Dispute\",\"disputePeriod\":\"Dispute period in seconds\",\"fishermanRewardCut_\":\"Percent of slashed funds for fisherman (ppm)\",\"maxSlashingCut_\":\"Maximum percentage of indexer stake that can be slashed (ppm)\"}},\"isDisputeCreated(bytes32)\":{\"details\":\"Return if dispute with Id `disputeId` exists\",\"params\":{\"disputeId\":\"True if dispute already exists\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"rejectDispute(bytes32)\":{\"details\":\"Reject a dispute with Id `disputeId`\",\"params\":{\"disputeId\":\"Id of the dispute to be rejected\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setArbitrator(address)\":{\"details\":\"Update the arbitrator to `_arbitrator`\",\"params\":{\"arbitrator\":\"The address of the arbitration contract or party\"}},\"setDisputeDeposit(uint256)\":{\"details\":\"Update the dispute deposit to `_disputeDeposit` Graph Tokens\",\"params\":{\"disputeDeposit\":\"The dispute deposit in Graph Tokens\"}},\"setDisputePeriod(uint64)\":{\"details\":\"Update the dispute period to `_disputePeriod` in seconds\",\"params\":{\"disputePeriod\":\"Dispute period in seconds\"}},\"setFishermanRewardCut(uint32)\":{\"details\":\"Update the reward percentage to `_percentage`\",\"params\":{\"fishermanRewardCut_\":\"Reward as a percentage of indexer stake\"}},\"setMaxSlashingCut(uint32)\":{\"params\":{\"maxSlashingCut_\":\"Max percentage slashing for disputes\"}},\"setSubgraphService(address)\":{\"details\":\"Update the subgraph service to `_subgraphService`\",\"params\":{\"subgraphService\":\"The address of the subgraph service contract\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"DisputeManager\",\"version\":1},\"userdoc\":{\"errors\":{\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"notice\":\"Thrown when either the controller is the zero address or a contract address is not found on the controller\"}],\"PPMMathInvalidMulPPM(uint256,uint256)\":[{\"notice\":\"Thrown when no value in a multiplication is in PPM.\"}]},\"events\":{\"ArbitratorSet(address)\":{\"notice\":\"Emitted when arbitrator is set.\"},\"DisputeDepositSet(uint256)\":{\"notice\":\"Emitted when dispute deposit is set.\"},\"DisputePeriodSet(uint64)\":{\"notice\":\"Emitted when dispute period is set.\"},\"FishermanRewardCutSet(uint32)\":{\"notice\":\"Emitted when fisherman reward cut is set.\"},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"notice\":\"Emitted when the GraphDirectory is initialized\"},\"MaxSlashingCutSet(uint32)\":{\"notice\":\"Emitted when max slashing cut is set.\"},\"SubgraphServiceSet(address)\":{\"notice\":\"Emitted when subgraph service is set.\"}},\"kind\":\"user\",\"methods\":{\"acceptDispute(bytes32,uint256)\":{\"notice\":\"The arbitrator accepts a dispute as being valid. This function will revert if the indexer is not slashable, whether because it does not have any stake available or the slashing percentage is configured to be zero. In those cases a dispute must be resolved using drawDispute or rejectDispute.\"},\"arbitrator()\":{\"notice\":\"The arbitrator is solely in control of arbitrating disputes\"},\"areConflictingAttestations((bytes32,bytes32,bytes32,bytes32,bytes32,uint8),(bytes32,bytes32,bytes32,bytes32,bytes32,uint8))\":{\"notice\":\"Checks if two attestations are conflicting.\"},\"cancelDispute(bytes32)\":{\"notice\":\"Once the dispute period ends, if the dispute status remains Pending, the fisherman can cancel the dispute and get back their initial deposit.\"},\"constructor\":{\"notice\":\"Contract constructor\"},\"createIndexingDispute(address,bytes32)\":{\"notice\":\"Create an indexing dispute for the arbitrator to resolve. The disputes are created in reference to an allocationId and specifically a POI for that allocation. This function is called by a fisherman and it will pull `disputeDeposit` GRT tokens. Requirements: - fisherman must have previously approved this contract to pull `disputeDeposit` amount of tokens from their balance.\"},\"createQueryDispute(bytes)\":{\"notice\":\"Create a query dispute for the arbitrator to resolve. This function is called by a fisherman and it will pull `disputeDeposit` GRT tokens. * Requirements: - fisherman must have previously approved this contract to pull `disputeDeposit` amount of tokens from their balance.\"},\"createQueryDisputeConflict(bytes,bytes)\":{\"notice\":\"Create query disputes for two conflicting attestations. A conflicting attestation is a proof presented by two different indexers where for the same request on a subgraph the response is different. For this type of dispute the fisherman is not required to present a deposit as one of the attestation is considered to be right. Two linked disputes will be created and if the arbitrator resolve one, the other one will be automatically resolved.\"},\"disputeDeposit()\":{\"notice\":\"Deposit required to create a Dispute\"},\"disputePeriod()\":{\"notice\":\"dispute period in seconds\"},\"disputes(bytes32)\":{\"notice\":\"List of disputes created\"},\"drawDispute(bytes32)\":{\"notice\":\"The arbitrator draws dispute.\"},\"encodeReceipt((bytes32,bytes32,bytes32))\":{\"notice\":\"Get the message hash that a indexer used to sign the receipt. Encodes a receipt using a domain separator, as described on https://github.com/ethereum/EIPs/blob/master/EIPS/eip-712.md#specification.\"},\"fishermanRewardCut()\":{\"notice\":\"Percentage of indexer slashed funds to assign as a reward to fisherman in successful dispute. In PPM.\"},\"getAttestationIndexer((bytes32,bytes32,bytes32,bytes32,bytes32,uint8))\":{\"notice\":\"Returns the indexer that signed an attestation.\"},\"getDisputePeriod()\":{\"notice\":\"Get the dispute period.\"},\"getStakeSnapshot(address)\":{\"notice\":\"Get the stake snapshot for an indexer.\"},\"getVerifierCut()\":{\"notice\":\"Get the verifier cut.\"},\"initialize(address,uint64,uint256,uint32,uint32)\":{\"notice\":\"Initialize this contract.\"},\"isDisputeCreated(bytes32)\":{\"notice\":\"Return whether a dispute exists or not.\"},\"maxSlashingCut()\":{\"notice\":\"Maximum percentage of indexer stake that can be slashed on a dispute. In PPM.\"},\"rejectDispute(bytes32)\":{\"notice\":\"The arbitrator rejects a dispute as being invalid.\"},\"setArbitrator(address)\":{\"notice\":\"Set the arbitrator address.\"},\"setDisputeDeposit(uint256)\":{\"notice\":\"Set the dispute deposit required to create a dispute.\"},\"setDisputePeriod(uint64)\":{\"notice\":\"Set the dispute period.\"},\"setFishermanRewardCut(uint32)\":{\"notice\":\"Set the percent reward that the fisherman gets when slashing occurs.\"},\"setMaxSlashingCut(uint32)\":{\"notice\":\"Set the maximum percentage that can be used for slashing indexers.\"},\"setSubgraphService(address)\":{\"notice\":\"Set the subgraph service address.\"},\"subgraphService()\":{\"notice\":\"The Subgraph Service contract address\"}},\"notice\":\"Provides a way to permissionlessly create disputes for incorrect behavior in the Subgraph Service. There are two types of disputes that can be created: Query disputes and Indexing disputes. Query Disputes: Graph nodes receive queries and return responses with signed receipts called attestations. An attestation can be disputed if the consumer thinks the query response was invalid. Indexers use the derived private key for an allocation to sign attestations. Indexing Disputes: Indexers present a Proof of Indexing (POI) when they close allocations to prove they were indexing a subgraph. The Staking contract emits that proof with the format keccak256(indexer.address, POI). Any fisherman can dispute the validity of a POI by submitting a dispute to this contract along with a deposit. Arbitration: Disputes can only be accepted, rejected or drawn by the arbitrator role that can be delegated to a EOA or DAO.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DisputeManager.sol\":\"DisputeManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\":{\"keccak256\":\"0x3cbcc6e4629543a99acacc7ee4ffa6c063b9fb17d3597ccd2f9481008e3633bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d6bb0bb830b67d579e57a261e5f5d9e90b32dc006b02badbecf1f6c82c0a5100\",\"dweb:/ipfs/Qmd38iNXZpinwbNRJPEAA8r9bmmtRwjTSK1SkmH47ge4kJ\"]},\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":{\"keccak256\":\"0x17e4db429003cab08cd2859db94b95e0cee1f9478c1881903a4104def8fdc048\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://52ed58228a0e92aeb3493473a6e02f92d26a4e4eb0c46d38dd446e3bfcb6691e\",\"dweb:/ipfs/QmZzWxHAztdz2Q7cobqVEf4ExGpNuqWJFYgs2oHCgApjW6\"]},\"@graphprotocol/contracts/contracts/epochs/IEpochManager.sol\":{\"keccak256\":\"0x0f4b3a3569c023d2610d0d8b37b3ecb0b67f848d77aa063bb311756670017e85\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://df7c43568e554b301134aa2c58e4889ad0d3dcfec40e834b63621a43f39da154\",\"dweb:/ipfs/QmZeSV9AM6FKCkH9QYyF7i5nVggseEJXbvWbtrgUeXqQpo\"]},\"@graphprotocol/contracts/contracts/governance/IController.sol\":{\"keccak256\":\"0xe37df86cdea385d708ba00862cd9e04940e4f2aa50354fb3a9d2d4f505d5509a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0f6c9fd2b7a8c5a6b89ef12c7423144df04a5f251d5480be1b73c74a785ff12a\",\"dweb:/ipfs/QmYpiCQoxbDEYQ2FNA39Z4FGfoxfQ8jvH1Z3ccrqguQFMP\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0x5b4e4b27c41121831d28a6a71ed90fcb44c34d2d3e722993dac74c239ad653fd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9312944c7b9f5f5901e6b899e11838a628c5a146b6ee70f2bd4664010d652e68\",\"dweb:/ipfs/QmYMjrhnL5pefMQfSf64wFrqmqEAYgxoyf3jb8g2jz1kMc\"]},\"@graphprotocol/contracts/contracts/token/IGraphToken.sol\":{\"keccak256\":\"0x2ffad6798d641c8d1288730be725c43041c803caceaf6d9985122d000ad5761c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5f782a5670037fc9223dc20fd4f99c0277a9bec7d08f7800b0a0733e819a07cb\",\"dweb:/ipfs/QmP3K2QnmukScCh1nzgphYdg7AiAuTaT914jq4txLYNpra\"]},\"@graphprotocol/contracts/contracts/utils/TokenUtils.sol\":{\"keccak256\":\"0x7bd336193785ed6f09a3bd847f9208f64aa9b87ad67c40838d00fec41bb153d5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d96d83cdb9bbb567e4eafac8bdef3ff6bdaf426338baf76bae277c11afb33cee\",\"dweb:/ipfs/QmNjr4PiJ76Wc5mFqa9H88BjsEMrUfy1jiftNHYTgd6Mp5\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x8d2bed66024782e98b52836a3be855fe6ae59c9bb9ba863e3d420c6ebb80f764\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e945e02d82e8fef6cb25148533acaa6579c9e70eaac6e725eb30559ba91b3f8\",\"dweb:/ipfs/QmfUei9N9Exwwmrm2gL2FKcMuyGPqUpSVKY8pKE2QeJyuz\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0xa9c752ea887bd2a3637934b5f197526b6fac46b0b924deb75a8d224290ccbc95\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0a6625b4175959cd53af91a3741c12fb1fa2e91e0ab2302dff8a06bf7a66781\",\"dweb:/ipfs/QmPMoc5DN9gZr22gWkKGQDgJ8eqK1pChGQYTbPLC9LDCiY\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0xa32bd068b2a6a6cdd3863439aa280b29718ebb0a94da59e5806455c75af7994e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d1cdd344d026af2fc6e136337f9f86354d1b2731a6076e498c2ffd370705cdb5\",\"dweb:/ipfs/QmZe4rGR9gvyWP9ENDGLWxcB5a67qvbqbFKKhr9Di7VkEN\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x04da4bb0cfc6db397d6140ae72d6a4ffcadb19b5a8fc654ae3fd1550b64526ff\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9dca21008f5cf563d1863148b151d103b92a99c7bb0fe4667fdd9236bfa9881e\",\"dweb:/ipfs/QmPBfG7s2ajEYn35oJk6TjQ6wCQ7FNVAuZnzXbAENbKF9i\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x2aa4aa3745b13f9cadcbf3f93888ebbaa8f5d1da3b6f845f1741d51b16ff9944\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://290e13fd3dc9170244aaa4c6e5f5646878d011ee25024926d4d60d40eb6cf8c9\",\"dweb:/ipfs/QmPWwXxhnxmNSUpVF6caT1cXVtV2c1ackJiMzAbUG4z6Fo\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0xbb225acac73f4245b30a8fe9c0bf4bcc8b310f40da526a0447a2303f1ca63e96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://207826b2277a0bd42b8a4d8825f6b16e46d6dc8039e4027faa22df462aa06079\",\"dweb:/ipfs/QmYS177dKBuY7iRUdwBMHxSMd6SfNpARTApLHMLgFCozTy\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd161d01d49ec47200c1c8374d11ad7d9a2c1776a2f87c546f78535ffa33b3954\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7da68f651214064c6afb1b43955879a2eaea6076c44e92975abf31735b0e1012\",\"dweb:/ipfs/QmZBHtfqhzWsv1oWy73pR8zabgLnhqpiWhknK4TzrPBhV2\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]},\"@graphprotocol/horizon/contracts/libraries/MathUtils.sol\":{\"keccak256\":\"0xfb077625fde8c7bb17ba4674956099673bd144546d90d2a91a8463d17b625b0e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6ed606a9a5652778589ae03495af5c344fed262157dd372d8c0e1757c80713b0\",\"dweb:/ipfs/QmTePK9JT74GsWj4rxL2H7hUyuM3LeMrnojLvehU8yiD5r\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0x2bc503df758ca7fcc2a741b41350158a53e295974a37478336f2ed8b76e460a5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://24af9fe8ca1e0daae752a4b331b77c3a268a2a358e2e34a50df8ef283dd8670f\",\"dweb:/ipfs/QmYBJAMWHeiWWepGTTdkUSN4Vn2oP4GvyeqiwDK1TVdfce\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1be743a301a082944c78ba37b48c466ebc47d2ddd94529a3e05ed828e4413c68\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://663e05ec37777a21b344acb96235db183dcfac14e42048cfc921ab2038cd77d1\",\"dweb:/ipfs/QmY5mQ2L3BLrB8TDNXadDhjR2nCb7ssNPTJ6zegJnC5bjq\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"contracts/DisputeManager.sol\":{\"keccak256\":\"0x4d8936e9370d025aedeaac856c11dc15f6fbd43e59a713d6a3b679aea5588d05\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://3696d5f3084bf697cf27a78e1f8dd9b451a63ee853946c8cb7916d91ae7180cb\",\"dweb:/ipfs/QmSJV3D56pfMEa47Hxet2nu6PpYazHojXE1DHvuzEfVbn6\"]},\"contracts/DisputeManagerStorage.sol\":{\"keccak256\":\"0x0b9007663146b3feed1e671a5a28b3c99aeba2c29b0aefa7be39c7dad4347e05\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8019924a92649c8ac72ba83c08869dbce2a67f969f4dfb02113a1713bce6af6c\",\"dweb:/ipfs/QmUGCnj8cB3ccQAVXuG1mM1h7eGiD66zMHn9NaLbq7atz1\"]},\"contracts/interfaces/IDisputeManager.sol\":{\"keccak256\":\"0x12d82ad300a87b0ca3a43f9dc693f01bfc5765342e2b727b38e5ea234bb146c7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4b3b8a3663613e7c94b106a1f19f074d338745ca3a93047ac8d0e1db61684b34\",\"dweb:/ipfs/QmNVtbS6XRWfq2SEmagGsWMPCeRvpVj4BXVcvQ5PPtPy1i\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0xd61a4cb3fe5b91d0ac8288d85aa0cb3a8d19e78cb87e700ffb34636bf6d5853a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8fc1f600bc67f34cadaf25daf34c0f4f5e9ac8dced8353ee01853ecfbfa51d3b\",\"dweb:/ipfs/QmeidTmk5rQFtzc6S9fdA4urqewYBSdBHVfaCauPmqTFt8\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xdc1528c7429147d886323e98c4cb02076c91e1220fa25ec263aadd09841f749f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a61d43fe10ddce9df90fea94ed52c5284f78e1419548e8ca8bdfce977642c677\",\"dweb:/ipfs/Qme35BnH5DPbEGsc2MVeFJdY2uqXEhU1WVQW1E5jawYdan\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x25271cc1233cb1853a2e3a070d5143268384b09d2368ff1fa78c25bddc80d5d4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0176185c14b41702bdfa60dc0fd27626a33f4dbf3289b1e28ef51abb37e0e125\",\"dweb:/ipfs/QmbHLdmPNRby5eyG6dFuUWHUg8aBUQSjD9E7QCgqfPxjNB\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x705b640c357b931820f764b018ddf096a71e5097e7eb3f30e9be44b06f903563\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c99211c9ee8d1369cdc65981ec111935b6e86990025e096fdf240b04cf51ece2\",\"dweb:/ipfs/QmTpfFsy8njQYpHxw7XDcWHDeEv47msUDzD13m173CaV9p\"]},\"contracts/utilities/AttestationManager.sol\":{\"keccak256\":\"0xb50da53c59205cf06bec2263238d89d6df6d72522a1e555bfe2c3ca8558c8f88\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://18241c6b621d825234a62dc08a7f7e87b2e3e23caa5f618a74a1c48cde46052e\",\"dweb:/ipfs/QmWvo16uoasqBMVVLr557gyMsCq2Nts7EakgkdwJZuRHiF\"]},\"contracts/utilities/AttestationManagerStorage.sol\":{\"keccak256\":\"0xc14058d90b97806df0f43acfce6bc984c17ded00511ea9d7dd559d897fed7cf7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df851043d7e2b5f0eaa611141cbc2b594c3ece4ba4e7f040215095d7bdef7ea0\",\"dweb:/ipfs/Qmf5PBxRP4dCtPonNdeoHrgmCYZDogzx4vMEsLM3h5JQDs\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 13231, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "_domainSeparator", - "offset": 0, - "slot": "0", - "type": "t_bytes32" - }, - { - "astId": 13236, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "__gap", - "offset": 0, - "slot": "1", - "type": "t_array(t_uint256)50_storage" - }, - { - "astId": 9448, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "subgraphService", - "offset": 0, - "slot": "51", - "type": "t_contract(ISubgraphService)11280" - }, - { - "astId": 9451, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "arbitrator", - "offset": 0, - "slot": "52", - "type": "t_address" - }, - { - "astId": 9454, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "disputePeriod", - "offset": 20, - "slot": "52", - "type": "t_uint64" - }, - { - "astId": 9457, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "disputeDeposit", - "offset": 0, - "slot": "53", - "type": "t_uint256" - }, - { - "astId": 9460, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "fishermanRewardCut", - "offset": 0, - "slot": "54", - "type": "t_uint32" - }, - { - "astId": 9463, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "maxSlashingCut", - "offset": 4, - "slot": "54", - "type": "t_uint32" - }, - { - "astId": 9469, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "disputes", - "offset": 0, - "slot": "55", - "type": "t_mapping(t_bytes32,t_struct(Dispute)10738_storage)" - } - ], - "types": { - "t_address": { - "encoding": "inplace", - "label": "address", - "numberOfBytes": "20" - }, - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_bytes32": { - "encoding": "inplace", - "label": "bytes32", - "numberOfBytes": "32" - }, - "t_contract(ISubgraphService)11280": { - "encoding": "inplace", - "label": "contract ISubgraphService", - "numberOfBytes": "20" - }, - "t_enum(DisputeStatus)10718": { - "encoding": "inplace", - "label": "enum IDisputeManager.DisputeStatus", - "numberOfBytes": "1" - }, - "t_enum(DisputeType)10710": { - "encoding": "inplace", - "label": "enum IDisputeManager.DisputeType", - "numberOfBytes": "1" - }, - "t_mapping(t_bytes32,t_struct(Dispute)10738_storage)": { - "encoding": "mapping", - "key": "t_bytes32", - "label": "mapping(bytes32 => struct IDisputeManager.Dispute)", - "numberOfBytes": "32", - "value": "t_struct(Dispute)10738_storage" - }, - "t_struct(Dispute)10738_storage": { - "encoding": "inplace", - "label": "struct IDisputeManager.Dispute", - "members": [ - { - "astId": 10721, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "indexer", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 10723, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "fisherman", - "offset": 0, - "slot": "1", - "type": "t_address" - }, - { - "astId": 10725, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "deposit", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 10727, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "relatedDisputeId", - "offset": 0, - "slot": "3", - "type": "t_bytes32" - }, - { - "astId": 10730, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "disputeType", - "offset": 0, - "slot": "4", - "type": "t_enum(DisputeType)10710" - }, - { - "astId": 10733, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "status", - "offset": 1, - "slot": "4", - "type": "t_enum(DisputeStatus)10718" - }, - { - "astId": 10735, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "createdAt", - "offset": 0, - "slot": "5", - "type": "t_uint256" - }, - { - "astId": 10737, - "contract": "contracts/DisputeManager.sol:DisputeManager", - "label": "stakeSnapshot", - "offset": 0, - "slot": "6", - "type": "t_uint256" - } - ], - "numberOfBytes": "224" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - }, - "t_uint32": { - "encoding": "inplace", - "label": "uint32", - "numberOfBytes": "4" - }, - "t_uint64": { - "encoding": "inplace", - "label": "uint64", - "numberOfBytes": "8" - } - } - } - } - }, - "contracts/DisputeManagerStorage.sol": { - "DisputeManagerV1Storage": { - "abi": [ - { - "inputs": [], - "name": "arbitrator", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "disputeDeposit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "disputePeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "disputes", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deposit", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "relatedDisputeId", - "type": "bytes32" - }, - { - "internalType": "enum IDisputeManager.DisputeType", - "name": "disputeType", - "type": "uint8" - }, - { - "internalType": "enum IDisputeManager.DisputeStatus", - "name": "status", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "fishermanRewardCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxSlashingCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "subgraphService", - "outputs": [ - { - "internalType": "contract ISubgraphService", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "arbitrator()": "6cc6cde1", - "disputeDeposit()": "29e03ff1", - "disputePeriod()": "5bf31d4d", - "disputes(bytes32)": "11be1997", - "fishermanRewardCut()": "902a4938", - "maxSlashingCut()": "0533e1ba", - "subgraphService()": "26058249" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"arbitrator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disputeDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disputePeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"disputes\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"relatedDisputeId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IDisputeManager.DisputeType\",\"name\":\"disputeType\",\"type\":\"uint8\"},{\"internalType\":\"enum IDisputeManager.DisputeStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stakeSnapshot\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fishermanRewardCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxSlashingCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subgraphService\",\"outputs\":[{\"internalType\":\"contract ISubgraphService\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"arbitrator()\":{\"notice\":\"The arbitrator is solely in control of arbitrating disputes\"},\"disputeDeposit()\":{\"notice\":\"Deposit required to create a Dispute\"},\"disputePeriod()\":{\"notice\":\"dispute period in seconds\"},\"disputes(bytes32)\":{\"notice\":\"List of disputes created\"},\"fishermanRewardCut()\":{\"notice\":\"Percentage of indexer slashed funds to assign as a reward to fisherman in successful dispute. In PPM.\"},\"maxSlashingCut()\":{\"notice\":\"Maximum percentage of indexer stake that can be slashed on a dispute. In PPM.\"},\"subgraphService()\":{\"notice\":\"The Subgraph Service contract address\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/DisputeManagerStorage.sol\":\"DisputeManagerV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x8d2bed66024782e98b52836a3be855fe6ae59c9bb9ba863e3d420c6ebb80f764\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e945e02d82e8fef6cb25148533acaa6579c9e70eaac6e725eb30559ba91b3f8\",\"dweb:/ipfs/QmfUei9N9Exwwmrm2gL2FKcMuyGPqUpSVKY8pKE2QeJyuz\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"contracts/DisputeManagerStorage.sol\":{\"keccak256\":\"0x0b9007663146b3feed1e671a5a28b3c99aeba2c29b0aefa7be39c7dad4347e05\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8019924a92649c8ac72ba83c08869dbce2a67f969f4dfb02113a1713bce6af6c\",\"dweb:/ipfs/QmUGCnj8cB3ccQAVXuG1mM1h7eGiD66zMHn9NaLbq7atz1\"]},\"contracts/interfaces/IDisputeManager.sol\":{\"keccak256\":\"0x12d82ad300a87b0ca3a43f9dc693f01bfc5765342e2b727b38e5ea234bb146c7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4b3b8a3663613e7c94b106a1f19f074d338745ca3a93047ac8d0e1db61684b34\",\"dweb:/ipfs/QmNVtbS6XRWfq2SEmagGsWMPCeRvpVj4BXVcvQ5PPtPy1i\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0xd61a4cb3fe5b91d0ac8288d85aa0cb3a8d19e78cb87e700ffb34636bf6d5853a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8fc1f600bc67f34cadaf25daf34c0f4f5e9ac8dced8353ee01853ecfbfa51d3b\",\"dweb:/ipfs/QmeidTmk5rQFtzc6S9fdA4urqewYBSdBHVfaCauPmqTFt8\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xdc1528c7429147d886323e98c4cb02076c91e1220fa25ec263aadd09841f749f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a61d43fe10ddce9df90fea94ed52c5284f78e1419548e8ca8bdfce977642c677\",\"dweb:/ipfs/Qme35BnH5DPbEGsc2MVeFJdY2uqXEhU1WVQW1E5jawYdan\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x25271cc1233cb1853a2e3a070d5143268384b09d2368ff1fa78c25bddc80d5d4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0176185c14b41702bdfa60dc0fd27626a33f4dbf3289b1e28ef51abb37e0e125\",\"dweb:/ipfs/QmbHLdmPNRby5eyG6dFuUWHUg8aBUQSjD9E7QCgqfPxjNB\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x705b640c357b931820f764b018ddf096a71e5097e7eb3f30e9be44b06f903563\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c99211c9ee8d1369cdc65981ec111935b6e86990025e096fdf240b04cf51ece2\",\"dweb:/ipfs/QmTpfFsy8njQYpHxw7XDcWHDeEv47msUDzD13m173CaV9p\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 9448, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "subgraphService", - "offset": 0, - "slot": "0", - "type": "t_contract(ISubgraphService)11280" - }, - { - "astId": 9451, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "arbitrator", - "offset": 0, - "slot": "1", - "type": "t_address" - }, - { - "astId": 9454, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "disputePeriod", - "offset": 20, - "slot": "1", - "type": "t_uint64" - }, - { - "astId": 9457, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "disputeDeposit", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 9460, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "fishermanRewardCut", - "offset": 0, - "slot": "3", - "type": "t_uint32" - }, - { - "astId": 9463, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "maxSlashingCut", - "offset": 4, - "slot": "3", - "type": "t_uint32" - }, - { - "astId": 9469, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "disputes", - "offset": 0, - "slot": "4", - "type": "t_mapping(t_bytes32,t_struct(Dispute)10738_storage)" - } - ], - "types": { - "t_address": { - "encoding": "inplace", - "label": "address", - "numberOfBytes": "20" - }, - "t_bytes32": { - "encoding": "inplace", - "label": "bytes32", - "numberOfBytes": "32" - }, - "t_contract(ISubgraphService)11280": { - "encoding": "inplace", - "label": "contract ISubgraphService", - "numberOfBytes": "20" - }, - "t_enum(DisputeStatus)10718": { - "encoding": "inplace", - "label": "enum IDisputeManager.DisputeStatus", - "numberOfBytes": "1" - }, - "t_enum(DisputeType)10710": { - "encoding": "inplace", - "label": "enum IDisputeManager.DisputeType", - "numberOfBytes": "1" - }, - "t_mapping(t_bytes32,t_struct(Dispute)10738_storage)": { - "encoding": "mapping", - "key": "t_bytes32", - "label": "mapping(bytes32 => struct IDisputeManager.Dispute)", - "numberOfBytes": "32", - "value": "t_struct(Dispute)10738_storage" - }, - "t_struct(Dispute)10738_storage": { - "encoding": "inplace", - "label": "struct IDisputeManager.Dispute", - "members": [ - { - "astId": 10721, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "indexer", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 10723, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "fisherman", - "offset": 0, - "slot": "1", - "type": "t_address" - }, - { - "astId": 10725, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "deposit", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 10727, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "relatedDisputeId", - "offset": 0, - "slot": "3", - "type": "t_bytes32" - }, - { - "astId": 10730, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "disputeType", - "offset": 0, - "slot": "4", - "type": "t_enum(DisputeType)10710" - }, - { - "astId": 10733, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "status", - "offset": 1, - "slot": "4", - "type": "t_enum(DisputeStatus)10718" - }, - { - "astId": 10735, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "createdAt", - "offset": 0, - "slot": "5", - "type": "t_uint256" - }, - { - "astId": 10737, - "contract": "contracts/DisputeManagerStorage.sol:DisputeManagerV1Storage", - "label": "stakeSnapshot", - "offset": 0, - "slot": "6", - "type": "t_uint256" - } - ], - "numberOfBytes": "224" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - }, - "t_uint32": { - "encoding": "inplace", - "label": "uint32", - "numberOfBytes": "4" - }, - "t_uint64": { - "encoding": "inplace", - "label": "uint64", - "numberOfBytes": "8" - } - } - } - } - }, - "contracts/SubgraphService.sol": { - "SubgraphService": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "internalType": "address", - "name": "disputeManager", - "type": "address" - }, - { - "internalType": "address", - "name": "tapCollector", - "type": "address" - }, - { - "internalType": "address", - "name": "curation", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationAlreadyExists", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - } - ], - "name": "AllocationClosed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationDoesNotExist", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationManagerAllocationClosed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationManagerAllocationSameSize", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationManagerInvalidAllocationProof", - "type": "error" - }, - { - "inputs": [], - "name": "AllocationManagerInvalidZeroAllocationId", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - } - ], - "name": "DataServiceFeesClaimNotFound", - "type": "error" - }, - { - "inputs": [], - "name": "DataServiceFeesZeroTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "DataServicePausableNotPauseGuardian", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "disputeManager", - "type": "address" - } - ], - "name": "DirectoryNotDisputeManager", - "type": "error" - }, - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - }, - { - "inputs": [], - "name": "EnforcedPause", - "type": "error" - }, - { - "inputs": [], - "name": "ExpectedPause", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "LegacyAllocationAlreadyMigrated", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "LegacyAllocationExists", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListEmptyList", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidIterations", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListInvalidZeroId", - "type": "error" - }, - { - "inputs": [], - "name": "LinkedListMaxElementsExceeded", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "OwnableInvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "OwnableUnauthorizedAccount", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "a", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "b", - "type": "uint256" - } - ], - "name": "PPMMathInvalidMulPPM", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidRange", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionManagerInvalidValue", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "address", - "name": "caller", - "type": "address" - } - ], - "name": "ProvisionManagerNotAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionManagerProvisionNotFound", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokensAvailable", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensRequired", - "type": "uint256" - } - ], - "name": "ProvisionTrackerInsufficientTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceAllocationIsAltruistic", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceAllocationNotAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceCannotForceCloseAllocation", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceEmptyGeohash", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceEmptyUrl", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balanceBefore", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balanceAfter", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "SubgraphServiceInconsistentCollection", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceIndexerAlreadyRegistered", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "providedIndexer", - "type": "address" - }, - { - "internalType": "address", - "name": "expectedIndexer", - "type": "address" - } - ], - "name": "SubgraphServiceIndexerMismatch", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "SubgraphServiceIndexerNotRegistered", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "SubgraphServiceInvalidCurationCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - } - ], - "name": "SubgraphServiceInvalidPaymentType", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "ravIndexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationIndexer", - "type": "address" - } - ], - "name": "SubgraphServiceInvalidRAV", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceInvalidZeroStakeToFeesRatio", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newTokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "oldTokens", - "type": "uint256" - } - ], - "name": "AllocationResized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "CurationCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "ratio", - "type": "uint32" - } - ], - "name": "DelegationRatioSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "EIP712DomainChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensIndexerRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDelegationRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "currentEpoch", - "type": "uint256" - } - ], - "name": "IndexingRewardsCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "LegacyAllocationMigrated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "maxPOIStaleness", - "type": "uint256" - } - ], - "name": "MaxPOIStalenessSet", - "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": "address", - "name": "account", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "PauseGuardianSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionPendingParametersAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "min", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "max", - "type": "uint256" - } - ], - "name": "ProvisionTokensRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensCollected", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensCurators", - "type": "uint256" - } - ], - "name": "QueryFeesCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "rewardsDestination", - "type": "address" - } - ], - "name": "RewardsDestinationSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServicePaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceProviderRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServiceProviderSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStopped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "unlockTimestamp", - "type": "uint256" - } - ], - "name": "StakeClaimLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "releasableAt", - "type": "uint256" - } - ], - "name": "StakeClaimReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimsCount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReleased", - "type": "uint256" - } - ], - "name": "StakeClaimsReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "ratio", - "type": "uint256" - } - ], - "name": "StakeToFeesRatioSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "subgraphService", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "disputeManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "tapCollector", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "curation", - "type": "address" - } - ], - "name": "SubgraphServiceDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "min", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "max", - "type": "uint64" - } - ], - "name": "ThawingPeriodRangeSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "min", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "max", - "type": "uint32" - } - ], - "name": "VerifierCutRangeSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "acceptProvisionPendingParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "allocationProvisionTracker", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "allocations", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lastPOIPresentedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - } - ], - "name": "claims", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "releasableAt", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "nextClaim", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "claimsLists", - "outputs": [ - { - "internalType": "bytes32", - "name": "head", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "tail", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "curationFeesCut", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "delegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "eip712Domain", - "outputs": [ - { - "internalType": "bytes1", - "name": "fields", - "type": "bytes1" - }, - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifyingContract", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "uint256[]", - "name": "extensions", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "encodeAllocationProof", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "feesProvisionTracker", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "forceCloseAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lastPOIPresentedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "internalType": "struct Allocation.State", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getAllocationData", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDelegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getLegacyAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "internalType": "struct LegacyAllocation.State", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProvisionTokensRange", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "getSubgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThawingPeriodRange", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCutRange", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "indexers", - "outputs": [ - { - "internalType": "uint256", - "name": "registeredAt", - "type": "uint256" - }, - { - "internalType": "string", - "name": "url", - "type": "string" - }, - { - "internalType": "string", - "name": "geoHash", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "minimumProvisionTokens", - "type": "uint256" - }, - { - "internalType": "uint32", - "name": "maximumDelegationRatio", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "stakeToFeesRatio", - "type": "uint256" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "isActiveAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "isOverAllocated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "isStaleAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "legacyAllocations", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxPOIStaleness", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maximumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentID", - "type": "bytes32" - } - ], - "name": "migrateLegacyAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "minimumProvisionTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumThawingPeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "minimumVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pauseGuardian", - "type": "address" - } - ], - "name": "pauseGuardians", - "outputs": [ - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numClaimsToRelease", - "type": "uint256" - } - ], - "name": "releaseStake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "resizeAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "rewardsDestination", - "outputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "setCurationCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "delegationRatio", - "type": "uint32" - } - ], - "name": "setDelegationRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "maxPOIStaleness", - "type": "uint256" - } - ], - "name": "setMaxPOIStaleness", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "minimumProvisionTokens", - "type": "uint256" - } - ], - "name": "setMinimumProvisionTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pauseGuardian", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setPauseGuardian", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "rewardsDestination", - "type": "address" - } - ], - "name": "setRewardsDestination", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "stakeToFeesRatio_", - "type": "uint256" - } - ], - "name": "setStakeToFeesRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "stakeToFeesRatio", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "startService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "stopService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "subgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_13349": { - "entryPoint": null, - "id": 13349, - "parameterSlots": 4, - "returnSlots": 0 - }, - "@_4520": { - "entryPoint": null, - "id": 4520, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_629": { - "entryPoint": null, - "id": 629, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_9595": { - "entryPoint": null, - "id": 9595, - "parameterSlots": 4, - "returnSlots": 0 - }, - "@_disableInitializers_5070": { - "entryPoint": 1139, - "id": 5070, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_getContractFromController_4652": { - "entryPoint": 965, - "id": 4652, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_getInitializableStorage_5101": { - "entryPoint": null, - "id": 5101, - "parameterSlots": 0, - "returnSlots": 1 - }, - "abi_decode_address_fromMemory": { - "entryPoint": 1317, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address_fromMemory": { - "entryPoint": 1429, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_addresst_addresst_address_fromMemory": { - "entryPoint": 1345, - "id": null, - "parameterSlots": 2, - "returnSlots": 4 - }, - "abi_encode_tuple_t_address_t_address_t_address_t_address__to_t_address_t_address_t_address_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_address_t_address_t_address_t_address_t_address__to_t_address_t_address_t_address_t_address_t_address_t_address_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 8, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": 1463, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a__to_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:3424:62", - "nodeType": "YulBlock", - "src": "0:3424:62", - "statements": [ - { - "nativeSrc": "6:3:62", - "nodeType": "YulBlock", - "src": "6:3:62", - "statements": [] - }, - { - "body": { - "nativeSrc": "74:117:62", - "nodeType": "YulBlock", - "src": "74:117:62", - "statements": [ - { - "nativeSrc": "84:22:62", - "nodeType": "YulAssignment", - "src": "84:22:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "99:6:62", - "nodeType": "YulIdentifier", - "src": "99:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "93:5:62", - "nodeType": "YulIdentifier", - "src": "93:5:62" - }, - "nativeSrc": "93:13:62", - "nodeType": "YulFunctionCall", - "src": "93:13:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "84:5:62", - "nodeType": "YulIdentifier", - "src": "84:5:62" - } - ] - }, - { - "body": { - "nativeSrc": "169:16:62", - "nodeType": "YulBlock", - "src": "169:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "178:1:62", - "nodeType": "YulLiteral", - "src": "178:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "181:1:62", - "nodeType": "YulLiteral", - "src": "181:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "171:6:62", - "nodeType": "YulIdentifier", - "src": "171:6:62" - }, - "nativeSrc": "171:12:62", - "nodeType": "YulFunctionCall", - "src": "171:12:62" - }, - "nativeSrc": "171:12:62", - "nodeType": "YulExpressionStatement", - "src": "171:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "128:5:62", - "nodeType": "YulIdentifier", - "src": "128:5:62" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "139:5:62", - "nodeType": "YulIdentifier", - "src": "139:5:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "154:3:62", - "nodeType": "YulLiteral", - "src": "154:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "159:1:62", - "nodeType": "YulLiteral", - "src": "159:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "150:3:62", - "nodeType": "YulIdentifier", - "src": "150:3:62" - }, - "nativeSrc": "150:11:62", - "nodeType": "YulFunctionCall", - "src": "150:11:62" - }, - { - "kind": "number", - "nativeSrc": "163:1:62", - "nodeType": "YulLiteral", - "src": "163:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "146:3:62", - "nodeType": "YulIdentifier", - "src": "146:3:62" - }, - "nativeSrc": "146:19:62", - "nodeType": "YulFunctionCall", - "src": "146:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "135:3:62", - "nodeType": "YulIdentifier", - "src": "135:3:62" - }, - "nativeSrc": "135:31:62", - "nodeType": "YulFunctionCall", - "src": "135:31:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "125:2:62", - "nodeType": "YulIdentifier", - "src": "125:2:62" - }, - "nativeSrc": "125:42:62", - "nodeType": "YulFunctionCall", - "src": "125:42:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "118:6:62", - "nodeType": "YulIdentifier", - "src": "118:6:62" - }, - "nativeSrc": "118:50:62", - "nodeType": "YulFunctionCall", - "src": "118:50:62" - }, - "nativeSrc": "115:70:62", - "nodeType": "YulIf", - "src": "115:70:62" - } - ] - }, - "name": "abi_decode_address_fromMemory", - "nativeSrc": "14:177:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "53:6:62", - "nodeType": "YulTypedName", - "src": "53:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "64:5:62", - "nodeType": "YulTypedName", - "src": "64:5:62", - "type": "" - } - ], - "src": "14:177:62" - }, - { - "body": { - "nativeSrc": "328:332:62", - "nodeType": "YulBlock", - "src": "328:332:62", - "statements": [ - { - "body": { - "nativeSrc": "375:16:62", - "nodeType": "YulBlock", - "src": "375:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "384:1:62", - "nodeType": "YulLiteral", - "src": "384:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "387:1:62", - "nodeType": "YulLiteral", - "src": "387:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "377:6:62", - "nodeType": "YulIdentifier", - "src": "377:6:62" - }, - "nativeSrc": "377:12:62", - "nodeType": "YulFunctionCall", - "src": "377:12:62" - }, - "nativeSrc": "377:12:62", - "nodeType": "YulExpressionStatement", - "src": "377:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "349:7:62", - "nodeType": "YulIdentifier", - "src": "349:7:62" - }, - { - "name": "headStart", - "nativeSrc": "358:9:62", - "nodeType": "YulIdentifier", - "src": "358:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "345:3:62", - "nodeType": "YulIdentifier", - "src": "345:3:62" - }, - "nativeSrc": "345:23:62", - "nodeType": "YulFunctionCall", - "src": "345:23:62" - }, - { - "kind": "number", - "nativeSrc": "370:3:62", - "nodeType": "YulLiteral", - "src": "370:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "341:3:62", - "nodeType": "YulIdentifier", - "src": "341:3:62" - }, - "nativeSrc": "341:33:62", - "nodeType": "YulFunctionCall", - "src": "341:33:62" - }, - "nativeSrc": "338:53:62", - "nodeType": "YulIf", - "src": "338:53:62" - }, - { - "nativeSrc": "400:50:62", - "nodeType": "YulAssignment", - "src": "400:50:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "440:9:62", - "nodeType": "YulIdentifier", - "src": "440:9:62" - } - ], - "functionName": { - "name": "abi_decode_address_fromMemory", - "nativeSrc": "410:29:62", - "nodeType": "YulIdentifier", - "src": "410:29:62" - }, - "nativeSrc": "410:40:62", - "nodeType": "YulFunctionCall", - "src": "410:40:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "400:6:62", - "nodeType": "YulIdentifier", - "src": "400:6:62" - } - ] - }, - { - "nativeSrc": "459:59:62", - "nodeType": "YulAssignment", - "src": "459:59:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "503:9:62", - "nodeType": "YulIdentifier", - "src": "503:9:62" - }, - { - "kind": "number", - "nativeSrc": "514:2:62", - "nodeType": "YulLiteral", - "src": "514:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "499:3:62", - "nodeType": "YulIdentifier", - "src": "499:3:62" - }, - "nativeSrc": "499:18:62", - "nodeType": "YulFunctionCall", - "src": "499:18:62" - } - ], - "functionName": { - "name": "abi_decode_address_fromMemory", - "nativeSrc": "469:29:62", - "nodeType": "YulIdentifier", - "src": "469:29:62" - }, - "nativeSrc": "469:49:62", - "nodeType": "YulFunctionCall", - "src": "469:49:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "459:6:62", - "nodeType": "YulIdentifier", - "src": "459:6:62" - } - ] - }, - { - "nativeSrc": "527:59:62", - "nodeType": "YulAssignment", - "src": "527:59:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "571:9:62", - "nodeType": "YulIdentifier", - "src": "571:9:62" - }, - { - "kind": "number", - "nativeSrc": "582:2:62", - "nodeType": "YulLiteral", - "src": "582:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "567:3:62", - "nodeType": "YulIdentifier", - "src": "567:3:62" - }, - "nativeSrc": "567:18:62", - "nodeType": "YulFunctionCall", - "src": "567:18:62" - } - ], - "functionName": { - "name": "abi_decode_address_fromMemory", - "nativeSrc": "537:29:62", - "nodeType": "YulIdentifier", - "src": "537:29:62" - }, - "nativeSrc": "537:49:62", - "nodeType": "YulFunctionCall", - "src": "537:49:62" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "527:6:62", - "nodeType": "YulIdentifier", - "src": "527:6:62" - } - ] - }, - { - "nativeSrc": "595:59:62", - "nodeType": "YulAssignment", - "src": "595:59:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "639:9:62", - "nodeType": "YulIdentifier", - "src": "639:9:62" - }, - { - "kind": "number", - "nativeSrc": "650:2:62", - "nodeType": "YulLiteral", - "src": "650:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "635:3:62", - "nodeType": "YulIdentifier", - "src": "635:3:62" - }, - "nativeSrc": "635:18:62", - "nodeType": "YulFunctionCall", - "src": "635:18:62" - } - ], - "functionName": { - "name": "abi_decode_address_fromMemory", - "nativeSrc": "605:29:62", - "nodeType": "YulIdentifier", - "src": "605:29:62" - }, - "nativeSrc": "605:49:62", - "nodeType": "YulFunctionCall", - "src": "605:49:62" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "595:6:62", - "nodeType": "YulIdentifier", - "src": "595:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_addresst_addresst_address_fromMemory", - "nativeSrc": "196:464:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "270:9:62", - "nodeType": "YulTypedName", - "src": "270:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "281:7:62", - "nodeType": "YulTypedName", - "src": "281:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "293:6:62", - "nodeType": "YulTypedName", - "src": "293:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "301:6:62", - "nodeType": "YulTypedName", - "src": "301:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "309:6:62", - "nodeType": "YulTypedName", - "src": "309:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "317:6:62", - "nodeType": "YulTypedName", - "src": "317:6:62", - "type": "" - } - ], - "src": "196:464:62" - }, - { - "body": { - "nativeSrc": "838:160:62", - "nodeType": "YulBlock", - "src": "838:160:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "855:9:62", - "nodeType": "YulIdentifier", - "src": "855:9:62" - }, - { - "kind": "number", - "nativeSrc": "866:2:62", - "nodeType": "YulLiteral", - "src": "866:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "848:6:62", - "nodeType": "YulIdentifier", - "src": "848:6:62" - }, - "nativeSrc": "848:21:62", - "nodeType": "YulFunctionCall", - "src": "848:21:62" - }, - "nativeSrc": "848:21:62", - "nodeType": "YulExpressionStatement", - "src": "848:21:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "889:9:62", - "nodeType": "YulIdentifier", - "src": "889:9:62" - }, - { - "kind": "number", - "nativeSrc": "900:2:62", - "nodeType": "YulLiteral", - "src": "900:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "885:3:62", - "nodeType": "YulIdentifier", - "src": "885:3:62" - }, - "nativeSrc": "885:18:62", - "nodeType": "YulFunctionCall", - "src": "885:18:62" - }, - { - "kind": "number", - "nativeSrc": "905:2:62", - "nodeType": "YulLiteral", - "src": "905:2:62", - "type": "", - "value": "10" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "878:6:62", - "nodeType": "YulIdentifier", - "src": "878:6:62" - }, - "nativeSrc": "878:30:62", - "nodeType": "YulFunctionCall", - "src": "878:30:62" - }, - "nativeSrc": "878:30:62", - "nodeType": "YulExpressionStatement", - "src": "878:30:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "928:9:62", - "nodeType": "YulIdentifier", - "src": "928:9:62" - }, - { - "kind": "number", - "nativeSrc": "939:2:62", - "nodeType": "YulLiteral", - "src": "939:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "924:3:62", - "nodeType": "YulIdentifier", - "src": "924:3:62" - }, - "nativeSrc": "924:18:62", - "nodeType": "YulFunctionCall", - "src": "924:18:62" - }, - { - "hexValue": "436f6e74726f6c6c6572", - "kind": "string", - "nativeSrc": "944:12:62", - "nodeType": "YulLiteral", - "src": "944:12:62", - "type": "", - "value": "Controller" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "917:6:62", - "nodeType": "YulIdentifier", - "src": "917:6:62" - }, - "nativeSrc": "917:40:62", - "nodeType": "YulFunctionCall", - "src": "917:40:62" - }, - "nativeSrc": "917:40:62", - "nodeType": "YulExpressionStatement", - "src": "917:40:62" - }, - { - "nativeSrc": "966:26:62", - "nodeType": "YulAssignment", - "src": "966:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "978:9:62", - "nodeType": "YulIdentifier", - "src": "978:9:62" - }, - { - "kind": "number", - "nativeSrc": "989:2:62", - "nodeType": "YulLiteral", - "src": "989:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "974:3:62", - "nodeType": "YulIdentifier", - "src": "974:3:62" - }, - "nativeSrc": "974:18:62", - "nodeType": "YulFunctionCall", - "src": "974:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "966:4:62", - "nodeType": "YulIdentifier", - "src": "966:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a__to_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "665:333:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "815:9:62", - "nodeType": "YulTypedName", - "src": "815:9:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "829:4:62", - "nodeType": "YulTypedName", - "src": "829:4:62", - "type": "" - } - ], - "src": "665:333:62" - }, - { - "body": { - "nativeSrc": "1272:520:62", - "nodeType": "YulBlock", - "src": "1272:520:62", - "statements": [ - { - "nativeSrc": "1282:27:62", - "nodeType": "YulAssignment", - "src": "1282:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1294:9:62", - "nodeType": "YulIdentifier", - "src": "1294:9:62" - }, - { - "kind": "number", - "nativeSrc": "1305:3:62", - "nodeType": "YulLiteral", - "src": "1305:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1290:3:62", - "nodeType": "YulIdentifier", - "src": "1290:3:62" - }, - "nativeSrc": "1290:19:62", - "nodeType": "YulFunctionCall", - "src": "1290:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1282:4:62", - "nodeType": "YulIdentifier", - "src": "1282:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1325:9:62", - "nodeType": "YulIdentifier", - "src": "1325:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1340:6:62", - "nodeType": "YulIdentifier", - "src": "1340:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1356:3:62", - "nodeType": "YulLiteral", - "src": "1356:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1361:1:62", - "nodeType": "YulLiteral", - "src": "1361:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1352:3:62", - "nodeType": "YulIdentifier", - "src": "1352:3:62" - }, - "nativeSrc": "1352:11:62", - "nodeType": "YulFunctionCall", - "src": "1352:11:62" - }, - { - "kind": "number", - "nativeSrc": "1365:1:62", - "nodeType": "YulLiteral", - "src": "1365:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1348:3:62", - "nodeType": "YulIdentifier", - "src": "1348:3:62" - }, - "nativeSrc": "1348:19:62", - "nodeType": "YulFunctionCall", - "src": "1348:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1336:3:62", - "nodeType": "YulIdentifier", - "src": "1336:3:62" - }, - "nativeSrc": "1336:32:62", - "nodeType": "YulFunctionCall", - "src": "1336:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1318:6:62", - "nodeType": "YulIdentifier", - "src": "1318:6:62" - }, - "nativeSrc": "1318:51:62", - "nodeType": "YulFunctionCall", - "src": "1318:51:62" - }, - "nativeSrc": "1318:51:62", - "nodeType": "YulExpressionStatement", - "src": "1318:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1389:9:62", - "nodeType": "YulIdentifier", - "src": "1389:9:62" - }, - { - "kind": "number", - "nativeSrc": "1400:2:62", - "nodeType": "YulLiteral", - "src": "1400:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1385:3:62", - "nodeType": "YulIdentifier", - "src": "1385:3:62" - }, - "nativeSrc": "1385:18:62", - "nodeType": "YulFunctionCall", - "src": "1385:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "1409:6:62", - "nodeType": "YulIdentifier", - "src": "1409:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1425:3:62", - "nodeType": "YulLiteral", - "src": "1425:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1430:1:62", - "nodeType": "YulLiteral", - "src": "1430:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1421:3:62", - "nodeType": "YulIdentifier", - "src": "1421:3:62" - }, - "nativeSrc": "1421:11:62", - "nodeType": "YulFunctionCall", - "src": "1421:11:62" - }, - { - "kind": "number", - "nativeSrc": "1434:1:62", - "nodeType": "YulLiteral", - "src": "1434:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1417:3:62", - "nodeType": "YulIdentifier", - "src": "1417:3:62" - }, - "nativeSrc": "1417:19:62", - "nodeType": "YulFunctionCall", - "src": "1417:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1405:3:62", - "nodeType": "YulIdentifier", - "src": "1405:3:62" - }, - "nativeSrc": "1405:32:62", - "nodeType": "YulFunctionCall", - "src": "1405:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1378:6:62", - "nodeType": "YulIdentifier", - "src": "1378:6:62" - }, - "nativeSrc": "1378:60:62", - "nodeType": "YulFunctionCall", - "src": "1378:60:62" - }, - "nativeSrc": "1378:60:62", - "nodeType": "YulExpressionStatement", - "src": "1378:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1458:9:62", - "nodeType": "YulIdentifier", - "src": "1458:9:62" - }, - { - "kind": "number", - "nativeSrc": "1469:2:62", - "nodeType": "YulLiteral", - "src": "1469:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1454:3:62", - "nodeType": "YulIdentifier", - "src": "1454:3:62" - }, - "nativeSrc": "1454:18:62", - "nodeType": "YulFunctionCall", - "src": "1454:18:62" - }, - { - "arguments": [ - { - "name": "value2", - "nativeSrc": "1478:6:62", - "nodeType": "YulIdentifier", - "src": "1478:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1494:3:62", - "nodeType": "YulLiteral", - "src": "1494:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1499:1:62", - "nodeType": "YulLiteral", - "src": "1499:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1490:3:62", - "nodeType": "YulIdentifier", - "src": "1490:3:62" - }, - "nativeSrc": "1490:11:62", - "nodeType": "YulFunctionCall", - "src": "1490:11:62" - }, - { - "kind": "number", - "nativeSrc": "1503:1:62", - "nodeType": "YulLiteral", - "src": "1503:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1486:3:62", - "nodeType": "YulIdentifier", - "src": "1486:3:62" - }, - "nativeSrc": "1486:19:62", - "nodeType": "YulFunctionCall", - "src": "1486:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1474:3:62", - "nodeType": "YulIdentifier", - "src": "1474:3:62" - }, - "nativeSrc": "1474:32:62", - "nodeType": "YulFunctionCall", - "src": "1474:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1447:6:62", - "nodeType": "YulIdentifier", - "src": "1447:6:62" - }, - "nativeSrc": "1447:60:62", - "nodeType": "YulFunctionCall", - "src": "1447:60:62" - }, - "nativeSrc": "1447:60:62", - "nodeType": "YulExpressionStatement", - "src": "1447:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1527:9:62", - "nodeType": "YulIdentifier", - "src": "1527:9:62" - }, - { - "kind": "number", - "nativeSrc": "1538:2:62", - "nodeType": "YulLiteral", - "src": "1538:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1523:3:62", - "nodeType": "YulIdentifier", - "src": "1523:3:62" - }, - "nativeSrc": "1523:18:62", - "nodeType": "YulFunctionCall", - "src": "1523:18:62" - }, - { - "arguments": [ - { - "name": "value3", - "nativeSrc": "1547:6:62", - "nodeType": "YulIdentifier", - "src": "1547:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1563:3:62", - "nodeType": "YulLiteral", - "src": "1563:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1568:1:62", - "nodeType": "YulLiteral", - "src": "1568:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1559:3:62", - "nodeType": "YulIdentifier", - "src": "1559:3:62" - }, - "nativeSrc": "1559:11:62", - "nodeType": "YulFunctionCall", - "src": "1559:11:62" - }, - { - "kind": "number", - "nativeSrc": "1572:1:62", - "nodeType": "YulLiteral", - "src": "1572:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1555:3:62", - "nodeType": "YulIdentifier", - "src": "1555:3:62" - }, - "nativeSrc": "1555:19:62", - "nodeType": "YulFunctionCall", - "src": "1555:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1543:3:62", - "nodeType": "YulIdentifier", - "src": "1543:3:62" - }, - "nativeSrc": "1543:32:62", - "nodeType": "YulFunctionCall", - "src": "1543:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1516:6:62", - "nodeType": "YulIdentifier", - "src": "1516:6:62" - }, - "nativeSrc": "1516:60:62", - "nodeType": "YulFunctionCall", - "src": "1516:60:62" - }, - "nativeSrc": "1516:60:62", - "nodeType": "YulExpressionStatement", - "src": "1516:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1596:9:62", - "nodeType": "YulIdentifier", - "src": "1596:9:62" - }, - { - "kind": "number", - "nativeSrc": "1607:3:62", - "nodeType": "YulLiteral", - "src": "1607:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1592:3:62", - "nodeType": "YulIdentifier", - "src": "1592:3:62" - }, - "nativeSrc": "1592:19:62", - "nodeType": "YulFunctionCall", - "src": "1592:19:62" - }, - { - "arguments": [ - { - "name": "value4", - "nativeSrc": "1617:6:62", - "nodeType": "YulIdentifier", - "src": "1617:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1633:3:62", - "nodeType": "YulLiteral", - "src": "1633:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1638:1:62", - "nodeType": "YulLiteral", - "src": "1638:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1629:3:62", - "nodeType": "YulIdentifier", - "src": "1629:3:62" - }, - "nativeSrc": "1629:11:62", - "nodeType": "YulFunctionCall", - "src": "1629:11:62" - }, - { - "kind": "number", - "nativeSrc": "1642:1:62", - "nodeType": "YulLiteral", - "src": "1642:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1625:3:62", - "nodeType": "YulIdentifier", - "src": "1625:3:62" - }, - "nativeSrc": "1625:19:62", - "nodeType": "YulFunctionCall", - "src": "1625:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1613:3:62", - "nodeType": "YulIdentifier", - "src": "1613:3:62" - }, - "nativeSrc": "1613:32:62", - "nodeType": "YulFunctionCall", - "src": "1613:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1585:6:62", - "nodeType": "YulIdentifier", - "src": "1585:6:62" - }, - "nativeSrc": "1585:61:62", - "nodeType": "YulFunctionCall", - "src": "1585:61:62" - }, - "nativeSrc": "1585:61:62", - "nodeType": "YulExpressionStatement", - "src": "1585:61:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1666:9:62", - "nodeType": "YulIdentifier", - "src": "1666:9:62" - }, - { - "kind": "number", - "nativeSrc": "1677:3:62", - "nodeType": "YulLiteral", - "src": "1677:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1662:3:62", - "nodeType": "YulIdentifier", - "src": "1662:3:62" - }, - "nativeSrc": "1662:19:62", - "nodeType": "YulFunctionCall", - "src": "1662:19:62" - }, - { - "arguments": [ - { - "name": "value5", - "nativeSrc": "1687:6:62", - "nodeType": "YulIdentifier", - "src": "1687:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1703:3:62", - "nodeType": "YulLiteral", - "src": "1703:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1708:1:62", - "nodeType": "YulLiteral", - "src": "1708:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1699:3:62", - "nodeType": "YulIdentifier", - "src": "1699:3:62" - }, - "nativeSrc": "1699:11:62", - "nodeType": "YulFunctionCall", - "src": "1699:11:62" - }, - { - "kind": "number", - "nativeSrc": "1712:1:62", - "nodeType": "YulLiteral", - "src": "1712:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1695:3:62", - "nodeType": "YulIdentifier", - "src": "1695:3:62" - }, - "nativeSrc": "1695:19:62", - "nodeType": "YulFunctionCall", - "src": "1695:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1683:3:62", - "nodeType": "YulIdentifier", - "src": "1683:3:62" - }, - "nativeSrc": "1683:32:62", - "nodeType": "YulFunctionCall", - "src": "1683:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1655:6:62", - "nodeType": "YulIdentifier", - "src": "1655:6:62" - }, - "nativeSrc": "1655:61:62", - "nodeType": "YulFunctionCall", - "src": "1655:61:62" - }, - "nativeSrc": "1655:61:62", - "nodeType": "YulExpressionStatement", - "src": "1655:61:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1736:9:62", - "nodeType": "YulIdentifier", - "src": "1736:9:62" - }, - { - "kind": "number", - "nativeSrc": "1747:3:62", - "nodeType": "YulLiteral", - "src": "1747:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1732:3:62", - "nodeType": "YulIdentifier", - "src": "1732:3:62" - }, - "nativeSrc": "1732:19:62", - "nodeType": "YulFunctionCall", - "src": "1732:19:62" - }, - { - "arguments": [ - { - "name": "value6", - "nativeSrc": "1757:6:62", - "nodeType": "YulIdentifier", - "src": "1757:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1773:3:62", - "nodeType": "YulLiteral", - "src": "1773:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "1778:1:62", - "nodeType": "YulLiteral", - "src": "1778:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "1769:3:62", - "nodeType": "YulIdentifier", - "src": "1769:3:62" - }, - "nativeSrc": "1769:11:62", - "nodeType": "YulFunctionCall", - "src": "1769:11:62" - }, - { - "kind": "number", - "nativeSrc": "1782:1:62", - "nodeType": "YulLiteral", - "src": "1782:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1765:3:62", - "nodeType": "YulIdentifier", - "src": "1765:3:62" - }, - "nativeSrc": "1765:19:62", - "nodeType": "YulFunctionCall", - "src": "1765:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1753:3:62", - "nodeType": "YulIdentifier", - "src": "1753:3:62" - }, - "nativeSrc": "1753:32:62", - "nodeType": "YulFunctionCall", - "src": "1753:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1725:6:62", - "nodeType": "YulIdentifier", - "src": "1725:6:62" - }, - "nativeSrc": "1725:61:62", - "nodeType": "YulFunctionCall", - "src": "1725:61:62" - }, - "nativeSrc": "1725:61:62", - "nodeType": "YulExpressionStatement", - "src": "1725:61:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address_t_address_t_address_t_address_t_address_t_address__to_t_address_t_address_t_address_t_address_t_address_t_address_t_address__fromStack_reversed", - "nativeSrc": "1003:789:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1193:9:62", - "nodeType": "YulTypedName", - "src": "1193:9:62", - "type": "" - }, - { - "name": "value6", - "nativeSrc": "1204:6:62", - "nodeType": "YulTypedName", - "src": "1204:6:62", - "type": "" - }, - { - "name": "value5", - "nativeSrc": "1212:6:62", - "nodeType": "YulTypedName", - "src": "1212:6:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "1220:6:62", - "nodeType": "YulTypedName", - "src": "1220:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "1228:6:62", - "nodeType": "YulTypedName", - "src": "1228:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "1236:6:62", - "nodeType": "YulTypedName", - "src": "1236:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1244:6:62", - "nodeType": "YulTypedName", - "src": "1244:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1252:6:62", - "nodeType": "YulTypedName", - "src": "1252:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1263:4:62", - "nodeType": "YulTypedName", - "src": "1263:4:62", - "type": "" - } - ], - "src": "1003:789:62" - }, - { - "body": { - "nativeSrc": "1982:310:62", - "nodeType": "YulBlock", - "src": "1982:310:62", - "statements": [ - { - "nativeSrc": "1992:27:62", - "nodeType": "YulAssignment", - "src": "1992:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2004:9:62", - "nodeType": "YulIdentifier", - "src": "2004:9:62" - }, - { - "kind": "number", - "nativeSrc": "2015:3:62", - "nodeType": "YulLiteral", - "src": "2015:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2000:3:62", - "nodeType": "YulIdentifier", - "src": "2000:3:62" - }, - "nativeSrc": "2000:19:62", - "nodeType": "YulFunctionCall", - "src": "2000:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1992:4:62", - "nodeType": "YulIdentifier", - "src": "1992:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2035:9:62", - "nodeType": "YulIdentifier", - "src": "2035:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2050:6:62", - "nodeType": "YulIdentifier", - "src": "2050:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2066:3:62", - "nodeType": "YulLiteral", - "src": "2066:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "2071:1:62", - "nodeType": "YulLiteral", - "src": "2071:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "2062:3:62", - "nodeType": "YulIdentifier", - "src": "2062:3:62" - }, - "nativeSrc": "2062:11:62", - "nodeType": "YulFunctionCall", - "src": "2062:11:62" - }, - { - "kind": "number", - "nativeSrc": "2075:1:62", - "nodeType": "YulLiteral", - "src": "2075:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2058:3:62", - "nodeType": "YulIdentifier", - "src": "2058:3:62" - }, - "nativeSrc": "2058:19:62", - "nodeType": "YulFunctionCall", - "src": "2058:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2046:3:62", - "nodeType": "YulIdentifier", - "src": "2046:3:62" - }, - "nativeSrc": "2046:32:62", - "nodeType": "YulFunctionCall", - "src": "2046:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2028:6:62", - "nodeType": "YulIdentifier", - "src": "2028:6:62" - }, - "nativeSrc": "2028:51:62", - "nodeType": "YulFunctionCall", - "src": "2028:51:62" - }, - "nativeSrc": "2028:51:62", - "nodeType": "YulExpressionStatement", - "src": "2028:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2099:9:62", - "nodeType": "YulIdentifier", - "src": "2099:9:62" - }, - { - "kind": "number", - "nativeSrc": "2110:2:62", - "nodeType": "YulLiteral", - "src": "2110:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2095:3:62", - "nodeType": "YulIdentifier", - "src": "2095:3:62" - }, - "nativeSrc": "2095:18:62", - "nodeType": "YulFunctionCall", - "src": "2095:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "2119:6:62", - "nodeType": "YulIdentifier", - "src": "2119:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2135:3:62", - "nodeType": "YulLiteral", - "src": "2135:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "2140:1:62", - "nodeType": "YulLiteral", - "src": "2140:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "2131:3:62", - "nodeType": "YulIdentifier", - "src": "2131:3:62" - }, - "nativeSrc": "2131:11:62", - "nodeType": "YulFunctionCall", - "src": "2131:11:62" - }, - { - "kind": "number", - "nativeSrc": "2144:1:62", - "nodeType": "YulLiteral", - "src": "2144:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2127:3:62", - "nodeType": "YulIdentifier", - "src": "2127:3:62" - }, - "nativeSrc": "2127:19:62", - "nodeType": "YulFunctionCall", - "src": "2127:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2115:3:62", - "nodeType": "YulIdentifier", - "src": "2115:3:62" - }, - "nativeSrc": "2115:32:62", - "nodeType": "YulFunctionCall", - "src": "2115:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2088:6:62", - "nodeType": "YulIdentifier", - "src": "2088:6:62" - }, - "nativeSrc": "2088:60:62", - "nodeType": "YulFunctionCall", - "src": "2088:60:62" - }, - "nativeSrc": "2088:60:62", - "nodeType": "YulExpressionStatement", - "src": "2088:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2168:9:62", - "nodeType": "YulIdentifier", - "src": "2168:9:62" - }, - { - "kind": "number", - "nativeSrc": "2179:2:62", - "nodeType": "YulLiteral", - "src": "2179:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2164:3:62", - "nodeType": "YulIdentifier", - "src": "2164:3:62" - }, - "nativeSrc": "2164:18:62", - "nodeType": "YulFunctionCall", - "src": "2164:18:62" - }, - { - "arguments": [ - { - "name": "value2", - "nativeSrc": "2188:6:62", - "nodeType": "YulIdentifier", - "src": "2188:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2204:3:62", - "nodeType": "YulLiteral", - "src": "2204:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "2209:1:62", - "nodeType": "YulLiteral", - "src": "2209:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "2200:3:62", - "nodeType": "YulIdentifier", - "src": "2200:3:62" - }, - "nativeSrc": "2200:11:62", - "nodeType": "YulFunctionCall", - "src": "2200:11:62" - }, - { - "kind": "number", - "nativeSrc": "2213:1:62", - "nodeType": "YulLiteral", - "src": "2213:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2196:3:62", - "nodeType": "YulIdentifier", - "src": "2196:3:62" - }, - "nativeSrc": "2196:19:62", - "nodeType": "YulFunctionCall", - "src": "2196:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2184:3:62", - "nodeType": "YulIdentifier", - "src": "2184:3:62" - }, - "nativeSrc": "2184:32:62", - "nodeType": "YulFunctionCall", - "src": "2184:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2157:6:62", - "nodeType": "YulIdentifier", - "src": "2157:6:62" - }, - "nativeSrc": "2157:60:62", - "nodeType": "YulFunctionCall", - "src": "2157:60:62" - }, - "nativeSrc": "2157:60:62", - "nodeType": "YulExpressionStatement", - "src": "2157:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2237:9:62", - "nodeType": "YulIdentifier", - "src": "2237:9:62" - }, - { - "kind": "number", - "nativeSrc": "2248:2:62", - "nodeType": "YulLiteral", - "src": "2248:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2233:3:62", - "nodeType": "YulIdentifier", - "src": "2233:3:62" - }, - "nativeSrc": "2233:18:62", - "nodeType": "YulFunctionCall", - "src": "2233:18:62" - }, - { - "arguments": [ - { - "name": "value3", - "nativeSrc": "2257:6:62", - "nodeType": "YulIdentifier", - "src": "2257:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2273:3:62", - "nodeType": "YulLiteral", - "src": "2273:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "2278:1:62", - "nodeType": "YulLiteral", - "src": "2278:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "2269:3:62", - "nodeType": "YulIdentifier", - "src": "2269:3:62" - }, - "nativeSrc": "2269:11:62", - "nodeType": "YulFunctionCall", - "src": "2269:11:62" - }, - { - "kind": "number", - "nativeSrc": "2282:1:62", - "nodeType": "YulLiteral", - "src": "2282:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2265:3:62", - "nodeType": "YulIdentifier", - "src": "2265:3:62" - }, - "nativeSrc": "2265:19:62", - "nodeType": "YulFunctionCall", - "src": "2265:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2253:3:62", - "nodeType": "YulIdentifier", - "src": "2253:3:62" - }, - "nativeSrc": "2253:32:62", - "nodeType": "YulFunctionCall", - "src": "2253:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2226:6:62", - "nodeType": "YulIdentifier", - "src": "2226:6:62" - }, - "nativeSrc": "2226:60:62", - "nodeType": "YulFunctionCall", - "src": "2226:60:62" - }, - "nativeSrc": "2226:60:62", - "nodeType": "YulExpressionStatement", - "src": "2226:60:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address_t_address_t_address__to_t_address_t_address_t_address_t_address__fromStack_reversed", - "nativeSrc": "1797:495:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1927:9:62", - "nodeType": "YulTypedName", - "src": "1927:9:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "1938:6:62", - "nodeType": "YulTypedName", - "src": "1938:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "1946:6:62", - "nodeType": "YulTypedName", - "src": "1946:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1954:6:62", - "nodeType": "YulTypedName", - "src": "1954:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1962:6:62", - "nodeType": "YulTypedName", - "src": "1962:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1973:4:62", - "nodeType": "YulTypedName", - "src": "1973:4:62", - "type": "" - } - ], - "src": "1797:495:62" - }, - { - "body": { - "nativeSrc": "2398:76:62", - "nodeType": "YulBlock", - "src": "2398:76:62", - "statements": [ - { - "nativeSrc": "2408:26:62", - "nodeType": "YulAssignment", - "src": "2408:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2420:9:62", - "nodeType": "YulIdentifier", - "src": "2420:9:62" - }, - { - "kind": "number", - "nativeSrc": "2431:2:62", - "nodeType": "YulLiteral", - "src": "2431:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2416:3:62", - "nodeType": "YulIdentifier", - "src": "2416:3:62" - }, - "nativeSrc": "2416:18:62", - "nodeType": "YulFunctionCall", - "src": "2416:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2408:4:62", - "nodeType": "YulIdentifier", - "src": "2408:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2450:9:62", - "nodeType": "YulIdentifier", - "src": "2450:9:62" - }, - { - "name": "value0", - "nativeSrc": "2461:6:62", - "nodeType": "YulIdentifier", - "src": "2461:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2443:6:62", - "nodeType": "YulIdentifier", - "src": "2443:6:62" - }, - "nativeSrc": "2443:25:62", - "nodeType": "YulFunctionCall", - "src": "2443:25:62" - }, - "nativeSrc": "2443:25:62", - "nodeType": "YulExpressionStatement", - "src": "2443:25:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "2297:177:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2367:9:62", - "nodeType": "YulTypedName", - "src": "2367:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2378:6:62", - "nodeType": "YulTypedName", - "src": "2378:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2389:4:62", - "nodeType": "YulTypedName", - "src": "2389:4:62", - "type": "" - } - ], - "src": "2297:177:62" - }, - { - "body": { - "nativeSrc": "2560:127:62", - "nodeType": "YulBlock", - "src": "2560:127:62", - "statements": [ - { - "body": { - "nativeSrc": "2606:16:62", - "nodeType": "YulBlock", - "src": "2606:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2615:1:62", - "nodeType": "YulLiteral", - "src": "2615:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2618:1:62", - "nodeType": "YulLiteral", - "src": "2618:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2608:6:62", - "nodeType": "YulIdentifier", - "src": "2608:6:62" - }, - "nativeSrc": "2608:12:62", - "nodeType": "YulFunctionCall", - "src": "2608:12:62" - }, - "nativeSrc": "2608:12:62", - "nodeType": "YulExpressionStatement", - "src": "2608:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2581:7:62", - "nodeType": "YulIdentifier", - "src": "2581:7:62" - }, - { - "name": "headStart", - "nativeSrc": "2590:9:62", - "nodeType": "YulIdentifier", - "src": "2590:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2577:3:62", - "nodeType": "YulIdentifier", - "src": "2577:3:62" - }, - "nativeSrc": "2577:23:62", - "nodeType": "YulFunctionCall", - "src": "2577:23:62" - }, - { - "kind": "number", - "nativeSrc": "2602:2:62", - "nodeType": "YulLiteral", - "src": "2602:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2573:3:62", - "nodeType": "YulIdentifier", - "src": "2573:3:62" - }, - "nativeSrc": "2573:32:62", - "nodeType": "YulFunctionCall", - "src": "2573:32:62" - }, - "nativeSrc": "2570:52:62", - "nodeType": "YulIf", - "src": "2570:52:62" - }, - { - "nativeSrc": "2631:50:62", - "nodeType": "YulAssignment", - "src": "2631:50:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2671:9:62", - "nodeType": "YulIdentifier", - "src": "2671:9:62" - } - ], - "functionName": { - "name": "abi_decode_address_fromMemory", - "nativeSrc": "2641:29:62", - "nodeType": "YulIdentifier", - "src": "2641:29:62" - }, - "nativeSrc": "2641:40:62", - "nodeType": "YulFunctionCall", - "src": "2641:40:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2631:6:62", - "nodeType": "YulIdentifier", - "src": "2631:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_fromMemory", - "nativeSrc": "2479:208:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2526:9:62", - "nodeType": "YulTypedName", - "src": "2526:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "2537:7:62", - "nodeType": "YulTypedName", - "src": "2537:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "2549:6:62", - "nodeType": "YulTypedName", - "src": "2549:6:62", - "type": "" - } - ], - "src": "2479:208:62" - }, - { - "body": { - "nativeSrc": "2811:406:62", - "nodeType": "YulBlock", - "src": "2811:406:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2828:9:62", - "nodeType": "YulIdentifier", - "src": "2828:9:62" - }, - { - "kind": "number", - "nativeSrc": "2839:2:62", - "nodeType": "YulLiteral", - "src": "2839:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2821:6:62", - "nodeType": "YulIdentifier", - "src": "2821:6:62" - }, - "nativeSrc": "2821:21:62", - "nodeType": "YulFunctionCall", - "src": "2821:21:62" - }, - "nativeSrc": "2821:21:62", - "nodeType": "YulExpressionStatement", - "src": "2821:21:62" - }, - { - "nativeSrc": "2851:27:62", - "nodeType": "YulVariableDeclaration", - "src": "2851:27:62", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2871:6:62", - "nodeType": "YulIdentifier", - "src": "2871:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "2865:5:62", - "nodeType": "YulIdentifier", - "src": "2865:5:62" - }, - "nativeSrc": "2865:13:62", - "nodeType": "YulFunctionCall", - "src": "2865:13:62" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "2855:6:62", - "nodeType": "YulTypedName", - "src": "2855:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2898:9:62", - "nodeType": "YulIdentifier", - "src": "2898:9:62" - }, - { - "kind": "number", - "nativeSrc": "2909:2:62", - "nodeType": "YulLiteral", - "src": "2909:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2894:3:62", - "nodeType": "YulIdentifier", - "src": "2894:3:62" - }, - "nativeSrc": "2894:18:62", - "nodeType": "YulFunctionCall", - "src": "2894:18:62" - }, - { - "name": "length", - "nativeSrc": "2914:6:62", - "nodeType": "YulIdentifier", - "src": "2914:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2887:6:62", - "nodeType": "YulIdentifier", - "src": "2887:6:62" - }, - "nativeSrc": "2887:34:62", - "nodeType": "YulFunctionCall", - "src": "2887:34:62" - }, - "nativeSrc": "2887:34:62", - "nodeType": "YulExpressionStatement", - "src": "2887:34:62" - }, - { - "nativeSrc": "2930:10:62", - "nodeType": "YulVariableDeclaration", - "src": "2930:10:62", - "value": { - "kind": "number", - "nativeSrc": "2939:1:62", - "nodeType": "YulLiteral", - "src": "2939:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "2934:1:62", - "nodeType": "YulTypedName", - "src": "2934:1:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "2999:90:62", - "nodeType": "YulBlock", - "src": "2999:90:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3028:9:62", - "nodeType": "YulIdentifier", - "src": "3028:9:62" - }, - { - "name": "i", - "nativeSrc": "3039:1:62", - "nodeType": "YulIdentifier", - "src": "3039:1:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3024:3:62", - "nodeType": "YulIdentifier", - "src": "3024:3:62" - }, - "nativeSrc": "3024:17:62", - "nodeType": "YulFunctionCall", - "src": "3024:17:62" - }, - { - "kind": "number", - "nativeSrc": "3043:2:62", - "nodeType": "YulLiteral", - "src": "3043:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3020:3:62", - "nodeType": "YulIdentifier", - "src": "3020:3:62" - }, - "nativeSrc": "3020:26:62", - "nodeType": "YulFunctionCall", - "src": "3020:26:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "3062:6:62", - "nodeType": "YulIdentifier", - "src": "3062:6:62" - }, - { - "name": "i", - "nativeSrc": "3070:1:62", - "nodeType": "YulIdentifier", - "src": "3070:1:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3058:3:62", - "nodeType": "YulIdentifier", - "src": "3058:3:62" - }, - "nativeSrc": "3058:14:62", - "nodeType": "YulFunctionCall", - "src": "3058:14:62" - }, - { - "kind": "number", - "nativeSrc": "3074:2:62", - "nodeType": "YulLiteral", - "src": "3074:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3054:3:62", - "nodeType": "YulIdentifier", - "src": "3054:3:62" - }, - "nativeSrc": "3054:23:62", - "nodeType": "YulFunctionCall", - "src": "3054:23:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "3048:5:62", - "nodeType": "YulIdentifier", - "src": "3048:5:62" - }, - "nativeSrc": "3048:30:62", - "nodeType": "YulFunctionCall", - "src": "3048:30:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3013:6:62", - "nodeType": "YulIdentifier", - "src": "3013:6:62" - }, - "nativeSrc": "3013:66:62", - "nodeType": "YulFunctionCall", - "src": "3013:66:62" - }, - "nativeSrc": "3013:66:62", - "nodeType": "YulExpressionStatement", - "src": "3013:66:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "2960:1:62", - "nodeType": "YulIdentifier", - "src": "2960:1:62" - }, - { - "name": "length", - "nativeSrc": "2963:6:62", - "nodeType": "YulIdentifier", - "src": "2963:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "2957:2:62", - "nodeType": "YulIdentifier", - "src": "2957:2:62" - }, - "nativeSrc": "2957:13:62", - "nodeType": "YulFunctionCall", - "src": "2957:13:62" - }, - "nativeSrc": "2949:140:62", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "2971:19:62", - "nodeType": "YulBlock", - "src": "2971:19:62", - "statements": [ - { - "nativeSrc": "2973:15:62", - "nodeType": "YulAssignment", - "src": "2973:15:62", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "2982:1:62", - "nodeType": "YulIdentifier", - "src": "2982:1:62" - }, - { - "kind": "number", - "nativeSrc": "2985:2:62", - "nodeType": "YulLiteral", - "src": "2985:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2978:3:62", - "nodeType": "YulIdentifier", - "src": "2978:3:62" - }, - "nativeSrc": "2978:10:62", - "nodeType": "YulFunctionCall", - "src": "2978:10:62" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "2973:1:62", - "nodeType": "YulIdentifier", - "src": "2973:1:62" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "2953:3:62", - "nodeType": "YulBlock", - "src": "2953:3:62", - "statements": [] - }, - "src": "2949:140:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3113:9:62", - "nodeType": "YulIdentifier", - "src": "3113:9:62" - }, - { - "name": "length", - "nativeSrc": "3124:6:62", - "nodeType": "YulIdentifier", - "src": "3124:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3109:3:62", - "nodeType": "YulIdentifier", - "src": "3109:3:62" - }, - "nativeSrc": "3109:22:62", - "nodeType": "YulFunctionCall", - "src": "3109:22:62" - }, - { - "kind": "number", - "nativeSrc": "3133:2:62", - "nodeType": "YulLiteral", - "src": "3133:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3105:3:62", - "nodeType": "YulIdentifier", - "src": "3105:3:62" - }, - "nativeSrc": "3105:31:62", - "nodeType": "YulFunctionCall", - "src": "3105:31:62" - }, - { - "kind": "number", - "nativeSrc": "3138:1:62", - "nodeType": "YulLiteral", - "src": "3138:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3098:6:62", - "nodeType": "YulIdentifier", - "src": "3098:6:62" - }, - "nativeSrc": "3098:42:62", - "nodeType": "YulFunctionCall", - "src": "3098:42:62" - }, - "nativeSrc": "3098:42:62", - "nodeType": "YulExpressionStatement", - "src": "3098:42:62" - }, - { - "nativeSrc": "3149:62:62", - "nodeType": "YulAssignment", - "src": "3149:62:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3165:9:62", - "nodeType": "YulIdentifier", - "src": "3165:9:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "3184:6:62", - "nodeType": "YulIdentifier", - "src": "3184:6:62" - }, - { - "kind": "number", - "nativeSrc": "3192:2:62", - "nodeType": "YulLiteral", - "src": "3192:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3180:3:62", - "nodeType": "YulIdentifier", - "src": "3180:3:62" - }, - "nativeSrc": "3180:15:62", - "nodeType": "YulFunctionCall", - "src": "3180:15:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3201:2:62", - "nodeType": "YulLiteral", - "src": "3201:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "3197:3:62", - "nodeType": "YulIdentifier", - "src": "3197:3:62" - }, - "nativeSrc": "3197:7:62", - "nodeType": "YulFunctionCall", - "src": "3197:7:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "3176:3:62", - "nodeType": "YulIdentifier", - "src": "3176:3:62" - }, - "nativeSrc": "3176:29:62", - "nodeType": "YulFunctionCall", - "src": "3176:29:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3161:3:62", - "nodeType": "YulIdentifier", - "src": "3161:3:62" - }, - "nativeSrc": "3161:45:62", - "nodeType": "YulFunctionCall", - "src": "3161:45:62" - }, - { - "kind": "number", - "nativeSrc": "3208:2:62", - "nodeType": "YulLiteral", - "src": "3208:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3157:3:62", - "nodeType": "YulIdentifier", - "src": "3157:3:62" - }, - "nativeSrc": "3157:54:62", - "nodeType": "YulFunctionCall", - "src": "3157:54:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "3149:4:62", - "nodeType": "YulIdentifier", - "src": "3149:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "2692:525:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2780:9:62", - "nodeType": "YulTypedName", - "src": "2780:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2791:6:62", - "nodeType": "YulTypedName", - "src": "2791:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2802:4:62", - "nodeType": "YulTypedName", - "src": "2802:4:62", - "type": "" - } - ], - "src": "2692:525:62" - }, - { - "body": { - "nativeSrc": "3321:101:62", - "nodeType": "YulBlock", - "src": "3321:101:62", - "statements": [ - { - "nativeSrc": "3331:26:62", - "nodeType": "YulAssignment", - "src": "3331:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3343:9:62", - "nodeType": "YulIdentifier", - "src": "3343:9:62" - }, - { - "kind": "number", - "nativeSrc": "3354:2:62", - "nodeType": "YulLiteral", - "src": "3354:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3339:3:62", - "nodeType": "YulIdentifier", - "src": "3339:3:62" - }, - "nativeSrc": "3339:18:62", - "nodeType": "YulFunctionCall", - "src": "3339:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "3331:4:62", - "nodeType": "YulIdentifier", - "src": "3331:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3373:9:62", - "nodeType": "YulIdentifier", - "src": "3373:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "3388:6:62", - "nodeType": "YulIdentifier", - "src": "3388:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3404:2:62", - "nodeType": "YulLiteral", - "src": "3404:2:62", - "type": "", - "value": "64" - }, - { - "kind": "number", - "nativeSrc": "3408:1:62", - "nodeType": "YulLiteral", - "src": "3408:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "3400:3:62", - "nodeType": "YulIdentifier", - "src": "3400:3:62" - }, - "nativeSrc": "3400:10:62", - "nodeType": "YulFunctionCall", - "src": "3400:10:62" - }, - { - "kind": "number", - "nativeSrc": "3412:1:62", - "nodeType": "YulLiteral", - "src": "3412:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3396:3:62", - "nodeType": "YulIdentifier", - "src": "3396:3:62" - }, - "nativeSrc": "3396:18:62", - "nodeType": "YulFunctionCall", - "src": "3396:18:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "3384:3:62", - "nodeType": "YulIdentifier", - "src": "3384:3:62" - }, - "nativeSrc": "3384:31:62", - "nodeType": "YulFunctionCall", - "src": "3384:31:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3366:6:62", - "nodeType": "YulIdentifier", - "src": "3366:6:62" - }, - "nativeSrc": "3366:50:62", - "nodeType": "YulFunctionCall", - "src": "3366:50:62" - }, - "nativeSrc": "3366:50:62", - "nodeType": "YulExpressionStatement", - "src": "3366:50:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", - "nativeSrc": "3222:200:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3290:9:62", - "nodeType": "YulTypedName", - "src": "3290:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "3301:6:62", - "nodeType": "YulTypedName", - "src": "3301:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "3312:4:62", - "nodeType": "YulTypedName", - "src": "3312:4:62", - "type": "" - } - ], - "src": "3222:200:62" - } - ] - }, - "contents": "{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := abi_decode_address_fromMemory(add(headStart, 96))\n }\n function abi_encode_tuple_t_stringliteral_7c20e2bbcd91c5aaa7898ba022ab8867ac32d84e959c236484db066900aa363a__to_t_bytes_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 10)\n mstore(add(headStart, 64), \"Controller\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_address_t_address_t_address_t_address_t_address_t_address__to_t_address_t_address_t_address_t_address_t_address_t_address_t_address__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 224)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n mstore(add(headStart, 160), and(value5, sub(shl(160, 1), 1)))\n mstore(add(headStart, 192), and(value6, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_address_t_address__to_t_address_t_address_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), 32)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(64, 1), 1)))\n }\n}", - "id": 62, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "61024060405234801561001157600080fd5b5060405161668f38038061668f83398101604081905261003091610541565b3083838387806001600160a01b03811661007f5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b7906103c5565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100ea906103c5565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b6020820152610123906103c5565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015d906103c5565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610195906103c5565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101d0906103c5565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020e906103c5565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024a906103c5565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027f906103c5565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103299790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b038481166101c08190528482166101e08190528483166102008190529284166102208190526040805193845260208401929092529082019290925260608101919091527f4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda79060800160405180910390a1505050506103bc61047360201b60201c565b50505050610605565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161040091815260200190565b602060405180830381865afa15801561041d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104419190610595565b9050826001600160a01b03821661046c5760405163218f5add60e11b815260040161007691906105b7565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104c35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146105225780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461053c57600080fd5b919050565b6000806000806080858703121561055757600080fd5b61056085610525565b935061056e60208601610525565b925061057c60408601610525565b915061058a60608601610525565b905092959194509250565b6000602082840312156105a757600080fd5b6105b082610525565b9392505050565b602081526000825180602084015260005b818110156105e557602081860181015160408684010152016105c8565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051615ff161069e60003960006143f801526000612fa9015260008181611a1801526138d00152600050506000505060005050600050506000613fe6015260006137fd01526000505060005050600050506000612045015260006143d40152615ff16000f3fe608060405234801561001057600080fd5b50600436106102ce5760003560e01c80638180083b1161017e578063a827a90c116100df578063a827a90c146108f6578063ac9650d814610909578063b15d2a2c14610929578063ba38f67d1461093c578063bfdfa7af1461094f578063cb8347fe14610966578063cbe5f3f214610979578063ce0fc0cc14610999578063ce56c98b146109ac578063d07a7a84146109bf578063dedf6726146109c8578063e2e1e8e9146109db578063e6f50054146109fb578063eff0f59214610a0e578063f2fde38b14610a4357600080fd5b80638180083b14610795578063819ba366146107a857806381e777a7146107c5578063832bc923146107d85780638456cb59146107eb57806384b0196e146107f357806385e82baf1461080e57806388812583146108175780638d2f29481461082e5780638da5cb5b146108595780639249c5c1146108615780639384e0781461087857806393d4e7cb1461089b5780639aafa5d1146108dc57600080fd5b80634f793cdc116102335780634f793cdc146104b157806352a9039c146104d357806355c85269146105735780635c975abb146106365780636234e2161461063e5780636a3ca3831461065e5780636d9a395114610671578063715018a6146106ec57806371ce020a146106f45780637203ca781461070a5780637337182314610740578063772495c3146107495780637aa31bce1461075c5780637dfe6d281461076f5780637e89bac31461078257600080fd5b80630e022923146102d3578063138dea081461035457806313c474c91461036b5780631cafa218146103c05780631dd42f60146103d55780631ebb7c30146103e857806324b8fbf61461040e578063355779621461042157806336fdd28a146104345780633afd23fe1461043d5780633f0ed79d1461045d5780633f4ba83a1461048057806345f5448514610488578063482468b71461049b575b600080fd5b6102e66102e1366004615151565b610a56565b60405161034b919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0828101519082015260c0808301519082015260e091820151918101919091526101000190565b60405180910390f35b61035d60d75481565b60405190815260200161034b565b6103a0610379366004615151565b606a6020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b6103d36103ce366004615180565b610ad8565b005b6103d36103e33660046151b8565b610c56565b600254600160c01b900463ffffffff165b60405163ffffffff909116815260200161034b565b6103d361041c366004615216565b610c6f565b6103d361042f366004615278565b610e9a565b61035d60005481565b61035d61044b3660046152b1565b60a26020526000908152604090205481565b61047061046b366004615151565b610eb0565b604051901515815260200161034b565b6103d3610ed1565b6103d36104963660046152b1565b610f15565b6104a3610f1f565b60405161034b9291906152ca565b6104c46104bf366004615151565b610f32565b60405161034b93929190615331565b61052e6104e1366004615151565b609d60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b03909616969495939492939192909188565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e08201526101000161034b565b610604610581366004615151565b6001600160a01b039081166000908152609d60209081526040918290208251610100810184528154909416808552600182015492850183905260028201549385018490526003820154606086015260048201546080860152600582015460a0860152600682015460c0860181905260079092015460e09095018590529491939091565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a00161034b565b610470611065565b61035d61064c366004615151565b609f6020526000908152604090205481565b61047061066c366004615151565b61107a565b6106c861067f366004615151565b604080518082018252600080825260209182018190526001600160a01b039384168152609e82528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b03168152602092830151928101929092520161034b565b6103d36110f6565b6106fc611108565b60405161034b929190615366565b610733610718366004615151565b60a1602052600090815260409020546001600160a01b031681565b60405161034b9190615380565b61035d60015481565b6103d3610757366004615151565b611113565b6103d361076a3660046152b1565b61111d565b6103d361077d366004615394565b61112e565b6103d36107903660046152b1565b611146565b6103d36107a3366004615216565b6111ba565b6107b0611345565b6040805192835260208301919091520161034b565b6103d36107d3366004615394565b611355565b6103d36107e63660046152b1565b6114bb565b6103d36114cf565b6107fb611511565b60405161034b97969594939291906153c4565b61035d60a05481565b6002546103f990600160801b900463ffffffff1681565b600254610841906001600160401b031681565b6040516001600160401b03909116815260200161034b565b6107336115ba565b6002546103f990600160a01b900463ffffffff1681565b610470610886366004615151565b60676020526000908152604090205460ff1681565b6108ce6108a9366004615151565b609e60205260009081526040902080546001909101546001600160a01b039091169082565b60405161034b92919061545c565b60025461084190600160401b90046001600160401b031681565b6103d3610904366004615151565b6115d5565b61091c610917366004615475565b611682565b60405161034b91906154ea565b61035d61093736600461554f565b611769565b61047061094a366004615151565b6119f7565b6002546103f990600160c01b900463ffffffff1681565b6103d3610974366004615216565b611a15565b61035d610987366004615151565b60686020526000908152604090205481565b6103d36109a7366004615216565b611b54565b61035d6109ba3660046155b7565b611c83565b61035d60d65481565b6103d36109d6366004615216565b611c96565b61035d6109e93660046152b1565b600090815260a2602052604090205490565b6103d3610a093660046152b1565b611e24565b6103a0610a1c3660046152b1565b60696020526000908152604090208054600182015460028301546003909301549192909184565b6103d3610a51366004615151565b611e35565b610a5e6150eb565b506001600160a01b039081166000908152609d6020908152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015290565b6000610ae2611e70565b805490915060ff600160401b82041615906001600160401b0316600081158015610b095750825b90506000826001600160401b03166001148015610b255750303b155b905081158015610b33575080155b15610b515760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7b57845460ff60401b1916600160401b1785555b610b8433611e94565b610b8c611ea5565b610b94611ead565b610b9c611ec5565b610be86040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250611ed5565b610bf488600019611ef1565b610bfd87611f67565b610c0686611fbb565b8315610c4c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610c5e612011565b610c6781611f67565b50565b905090565b82610c78612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610ca7939291906155e5565b602060405180830381865afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190615608565b81339091610d145760405163cc5d3c8b60e01b8152600401610d0b929190615625565b60405180910390fd5b5050836000610d2282612067565b9050610d2d81612162565b610d38816000612194565b610d40612274565b60008080610d5087890189615756565b9250925092506000835111610d7857604051630783843960e51b815260040160405180910390fd5b6000825111610d9a57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b038916600090815260d5602052604090205415610dd157604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815260d59092529290208151815591519091906001820190610e1b9082615852565b5060408201516002820190610e309082615852565b5050506001600160a01b03811615610e4c57610e4c898261229a565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610e87929190615910565b60405180910390a2505050505050505050565b610ea2612011565b610eac82826122f1565b5050565b60a054600090610ecb90610ec5609d85612358565b906123d2565b92915050565b3360008181526067602052604090205460ff16610f02576040516372e3ef9760e01b8152600401610d0b9190615380565b50610f0b61240f565b610f13612434565b565b610c673382612480565b600080610f2a61252d565b915091509091565b60d56020526000908152604090208054600182018054919291610f54906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f80906157d1565b8015610fcd5780601f10610fa257610100808354040283529160200191610fcd565b820191906000526020600020905b815481529060010190602001808311610fb057829003601f168201915b505050505090806002018054610fe2906157d1565b80601f016020809104026020016040519081016040528092919081815260200182805461100e906157d1565b801561105b5780601f106110305761010080835404028352916020019161105b565b820191906000526020600020905b81548152906001019060200180831161103e57829003601f168201915b5050505050905083565b6000806110706125a4565b5460ff1692915050565b6001600160a01b038082166000908152609d60209081526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007015460e083015290610ecb906125c8565b6110fe612011565b610f1360006125e7565b600080610f2a612643565b610c67338261229a565b611125612011565b610c67816126be565b611136612011565b6111418383836126f3565b505050565b61114e612011565b61115b81620f4240101590565b819061117d57604051631c9c717b60e01b8152600401610d0b91815260200190565b5060d78190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b826111c3612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016111f2939291906155e5565b602060405180830381865afa15801561120f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112339190615608565b813390916112565760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d56020526040902054849081906112935760405163ee27189960e01b8152600401610d0b9190615380565b5061129c612274565b60006112aa84860186615151565b90506001600160a01b0386166112c1609d83612358565b51879183916001600160a01b0316146112ef5760405163c0bbff1360e01b8152600401610d0b929190615625565b50506112fa81612746565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051611335929190615910565b60405180910390a2505050505050565b600080610f2a6000546001549091565b8261135e612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b815260040161138d939291906155e5565b602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190615608565b813390916113f15760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50508360006113ff82612067565b905061140a81612162565b611415816000612194565b6001600160a01b038616600090815260d56020526040902054869081906114505760405163ee27189960e01b8152600401610d0b9190615380565b50611459612274565b6001600160a01b03871661146e609d88612358565b51889188916001600160a01b03161461149c5760405163c0bbff1360e01b8152600401610d0b929190615625565b5050610c4c8686600260189054906101000a900463ffffffff1661289c565b6114c3612011565b610c6781600019611ef1565b3360008181526067602052604090205460ff16611500576040516372e3ef9760e01b8152600401610d0b9190615380565b50611509612274565b610f13612c28565b6000606080600080600060606000611527612c6f565b805490915015801561153b57506001810154155b61157f5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610d0b565b611587612c93565b61158f612d34565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806115c5612d51565b546001600160a01b031692915050565b60006115e2609d83612358565b905060006115fb60a054836123d290919063ffffffff16565b825160025491925060009161161d9190600160c01b900463ffffffff16612d75565b905081806116285750805b849061164757604051623477b560e51b8152600401610d0b9190615380565b5061165183612d94565b158490611672576040516317c7b35d60e31b8152600401610d0b9190615380565b5061167c84612746565b50505050565b604080516000815260208101909152606090826001600160401b038111156116ac576116ac61563f565b6040519080825280602002602001820160405280156116df57816020015b60608152602001906001900390816116ca5790505b50915060005b838110156117615761173c3086868481811061170357611703615968565b9050602002810190611715919061597e565b85604051602001611728939291906159c4565b604051602081830303815290604052612db3565b83828151811061174e5761174e615968565b60209081029190910101526001016116e5565b505092915050565b600084611774612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117a3939291906155e5565b602060405180830381865afa1580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e49190615608565b813390916118075760405163cc5d3c8b60e01b8152600401610d0b929190615625565b505085600061181582612067565b905061182081612162565b61182b816000612194565b6001600160a01b038816600090815260d56020526040902054889081906118665760405163ee27189960e01b8152600401610d0b9190615380565b5061186f612274565b600080896002811115611884576118846159eb565b036118e2576000611897888a018a615a16565b8051602001519091508b6001600160a01b03828116908216146118cf57604051631a071d0760e01b8152600401610d0b929190615625565b50506118da81612e29565b915050611995565b60028960028111156118f6576118f66159eb565b0361197a5760008061190a898b018b615b3b565b90925090506001600160a01b038c16611924609d84612358565b518d9184916001600160a01b0316146119525760405163c0bbff1360e01b8152600401610d0b929190615625565b50506119718282600260189054906101000a900463ffffffff1661332e565b92505050611995565b8860405163047031cf60e41b8152600401610d0b9190615b89565b8860028111156119a7576119a76159eb565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff5836040516119e291815260200190565b60405180910390a39998505050505050505050565b6000610ecb82600260189054906101000a900463ffffffff16612d75565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381168214611a625760405163cdc0567f60e01b8152600401610d0b929190615625565b506000905080611a7483850185615b97565b91509150611a80612043565b6001600160a01b031663e76fede6868484611a996138ce565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c5883604051611b4591815260200190565b60405180910390a25050505050565b82611b5d612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611b8c939291906155e5565b602060405180830381865afa158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190615608565b81339091611bf05760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d5602052604090205484908190611c2d5760405163ee27189960e01b8152600401610d0b9190615380565b50611c36612274565b611c3f856138f2565b611c4885613908565b6040516001600160a01b038616907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a25050505050565b6000611c8f838361397b565b9392505050565b82611c9f612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611cce939291906155e5565b602060405180830381865afa158015611ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0f9190615608565b81339091611d325760405163cc5d3c8b60e01b8152600401610d0b929190615625565b5050836000611d4082612067565b9050611d4b81612162565b611d56816000612194565b6001600160a01b038616600090815260d5602052604090205486908190611d915760405163ee27189960e01b8152600401610d0b9190615380565b50611d9a612274565b6000808080611dab898b018b615bb9565b9350935093509350611dd38b83868685600260189054906101000a900463ffffffff166139ea565b508a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b604051611e0f929190615910565b60405180910390a25050505050505050505050565b611e2c612011565b610c6781611fbb565b611e3d612011565b6001600160a01b038116611e67576000604051631e4fbdf760e01b8152600401610d0b9190615380565b610c67816125e7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611e9c613b73565b610c6781613b98565b610f13613b73565b611eb5613b73565b611ebd613ba0565b610f13611ea5565b611ecd613b73565b611ebd613bd5565b611edd613b73565b611ee78282613bf2565b610eac8282613c04565b818180821115611f1d5760405163ccccdafb60e01b815260048101929092526024820152604401610d0b565b50506000829055600181905560408051838152602081018390527f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f56884991015b60405180910390a15050565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f906020016111af565b80600003611fdc5760405163bc71a04360e01b815260040160405180910390fd5b60d68190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23906020016111af565b3361201a6115ba565b6001600160a01b031614610f13573360405163118cdaa760e01b8152600401610d0b9190615380565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052906120b8612043565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b81526004016120e5929190615625565b61012060405180830381865afa158015612103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121279190615c36565b90508060a001516001600160401b031660001415839061215b57604051637b3c09bf60e01b8152600401610d0b9190615380565b5092915050565b610c67816000015160005460015460405180604001604052806006815260200165746f6b656e7360d01b815250613c0c565b60008061219f612643565b915091506000836121b45784608001516121ba565b8460e001515b9050612208816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b815250613c0c565b60008061221361252d565b9150915060008661222857876060015161222e565b8760c001515b9050610c4c8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b815250613c0c565b61227c611065565b15610f135760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b03828116600081815260a1602052604080822080546001600160a01b0319169486169485179055517f3349d2e561f8c23a3ff42257745c8fb53e4bf3cbd4046672a3c4a0c7ee8a7b319190a35050565b6122f9612274565b6001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b6123606150eb565b61236a8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e08201529392505050565b6000806123e784606001518560a00151613ce8565b6123f19042615955565b90506123fc846125c8565b801561240757508281115b949350505050565b612417611065565b610f1357604051638dfc202b60e01b815260040160405180910390fd5b61243c61240f565b60006124466125a4565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516111af9190615380565b6001600160a01b0382166000818152606a602090815260408083208151928301849052828201949094528051808303820181526060909201905281906124d4908490613cfe90613d6990613e629089613e87565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb83838060200190518101906125189190615cd8565b60408051928352602083019190915201611b45565b6000806125386138ce565b6001600160a01b031663846337136040518163ffffffff1660e01b8152600401602060405180830381865afa158015612575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125999190615cf1565b92620f424092509050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006125d78260600151151590565b8015610ecb575050608001511590565b60006125f1612d51565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60008061264e6138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561268b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126af9190615d0e565b926001600160401b0392509050565b60a08190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba906020016111af565b612700609e848484613f41565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6000612753609d83612358565b90506127de82612761613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161279291815260200190565b6020604051808303816000875af11580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d59190615cd8565b609d9190614008565b6127e9609d836140b0565b805160408201516127fc91609f9161415b565b806040015160a2600083602001518152602001908152602001600020546128239190615955565b60a2600083602001518152602001908152602001600020819055508060200151826001600160a01b031682600001516001600160a01b03167f663a6f978de61dc3e2441026c082be709377b083ab642a8ce71386f8b91c710b846040015160405161289091815260200190565b60405180910390a45050565b6128a46150eb565b60006128b1609d86612358565b90506128bc816125c8565b85906128dc57604051631eb5ff9560e01b8152600401610d0b9190615380565b508060400151841415858590916129085760405163f32518cd60e01b8152600401610d0b92919061545c565b505060408101518085111561293e57612939612922612043565b835161292e8489615955565b609f929190886141e0565b612957565b81516129579061294e8784615955565b609f919061415b565b6000612961613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161299291815260200190565b6020604051808303816000875af11580156129b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d59190615cd8565b905060006129e284612d94565b156129ee5760006129fd565b60c08401516129fd9083615955565b6001600160a01b0389166000908152609d60205260409020600281018990556006018390559050612a2c613fe4565b604051636452fc0f60e11b815260048101859052602481018390526001600160a01b03919091169063c8a5f81e90604401602060405180830381865afa158015612a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9e9190615cd8565b6001600160a01b0389166000908152609d602052604081206007018054909190612ac9908490615d2b565b909155505082871115612b1157612ae08388615955565b60a26000866020015181526020019081526020016000206000828254612b069190615d2b565b90915550612b479050565b612b1b8784615955565b60a26000866020015181526020019081526020016000206000828254612b419190615955565b90915550505b8360200151886001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f8a87604051612b9e929190918252602082015260400190565b60405180910390a4505050506001600160a01b039384166000908152609d6020908152604091829020825161010081018452815490971687526001810154918701919091526002810154918601919091526003810154606086015260048101546080860152600581015460a0860152600681015460c08601526007015460e0850152509192915050565b612c30612274565b6000612c3a6125a4565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124733390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b60606000612c9f612c6f565b9050806002018054612cb0906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054612cdc906157d1565b8015612d295780601f10612cfe57610100808354040283529160200191612d29565b820191906000526020600020905b815481529060010190602001808311612d0c57829003601f168201915b505050505091505090565b60606000612d40612c6f565b9050806003018054612cb0906157d1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000612d8c612d82612043565b609f9085856142e5565b159392505050565b6000612da38260600151151590565b8015610ecb575050604001511590565b6060600080846001600160a01b031684604051612dd09190615d3e565b600060405180830381855af49150503d8060008114612e0b576040519150601f19603f3d011682016040523d82523d6000602084013e612e10565b606091505b5091509150612e2085838361437f565b95945050505050565b80516020808201516080909201518051600093928492612e4e92810182019101615d5a565b90506000612e5d609d83612358565b805190915083906001600160a01b0381811690831614612e9257604051634508fbf760e11b8152600401610d0b929190615625565b50506020810151612ea4846000612480565b6000612eae6143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612ed99190615380565b602060405180830381865afa158015612ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1a9190615cd8565b90506000612f266143f6565b6001600160a01b0316634c4ea0ed846040518263ffffffff1660e01b8152600401612f5391815260200190565b602060405180830381865afa158015612f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f949190615608565b612f9f576000612fa3565b60d7545b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637f07d28360008b85604051602001612feb929190615d77565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401613017929190615e16565b6020604051808303816000875af1158015613036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305a9190615cd8565b90506000613068828461441a565b905060006130746143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161309f9190615380565b602060405180830381865afa1580156130bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e09190615cd8565b9050806130ed8387615d2b565b1485828490919261312257604051631b0d791f60e11b8152600481019390935260248301919091526044820152606401610d0b565b5050831590506132db57600060d6548461313c9190615e36565b905060006131486138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a99190615d0e565b6131bc906001600160401b031642615d2b565b90506131c98b8383614481565b83156132d8576131d7613fe4565b6001600160a01b0316631d1c2fec896040518263ffffffff1660e01b815260040161320491815260200190565b6020604051808303816000875af1158015613223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132479190615cd8565b5061326c6132536143f6565b8561325c6143d2565b6001600160a01b031691906145f3565b6132746143f6565b60405163102ae65160e31b8152600481018a9052602481018690526001600160a01b039190911690638157328890604401600060405180830381600087803b1580156132bf57600080fd5b505af11580156132d3573d6000803e3d6000fd5b505050505b50505b60408051848152602081018490526001600160a01b038b16917f60a56d4d503735b4848feb6f491f14d7415262346b820d3b5a3d2733201bda36910160405180910390a250909998505050505050505050565b60008061333c609d86612358565b9050613347816125c8565b859061336757604051631eb5ff9560e01b8152600401610d0b9190615380565b50600061337f60a054836123d290919063ffffffff16565b158015613392575061339082612d94565b155b801561339d57508415155b6133a857600061341e565b6133b0613fe4565b6001600160a01b031663db750926876040518263ffffffff1660e01b81526004016133db9190615380565b6020604051808303816000875af11580156133fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341e9190615cd8565b905061345d8661342c613fe4565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b815260040161279291815260200190565b613468609d876146a2565b613473609d8761474d565b60008082156137c2576000613486612043565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f916134b9913090600290600401615e4d565b602060405180830381865afa1580156134d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134fa9190615cd8565b90506000613506612043565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613536913090600401615625565b60a060405180830381865afa158015613553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135779190615e72565b9050600081602001511161358c576000613596565b613596858361441a565b9250821561368b576135a66143d2565b6001600160a01b031663095ea7b36135bc612043565b856040518363ffffffff1660e01b81526004016135da92919061545c565b6020604051808303816000875af11580156135f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361d9190615608565b50613626612043565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e9916136589130908890600401615ec7565b600060405180830381600087803b15801561367257600080fd5b505af1158015613686573d6000803e3d6000fd5b505050505b6136958386615955565b935083156137bf5785516001600160a01b03908116600090815260a1602052604090205416806137b0576136c76143d2565b6001600160a01b031663095ea7b36136dd612043565b876040518363ffffffff1660e01b81526004016136fb92919061545c565b6020604051808303816000875af115801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190615608565b50613747612043565b8751604051633a30904960e11b81526001600160a01b0392909216916374612092916137799130908a90600401615ec7565b600060405180830381600087803b15801561379357600080fd5b505af11580156137a7573d6000803e3d6000fd5b505050506137bd565b6137bd818661325c6143d2565b505b50505b602084015184516001600160a01b038a811691167f7df4dbb3b3c999ca3e143d3fe67abfa22078fd572d49d411278648c773912e318686868d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387d9190615cd8565b604080519586526020860194909452928401919091526060830152608082015260a00160405180910390a483516138b49087612d75565b156138c2576138c288612746565b50909695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006138fd82612067565b9050610eac81612162565b6139138160016147f9565b61391b612043565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016139469190615380565b600060405180830381600087803b15801561396057600080fd5b505af1158015613974573d6000803e3d6000fd5b5050505050565b6000611c8f7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016139cf939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614810565b6139f26150eb565b6001600160a01b038616613a1957604051634ffdf5ef60e11b815260040160405180910390fd5b613a2487878561483d565b613a2f609e8761488c565b6000613abc88888888613a40613fe4565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b8152600401613a6d91815260200190565b6020604051808303816000875af1158015613a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ab09190615cd8565b609d94939291906148e1565b9050613ad4613ac9612043565b609f908a88876141e0565b806040015160a260008360200151815260200190815260200160002054613afb9190615d2b565b60a26000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167f3bd4419f8defec88dd042e31b8e8743f00803aed288fe7c31c9cf0689d295cf28460400151604051613b6091815260200190565b60405180910390a4979650505050505050565b613b7b614a2e565b610f1357604051631afcd79f60e31b815260040160405180910390fd5b611e3d613b73565b613ba8613b73565b613bb56000600019611ef1565b613bc36000620f4240614a48565b610f1360006001600160401b03614b1a565b613bdd613b73565b6000613be76125a4565b805460ff1916905550565b613bfa613b73565b610eac8282614ba7565b610eac613b73565b613c17848484614be8565b8185858590919293610c4c57604051630871e13d60e01b8152600401610d0b9493929190615eeb565b6001600160a01b03808216600090815260208481526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401529091613cc09060600151151590565b8390613ce0576040516342daadaf60e01b8152600401610d0b9190615380565b509392505050565b6000818311613cf75781611c8f565b5090919050565b60008181526069602090815260408083208151608081018352815481526001820154938101849052600282015492810192909252600301546060820152908390613d5e5760405163107349a960e21b8152600401610d0b91815260200190565b506060015192915050565b600060606000613d7885614bff565b90504281604001511115613da057505060408051602081019091526000815260019150613e5b565b60008085806020019051810190613db79190615f1a565b84519193509150613dcc90606890839061415b565b82516040808501518151928352602083015288916001600160a01b038416917f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f44910160405180910390a38251613e229083615d2b565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152606960205260408120818155600181018290556002810182905560030155565b600060608760030154831115613eb057604051634a411b9d60e11b815260040160405180910390fd5b60008315613ebe5783613ec4565b88600301545b89549094505b8015801590613ed95750600085115b15613f3257600080613eef83898c63ffffffff16565b915091508115613f00575050613f32565b965086613f0e8c8c8b614c8d565b925086613f1a81615f40565b9750508380613f2890615f57565b9450505050613eca565b50989397509295505050505050565b6001600160a01b038281166000908152602086815260409182902082518084019093528054909316808352600190930154910152829015613f9657604051632d3e5fb960e01b8152600401610d0b9190615380565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006140148484613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614080906125c8565b600482015484916140a6576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050600601555050565b60006140bc8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614128906125c8565b6004820154839161414e576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426004909101555050565b8060000361416857505050565b6001600160a01b03821660009081526020849052604090205481808210156141ac57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038216600090815260208490526040812080548392906141d6908490615955565b9091555050505050565b8115613974576001600160a01b03831660009081526020869052604081205461420a908490615d2b565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161423e93929190615f70565b602060405180830381865afa15801561425b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061427f9190615cd8565b90508082818111156142ad57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038516600090815260208890526040812080548692906142d7908490615d2b565b909155505050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161431893929190615f70565b602060405180830381865afa158015614335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143599190615cd8565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b6060826143945761438f82614d14565b611c8f565b81511580156143ab57506001600160a01b0384163b155b156143cb5783604051639996b31560e01b8152600401610d0b9190615380565b5080611c8f565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b600061442983620f4240101590565b8061443c575061443c82620f4240101590565b838390916144665760405163768bf0eb60e11b815260048101929092526024820152604401610d0b565b50620f424090506144778385615e36565b611c8f9190615f99565b816000036144a257604051638f4c63d960e01b815260040160405180910390fd5b6144ce6144ad612043565b600254606891908690869063ffffffff600160c01b9091048116906141e016565b6001600160a01b0383166000908152606a6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52606990985295909720915182559351600182015592519083015591516003918201558101549091901561459c57600182015460009081526069602052604090206003018190555b6145a68282614d3d565b604080518581526020810185905282916001600160a01b038816917f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f910160405180910390a35050505050565b80156111415760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90614627908590859060040161545c565b6020604051808303816000875af1158015614646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061466a9190615608565b6111415760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610d0b565b60006146ae8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015290915061471a906125c8565b60048201548391614740576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426005909101555050565b60006147598383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201529091506147c5906125c8565b600482015483916147eb576040516361b66e0d60e01b8152600401610d0b92919061545c565b505060006007909101555050565b600061480483612067565b90506111418183612194565b6000610ecb61481d614dd0565b8360405161190160f01b8152600281019290925260228201526042902090565b600061485261484c858561397b565b83614dda565b905080836001600160a01b038083169082161461488457604051638c5b935d60e01b8152600401610d0b929190615625565b505050505050565b6001600160a01b03818116600090815260208481526040918290208251808401909352805490931680835260019093015491015281901561114157604051638173627160e01b8152600401610d0b9190615380565b6148e96150eb565b6001600160a01b0380861660009081526020898152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015261496a9060600151151590565b15859061498b57604051630bc4def560e01b8152600401610d0b9190615380565b505060408051610100810182526001600160a01b0396871681526020808201958652818301948552426060830190815260006080840181815260a0850182815260c0860197885260e086018381529a8c1683529b90935293909320825181546001600160a01b0319169916989098178855945160018801559251600287015551600386015591516004850155935160058401555160068301555160079091015590565b6000614a38611e70565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614a765760405163ccccdafb60e01b8152600401610d0b9291906152ca565b508290508163ffffffff8116620f42401015614aa75760405163ccccdafb60e01b8152600401610d0b9291906152ca565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b029190911667ffffffffffffffff60801b19909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a3690611f5b90849084906152ca565b81816001600160401b038082169083161115614b4b5760405163ccccdafb60e01b8152600401610d0b929190615366565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d190611f5b9084908490615366565b614baf613b73565b6000614bb9612c6f565b905060028101614bc98482615852565b5060038101614bd88382615852565b5060008082556001909101555050565b600082841015801561240757505090911115919050565b614c2d6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152606960209081526040918290208251608081018452815481526001820154928101839052600282015493810193909352600301546060830152839061215b5760405163107349a960e21b8152600401610d0b91815260200190565b600080846003015411614cb35760405163ddaf8f2160e01b815260040160405180910390fd5b6000614cc685600001548563ffffffff16565b9050614cd985600001548463ffffffff16565b6001856003016000828254614cee9190615955565b90915550508085556003850154600003614d0a57600060018601555b5050915492915050565b805115614d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b612710826003015410614d63576040516303a8c56b60e61b815260040160405180910390fd5b80614d8157604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d9d908490615d2b565b90915550506003820154600003614db2578082555b6001826003016000828254614dc79190615d2b565b90915550505050565b6000610c6a614e04565b600080600080614dea8686614e78565b925092509250614dfa8282614ec5565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614e2f614f7e565b614e37614fe5565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614eb25760208401516040850151606086015160001a614ea488828585615026565b955095509550505050614ebe565b50508151600091506002905b9250925092565b6000826003811115614ed957614ed96159eb565b03614ee2575050565b6001826003811115614ef657614ef66159eb565b03614f145760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614f2857614f286159eb565b03614f495760405163fce698f760e01b815260048101829052602401610d0b565b6003826003811115614f5d57614f5d6159eb565b03610eac576040516335e2f38360e21b815260048101829052602401610d0b565b600080614f89612c6f565b90506000614f95612c93565b805190915015614fad57805160209091012092915050565b81548015614fbc579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614ff0612c6f565b90506000614ffc612d34565b80519091501561501457805160209091012092915050565b60018201548015614fbc579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0384111561505757506000915060039050826150e1565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156150ab573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166150d7575060009250600191508290506150e1565b9250600091508190505b9450945094915050565b60405180610100016040528060006001600160a01b03168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0381168114610c6757600080fd5b60006020828403121561516357600080fd5b8135611c8f8161513c565b63ffffffff81168114610c6757600080fd5b60008060006060848603121561519557600080fd5b8335925060208401356151a78161516e565b929592945050506040919091013590565b6000602082840312156151ca57600080fd5b8135611c8f8161516e565b60008083601f8401126151e757600080fd5b5081356001600160401b038111156151fe57600080fd5b602083019150836020828501011115613e5b57600080fd5b60008060006040848603121561522b57600080fd5b83356152368161513c565b925060208401356001600160401b0381111561525157600080fd5b61525d868287016151d5565b9497909650939450505050565b8015158114610c6757600080fd5b6000806040838503121561528b57600080fd5b82356152968161513c565b915060208301356152a68161526a565b809150509250929050565b6000602082840312156152c357600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156152fc5781810151838201526020016152e4565b50506000910152565b6000815180845261531d8160208601602086016152e1565b601f01601f19169290920160200192915050565b83815260606020820152600061534a6060830185615305565b828103604084015261535c8185615305565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b6001600160a01b0391909116815260200190565b6000806000606084860312156153a957600080fd5b83356153b48161513c565b925060208401356151a78161513c565b60ff60f81b8816815260e0602082015260006153e360e0830189615305565b82810360408401526153f58189615305565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561544b57835183526020938401939092019160010161542d565b50909b9a5050505050505050505050565b6001600160a01b03929092168252602082015260400190565b6000806020838503121561548857600080fd5b82356001600160401b0381111561549e57600080fd5b8301601f810185136154af57600080fd5b80356001600160401b038111156154c557600080fd5b8560208260051b84010111156154da57600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561554357603f1987860301845261552e858351615305565b94506020938401939190910190600101615512565b50929695505050505050565b6000806000806060858703121561556557600080fd5b84356155708161513c565b935060208501356003811061558457600080fd5b925060408501356001600160401b0381111561559f57600080fd5b6155ab878288016151d5565b95989497509550505050565b600080604083850312156155ca57600080fd5b82356155d58161513c565b915060208301356152a68161513c565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561561a57600080fd5b8151611c8f8161526a565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156156775761567761563f565b60405290565b60405160a081016001600160401b03811182821017156156775761567761563f565b60405161012081016001600160401b03811182821017156156775761567761563f565b600082601f8301126156d357600080fd5b8135602083016000806001600160401b038411156156f3576156f361563f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156157215761572161563f565b60405283815290508082840187101561573957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561576b57600080fd5b83356001600160401b0381111561578157600080fd5b61578d868287016156c2565b93505060208401356001600160401b038111156157a957600080fd5b6157b5868287016156c2565b92505060408401356157c68161513c565b809150509250925092565b600181811c908216806157e557607f821691505b60208210810361580557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561114157806000526020600020601f840160051c810160208510156158325750805b601f840160051c820191505b81811015613974576000815560010161583e565b81516001600160401b0381111561586b5761586b61563f565b61587f8161587984546157d1565b8461580b565b6020601f8211600181146158b3576000831561589b5750848201515b600019600385901b1c1916600184901b178455613974565b600084815260208120601f198516915b828110156158e357878501518255602094850194600190920191016158c3565b50848210156159015786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ecb57610ecb61593f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261599557600080fd5b8301803591506001600160401b038211156159af57600080fd5b602001915036819003821315613e5b57600080fd5b8284823760008382016000815283516159e18183602088016152e1565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6001600160401b0381168114610c6757600080fd5b600060208284031215615a2857600080fd5b81356001600160401b03811115615a3e57600080fd5b820160408185031215615a5057600080fd5b615a58615655565b81356001600160401b03811115615a6e57600080fd5b820160a08187031215615a8057600080fd5b615a8861567d565b8135615a938161513c565b81526020820135615aa38161513c565b60208201526040820135615ab681615a01565b604082015260608201356001600160801b0381168114615ad557600080fd5b606082015260808201356001600160401b03811115615af357600080fd5b615aff888285016156c2565b60808301525082525060208201356001600160401b03811115615b2157600080fd5b615b2d868285016156c2565b602083015250949350505050565b60008060408385031215615b4e57600080fd5b8235615b598161513c565b946020939093013593505050565b60038110615b8557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610ecb8284615b67565b60008060408385031215615baa57600080fd5b50508035926020909101359150565b60008060008060808587031215615bcf57600080fd5b84359350602085013592506040850135615be88161513c565b915060608501356001600160401b03811115615c0357600080fd5b615c0f878288016156c2565b91505092959194509250565b8051615c268161516e565b919050565b8051615c2681615a01565b6000610120828403128015615c4a57600080fd5b506000615c5561569f565b835181526020808501519082015260408085015190820152615c7960608501615c1b565b6060820152615c8a60808501615c2b565b6080820152615c9b60a08501615c2b565b60a0820152615cac60c08501615c1b565b60c0820152615cbd60e08501615c2b565b60e08201526101009384015193810193909352509092915050565b600060208284031215615cea57600080fd5b5051919050565b600060208284031215615d0357600080fd5b8151611c8f8161516e565b600060208284031215615d2057600080fd5b8151611c8f81615a01565b80820180821115610ecb57610ecb61593f565b60008251615d508184602087016152e1565b9190910192915050565b600060208284031215615d6c57600080fd5b8151611c8f8161513c565b604081526000835160408084015260018060a01b03815116608084015260018060a01b0360208201511660a08401526001600160401b0360408201511660c084015260018060801b0360608201511660e08401526080810151905060a0610100840152615de8610120840182615305565b90506020850151603f19848303016060850152615e058282615305565b925050508260208301529392505050565b615e208184615b67565b6040602082015260006124076040830184615305565b8082028115828204841417610ecb57610ecb61593f565b6001600160a01b03848116825283166020820152606081016124076040830184615b67565b600060a0828403128015615e8557600080fd5b506000615e9061567d565b8351815260208085015190820152604080850151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b608081526000615efe6080830187615305565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615f2d57600080fd5b825160208401519092506152a68161513c565b600081615f4f57615f4f61593f565b506000190190565b600060018201615f6957615f6961593f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b600082615fb657634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209c05e49a7d3d7f3015873a2c41e2f68419180f16cef8fd91645f14bc8e8b733264736f6c634300081b0033", - "opcodes": "PUSH2 0x240 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x668F CODESIZE SUB DUP1 PUSH2 0x668F DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x30 SWAP2 PUSH2 0x541 JUMP JUMPDEST ADDRESS DUP4 DUP4 DUP4 DUP8 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x7F JUMPI PUSH1 0x40 MLOAD PUSH4 0x218F5ADD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xA PUSH1 0x24 DUP3 ADD MSTORE PUSH10 0x21B7B73A3937B63632B9 PUSH1 0xB1 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x100 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x23B930B8342A37B5B2B7 PUSH1 0xB1 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xB7 SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x80 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x7 DUP2 MSTORE PUSH7 0x5374616B696E67 PUSH1 0xC8 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xEA SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xA0 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xD DUP2 MSTORE PUSH13 0x47726170685061796D656E7473 PUSH1 0x98 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x123 SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xC0 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xE DUP2 MSTORE PUSH14 0x5061796D656E7473457363726F77 PUSH1 0x90 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x15D SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0xE0 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xC DUP2 MSTORE PUSH12 0x22B837B1B426B0B730B3B2B9 PUSH1 0xA1 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x195 SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x120 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xE DUP2 MSTORE PUSH14 0x2932BBB0B93239A6B0B730B3B2B9 PUSH1 0x91 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x1D0 SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x140 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x11 DUP2 MSTORE PUSH17 0x4772617068546F6B656E47617465776179 PUSH1 0x78 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x20E SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x160 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xF DUP2 MSTORE PUSH15 0x23B930B834283937BC3CA0B236B4B7 PUSH1 0x89 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x24A SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x180 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x8 DUP2 MSTORE PUSH8 0x21BAB930BA34B7B7 PUSH1 0xC1 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x27F SWAP1 PUSH2 0x3C5 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH2 0x1A0 DUP2 SWAP1 MSTORE PUSH2 0x100 MLOAD PUSH1 0xA0 MLOAD PUSH1 0x80 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH2 0x160 MLOAD PUSH2 0x180 MLOAD PUSH1 0x40 MLOAD SWAP9 DUP12 AND SWAP11 SWAP8 DUP9 AND SWAP10 SWAP7 SWAP1 SWAP8 AND SWAP8 PUSH32 0xEF5021414834D86E36470F5C1CECF6544FB2BB723F2CA51A4C86FCD8C5919A43 SWAP8 PUSH2 0x329 SWAP8 SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 DUP9 AND DUP2 MSTORE SWAP6 DUP8 AND PUSH1 0x20 DUP8 ADD MSTORE SWAP4 DUP7 AND PUSH1 0x40 DUP7 ADD MSTORE SWAP2 DUP6 AND PUSH1 0x60 DUP6 ADD MSTORE DUP5 AND PUSH1 0x80 DUP5 ADD MSTORE DUP4 AND PUSH1 0xA0 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH2 0x1C0 DUP2 SWAP1 MSTORE DUP5 DUP3 AND PUSH2 0x1E0 DUP2 SWAP1 MSTORE DUP5 DUP4 AND PUSH2 0x200 DUP2 SWAP1 MSTORE SWAP3 DUP5 AND PUSH2 0x220 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x4175B2C37456DBAC494E08DE8666D31BB8F3F2AEE36EA5D9E06894FF3E4DDDA7 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP PUSH2 0x3BC PUSH2 0x473 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP POP PUSH2 0x605 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x100 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF7641A5E DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x400 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x41D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x441 SWAP2 SWAP1 PUSH2 0x595 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x46C JUMPI PUSH1 0x40 MLOAD PUSH4 0x218F5ADD PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x76 SWAP2 SWAP1 PUSH2 0x5B7 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4C3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH2 0x522 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x557 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x560 DUP6 PUSH2 0x525 JUMP JUMPDEST SWAP4 POP PUSH2 0x56E PUSH1 0x20 DUP7 ADD PUSH2 0x525 JUMP JUMPDEST SWAP3 POP PUSH2 0x57C PUSH1 0x40 DUP7 ADD PUSH2 0x525 JUMP JUMPDEST SWAP2 POP PUSH2 0x58A PUSH1 0x60 DUP7 ADD PUSH2 0x525 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5B0 DUP3 PUSH2 0x525 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD PUSH1 0x40 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x5C8 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP6 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0xC0 MLOAD PUSH1 0xE0 MLOAD PUSH2 0x100 MLOAD PUSH2 0x120 MLOAD PUSH2 0x140 MLOAD PUSH2 0x160 MLOAD PUSH2 0x180 MLOAD PUSH2 0x1A0 MLOAD PUSH2 0x1C0 MLOAD PUSH2 0x1E0 MLOAD PUSH2 0x200 MLOAD PUSH2 0x220 MLOAD PUSH2 0x5FF1 PUSH2 0x69E PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0x43F8 ADD MSTORE PUSH1 0x0 PUSH2 0x2FA9 ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH2 0x1A18 ADD MSTORE PUSH2 0x38D0 ADD MSTORE PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 PUSH2 0x3FE6 ADD MSTORE PUSH1 0x0 PUSH2 0x37FD ADD MSTORE PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 POP POP PUSH1 0x0 PUSH2 0x2045 ADD MSTORE PUSH1 0x0 PUSH2 0x43D4 ADD MSTORE PUSH2 0x5FF1 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2CE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8180083B GT PUSH2 0x17E JUMPI DUP1 PUSH4 0xA827A90C GT PUSH2 0xDF JUMPI DUP1 PUSH4 0xA827A90C EQ PUSH2 0x8F6 JUMPI DUP1 PUSH4 0xAC9650D8 EQ PUSH2 0x909 JUMPI DUP1 PUSH4 0xB15D2A2C EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0xBA38F67D EQ PUSH2 0x93C JUMPI DUP1 PUSH4 0xBFDFA7AF EQ PUSH2 0x94F JUMPI DUP1 PUSH4 0xCB8347FE EQ PUSH2 0x966 JUMPI DUP1 PUSH4 0xCBE5F3F2 EQ PUSH2 0x979 JUMPI DUP1 PUSH4 0xCE0FC0CC EQ PUSH2 0x999 JUMPI DUP1 PUSH4 0xCE56C98B EQ PUSH2 0x9AC JUMPI DUP1 PUSH4 0xD07A7A84 EQ PUSH2 0x9BF JUMPI DUP1 PUSH4 0xDEDF6726 EQ PUSH2 0x9C8 JUMPI DUP1 PUSH4 0xE2E1E8E9 EQ PUSH2 0x9DB JUMPI DUP1 PUSH4 0xE6F50054 EQ PUSH2 0x9FB JUMPI DUP1 PUSH4 0xEFF0F592 EQ PUSH2 0xA0E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8180083B EQ PUSH2 0x795 JUMPI DUP1 PUSH4 0x819BA366 EQ PUSH2 0x7A8 JUMPI DUP1 PUSH4 0x81E777A7 EQ PUSH2 0x7C5 JUMPI DUP1 PUSH4 0x832BC923 EQ PUSH2 0x7D8 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x7EB JUMPI DUP1 PUSH4 0x84B0196E EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0x85E82BAF EQ PUSH2 0x80E JUMPI DUP1 PUSH4 0x88812583 EQ PUSH2 0x817 JUMPI DUP1 PUSH4 0x8D2F2948 EQ PUSH2 0x82E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x859 JUMPI DUP1 PUSH4 0x9249C5C1 EQ PUSH2 0x861 JUMPI DUP1 PUSH4 0x9384E078 EQ PUSH2 0x878 JUMPI DUP1 PUSH4 0x93D4E7CB EQ PUSH2 0x89B JUMPI DUP1 PUSH4 0x9AAFA5D1 EQ PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4F793CDC GT PUSH2 0x233 JUMPI DUP1 PUSH4 0x4F793CDC EQ PUSH2 0x4B1 JUMPI DUP1 PUSH4 0x52A9039C EQ PUSH2 0x4D3 JUMPI DUP1 PUSH4 0x55C85269 EQ PUSH2 0x573 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x636 JUMPI DUP1 PUSH4 0x6234E216 EQ PUSH2 0x63E JUMPI DUP1 PUSH4 0x6A3CA383 EQ PUSH2 0x65E JUMPI DUP1 PUSH4 0x6D9A3951 EQ PUSH2 0x671 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x6EC JUMPI DUP1 PUSH4 0x71CE020A EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0x7203CA78 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0x73371823 EQ PUSH2 0x740 JUMPI DUP1 PUSH4 0x772495C3 EQ PUSH2 0x749 JUMPI DUP1 PUSH4 0x7AA31BCE EQ PUSH2 0x75C JUMPI DUP1 PUSH4 0x7DFE6D28 EQ PUSH2 0x76F JUMPI DUP1 PUSH4 0x7E89BAC3 EQ PUSH2 0x782 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE022923 EQ PUSH2 0x2D3 JUMPI DUP1 PUSH4 0x138DEA08 EQ PUSH2 0x354 JUMPI DUP1 PUSH4 0x13C474C9 EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x1CAFA218 EQ PUSH2 0x3C0 JUMPI DUP1 PUSH4 0x1DD42F60 EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x1EBB7C30 EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0x24B8FBF6 EQ PUSH2 0x40E JUMPI DUP1 PUSH4 0x35577962 EQ PUSH2 0x421 JUMPI DUP1 PUSH4 0x36FDD28A EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0x3AFD23FE EQ PUSH2 0x43D JUMPI DUP1 PUSH4 0x3F0ED79D EQ PUSH2 0x45D JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x480 JUMPI DUP1 PUSH4 0x45F54485 EQ PUSH2 0x488 JUMPI DUP1 PUSH4 0x482468B7 EQ PUSH2 0x49B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E6 PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0xA56 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP2 SWAP1 DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 SWAP2 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x100 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x35D PUSH1 0xD7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3A0 PUSH2 0x379 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x6A PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x3CE CALLDATASIZE PUSH1 0x4 PUSH2 0x5180 JUMP JUMPDEST PUSH2 0xAD8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3D3 PUSH2 0x3E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0xC56 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x41C CALLDATASIZE PUSH1 0x4 PUSH2 0x5216 JUMP JUMPDEST PUSH2 0xC6F JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x42F CALLDATASIZE PUSH1 0x4 PUSH2 0x5278 JUMP JUMPDEST PUSH2 0xE9A JUMP JUMPDEST PUSH2 0x35D PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x35D PUSH2 0x44B CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH1 0xA2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x470 PUSH2 0x46B CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0xEB0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0xED1 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x496 CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH2 0xF15 JUMP JUMPDEST PUSH2 0x4A3 PUSH2 0xF1F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP3 SWAP2 SWAP1 PUSH2 0x52CA JUMP JUMPDEST PUSH2 0x4C4 PUSH2 0x4BF CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5331 JUMP JUMPDEST PUSH2 0x52E PUSH2 0x4E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x9D PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 DUP7 ADD SLOAD PUSH1 0x6 DUP8 ADD SLOAD PUSH1 0x7 SWAP1 SWAP8 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP7 SWAP5 SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP10 AND DUP10 MSTORE PUSH1 0x20 DUP10 ADD SWAP8 SWAP1 SWAP8 MSTORE SWAP6 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x604 PUSH2 0x581 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x100 DUP2 ADD DUP5 MSTORE DUP2 SLOAD SWAP1 SWAP5 AND DUP1 DUP6 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP6 ADD DUP4 SWAP1 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP4 DUP6 ADD DUP5 SWAP1 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP7 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP7 ADD DUP2 SWAP1 MSTORE PUSH1 0x7 SWAP1 SWAP3 ADD SLOAD PUSH1 0xE0 SWAP1 SWAP6 ADD DUP6 SWAP1 MSTORE SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP3 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x470 PUSH2 0x1065 JUMP JUMPDEST PUSH2 0x35D PUSH2 0x64C CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x9F PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x470 PUSH2 0x66C CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0x107A JUMP JUMPDEST PUSH2 0x6C8 PUSH2 0x67F CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE PUSH1 0x9E DUP3 MSTORE DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x10F6 JUMP JUMPDEST PUSH2 0x6FC PUSH2 0x1108 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP3 SWAP2 SWAP1 PUSH2 0x5366 JUMP JUMPDEST PUSH2 0x733 PUSH2 0x718 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0xA1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH2 0x35D PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x757 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0x1113 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x76A CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH2 0x111D JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x77D CALLDATASIZE PUSH1 0x4 PUSH2 0x5394 JUMP JUMPDEST PUSH2 0x112E JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x790 CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH2 0x1146 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x7A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x5216 JUMP JUMPDEST PUSH2 0x11BA JUMP JUMPDEST PUSH2 0x7B0 PUSH2 0x1345 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x7D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x5394 JUMP JUMPDEST PUSH2 0x1355 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x7E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH2 0x14BB JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x14CF JUMP JUMPDEST PUSH2 0x7FB PUSH2 0x1511 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53C4 JUMP JUMPDEST PUSH2 0x35D PUSH1 0xA0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x3F9 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x841 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x733 PUSH2 0x15BA JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x3F9 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x470 PUSH2 0x886 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x8CE PUSH2 0x8A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x9E PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x841 SWAP1 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x904 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0x15D5 JUMP JUMPDEST PUSH2 0x91C PUSH2 0x917 CALLDATASIZE PUSH1 0x4 PUSH2 0x5475 JUMP JUMPDEST PUSH2 0x1682 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x54EA JUMP JUMPDEST PUSH2 0x35D PUSH2 0x937 CALLDATASIZE PUSH1 0x4 PUSH2 0x554F JUMP JUMPDEST PUSH2 0x1769 JUMP JUMPDEST PUSH2 0x470 PUSH2 0x94A CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0x19F7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x3F9 SWAP1 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x974 CALLDATASIZE PUSH1 0x4 PUSH2 0x5216 JUMP JUMPDEST PUSH2 0x1A15 JUMP JUMPDEST PUSH2 0x35D PUSH2 0x987 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x9A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x5216 JUMP JUMPDEST PUSH2 0x1B54 JUMP JUMPDEST PUSH2 0x35D PUSH2 0x9BA CALLDATASIZE PUSH1 0x4 PUSH2 0x55B7 JUMP JUMPDEST PUSH2 0x1C83 JUMP JUMPDEST PUSH2 0x35D PUSH1 0xD6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x9D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x5216 JUMP JUMPDEST PUSH2 0x1C96 JUMP JUMPDEST PUSH2 0x35D PUSH2 0x9E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0xA09 CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH2 0x1E24 JUMP JUMPDEST PUSH2 0x3A0 PUSH2 0xA1C CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0xA51 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0x1E35 JUMP JUMPDEST PUSH2 0xA5E PUSH2 0x50EB JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x100 DUP2 ADD DUP5 MSTORE DUP2 SLOAD SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x7 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE2 PUSH2 0x1E70 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0xB09 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0xB25 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0xB33 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xB51 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xB7B JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0xB84 CALLER PUSH2 0x1E94 JUMP JUMPDEST PUSH2 0xB8C PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0xB94 PUSH2 0x1EAD JUMP JUMPDEST PUSH2 0xB9C PUSH2 0x1EC5 JUMP JUMPDEST PUSH2 0xBE8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH15 0x537562677261706853657276696365 PUSH1 0x88 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x312E3 PUSH1 0xEC SHL DUP2 MSTORE POP PUSH2 0x1ED5 JUMP JUMPDEST PUSH2 0xBF4 DUP9 PUSH1 0x0 NOT PUSH2 0x1EF1 JUMP JUMPDEST PUSH2 0xBFD DUP8 PUSH2 0x1F67 JUMP JUMPDEST PUSH2 0xC06 DUP7 PUSH2 0x1FBB JUMP JUMPDEST DUP4 ISZERO PUSH2 0xC4C JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC5E PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH2 0x1F67 JUMP JUMPDEST POP JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0xC78 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCA7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0xD14 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0xD22 DUP3 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0xD2D DUP2 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0xD38 DUP2 PUSH1 0x0 PUSH2 0x2194 JUMP JUMPDEST PUSH2 0xD40 PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0xD50 DUP8 DUP10 ADD DUP10 PUSH2 0x5756 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 MLOAD GT PUSH2 0xD78 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7838439 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 MLOAD GT PUSH2 0xD9A JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E63BD95 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xDD1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD06866D PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE TIMESTAMP DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE DUP3 DUP5 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 DUP2 MLOAD DUP2 SSTORE SWAP2 MLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0xE1B SWAP1 DUP3 PUSH2 0x5852 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0xE30 SWAP1 DUP3 PUSH2 0x5852 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0xE4C JUMPI PUSH2 0xE4C DUP10 DUP3 PUSH2 0x229A JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x159567BEA25499A91F60E1FBB349FF2A1F8C1B2883198F25C1E12C99EDDB44FA DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0xE87 SWAP3 SWAP2 SWAP1 PUSH2 0x5910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xEA2 PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xEAC DUP3 DUP3 PUSH2 0x22F1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xA0 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xECB SWAP1 PUSH2 0xEC5 PUSH1 0x9D DUP6 PUSH2 0x2358 JUMP JUMPDEST SWAP1 PUSH2 0x23D2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xF02 JUMPI PUSH1 0x40 MLOAD PUSH4 0x72E3EF97 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0xF0B PUSH2 0x240F JUMP JUMPDEST PUSH2 0xF13 PUSH2 0x2434 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xC67 CALLER DUP3 PUSH2 0x2480 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF2A PUSH2 0x252D JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD SWAP2 SWAP3 SWAP2 PUSH2 0xF54 SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF80 SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xFB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0xFE2 SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x100E SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x105B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1030 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x105B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x103E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1070 PUSH2 0x25A4 JUMP JUMPDEST SLOAD PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH2 0x100 DUP2 ADD DUP4 MSTORE DUP2 SLOAD SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP1 DUP5 ADD MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x7 ADD SLOAD PUSH1 0xE0 DUP4 ADD MSTORE SWAP1 PUSH2 0xECB SWAP1 PUSH2 0x25C8 JUMP JUMPDEST PUSH2 0x10FE PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xF13 PUSH1 0x0 PUSH2 0x25E7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF2A PUSH2 0x2643 JUMP JUMPDEST PUSH2 0xC67 CALLER DUP3 PUSH2 0x229A JUMP JUMPDEST PUSH2 0x1125 PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH2 0x26BE JUMP JUMPDEST PUSH2 0x1136 PUSH2 0x2011 JUMP JUMPDEST PUSH2 0x1141 DUP4 DUP4 DUP4 PUSH2 0x26F3 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x114E PUSH2 0x2011 JUMP JUMPDEST PUSH2 0x115B DUP2 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x117D JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C9C717B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0xD7 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x6DEEF78FFE3DF79AE5CD8E40B842C36AC6077E13746B9B68A9F327537B01E4E9 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST DUP3 PUSH2 0x11C3 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11F2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x120F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1233 SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1256 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP5 SWAP1 DUP2 SWAP1 PUSH2 0x1293 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x129C PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12AA DUP5 DUP7 ADD DUP7 PUSH2 0x5151 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x12C1 PUSH1 0x9D DUP4 PUSH2 0x2358 JUMP JUMPDEST MLOAD DUP8 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x12EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH2 0x12FA DUP2 PUSH2 0x2746 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x73330C218A680717E9EEE625C262DF66EDDFDF99ECB388D25F6B32D66B9A318A DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1335 SWAP3 SWAP2 SWAP1 PUSH2 0x5910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF2A PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD SWAP1 SWAP2 JUMP JUMPDEST DUP3 PUSH2 0x135E PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x138D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13CE SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x13F1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0x13FF DUP3 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0x140A DUP2 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0x1415 DUP2 PUSH1 0x0 PUSH2 0x2194 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP7 SWAP1 DUP2 SWAP1 PUSH2 0x1450 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x1459 PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH2 0x146E PUSH1 0x9D DUP9 PUSH2 0x2358 JUMP JUMPDEST MLOAD DUP9 SWAP2 DUP9 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x149C JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH2 0xC4C DUP7 DUP7 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x289C JUMP JUMPDEST PUSH2 0x14C3 PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH1 0x0 NOT PUSH2 0x1EF1 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1500 JUMPI PUSH1 0x40 MLOAD PUSH4 0x72E3EF97 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x1509 PUSH2 0x2274 JUMP JUMPDEST PUSH2 0xF13 PUSH2 0x2C28 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x1527 PUSH2 0x2C6F JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP ISZERO DUP1 ISZERO PUSH2 0x153B JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD ISZERO JUMPDEST PUSH2 0x157F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x1152540DCC4C8E88155B9A5B9A5D1A585B1A5E9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD0B JUMP JUMPDEST PUSH2 0x1587 PUSH2 0x2C93 JUMP JUMPDEST PUSH2 0x158F PUSH2 0x2D34 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0xF PUSH1 0xF8 SHL SWAP13 SWAP4 SWAP12 POP SWAP2 SWAP10 POP CHAINID SWAP9 POP ADDRESS SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x15C5 PUSH2 0x2D51 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E2 PUSH1 0x9D DUP4 PUSH2 0x2358 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x15FB PUSH1 0xA0 SLOAD DUP4 PUSH2 0x23D2 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 MLOAD PUSH1 0x2 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH2 0x161D SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2D75 JUMP JUMPDEST SWAP1 POP DUP2 DUP1 PUSH2 0x1628 JUMPI POP DUP1 JUMPDEST DUP5 SWAP1 PUSH2 0x1647 JUMPI PUSH1 0x40 MLOAD PUSH3 0x3477B5 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x1651 DUP4 PUSH2 0x2D94 JUMP JUMPDEST ISZERO DUP5 SWAP1 PUSH2 0x1672 JUMPI PUSH1 0x40 MLOAD PUSH4 0x17C7B35D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x167C DUP5 PUSH2 0x2746 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 SWAP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x16AC JUMPI PUSH2 0x16AC PUSH2 0x563F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x16DF JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x16CA JUMPI SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1761 JUMPI PUSH2 0x173C ADDRESS DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x1703 JUMPI PUSH2 0x1703 PUSH2 0x5968 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1715 SWAP2 SWAP1 PUSH2 0x597E JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1728 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x59C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x2DB3 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x174E JUMPI PUSH2 0x174E PUSH2 0x5968 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x16E5 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x1774 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17A3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17E4 SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1807 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP DUP6 PUSH1 0x0 PUSH2 0x1815 DUP3 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0x1820 DUP2 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0x182B DUP2 PUSH1 0x0 PUSH2 0x2194 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP9 SWAP1 DUP2 SWAP1 PUSH2 0x1866 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x186F PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP10 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1884 JUMPI PUSH2 0x1884 PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0x18E2 JUMPI PUSH1 0x0 PUSH2 0x1897 DUP9 DUP11 ADD DUP11 PUSH2 0x5A16 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 ADD MLOAD SWAP1 SWAP2 POP DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ PUSH2 0x18CF JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A071D07 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH2 0x18DA DUP2 PUSH2 0x2E29 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1995 JUMP JUMPDEST PUSH1 0x2 DUP10 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x18F6 JUMPI PUSH2 0x18F6 PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0x197A JUMPI PUSH1 0x0 DUP1 PUSH2 0x190A DUP10 DUP12 ADD DUP12 PUSH2 0x5B3B JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH2 0x1924 PUSH1 0x9D DUP5 PUSH2 0x2358 JUMP JUMPDEST MLOAD DUP14 SWAP2 DUP5 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1952 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH2 0x1971 DUP3 DUP3 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x332E JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x1995 JUMP JUMPDEST DUP9 PUSH1 0x40 MLOAD PUSH4 0x47031CF PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5B89 JUMP JUMPDEST DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x19A7 JUMPI PUSH2 0x19A7 PUSH2 0x59EB JUMP JUMPDEST DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x54FE682BFB66381A9382E13E4B95A3DD4F960EAFBAE063FDEA3539D144FF3FF5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x19E2 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xECB DUP3 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2D75 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 EQ PUSH2 0x1A62 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCDC0567F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP DUP1 PUSH2 0x1A74 DUP4 DUP6 ADD DUP6 PUSH2 0x5B97 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1A80 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE76FEDE6 DUP7 DUP5 DUP5 PUSH2 0x1A99 PUSH2 0x38CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP7 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x44 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP2 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B06 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x2F2E74A11116E05B39159372CCEB6739257B08D72F7171D208FF27BB6466C58 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1B45 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x1B5D PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B8C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BA9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BCD SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1BF0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP5 SWAP1 DUP2 SWAP1 PUSH2 0x1C2D JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x1C36 PUSH2 0x2274 JUMP JUMPDEST PUSH2 0x1C3F DUP6 PUSH2 0x38F2 JUMP JUMPDEST PUSH2 0x1C48 DUP6 PUSH2 0x3908 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH32 0xF53CF6521A1B5FC0C04BFFA70374A4DC2E3474F2B2AC1643C3BCC54E2DB4A939 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C8F DUP4 DUP4 PUSH2 0x397B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x1C9F PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CCE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D0F SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1D32 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0x1D40 DUP3 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0x1D4B DUP2 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0x1D56 DUP2 PUSH1 0x0 PUSH2 0x2194 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP7 SWAP1 DUP2 SWAP1 PUSH2 0x1D91 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x1D9A PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1DAB DUP10 DUP12 ADD DUP12 PUSH2 0x5BB9 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH2 0x1DD3 DUP12 DUP4 DUP7 DUP7 DUP6 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x39EA JUMP JUMPDEST POP DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xD3803EB82EF5B4CDFF8646734EBBAF5B37441E96314B27FFD3D0940F12A038E7 DUP12 DUP12 PUSH1 0x40 MLOAD PUSH2 0x1E0F SWAP3 SWAP2 SWAP1 PUSH2 0x5910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E2C PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH2 0x1FBB JUMP JUMPDEST PUSH2 0x1E3D PUSH2 0x2011 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1E67 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH2 0x25E7 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SWAP1 JUMP JUMPDEST PUSH2 0x1E9C PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH2 0x3B98 JUMP JUMPDEST PUSH2 0xF13 PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x1EB5 PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x1EBD PUSH2 0x3BA0 JUMP JUMPDEST PUSH2 0xF13 PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0x1ECD PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x1EBD PUSH2 0x3BD5 JUMP JUMPDEST PUSH2 0x1EDD PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x1EE7 DUP3 DUP3 PUSH2 0x3BF2 JUMP JUMPDEST PUSH2 0xEAC DUP3 DUP3 PUSH2 0x3C04 JUMP JUMPDEST DUP2 DUP2 DUP1 DUP3 GT ISZERO PUSH2 0x1F1D JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0xD0B JUMP JUMPDEST POP POP PUSH1 0x0 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x90699B8B4BF48918FEA1129C85F9BC7B51285DF7ECC982910813C7805F568849 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xC0 SHL NOT AND PUSH1 0x1 PUSH1 0xC0 SHL PUSH4 0xFFFFFFFF DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x472ABA493F9FD1D136EC54986F619F3AA5CAFF964F0E731A9909FB9A1270211F SWAP1 PUSH1 0x20 ADD PUSH2 0x11AF JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x1FDC JUMPI PUSH1 0x40 MLOAD PUSH4 0xBC71A043 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xD6 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x2AAAF20B08565EEBC0C962CD7C568E54C3C0C2B85A1F942B82CD1BD730FDCD23 SWAP1 PUSH1 0x20 ADD PUSH2 0x11AF JUMP JUMPDEST CALLER PUSH2 0x201A PUSH2 0x15BA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF13 JUMPI CALLER PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xE0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x100 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 PUSH2 0x20B8 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x25D9897E DUP5 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E5 SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2103 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2127 SWAP2 SWAP1 PUSH2 0x5C36 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xA0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 EQ ISZERO DUP4 SWAP1 PUSH2 0x215B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7B3C09BF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH1 0x0 ADD MLOAD PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x746F6B656E73 PUSH1 0xD0 SHL DUP2 MSTORE POP PUSH2 0x3C0C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x219F PUSH2 0x2643 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP4 PUSH2 0x21B4 JUMPI DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x21BA JUMP JUMPDEST DUP5 PUSH1 0xE0 ADD MLOAD JUMPDEST SWAP1 POP PUSH2 0x2208 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH13 0x1D1A185DDA5B99D4195C9A5BD9 PUSH1 0x9A SHL DUP2 MSTORE POP PUSH2 0x3C0C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2213 PUSH2 0x252D JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP7 PUSH2 0x2228 JUMPI DUP8 PUSH1 0x60 ADD MLOAD PUSH2 0x222E JUMP JUMPDEST DUP8 PUSH1 0xC0 ADD MLOAD JUMPDEST SWAP1 POP PUSH2 0xC4C DUP2 PUSH4 0xFFFFFFFF AND DUP5 PUSH4 0xFFFFFFFF AND DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x1B585E15995C9A599A595C90DD5D PUSH1 0x92 SHL DUP2 MSTORE POP PUSH2 0x3C0C JUMP JUMPDEST PUSH2 0x227C PUSH2 0x1065 JUMP JUMPDEST ISZERO PUSH2 0xF13 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD93C0665 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP5 DUP7 AND SWAP5 DUP6 OR SWAP1 SSTORE MLOAD PUSH32 0x3349D2E561F8C23A3FF42257745C8FB53E4BF3CBD4046672A3C4A0C7EE8A7B31 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x22F9 PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP6 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0xA95BAC2F3DF0D40E8278281C1D39D53C60E4F2BF3550CA5665738D0916E89789 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x2360 PUSH2 0x50EB JUMP JUMPDEST PUSH2 0x236A DUP4 DUP4 PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 SWAP1 SWAP2 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x23E7 DUP5 PUSH1 0x60 ADD MLOAD DUP6 PUSH1 0xA0 ADD MLOAD PUSH2 0x3CE8 JUMP JUMPDEST PUSH2 0x23F1 SWAP1 TIMESTAMP PUSH2 0x5955 JUMP JUMPDEST SWAP1 POP PUSH2 0x23FC DUP5 PUSH2 0x25C8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2407 JUMPI POP DUP3 DUP2 GT JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x2417 PUSH2 0x1065 JUMP JUMPDEST PUSH2 0xF13 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8DFC202B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x243C PUSH2 0x240F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2446 PUSH2 0x25A4 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE SWAP1 POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11AF SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD DUP5 SWAP1 MSTORE DUP3 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP1 MLOAD DUP1 DUP4 SUB DUP3 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD SWAP1 MSTORE DUP2 SWAP1 PUSH2 0x24D4 SWAP1 DUP5 SWAP1 PUSH2 0x3CFE SWAP1 PUSH2 0x3D69 SWAP1 PUSH2 0x3E62 SWAP1 DUP10 PUSH2 0x3E87 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x13F3FA9F0E54AF1AF76D8B5D11C3973D7C2AED6312B61EFFF2F7B49D73AD67EB DUP4 DUP4 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2518 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x1B45 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2538 PUSH2 0x38CE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x84633713 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2575 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2599 SWAP2 SWAP1 PUSH2 0x5CF1 JUMP JUMPDEST SWAP3 PUSH3 0xF4240 SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH32 0xCD5ED15C6E187E77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25D7 DUP3 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xECB JUMPI POP POP PUSH1 0x80 ADD MLOAD ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25F1 PUSH2 0x2D51 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP4 SWAP5 POP SWAP2 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x264E PUSH2 0x38CE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5AEA0EC4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x268B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26AF SWAP2 SWAP1 PUSH2 0x5D0E JUMP JUMPDEST SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0xA0 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x21774046E2611DDB52C8C46E1AD97524EEB2E3FDA7DCD9428867868B4C4D06BA SWAP1 PUSH1 0x20 ADD PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x2700 PUSH1 0x9E DUP5 DUP5 DUP5 PUSH2 0x3F41 JUMP JUMPDEST DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xD54C7ABC930F6D506DA2D08AA7AEAD4F2443E1DB6D5F560384A2F652FF893E19 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2753 PUSH1 0x9D DUP4 PUSH2 0x2358 JUMP JUMPDEST SWAP1 POP PUSH2 0x27DE DUP3 PUSH2 0x2761 PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEEAC3E0E DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2792 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27D5 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x9D SWAP2 SWAP1 PUSH2 0x4008 JUMP JUMPDEST PUSH2 0x27E9 PUSH1 0x9D DUP4 PUSH2 0x40B0 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x27FC SWAP2 PUSH1 0x9F SWAP2 PUSH2 0x415B JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0xA2 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2823 SWAP2 SWAP1 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0xA2 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x663A6F978DE61DC3E2441026C082BE709377B083AB642A8CE71386F8B91C710B DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x2890 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x28A4 PUSH2 0x50EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B1 PUSH1 0x9D DUP7 PUSH2 0x2358 JUMP JUMPDEST SWAP1 POP PUSH2 0x28BC DUP2 PUSH2 0x25C8 JUMP JUMPDEST DUP6 SWAP1 PUSH2 0x28DC JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB5FF95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP DUP1 PUSH1 0x40 ADD MLOAD DUP5 EQ ISZERO DUP6 DUP6 SWAP1 SWAP2 PUSH2 0x2908 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF32518CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST POP POP PUSH1 0x40 DUP2 ADD MLOAD DUP1 DUP6 GT ISZERO PUSH2 0x293E JUMPI PUSH2 0x2939 PUSH2 0x2922 PUSH2 0x2043 JUMP JUMPDEST DUP4 MLOAD PUSH2 0x292E DUP5 DUP10 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0x9F SWAP3 SWAP2 SWAP1 DUP9 PUSH2 0x41E0 JUMP JUMPDEST PUSH2 0x2957 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x2957 SWAP1 PUSH2 0x294E DUP8 DUP5 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0x9F SWAP2 SWAP1 PUSH2 0x415B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2961 PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEEAC3E0E DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2992 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x29B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x29D5 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29E2 DUP5 PUSH2 0x2D94 JUMP JUMPDEST ISZERO PUSH2 0x29EE JUMPI PUSH1 0x0 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0xC0 DUP5 ADD MLOAD PUSH2 0x29FD SWAP1 DUP4 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD DUP10 SWAP1 SSTORE PUSH1 0x6 ADD DUP4 SWAP1 SSTORE SWAP1 POP PUSH2 0x2A2C PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6452FC0F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xC8A5F81E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A9E SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x7 ADD DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x2AC9 SWAP1 DUP5 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP3 DUP8 GT ISZERO PUSH2 0x2B11 JUMPI PUSH2 0x2AE0 DUP4 DUP9 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0xA2 PUSH1 0x0 DUP7 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2B06 SWAP2 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2B47 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B1B DUP8 DUP5 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0xA2 PUSH1 0x0 DUP7 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2B41 SWAP2 SWAP1 PUSH2 0x5955 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x6DB4A6F9BE2D5E72EB2A2AF2374AC487971BF342A261BA0BC1CF471BF2A2C31F DUP11 DUP8 PUSH1 0x40 MLOAD PUSH2 0x2B9E SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x100 DUP2 ADD DUP5 MSTORE DUP2 SLOAD SWAP1 SWAP8 AND DUP8 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP8 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP7 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP7 ADD MSTORE PUSH1 0x7 ADD SLOAD PUSH1 0xE0 DUP6 ADD MSTORE POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C30 PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C3A PUSH2 0x25A4 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR DUP2 SSTORE SWAP1 POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2473 CALLER SWAP1 JUMP JUMPDEST PUSH32 0xA16A46D94261C7517CC8FF89F61C0CE93598E3C849801011DEE649A6A557D100 SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2C9F PUSH2 0x2C6F JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x2CB0 SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2CDC SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2D29 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2CFE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2D29 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2D0C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2D40 PUSH2 0x2C6F JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x3 ADD DUP1 SLOAD PUSH2 0x2CB0 SWAP1 PUSH2 0x57D1 JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D8C PUSH2 0x2D82 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x9F SWAP1 DUP6 DUP6 PUSH2 0x42E5 JUMP JUMPDEST ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA3 DUP3 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xECB JUMPI POP POP PUSH1 0x40 ADD MLOAD ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x2DD0 SWAP2 SWAP1 PUSH2 0x5D3E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2E0B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2E10 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2E20 DUP6 DUP4 DUP4 PUSH2 0x437F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x80 SWAP1 SWAP3 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP4 SWAP3 DUP5 SWAP3 PUSH2 0x2E4E SWAP3 DUP2 ADD DUP3 ADD SWAP2 ADD PUSH2 0x5D5A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2E5D PUSH1 0x9D DUP4 PUSH2 0x2358 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 DUP2 AND SWAP1 DUP4 AND EQ PUSH2 0x2E92 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4508FBF7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH1 0x20 DUP2 ADD MLOAD PUSH2 0x2EA4 DUP5 PUSH1 0x0 PUSH2 0x2480 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EAE PUSH2 0x43D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2ED9 SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EF6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F1A SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2F26 PUSH2 0x43F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4C4EA0ED DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F53 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F70 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F94 SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST PUSH2 0x2F9F JUMPI PUSH1 0x0 PUSH2 0x2FA3 JUMP JUMPDEST PUSH1 0xD7 SLOAD JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7F07D283 PUSH1 0x0 DUP12 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2FEB SWAP3 SWAP2 SWAP1 PUSH2 0x5D77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3017 SWAP3 SWAP2 SWAP1 PUSH2 0x5E16 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3036 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x305A SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3068 DUP3 DUP5 PUSH2 0x441A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3074 PUSH2 0x43D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x309F SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30E0 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x30ED DUP4 DUP8 PUSH2 0x5D2B JUMP JUMPDEST EQ DUP6 DUP3 DUP5 SWAP1 SWAP2 SWAP3 PUSH2 0x3122 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B0D791F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD0B JUMP JUMPDEST POP POP DUP4 ISZERO SWAP1 POP PUSH2 0x32DB JUMPI PUSH1 0x0 PUSH1 0xD6 SLOAD DUP5 PUSH2 0x313C SWAP2 SWAP1 PUSH2 0x5E36 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3148 PUSH2 0x38CE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5AEA0EC4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3185 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31A9 SWAP2 SWAP1 PUSH2 0x5D0E JUMP JUMPDEST PUSH2 0x31BC SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP PUSH2 0x5D2B JUMP JUMPDEST SWAP1 POP PUSH2 0x31C9 DUP12 DUP4 DUP4 PUSH2 0x4481 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x32D8 JUMPI PUSH2 0x31D7 PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1D1C2FEC DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3204 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3223 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3247 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST POP PUSH2 0x326C PUSH2 0x3253 PUSH2 0x43F6 JUMP JUMPDEST DUP6 PUSH2 0x325C PUSH2 0x43D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x45F3 JUMP JUMPDEST PUSH2 0x3274 PUSH2 0x43F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x102AE651 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x81573288 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32D3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND SWAP2 PUSH32 0x60A56D4D503735B4848FEB6F491F14D7415262346B820D3B5A3D2733201BDA36 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP SWAP1 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x333C PUSH1 0x9D DUP7 PUSH2 0x2358 JUMP JUMPDEST SWAP1 POP PUSH2 0x3347 DUP2 PUSH2 0x25C8 JUMP JUMPDEST DUP6 SWAP1 PUSH2 0x3367 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB5FF95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x337F PUSH1 0xA0 SLOAD DUP4 PUSH2 0x23D2 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x3392 JUMPI POP PUSH2 0x3390 DUP3 PUSH2 0x2D94 JUMP JUMPDEST ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x339D JUMPI POP DUP5 ISZERO ISZERO JUMPDEST PUSH2 0x33A8 JUMPI PUSH1 0x0 PUSH2 0x341E JUMP JUMPDEST PUSH2 0x33B0 PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDB750926 DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33DB SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x341E SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP PUSH2 0x345D DUP7 PUSH2 0x342C PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEEAC3E0E DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2792 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x3468 PUSH1 0x9D DUP8 PUSH2 0x46A2 JUMP JUMPDEST PUSH2 0x3473 PUSH1 0x9D DUP8 PUSH2 0x474D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 ISZERO PUSH2 0x37C2 JUMPI PUSH1 0x0 PUSH2 0x3486 PUSH2 0x2043 JUMP JUMPDEST DUP6 MLOAD PUSH1 0x40 MLOAD PUSH4 0x7573EF4F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x7573EF4F SWAP2 PUSH2 0x34B9 SWAP2 ADDRESS SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x4 ADD PUSH2 0x5E4D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x34D6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x34FA SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3506 PUSH2 0x2043 JUMP JUMPDEST DUP7 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1584A179 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x561285E4 SWAP2 PUSH2 0x3536 SWAP2 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x5625 JUMP JUMPDEST PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3553 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3577 SWAP2 SWAP1 PUSH2 0x5E72 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD MLOAD GT PUSH2 0x358C JUMPI PUSH1 0x0 PUSH2 0x3596 JUMP JUMPDEST PUSH2 0x3596 DUP6 DUP4 PUSH2 0x441A JUMP JUMPDEST SWAP3 POP DUP3 ISZERO PUSH2 0x368B JUMPI PUSH2 0x35A6 PUSH2 0x43D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x35BC PUSH2 0x2043 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35DA SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x361D SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST POP PUSH2 0x3626 PUSH2 0x2043 JUMP JUMPDEST DUP7 MLOAD PUSH1 0x40 MLOAD PUSH4 0xCA94B0E9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0xCA94B0E9 SWAP2 PUSH2 0x3658 SWAP2 ADDRESS SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x5EC7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3686 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x3695 DUP4 DUP7 PUSH2 0x5955 JUMP JUMPDEST SWAP4 POP DUP4 ISZERO PUSH2 0x37BF JUMPI DUP6 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x37B0 JUMPI PUSH2 0x36C7 PUSH2 0x43D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x36DD PUSH2 0x2043 JUMP JUMPDEST DUP8 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36FB SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x371A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x373E SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST POP PUSH2 0x3747 PUSH2 0x2043 JUMP JUMPDEST DUP8 MLOAD PUSH1 0x40 MLOAD PUSH4 0x3A309049 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x74612092 SWAP2 PUSH2 0x3779 SWAP2 ADDRESS SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x5EC7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3793 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x37A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x37BD JUMP JUMPDEST PUSH2 0x37BD DUP2 DUP7 PUSH2 0x325C PUSH2 0x43D2 JUMP JUMPDEST POP JUMPDEST POP POP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 AND PUSH32 0x7DF4DBB3B3C999CA3E143D3FE67ABFA22078FD572D49D411278648C773912E31 DUP7 DUP7 DUP7 DUP14 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x76671808 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3859 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x387D SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP3 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP4 MLOAD PUSH2 0x38B4 SWAP1 DUP8 PUSH2 0x2D75 JUMP JUMPDEST ISZERO PUSH2 0x38C2 JUMPI PUSH2 0x38C2 DUP9 PUSH2 0x2746 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38FD DUP3 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0xEAC DUP2 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0x3913 DUP2 PUSH1 0x1 PUSH2 0x47F9 JUMP JUMPDEST PUSH2 0x391B PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3A78B732 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3946 SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3960 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3974 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C8F PUSH32 0x4BDEE85C4B4A268F4895D1096D553C3E57BB2433C380E7B7EC8CB56CC4F74673 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x39CF SWAP4 SWAP3 SWAP2 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x4810 JUMP JUMPDEST PUSH2 0x39F2 PUSH2 0x50EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x3A19 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4FFDF5EF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3A24 DUP8 DUP8 DUP6 PUSH2 0x483D JUMP JUMPDEST PUSH2 0x3A2F PUSH1 0x9E DUP8 PUSH2 0x488C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3ABC DUP9 DUP9 DUP9 DUP9 PUSH2 0x3A40 PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEEAC3E0E DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A6D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3AB0 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x9D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x48E1 JUMP JUMPDEST SWAP1 POP PUSH2 0x3AD4 PUSH2 0x3AC9 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x9F SWAP1 DUP11 DUP9 DUP8 PUSH2 0x41E0 JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0xA2 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x3AFB SWAP2 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST PUSH1 0xA2 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP6 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x3BD4419F8DEFEC88DD042E31B8E8743F00803AED288FE7C31C9CF0689D295CF2 DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x3B60 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3B7B PUSH2 0x4A2E JUMP JUMPDEST PUSH2 0xF13 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1E3D PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x3BA8 PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x3BB5 PUSH1 0x0 PUSH1 0x0 NOT PUSH2 0x1EF1 JUMP JUMPDEST PUSH2 0x3BC3 PUSH1 0x0 PUSH3 0xF4240 PUSH2 0x4A48 JUMP JUMPDEST PUSH2 0xF13 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x4B1A JUMP JUMPDEST PUSH2 0x3BDD PUSH2 0x3B73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BE7 PUSH2 0x25A4 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x3BFA PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0xEAC DUP3 DUP3 PUSH2 0x4BA7 JUMP JUMPDEST PUSH2 0xEAC PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x3C17 DUP5 DUP5 DUP5 PUSH2 0x4BE8 JUMP JUMPDEST DUP2 DUP6 DUP6 DUP6 SWAP1 SWAP2 SWAP3 SWAP4 PUSH2 0xC4C JUMPI PUSH1 0x40 MLOAD PUSH4 0x871E13D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5EEB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH2 0x100 DUP2 ADD DUP4 MSTORE DUP2 SLOAD SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP1 DUP5 ADD MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x7 DUP2 ADD SLOAD PUSH1 0xE0 DUP5 ADD MSTORE SWAP1 SWAP2 PUSH2 0x3CC0 SWAP1 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP4 SWAP1 PUSH2 0x3CE0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42DAADAF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT PUSH2 0x3CF7 JUMPI DUP2 PUSH2 0x1C8F JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 DUP4 SWAP1 PUSH2 0x3D5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x107349A9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x60 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x3D78 DUP6 PUSH2 0x4BFF JUMP JUMPDEST SWAP1 POP TIMESTAMP DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x3DA0 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x1 SWAP2 POP PUSH2 0x3E5B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3DB7 SWAP2 SWAP1 PUSH2 0x5F1A JUMP JUMPDEST DUP5 MLOAD SWAP2 SWAP4 POP SWAP2 POP PUSH2 0x3DCC SWAP1 PUSH1 0x68 SWAP1 DUP4 SWAP1 PUSH2 0x415B JUMP JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD DUP2 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD MSTORE DUP9 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH32 0x4C06B68820628A39C787D2DB1FAA0EEACD7B9474847B198B1E871FE6E5B93F44 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP3 MLOAD PUSH2 0x3E22 SWAP1 DUP4 PUSH2 0x5D2B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP6 POP PUSH1 0x0 DUP7 SWAP5 POP SWAP5 POP POP POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x3 ADD SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x3 ADD SLOAD DUP4 GT ISZERO PUSH2 0x3EB0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A411B9D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x3EBE JUMPI DUP4 PUSH2 0x3EC4 JUMP JUMPDEST DUP9 PUSH1 0x3 ADD SLOAD JUMPDEST DUP10 SLOAD SWAP1 SWAP5 POP JUMPDEST DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3ED9 JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO PUSH2 0x3F32 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3EEF DUP4 DUP10 DUP13 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x3F00 JUMPI POP POP PUSH2 0x3F32 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x3F0E DUP13 DUP13 DUP12 PUSH2 0x4C8D JUMP JUMPDEST SWAP3 POP DUP7 PUSH2 0x3F1A DUP2 PUSH2 0x5F40 JUMP JUMPDEST SWAP8 POP POP DUP4 DUP1 PUSH2 0x3F28 SWAP1 PUSH2 0x5F57 JUMP JUMPDEST SWAP5 POP POP POP POP PUSH2 0x3ECA JUMP JUMPDEST POP SWAP9 SWAP4 SWAP8 POP SWAP3 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP7 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD SWAP1 SWAP4 AND DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP4 ADD SLOAD SWAP2 ADD MSTORE DUP3 SWAP1 ISZERO PUSH2 0x3F96 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D3E5FB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD SWAP4 DUP5 MSTORE SWAP4 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP6 SWAP1 SWAP4 MSTORE SWAP1 SWAP4 KECCAK256 SWAP1 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4014 DUP5 DUP5 PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x4080 SWAP1 PUSH2 0x25C8 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP5 SWAP2 PUSH2 0x40A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST POP POP PUSH1 0x6 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40BC DUP4 DUP4 PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x4128 SWAP1 PUSH2 0x25C8 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x414E JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST POP POP TIMESTAMP PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x4168 JUMPI POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP1 DUP3 LT ISZERO PUSH2 0x41AC JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F8EC709 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0xD0B JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x41D6 SWAP1 DUP5 SWAP1 PUSH2 0x5955 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 ISZERO PUSH2 0x3974 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x420A SWAP1 DUP5 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x872D0489 DUP7 ADDRESS DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x423E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5F70 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x425B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x427F SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 DUP2 GT ISZERO PUSH2 0x42AD JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F8EC709 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0xD0B JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP9 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP7 SWAP3 SWAP1 PUSH2 0x42D7 SWAP1 DUP5 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x872D0489 DUP6 ADDRESS DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4318 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5F70 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4335 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4359 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP9 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO SWAP2 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x4394 JUMPI PUSH2 0x438F DUP3 PUSH2 0x4D14 JUMP JUMPDEST PUSH2 0x1C8F JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x43AB JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x43CB JUMPI DUP4 PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP DUP1 PUSH2 0x1C8F JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4429 DUP4 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x443C JUMPI POP PUSH2 0x443C DUP3 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP4 DUP4 SWAP1 SWAP2 PUSH2 0x4466 JUMPI PUSH1 0x40 MLOAD PUSH4 0x768BF0EB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0xD0B JUMP JUMPDEST POP PUSH3 0xF4240 SWAP1 POP PUSH2 0x4477 DUP4 DUP6 PUSH2 0x5E36 JUMP JUMPDEST PUSH2 0x1C8F SWAP2 SWAP1 PUSH2 0x5F99 JUMP JUMPDEST DUP2 PUSH1 0x0 SUB PUSH2 0x44A2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8F4C63D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x44CE PUSH2 0x44AD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x68 SWAP2 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x41E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x2 DUP1 DUP3 ADD SLOAD DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT ADDRESS PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND DUP4 DUP10 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x48 DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP5 MLOAD DUP1 DUP3 SUB SWAP1 SWAP3 ADD DUP3 MSTORE PUSH1 0x68 DUP2 ADD DUP1 DUP7 MSTORE DUP3 MLOAD SWAP3 DUP8 ADD SWAP3 SWAP1 SWAP3 KECCAK256 PUSH1 0xE8 DUP3 ADD DUP7 MSTORE DUP10 DUP4 MSTORE TIMESTAMP PUSH1 0x88 DUP4 ADD SWAP1 DUP2 MSTORE PUSH1 0xA8 DUP4 ADD DUP11 DUP2 MSTORE PUSH1 0xC8 SWAP1 SWAP4 ADD DUP10 DUP2 MSTORE DUP3 DUP11 MSTORE PUSH1 0x69 SWAP1 SWAP9 MSTORE SWAP6 SWAP1 SWAP8 KECCAK256 SWAP2 MLOAD DUP3 SSTORE SWAP4 MLOAD PUSH1 0x1 DUP3 ADD SSTORE SWAP3 MLOAD SWAP1 DUP4 ADD SSTORE SWAP2 MLOAD PUSH1 0x3 SWAP2 DUP3 ADD SSTORE DUP2 ADD SLOAD SWAP1 SWAP2 SWAP1 ISZERO PUSH2 0x459C JUMPI PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH2 0x45A6 DUP3 DUP3 PUSH2 0x4D3D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP2 PUSH32 0x5D9E2C5278E41138269F5F980CFBEA016D8C59816754502ABC4D2F87AAEA987F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1141 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH2 0x4627 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x545C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4646 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x466A SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST PUSH2 0x1141 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x10BA3930B739B332B9 PUSH1 0xB9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46AE DUP4 DUP4 PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x471A SWAP1 PUSH2 0x25C8 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x4740 JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST POP POP TIMESTAMP PUSH1 0x5 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4759 DUP4 DUP4 PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x47C5 SWAP1 PUSH2 0x25C8 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x47EB JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST POP POP PUSH1 0x0 PUSH1 0x7 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4804 DUP4 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0x1141 DUP2 DUP4 PUSH2 0x2194 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xECB PUSH2 0x481D PUSH2 0x4DD0 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4852 PUSH2 0x484C DUP6 DUP6 PUSH2 0x397B JUMP JUMPDEST DUP4 PUSH2 0x4DDA JUMP JUMPDEST SWAP1 POP DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND SWAP1 DUP3 AND EQ PUSH2 0x4884 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8C5B935D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD SWAP1 SWAP4 AND DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP4 ADD SLOAD SWAP2 ADD MSTORE DUP2 SWAP1 ISZERO PUSH2 0x1141 JUMPI PUSH1 0x40 MLOAD PUSH4 0x81736271 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH2 0x48E9 PUSH2 0x50EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP10 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x100 DUP2 ADD DUP5 MSTORE DUP2 SLOAD SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x7 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x496A SWAP1 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST ISZERO DUP6 SWAP1 PUSH2 0x498B JUMPI PUSH1 0x40 MLOAD PUSH4 0xBC4DEF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD SWAP6 DUP7 MSTORE DUP2 DUP4 ADD SWAP5 DUP6 MSTORE TIMESTAMP PUSH1 0x60 DUP4 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH1 0x80 DUP5 ADD DUP2 DUP2 MSTORE PUSH1 0xA0 DUP6 ADD DUP3 DUP2 MSTORE PUSH1 0xC0 DUP7 ADD SWAP8 DUP9 MSTORE PUSH1 0xE0 DUP7 ADD DUP4 DUP2 MSTORE SWAP11 DUP13 AND DUP4 MSTORE SWAP12 SWAP1 SWAP4 MSTORE SWAP4 SWAP1 SWAP4 KECCAK256 DUP3 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP10 AND SWAP9 SWAP1 SWAP9 OR DUP9 SSTORE SWAP5 MLOAD PUSH1 0x1 DUP9 ADD SSTORE SWAP3 MLOAD PUSH1 0x2 DUP8 ADD SSTORE MLOAD PUSH1 0x3 DUP7 ADD SSTORE SWAP2 MLOAD PUSH1 0x4 DUP6 ADD SSTORE SWAP4 MLOAD PUSH1 0x5 DUP5 ADD SSTORE MLOAD PUSH1 0x6 DUP4 ADD SSTORE MLOAD PUSH1 0x7 SWAP1 SWAP2 ADD SSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A38 PUSH2 0x1E70 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP4 AND GT ISZERO PUSH2 0x4A76 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x52CA JUMP JUMPDEST POP DUP3 SWAP1 POP DUP2 PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0xF4240 LT ISZERO PUSH2 0x4AA7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x52CA JUMP JUMPDEST POP POP PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF DUP4 DUP2 AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT SWAP2 DUP7 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP2 SWAP1 SWAP2 AND PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x80 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2FE5A7039987697813605CC0B9D6DB7AAB575408E3FC59E8A457BEF8D7BC0A36 SWAP1 PUSH2 0x1F5B SWAP1 DUP5 SWAP1 DUP5 SWAP1 PUSH2 0x52CA JUMP JUMPDEST DUP2 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 AND SWAP1 DUP4 AND GT ISZERO PUSH2 0x4B4B JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5366 JUMP JUMPDEST POP POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP1 SWAP3 AND SWAP1 DUP6 AND OR OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2867E04C500E438761486B78021D4F9EB97C77FF45D10C1183F5583BA4CBF7D1 SWAP1 PUSH2 0x1F5B SWAP1 DUP5 SWAP1 DUP5 SWAP1 PUSH2 0x5366 JUMP JUMPDEST PUSH2 0x4BAF PUSH2 0x3B73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4BB9 PUSH2 0x2C6F JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 ADD PUSH2 0x4BC9 DUP5 DUP3 PUSH2 0x5852 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD PUSH2 0x4BD8 DUP4 DUP3 PUSH2 0x5852 JUMP JUMPDEST POP PUSH1 0x0 DUP1 DUP3 SSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 LT ISZERO DUP1 ISZERO PUSH2 0x2407 JUMPI POP POP SWAP1 SWAP2 GT ISZERO SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4C2D PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x80 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 ADD SLOAD PUSH1 0x60 DUP4 ADD MSTORE DUP4 SWAP1 PUSH2 0x215B JUMPI PUSH1 0x40 MLOAD PUSH4 0x107349A9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH1 0x3 ADD SLOAD GT PUSH2 0x4CB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDDAF8F21 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4CC6 DUP6 PUSH1 0x0 ADD SLOAD DUP6 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4CD9 DUP6 PUSH1 0x0 ADD SLOAD DUP5 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4CEE SWAP2 SWAP1 PUSH2 0x5955 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP1 DUP6 SSTORE PUSH1 0x3 DUP6 ADD SLOAD PUSH1 0x0 SUB PUSH2 0x4D0A JUMPI PUSH1 0x0 PUSH1 0x1 DUP7 ADD SSTORE JUMPDEST POP POP SWAP2 SLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x4D24 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2710 DUP3 PUSH1 0x3 ADD SLOAD LT PUSH2 0x4D63 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3A8C56B PUSH1 0xE6 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x4D81 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8F4A893D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 DUP4 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x4D9D SWAP1 DUP5 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x0 SUB PUSH2 0x4DB2 JUMPI DUP1 DUP3 SSTORE JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4DC7 SWAP2 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC6A PUSH2 0x4E04 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4DEA DUP7 DUP7 PUSH2 0x4E78 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x4DFA DUP3 DUP3 PUSH2 0x4EC5 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH2 0x4E2F PUSH2 0x4F7E JUMP JUMPDEST PUSH2 0x4E37 PUSH2 0x4FE5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x4EB2 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x4EA4 DUP9 DUP3 DUP6 DUP6 PUSH2 0x5026 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x4EBE JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4ED9 JUMPI PUSH2 0x4ED9 PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0x4EE2 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4EF6 JUMPI PUSH2 0x4EF6 PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0x4F14 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4F28 JUMPI PUSH2 0x4F28 PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0x4F49 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xD0B JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4F5D JUMPI PUSH2 0x4F5D PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0xEAC JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xD0B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4F89 PUSH2 0x2C6F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4F95 PUSH2 0x2C93 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x4FAD JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 SLOAD DUP1 ISZERO PUSH2 0x4FBC JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A470 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4FF0 PUSH2 0x2C6F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4FFC PUSH2 0x2D34 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x5014 JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD DUP1 ISZERO PUSH2 0x4FBC JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 GT ISZERO PUSH2 0x5057 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x50E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x50AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x50D7 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x50E1 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1C8F DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xC67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x51A7 DUP2 PUSH2 0x516E JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1C8F DUP2 PUSH2 0x516E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x51E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x51FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x522B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x5236 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x525D DUP7 DUP3 DUP8 ADD PUSH2 0x51D5 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x528B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x5296 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x52A6 DUP2 PUSH2 0x526A JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x52FC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x52E4 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x531D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x52E1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x534A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x5305 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x535C DUP2 DUP6 PUSH2 0x5305 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x53A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x53B4 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x51A7 DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH1 0xFF PUSH1 0xF8 SHL DUP9 AND DUP2 MSTORE PUSH1 0xE0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x53E3 PUSH1 0xE0 DUP4 ADD DUP10 PUSH2 0x5305 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x53F5 DUP2 DUP10 PUSH2 0x5305 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP5 ADD DUP7 SWAP1 MSTORE DUP4 DUP2 SUB PUSH1 0xC0 DUP6 ADD MSTORE DUP5 MLOAD DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP8 ADD SWAP4 POP SWAP1 SWAP2 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x544B JUMPI DUP4 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x542D JUMP JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x549E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x54AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x54C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD GT ISZERO PUSH2 0x54DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH1 0x20 DUP4 MSTORE DUP1 DUP5 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP6 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5543 JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x552E DUP6 DUP4 MLOAD PUSH2 0x5305 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x5512 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5565 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x5570 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x3 DUP2 LT PUSH2 0x5584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x559F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55AB DUP8 DUP3 DUP9 ADD PUSH2 0x51D5 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x55CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x55D5 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x52A6 DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x561A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1C8F DUP2 PUSH2 0x526A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5677 JUMPI PUSH2 0x5677 PUSH2 0x563F JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5677 JUMPI PUSH2 0x5677 PUSH2 0x563F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5677 JUMPI PUSH2 0x5677 PUSH2 0x563F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x56D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x56F3 JUMPI PUSH2 0x56F3 PUSH2 0x563F JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x5721 JUMPI PUSH2 0x5721 PUSH2 0x563F JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x5739 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x576B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x578D DUP7 DUP3 DUP8 ADD PUSH2 0x56C2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x57A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x57B5 DUP7 DUP3 DUP8 ADD PUSH2 0x56C2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x57C6 DUP2 PUSH2 0x513C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x57E5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x5805 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1141 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5832 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3974 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x583E JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x586B JUMPI PUSH2 0x586B PUSH2 0x563F JUMP JUMPDEST PUSH2 0x587F DUP2 PUSH2 0x5879 DUP5 SLOAD PUSH2 0x57D1 JUMP JUMPDEST DUP5 PUSH2 0x580B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x58B3 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x589B JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x3974 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x58E3 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x58C3 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x5901 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE DUP2 DUP4 PUSH1 0x40 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP4 ADD PUSH1 0x40 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xECB JUMPI PUSH2 0xECB PUSH2 0x593F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x5995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x59AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x3E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD PUSH1 0x0 DUP2 MSTORE DUP4 MLOAD PUSH2 0x59E1 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x52E1 JUMP JUMPDEST ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5A3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x40 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x5A50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5A58 PUSH2 0x5655 JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5A6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0xA0 DUP2 DUP8 SUB SLT ISZERO PUSH2 0x5A80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5A88 PUSH2 0x567D JUMP JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5A93 DUP2 PUSH2 0x513C JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH2 0x5AA3 DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH2 0x5AB6 DUP2 PUSH2 0x5A01 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5AF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5AFF DUP9 DUP3 DUP6 ADD PUSH2 0x56C2 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5B21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5B2D DUP7 DUP3 DUP6 ADD PUSH2 0x56C2 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5B4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x5B59 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x5B85 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xECB DUP3 DUP5 PUSH2 0x5B67 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5BCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x5BE8 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C0F DUP8 DUP3 DUP9 ADD PUSH2 0x56C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x5C26 DUP2 PUSH2 0x516E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x5C26 DUP2 PUSH2 0x5A01 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x5C4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x5C55 PUSH2 0x569F JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x5C79 PUSH1 0x60 DUP6 ADD PUSH2 0x5C1B JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x5C8A PUSH1 0x80 DUP6 ADD PUSH2 0x5C2B JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x5C9B PUSH1 0xA0 DUP6 ADD PUSH2 0x5C2B JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x5CAC PUSH1 0xC0 DUP6 ADD PUSH2 0x5C1B JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x5CBD PUSH1 0xE0 DUP6 ADD PUSH2 0x5C2B JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5CEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1C8F DUP2 PUSH2 0x516E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1C8F DUP2 PUSH2 0x5A01 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xECB JUMPI PUSH2 0xECB PUSH2 0x593F JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x5D50 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x52E1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1C8F DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP2 MLOAD AND PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x20 DUP3 ADD MLOAD AND PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x40 DUP3 ADD MLOAD AND PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0x80 SHL SUB PUSH1 0x60 DUP3 ADD MLOAD AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD SWAP1 POP PUSH1 0xA0 PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x5DE8 PUSH2 0x120 DUP5 ADD DUP3 PUSH2 0x5305 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x5E05 DUP3 DUP3 PUSH2 0x5305 JUMP JUMPDEST SWAP3 POP POP POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5E20 DUP2 DUP5 PUSH2 0x5B67 JUMP JUMPDEST PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2407 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x5305 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xECB JUMPI PUSH2 0xECB PUSH2 0x593F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x2407 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x5B67 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x5E85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x5E90 PUSH2 0x567D JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5EFE PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x5305 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP6 SWAP1 SWAP6 MSTORE POP PUSH1 0x40 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5F2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x52A6 DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x5F4F JUMPI PUSH2 0x5F4F PUSH2 0x593F JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x5F69 JUMPI PUSH2 0x5F69 PUSH2 0x593F JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5FB6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 SDIV 0xE4 SWAP11 PUSH30 0x3D7F3015873A2C41E2F68419180F16CEF8FD91645F14BC8E8B733264736F PUSH13 0x634300081B0033000000000000 ", - "sourceMap": "1852:23230:50:-:0;;;3040:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3226:4;3233:14;3249:12;3263:8;3191:15;;-1:-1:-1;;;;;4295:24:33;;4287:81;;;;-1:-1:-1;;;4287:81:33;;866:2:62;4287:81:33;;;848:21:62;905:2;885:18;;;878:30;-1:-1:-1;;;924:18:62;;;917:40;974:18;;4287:81:33;;;;;;;;;-1:-1:-1;;;;;4379:42:33;;;;4457:40;;;;;;;;;;;;-1:-1:-1;;;4457:40:33;;;;;;:26;:40::i;:::-;-1:-1:-1;;;;;4431:67:33;;;4540:37;;;;;;;;;;;;-1:-1:-1;;;4540:37:33;;;;;;:26;:37::i;:::-;-1:-1:-1;;;;;4508:70:33;;;4620:43;;;;;;;;;;;;-1:-1:-1;;;4620:43:33;;;;;;:26;:43::i;:::-;-1:-1:-1;;;;;4588:76:33;;;4714:44;;;;;;;;;;;;-1:-1:-1;;;4714:44:33;;;;;;:26;:44::i;:::-;-1:-1:-1;;;;;4674:85:33;;;4805:42;;;;;;;;;;;;-1:-1:-1;;;4805:42:33;;;;;;:26;:42::i;:::-;-1:-1:-1;;;;;4769:79:33;;;4898:44;;;;;;;;;;;;-1:-1:-1;;;4898:44:33;;;;;;:26;:44::i;:::-;-1:-1:-1;;;;;4858:85:33;;;4989:47;;;;;;;;;;;;-1:-1:-1;;;4989:47:33;;;;;;:26;:47::i;:::-;-1:-1:-1;;;;;4953:84:33;;;5084:45;;;;;;;;;;;;-1:-1:-1;;;5084:45:33;;;;;;:26;:45::i;:::-;-1:-1:-1;;;;;5047:83:33;;;5167:38;;;;;;;;;;;;-1:-1:-1;;;5167:38:33;;;;;;:26;:38::i;:::-;-1:-1:-1;;;;;5140:66:33;;;;;;;5420:16;;5303:13;;5269:11;;5339:14;;5376:21;;5459:19;;5501:21;;5545:19;;5587:17;;5222:430;;;;;;;;;;;;;;;;;;;5587:17;;-1:-1:-1;;;;;1336:32:62;;;1318:51;;1405:32;;;1400:2;1385:18;;1378:60;1474:32;;;1469:2;1454:18;;1447:60;1543:32;;;1538:2;1523:18;;1516:60;1613:32;;1607:3;1592:19;;1585:61;1683:32;;1356:3;1662:19;;1655:61;1753:32;;;1747:3;1732:19;;1725:61;1305:3;1290:19;;1003:789;5222:430:33;;;;;;;;-1:-1:-1;;;;;;;2692:52:61;;;;;;;2754:49;;;;;;;2813:43;;;;;;;2866:30;;;;;;;2912:92;;;2028:51:62;;;2110:2;2095:18;;2088:60;;;;2164:18;;;2157:60;;;;2248:2;2233:18;;2226:60;;;;2912:92:61;;2015:3:62;2000:19;2912:92:61;;;;;;;2581:430;;;;3283:22:50::2;:20;;;:22;;:::i;:::-;3040:272:::0;;;;1852:23230;;7673:326:33;7759:7;7778:23;7804:16;;-1:-1:-1;;;;;7804:33:33;;7848:13;7838:24;;;;;;7804:59;;;;;;;;;;;;;2443:25:62;;2431:2;2416:18;;2297:177;7804:59:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7778:85;-1:-1:-1;7945:13:33;-1:-1:-1;;;;;7881:29:33;;7873:87;;;;-1:-1:-1;;;7873:87:33;;;;;;;;:::i;:::-;-1:-1:-1;7977:15:33;7673:326;-1:-1:-1;;7673:326:33:o;7711:422:35:-;8870:21;7900:15;;;;;;;7896:76;;;7938:23;;-1:-1:-1;;;7938:23:35;;;;;;;;;;;7896:76;7985:14;;-1:-1:-1;;;;;7985:14:35;;;:34;7981:146;;8035:33;;-1:-1:-1;;;;;;8035:33:35;-1:-1:-1;;;;;8035:33:35;;;;;8087:29;;3366:50:62;;;8087:29:35;;3354:2:62;3339:18;8087:29:35;;;;;;;7981:146;7760:373;7711:422::o;14:177:62:-;93:13;;-1:-1:-1;;;;;135:31:62;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:464::-;293:6;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;410:40;440:9;410:40;:::i;:::-;400:50;;469:49;514:2;503:9;499:18;469:49;:::i;:::-;459:59;;537:49;582:2;571:9;567:18;537:49;:::i;:::-;527:59;;605:49;650:2;639:9;635:18;605:49;:::i;:::-;595:59;;196:464;;;;;;;:::o;2479:208::-;2549:6;2602:2;2590:9;2581:7;2577:23;2573:32;2570:52;;;2618:1;2615;2608:12;2570:52;2641:40;2671:9;2641:40;:::i;:::-;2631:50;2479:208;-1:-1:-1;;;2479:208:62:o;2692:525::-;2839:2;2828:9;2821:21;2802:4;2871:6;2865:13;2914:6;2909:2;2898:9;2894:18;2887:34;2939:1;2949:140;2963:6;2960:1;2957:13;2949:140;;;3074:2;3058:14;;;3054:23;;3048:30;3043:2;3024:17;;;3020:26;3013:66;2978:10;2949:140;;;2953:3;3138:1;3133:2;3124:6;3113:9;3109:22;3105:31;3098:42;3208:2;3201;3197:7;3192:2;3184:6;3180:15;3176:29;3165:9;3161:45;3157:54;3149:62;;;2692:525;;;;:::o;3222:200::-;1852:23230:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@_EIP712NameHash_5718": { - "entryPoint": 20350, - "id": 5718, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_EIP712Name_5650": { - "entryPoint": 11411, - "id": 5650, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_EIP712VersionHash_5770": { - "entryPoint": 20453, - "id": 5770, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_EIP712Version_5666": { - "entryPoint": 11572, - "id": 5666, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@__AllocationManager_init_12271": { - "entryPoint": 7893, - "id": 12271, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@__AllocationManager_init_unchained_12282": { - "entryPoint": 15364, - "id": 12282, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@__DataServicePausable_init_1156": { - "entryPoint": 7877, - "id": 1156, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@__DataServicePausable_init_unchained_1163": { - "entryPoint": null, - "id": 1163, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@__DataService_init_642": { - "entryPoint": 7853, - "id": 642, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@__DataService_init_unchained_649": { - "entryPoint": null, - "id": 649, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@__EIP712_init_5484": { - "entryPoint": 15346, - "id": 5484, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@__EIP712_init_unchained_5524": { - "entryPoint": 19367, - "id": 5524, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@__Multicall_init_5167": { - "entryPoint": 7845, - "id": 5167, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@__Ownable_init_4708": { - "entryPoint": 7828, - "id": 4708, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@__Ownable_init_unchained_4735": { - "entryPoint": 15256, - "id": 4735, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@__Pausable_init_unchained_5321": { - "entryPoint": 15317, - "id": 5321, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@__ProvisionManager_init_unchained_1760": { - "entryPoint": 15264, - "id": 1760, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_acceptProvisionParameters_1778": { - "entryPoint": 14600, - "id": 1778, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_allocate_12401": { - "entryPoint": 14826, - "id": 12401, - "parameterSlots": 6, - "returnSlots": 1 - }, - "@_buildDomainSeparator_5557": { - "entryPoint": 19972, - "id": 5557, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_buildStakeClaimId_1051": { - "entryPoint": null, - "id": 1051, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@_checkInitializing_5024": { - "entryPoint": 15219, - "id": 5024, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_checkOwner_4776": { - "entryPoint": 8209, - "id": 4776, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_checkProvisionParameters_1959": { - "entryPoint": 18425, - "id": 1959, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_checkProvisionParameters_2015": { - "entryPoint": 8596, - "id": 2015, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_checkProvisionTokens_1920": { - "entryPoint": 14578, - "id": 1920, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_checkProvisionTokens_1936": { - "entryPoint": 8546, - "id": 1936, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_checkValueInRange_2127": { - "entryPoint": 15372, - "id": 2127, - "parameterSlots": 4, - "returnSlots": 0 - }, - "@_closeAllocation_12890": { - "entryPoint": 10054, - "id": 12890, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_collectIndexingRewards_12657": { - "entryPoint": 13102, - "id": 12657, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@_collectQueryFees_10661": { - "entryPoint": 11817, - "id": 10661, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_contextSuffixLength_5147": { - "entryPoint": null, - "id": 5147, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_curation_13389": { - "entryPoint": 17398, - "id": 13389, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_deleteStakeClaim_970": { - "entryPoint": 15970, - "id": 970, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_disputeManager_13369": { - "entryPoint": 14542, - "id": 13369, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_domainSeparatorV4_5534": { - "entryPoint": 19920, - "id": 5534, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_encodeAllocationProof_12977": { - "entryPoint": 14715, - "id": 12977, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@_getDelegationRatio_2024": { - "entryPoint": null, - "id": 2024, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_getEIP712Storage_5468": { - "entryPoint": 11375, - "id": 5468, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_getInitializableStorage_5101": { - "entryPoint": 7792, - "id": 5101, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_getNextStakeClaim_1028": { - "entryPoint": 15614, - "id": 1028, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_getOwnableStorage_4679": { - "entryPoint": 11601, - "id": 4679, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_getPausableStorage_5277": { - "entryPoint": 9636, - "id": 5277, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_getProvisionTokensRange_2037": { - "entryPoint": null, - "id": 2037, - "parameterSlots": 0, - "returnSlots": 2 - }, - "@_getProvision_2100": { - "entryPoint": 8295, - "id": 2100, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_getStakeClaim_999": { - "entryPoint": 19455, - "id": 999, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_getThawingPeriodRange_10452": { - "entryPoint": 9795, - "id": 10452, - "parameterSlots": 0, - "returnSlots": 2 - }, - "@_getVerifierCutRange_10469": { - "entryPoint": 9517, - "id": 10469, - "parameterSlots": 0, - "returnSlots": 2 - }, - "@_get_11673": { - "entryPoint": 15424, - "id": 11673, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@_graphEpochManager_4580": { - "entryPoint": null, - "id": 4580, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_graphRewardsManager_4590": { - "entryPoint": 16356, - "id": 4590, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_graphStaking_4540": { - "entryPoint": 8259, - "id": 4540, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_graphToken_4530": { - "entryPoint": 17362, - "id": 4530, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_hashTypedDataV4_5573": { - "entryPoint": 18448, - "id": 5573, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@_isInitializing_5092": { - "entryPoint": 18990, - "id": 5092, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_isOverAllocated_12997": { - "entryPoint": 11637, - "id": 12997, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@_lockStake_833": { - "entryPoint": 17537, - "id": 833, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@_migrateLegacyAllocation_12307": { - "entryPoint": 9971, - "id": 12307, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@_msgSender_5130": { - "entryPoint": null, - "id": 5130, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_pause_5402": { - "entryPoint": 11304, - "id": 5402, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_processStakeClaim_958": { - "entryPoint": 15721, - "id": 958, - "parameterSlots": 2, - "returnSlots": 2 - }, - "@_releaseStake_880": { - "entryPoint": 9344, - "id": 880, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_requireNotPaused_5365": { - "entryPoint": 8820, - "id": 5365, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_requirePaused_5378": { - "entryPoint": 9231, - "id": 5378, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_resizeAllocation_12823": { - "entryPoint": 10396, - "id": 12823, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@_revert_6126": { - "entryPoint": 19732, - "id": 6126, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setDelegationRatio_1793": { - "entryPoint": 8039, - "id": 1793, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setMaxPOIStaleness_12925": { - "entryPoint": 9918, - "id": 12925, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setPauseGuardian_1185": { - "entryPoint": 8945, - "id": 1185, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_setProvisionTokensRange_1825": { - "entryPoint": 7921, - "id": 1825, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_setRewardsDestination_12910": { - "entryPoint": 8858, - "id": 12910, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_setStakeToFeesRatio_10683": { - "entryPoint": 8123, - "id": 10683, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_setThawingPeriodRange_1900": { - "entryPoint": 19226, - "id": 1900, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_setVerifierCutRange_1868": { - "entryPoint": 19016, - "id": 1868, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_tapCollector_13379": { - "entryPoint": null, - "id": 13379, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_throwError_6729": { - "entryPoint": 20165, - "id": 6729, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_transferOwnership_4847": { - "entryPoint": 9703, - "id": 4847, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_unpause_5426": { - "entryPoint": 9268, - "id": 5426, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_verifyAllocationProof_13029": { - "entryPoint": 18493, - "id": 13029, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@acceptProvisionPendingParameters_9774": { - "entryPoint": 6996, - "id": 9774, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@addTail_3895": { - "entryPoint": 19773, - "id": 3895, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@allocationProvisionTracker_13053": { - "entryPoint": null, - "id": 13053, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@allocations_13042": { - "entryPoint": null, - "id": 13042, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@check_1554": { - "entryPoint": 17125, - "id": 1554, - "parameterSlots": 4, - "returnSlots": 1 - }, - "@claimsLists_1075": { - "entryPoint": null, - "id": 1075, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@claims_1069": { - "entryPoint": null, - "id": 1069, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@clearPendingRewards_11496": { - "entryPoint": 18253, - "id": 11496, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@close_11534": { - "entryPoint": 16560, - "id": 11534, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@collect_10008": { - "entryPoint": 5993, - "id": 10008, - "parameterSlots": 4, - "returnSlots": 1 - }, - "@create_11382": { - "entryPoint": 18657, - "id": 11382, - "parameterSlots": 6, - "returnSlots": 1 - }, - "@curationFeesCut_10700": { - "entryPoint": null, - "id": 10700, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@delegationRatio_2152": { - "entryPoint": null, - "id": 2152, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@eip712Domain_5634": { - "entryPoint": 5393, - "id": 5634, - "parameterSlots": 0, - "returnSlots": 7 - }, - "@encodeAllocationProof_10402": { - "entryPoint": 7299, - "id": 10402, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@exists_11602": { - "entryPoint": null, - "id": 11602, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@exists_12052": { - "entryPoint": null, - "id": 12052, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@feesProvisionTracker_1063": { - "entryPoint": null, - "id": 1063, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@forceCloseAllocation_10108": { - "entryPoint": 5589, - "id": 10108, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@functionDelegateCall_6046": { - "entryPoint": 11699, - "id": 6046, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@getAllocationData_10340": { - "entryPoint": null, - "id": 10340, - "parameterSlots": 1, - "returnSlots": 5 - }, - "@getAllocation_10301": { - "entryPoint": 2646, - "id": 10301, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getDelegationRatio_695": { - "entryPoint": null, - "id": 695, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@getLegacyAllocation_10385": { - "entryPoint": null, - "id": 10385, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getProvisionTokensRange_685": { - "entryPoint": 4933, - "id": 685, - "parameterSlots": 0, - "returnSlots": 2 - }, - "@getSubgraphAllocatedTokens_10354": { - "entryPoint": null, - "id": 10354, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getThawingPeriodRange_661": { - "entryPoint": 4360, - "id": 661, - "parameterSlots": 0, - "returnSlots": 2 - }, - "@getVerifierCutRange_673": { - "entryPoint": 3871, - "id": 673, - "parameterSlots": 0, - "returnSlots": 2 - }, - "@get_11554": { - "entryPoint": 9048, - "id": 11554, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@indexers_10694": { - "entryPoint": 3890, - "id": 10694, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@initialize_9644": { - "entryPoint": 2776, - "id": 9644, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@isActiveAllocation_10370": { - "entryPoint": 4218, - "id": 10370, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@isAltruistic_11640": { - "entryPoint": 11668, - "id": 11640, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@isInRange_4289": { - "entryPoint": 19432, - "id": 4289, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@isOpen_11621": { - "entryPoint": 9672, - "id": 11621, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@isOverAllocated_10435": { - "entryPoint": 6647, - "id": 10435, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@isStaleAllocation_10420": { - "entryPoint": 3760, - "id": 10420, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@isStale_11587": { - "entryPoint": 9170, - "id": 11587, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@isValidPPM_4261": { - "entryPoint": null, - "id": 4261, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@legacyAllocations_13048": { - "entryPoint": null, - "id": 13048, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@lock_1480": { - "entryPoint": 16864, - "id": 1480, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@maxPOIStaleness_13056": { - "entryPoint": null, - "id": 13056, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@max_6991": { - "entryPoint": 15592, - "id": 6991, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@maximumProvisionTokens_2137": { - "entryPoint": null, - "id": 2137, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@maximumThawingPeriod_2143": { - "entryPoint": null, - "id": 2143, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@maximumVerifierCut_2149": { - "entryPoint": null, - "id": 2149, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@migrateLegacyAllocation_10170": { - "entryPoint": 4398, - "id": 10170, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@migrate_11990": { - "entryPoint": 16193, - "id": 11990, - "parameterSlots": 4, - "returnSlots": 0 - }, - "@minimumProvisionTokens_2134": { - "entryPoint": null, - "id": 2134, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@minimumThawingPeriod_2140": { - "entryPoint": null, - "id": 2140, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@minimumVerifierCut_2146": { - "entryPoint": null, - "id": 2146, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@mulPPM_4219": { - "entryPoint": 17434, - "id": 4219, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@multicall_5250": { - "entryPoint": 5762, - "id": 5250, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@owner_4759": { - "entryPoint": 5562, - "id": 4759, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@pauseGuardians_1101": { - "entryPoint": null, - "id": 1101, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@pause_1130": { - "entryPoint": 5327, - "id": 1130, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@paused_5353": { - "entryPoint": 4197, - "id": 5353, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@presentPOI_11420": { - "entryPoint": 18082, - "id": 11420, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@pushTokens_578": { - "entryPoint": 17907, - "id": 578, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@recover_6486": { - "entryPoint": 19930, - "id": 6486, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@register_9744": { - "entryPoint": 3183, - "id": 9744, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@releaseStake_746": { - "entryPoint": 3861, - "id": 746, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@release_1518": { - "entryPoint": 16731, - "id": 1518, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@removeHead_3969": { - "entryPoint": 19597, - "id": 3969, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@renounceOwnership_4790": { - "entryPoint": 4342, - "id": 4790, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@resizeAllocation_10150": { - "entryPoint": 4949, - "id": 10150, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@revertIfExists_12034": { - "entryPoint": 18572, - "id": 12034, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@rewardsDestination_13061": { - "entryPoint": null, - "id": 13061, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@setCurationCut_10286": { - "entryPoint": 4422, - "id": 10286, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@setDelegationRatio_10230": { - "entryPoint": 3158, - "id": 10230, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@setMaxPOIStaleness_10258": { - "entryPoint": 4381, - "id": 10258, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@setMinimumProvisionTokens_10216": { - "entryPoint": 5307, - "id": 10216, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@setPauseGuardian_10187": { - "entryPoint": 3738, - "id": 10187, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@setRewardsDestination_10201": { - "entryPoint": 4371, - "id": 10201, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@setStakeToFeesRatio_10244": { - "entryPoint": 7716, - "id": 10244, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@slash_10052": { - "entryPoint": 6677, - "id": 10052, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@snapshotRewards_11459": { - "entryPoint": 16392, - "id": 11459, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@stakeToFeesRatio_10697": { - "entryPoint": null, - "id": 10697, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@startService_9831": { - "entryPoint": 7318, - "id": 9831, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@stopService_9882": { - "entryPoint": 4538, - "id": 9882, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@subgraphAllocatedTokens_13066": { - "entryPoint": null, - "id": 13066, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@toTypedDataHash_6803": { - "entryPoint": null, - "id": 6803, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@transferOwnership_4818": { - "entryPoint": 7733, - "id": 4818, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@traverse_4086": { - "entryPoint": 16007, - "id": 4086, - "parameterSlots": 6, - "returnSlots": 2 - }, - "@tryRecover_6456": { - "entryPoint": 20088, - "id": 6456, - "parameterSlots": 2, - "returnSlots": 3 - }, - "@tryRecover_6644": { - "entryPoint": 20518, - "id": 6644, - "parameterSlots": 4, - "returnSlots": 3 - }, - "@unpause_1143": { - "entryPoint": 3793, - "id": 1143, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@verifyCallResultFromTarget_6086": { - "entryPoint": 17279, - "id": 6086, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_bytes_calldata": { - "entryPoint": 20949, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_string": { - "entryPoint": 22210, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address": { - "entryPoint": 20817, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address_payable": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address_payable_fromMemory": { - "entryPoint": 23898, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_address_payablet_bytes32": { - "entryPoint": 23355, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_address": { - "entryPoint": 21943, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_addresst_bytes32": { - "entryPoint": 21396, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_addresst_addresst_uint256": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_addresst_bool": { - "entryPoint": 21112, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_bytes_calldata_ptr": { - "entryPoint": 21014, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_addresst_enum$_PaymentTypes_$2166t_bytes_calldata_ptr": { - "entryPoint": 21839, - "id": null, - "parameterSlots": 2, - "returnSlots": 4 - }, - "abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr": { - "entryPoint": 21621, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bool_fromMemory": { - "entryPoint": 22024, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes32": { - "entryPoint": 21169, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes32t_uint256t_address_payablet_bytes_memory_ptr": { - "entryPoint": 23481, - "id": null, - "parameterSlots": 2, - "returnSlots": 4 - }, - "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address_payable": { - "entryPoint": 22358, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_struct$_DelegationPool_$3748_memory_ptr_fromMemory": { - "entryPoint": 24178, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_struct$_Provision_$3718_memory_ptr_fromMemory": { - "entryPoint": 23606, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_struct$_SignedRAV_$2546_memory_ptr": { - "entryPoint": 23062, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256_fromMemory": { - "entryPoint": 23768, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256t_address_payable_fromMemory": { - "entryPoint": 24346, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_uint256t_uint256": { - "entryPoint": 23447, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_uint256t_uint32t_uint256": { - "entryPoint": 20864, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_uint32": { - "entryPoint": 20920, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint32_fromMemory": { - "entryPoint": 23793, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint64_fromMemory": { - "entryPoint": 23822, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_uint32_fromMemory": { - "entryPoint": 23579, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_decode_uint64_fromMemory": { - "entryPoint": 23595, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_enum_PaymentTypes": { - "entryPoint": 23399, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_string": { - "entryPoint": 21253, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 22980, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 23870, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": 21376, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { - "entryPoint": 22053, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed": { - "entryPoint": 21989, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_enum$_PaymentTypes_$2166__to_t_address_t_address_t_uint8__fromStack_reversed": { - "entryPoint": 24141, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": { - "entryPoint": 24263, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_uint32__to_t_address_t_address_t_uint32__fromStack_reversed": { - "entryPoint": 24432, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { - "entryPoint": 21596, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__to_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 9, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint256_t_uint256_t_address__to_t_address_t_uint256_t_uint256_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed": { - "entryPoint": 21738, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { - "entryPoint": 21444, - "id": null, - "parameterSlots": 8, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_bytes32_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": 22800, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256__to_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 24299, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_enum$_PaymentTypes_$2166__to_t_uint8__fromStack_reversed": { - "entryPoint": 23433, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_enum$_PaymentTypes_$2166_t_bytes_memory_ptr__to_t_uint8_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": 24086, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_rational_0_by_1_t_address__to_t_uint8_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_SignedRAV_$2546_memory_ptr_t_uint256__to_t_struct$_SignedRAV_$2546_memory_ptr_t_uint256__fromStack_reversed": { - "entryPoint": 23927, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_State_$11307_memory_ptr__to_t_struct$_State_$11307_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_struct$_State_$11933_memory_ptr__to_t_struct$_State_$11933_memory_ptr__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 21297, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes32__to_t_uint256_t_uint256_t_uint256_t_bytes32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_uint256_t_uint256_t_bytes32_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint32_t_uint32__to_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint32_t_uint32__to_t_uint32_t_uint32__fromStack_reversed": { - "entryPoint": 21194, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint64_t_uint64__to_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": null, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed": { - "entryPoint": 21350, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "access_calldata_tail_t_bytes_calldata_ptr": { - "entryPoint": 22910, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "allocate_memory": { - "entryPoint": 22141, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "allocate_memory_4281": { - "entryPoint": 22101, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "allocate_memory_4284": { - "entryPoint": 22175, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "array_dataslot_string_storage": { - "entryPoint": null, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "calldata_array_index_range_access_t_bytes_calldata_ptr": { - "entryPoint": null, - "id": null, - "parameterSlots": 4, - "returnSlots": 2 - }, - "checked_add_t_uint256": { - "entryPoint": 23851, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_div_t_uint256": { - "entryPoint": 24473, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_mul_t_uint256": { - "entryPoint": 24118, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_sub_t_uint256": { - "entryPoint": 22869, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "clean_up_bytearray_end_slots_string_storage": { - "entryPoint": 22539, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 22610, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "copy_memory_to_memory_with_cleanup": { - "entryPoint": 21217, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "decrement_t_uint256": { - "entryPoint": 24384, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_byte_array_length": { - "entryPoint": 22481, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": null, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "increment_t_uint256": { - "entryPoint": 24407, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "panic_error_0x11": { - "entryPoint": 22847, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x21": { - "entryPoint": 23019, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x32": { - "entryPoint": 22888, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 22079, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "validator_revert_address": { - "entryPoint": 20796, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_bool": { - "entryPoint": 21098, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_uint32": { - "entryPoint": 20846, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_uint64": { - "entryPoint": 23041, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:39589:62", - "nodeType": "YulBlock", - "src": "0:39589:62", - "statements": [ - { - "nativeSrc": "6:3:62", - "nodeType": "YulBlock", - "src": "6:3:62", - "statements": [] - }, - { - "body": { - "nativeSrc": "59:86:62", - "nodeType": "YulBlock", - "src": "59:86:62", - "statements": [ - { - "body": { - "nativeSrc": "123:16:62", - "nodeType": "YulBlock", - "src": "123:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "132:1:62", - "nodeType": "YulLiteral", - "src": "132:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "135:1:62", - "nodeType": "YulLiteral", - "src": "135:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "125:6:62", - "nodeType": "YulIdentifier", - "src": "125:6:62" - }, - "nativeSrc": "125:12:62", - "nodeType": "YulFunctionCall", - "src": "125:12:62" - }, - "nativeSrc": "125:12:62", - "nodeType": "YulExpressionStatement", - "src": "125:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "82:5:62", - "nodeType": "YulIdentifier", - "src": "82:5:62" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "93:5:62", - "nodeType": "YulIdentifier", - "src": "93:5:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "108:3:62", - "nodeType": "YulLiteral", - "src": "108:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "113:1:62", - "nodeType": "YulLiteral", - "src": "113:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "104:3:62", - "nodeType": "YulIdentifier", - "src": "104:3:62" - }, - "nativeSrc": "104:11:62", - "nodeType": "YulFunctionCall", - "src": "104:11:62" - }, - { - "kind": "number", - "nativeSrc": "117:1:62", - "nodeType": "YulLiteral", - "src": "117:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "100:3:62", - "nodeType": "YulIdentifier", - "src": "100:3:62" - }, - "nativeSrc": "100:19:62", - "nodeType": "YulFunctionCall", - "src": "100:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "89:3:62", - "nodeType": "YulIdentifier", - "src": "89:3:62" - }, - "nativeSrc": "89:31:62", - "nodeType": "YulFunctionCall", - "src": "89:31:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "79:2:62", - "nodeType": "YulIdentifier", - "src": "79:2:62" - }, - "nativeSrc": "79:42:62", - "nodeType": "YulFunctionCall", - "src": "79:42:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "72:6:62", - "nodeType": "YulIdentifier", - "src": "72:6:62" - }, - "nativeSrc": "72:50:62", - "nodeType": "YulFunctionCall", - "src": "72:50:62" - }, - "nativeSrc": "69:70:62", - "nodeType": "YulIf", - "src": "69:70:62" - } - ] - }, - "name": "validator_revert_address", - "nativeSrc": "14:131:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "48:5:62", - "nodeType": "YulTypedName", - "src": "48:5:62", - "type": "" - } - ], - "src": "14:131:62" - }, - { - "body": { - "nativeSrc": "220:177:62", - "nodeType": "YulBlock", - "src": "220:177:62", - "statements": [ - { - "body": { - "nativeSrc": "266:16:62", - "nodeType": "YulBlock", - "src": "266:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "275:1:62", - "nodeType": "YulLiteral", - "src": "275:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "278:1:62", - "nodeType": "YulLiteral", - "src": "278:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "268:6:62", - "nodeType": "YulIdentifier", - "src": "268:6:62" - }, - "nativeSrc": "268:12:62", - "nodeType": "YulFunctionCall", - "src": "268:12:62" - }, - "nativeSrc": "268:12:62", - "nodeType": "YulExpressionStatement", - "src": "268:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "241:7:62", - "nodeType": "YulIdentifier", - "src": "241:7:62" - }, - { - "name": "headStart", - "nativeSrc": "250:9:62", - "nodeType": "YulIdentifier", - "src": "250:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "237:3:62", - "nodeType": "YulIdentifier", - "src": "237:3:62" - }, - "nativeSrc": "237:23:62", - "nodeType": "YulFunctionCall", - "src": "237:23:62" - }, - { - "kind": "number", - "nativeSrc": "262:2:62", - "nodeType": "YulLiteral", - "src": "262:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "233:3:62", - "nodeType": "YulIdentifier", - "src": "233:3:62" - }, - "nativeSrc": "233:32:62", - "nodeType": "YulFunctionCall", - "src": "233:32:62" - }, - "nativeSrc": "230:52:62", - "nodeType": "YulIf", - "src": "230:52:62" - }, - { - "nativeSrc": "291:36:62", - "nodeType": "YulVariableDeclaration", - "src": "291:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "317:9:62", - "nodeType": "YulIdentifier", - "src": "317:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "304:12:62", - "nodeType": "YulIdentifier", - "src": "304:12:62" - }, - "nativeSrc": "304:23:62", - "nodeType": "YulFunctionCall", - "src": "304:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "295:5:62", - "nodeType": "YulTypedName", - "src": "295:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "361:5:62", - "nodeType": "YulIdentifier", - "src": "361:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "336:24:62", - "nodeType": "YulIdentifier", - "src": "336:24:62" - }, - "nativeSrc": "336:31:62", - "nodeType": "YulFunctionCall", - "src": "336:31:62" - }, - "nativeSrc": "336:31:62", - "nodeType": "YulExpressionStatement", - "src": "336:31:62" - }, - { - "nativeSrc": "376:15:62", - "nodeType": "YulAssignment", - "src": "376:15:62", - "value": { - "name": "value", - "nativeSrc": "386:5:62", - "nodeType": "YulIdentifier", - "src": "386:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "376:6:62", - "nodeType": "YulIdentifier", - "src": "376:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address", - "nativeSrc": "150:247:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "186:9:62", - "nodeType": "YulTypedName", - "src": "186:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "197:7:62", - "nodeType": "YulTypedName", - "src": "197:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "209:6:62", - "nodeType": "YulTypedName", - "src": "209:6:62", - "type": "" - } - ], - "src": "150:247:62" - }, - { - "body": { - "nativeSrc": "551:551:62", - "nodeType": "YulBlock", - "src": "551:551:62", - "statements": [ - { - "nativeSrc": "561:27:62", - "nodeType": "YulAssignment", - "src": "561:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "573:9:62", - "nodeType": "YulIdentifier", - "src": "573:9:62" - }, - { - "kind": "number", - "nativeSrc": "584:3:62", - "nodeType": "YulLiteral", - "src": "584:3:62", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "569:3:62", - "nodeType": "YulIdentifier", - "src": "569:3:62" - }, - "nativeSrc": "569:19:62", - "nodeType": "YulFunctionCall", - "src": "569:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "561:4:62", - "nodeType": "YulIdentifier", - "src": "561:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "604:9:62", - "nodeType": "YulIdentifier", - "src": "604:9:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "625:6:62", - "nodeType": "YulIdentifier", - "src": "625:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "619:5:62", - "nodeType": "YulIdentifier", - "src": "619:5:62" - }, - "nativeSrc": "619:13:62", - "nodeType": "YulFunctionCall", - "src": "619:13:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "642:3:62", - "nodeType": "YulLiteral", - "src": "642:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "647:1:62", - "nodeType": "YulLiteral", - "src": "647:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "638:3:62", - "nodeType": "YulIdentifier", - "src": "638:3:62" - }, - "nativeSrc": "638:11:62", - "nodeType": "YulFunctionCall", - "src": "638:11:62" - }, - { - "kind": "number", - "nativeSrc": "651:1:62", - "nodeType": "YulLiteral", - "src": "651:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "634:3:62", - "nodeType": "YulIdentifier", - "src": "634:3:62" - }, - "nativeSrc": "634:19:62", - "nodeType": "YulFunctionCall", - "src": "634:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "615:3:62", - "nodeType": "YulIdentifier", - "src": "615:3:62" - }, - "nativeSrc": "615:39:62", - "nodeType": "YulFunctionCall", - "src": "615:39:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "597:6:62", - "nodeType": "YulIdentifier", - "src": "597:6:62" - }, - "nativeSrc": "597:58:62", - "nodeType": "YulFunctionCall", - "src": "597:58:62" - }, - "nativeSrc": "597:58:62", - "nodeType": "YulExpressionStatement", - "src": "597:58:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "675:9:62", - "nodeType": "YulIdentifier", - "src": "675:9:62" - }, - { - "kind": "number", - "nativeSrc": "686:4:62", - "nodeType": "YulLiteral", - "src": "686:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "671:3:62", - "nodeType": "YulIdentifier", - "src": "671:3:62" - }, - "nativeSrc": "671:20:62", - "nodeType": "YulFunctionCall", - "src": "671:20:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "703:6:62", - "nodeType": "YulIdentifier", - "src": "703:6:62" - }, - { - "kind": "number", - "nativeSrc": "711:4:62", - "nodeType": "YulLiteral", - "src": "711:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "699:3:62", - "nodeType": "YulIdentifier", - "src": "699:3:62" - }, - "nativeSrc": "699:17:62", - "nodeType": "YulFunctionCall", - "src": "699:17:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "693:5:62", - "nodeType": "YulIdentifier", - "src": "693:5:62" - }, - "nativeSrc": "693:24:62", - "nodeType": "YulFunctionCall", - "src": "693:24:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "664:6:62", - "nodeType": "YulIdentifier", - "src": "664:6:62" - }, - "nativeSrc": "664:54:62", - "nodeType": "YulFunctionCall", - "src": "664:54:62" - }, - "nativeSrc": "664:54:62", - "nodeType": "YulExpressionStatement", - "src": "664:54:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "738:9:62", - "nodeType": "YulIdentifier", - "src": "738:9:62" - }, - { - "kind": "number", - "nativeSrc": "749:4:62", - "nodeType": "YulLiteral", - "src": "749:4:62", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "734:3:62", - "nodeType": "YulIdentifier", - "src": "734:3:62" - }, - "nativeSrc": "734:20:62", - "nodeType": "YulFunctionCall", - "src": "734:20:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "766:6:62", - "nodeType": "YulIdentifier", - "src": "766:6:62" - }, - { - "kind": "number", - "nativeSrc": "774:4:62", - "nodeType": "YulLiteral", - "src": "774:4:62", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "762:3:62", - "nodeType": "YulIdentifier", - "src": "762:3:62" - }, - "nativeSrc": "762:17:62", - "nodeType": "YulFunctionCall", - "src": "762:17:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "756:5:62", - "nodeType": "YulIdentifier", - "src": "756:5:62" - }, - "nativeSrc": "756:24:62", - "nodeType": "YulFunctionCall", - "src": "756:24:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "727:6:62", - "nodeType": "YulIdentifier", - "src": "727:6:62" - }, - "nativeSrc": "727:54:62", - "nodeType": "YulFunctionCall", - "src": "727:54:62" - }, - "nativeSrc": "727:54:62", - "nodeType": "YulExpressionStatement", - "src": "727:54:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "801:9:62", - "nodeType": "YulIdentifier", - "src": "801:9:62" - }, - { - "kind": "number", - "nativeSrc": "812:4:62", - "nodeType": "YulLiteral", - "src": "812:4:62", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "797:3:62", - "nodeType": "YulIdentifier", - "src": "797:3:62" - }, - "nativeSrc": "797:20:62", - "nodeType": "YulFunctionCall", - "src": "797:20:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "829:6:62", - "nodeType": "YulIdentifier", - "src": "829:6:62" - }, - { - "kind": "number", - "nativeSrc": "837:4:62", - "nodeType": "YulLiteral", - "src": "837:4:62", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "825:3:62", - "nodeType": "YulIdentifier", - "src": "825:3:62" - }, - "nativeSrc": "825:17:62", - "nodeType": "YulFunctionCall", - "src": "825:17:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "819:5:62", - "nodeType": "YulIdentifier", - "src": "819:5:62" - }, - "nativeSrc": "819:24:62", - "nodeType": "YulFunctionCall", - "src": "819:24:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "790:6:62", - "nodeType": "YulIdentifier", - "src": "790:6:62" - }, - "nativeSrc": "790:54:62", - "nodeType": "YulFunctionCall", - "src": "790:54:62" - }, - "nativeSrc": "790:54:62", - "nodeType": "YulExpressionStatement", - "src": "790:54:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "864:9:62", - "nodeType": "YulIdentifier", - "src": "864:9:62" - }, - { - "kind": "number", - "nativeSrc": "875:4:62", - "nodeType": "YulLiteral", - "src": "875:4:62", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "860:3:62", - "nodeType": "YulIdentifier", - "src": "860:3:62" - }, - "nativeSrc": "860:20:62", - "nodeType": "YulFunctionCall", - "src": "860:20:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "892:6:62", - "nodeType": "YulIdentifier", - "src": "892:6:62" - }, - { - "kind": "number", - "nativeSrc": "900:4:62", - "nodeType": "YulLiteral", - "src": "900:4:62", - "type": "", - "value": "0x80" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "888:3:62", - "nodeType": "YulIdentifier", - "src": "888:3:62" - }, - "nativeSrc": "888:17:62", - "nodeType": "YulFunctionCall", - "src": "888:17:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "882:5:62", - "nodeType": "YulIdentifier", - "src": "882:5:62" - }, - "nativeSrc": "882:24:62", - "nodeType": "YulFunctionCall", - "src": "882:24:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "853:6:62", - "nodeType": "YulIdentifier", - "src": "853:6:62" - }, - "nativeSrc": "853:54:62", - "nodeType": "YulFunctionCall", - "src": "853:54:62" - }, - "nativeSrc": "853:54:62", - "nodeType": "YulExpressionStatement", - "src": "853:54:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "927:9:62", - "nodeType": "YulIdentifier", - "src": "927:9:62" - }, - { - "kind": "number", - "nativeSrc": "938:4:62", - "nodeType": "YulLiteral", - "src": "938:4:62", - "type": "", - "value": "0xa0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "923:3:62", - "nodeType": "YulIdentifier", - "src": "923:3:62" - }, - "nativeSrc": "923:20:62", - "nodeType": "YulFunctionCall", - "src": "923:20:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "955:6:62", - "nodeType": "YulIdentifier", - "src": "955:6:62" - }, - { - "kind": "number", - "nativeSrc": "963:4:62", - "nodeType": "YulLiteral", - "src": "963:4:62", - "type": "", - "value": "0xa0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "951:3:62", - "nodeType": "YulIdentifier", - "src": "951:3:62" - }, - "nativeSrc": "951:17:62", - "nodeType": "YulFunctionCall", - "src": "951:17:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "945:5:62", - "nodeType": "YulIdentifier", - "src": "945:5:62" - }, - "nativeSrc": "945:24:62", - "nodeType": "YulFunctionCall", - "src": "945:24:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "916:6:62", - "nodeType": "YulIdentifier", - "src": "916:6:62" - }, - "nativeSrc": "916:54:62", - "nodeType": "YulFunctionCall", - "src": "916:54:62" - }, - "nativeSrc": "916:54:62", - "nodeType": "YulExpressionStatement", - "src": "916:54:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "990:9:62", - "nodeType": "YulIdentifier", - "src": "990:9:62" - }, - { - "kind": "number", - "nativeSrc": "1001:4:62", - "nodeType": "YulLiteral", - "src": "1001:4:62", - "type": "", - "value": "0xc0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "986:3:62", - "nodeType": "YulIdentifier", - "src": "986:3:62" - }, - "nativeSrc": "986:20:62", - "nodeType": "YulFunctionCall", - "src": "986:20:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1018:6:62", - "nodeType": "YulIdentifier", - "src": "1018:6:62" - }, - { - "kind": "number", - "nativeSrc": "1026:4:62", - "nodeType": "YulLiteral", - "src": "1026:4:62", - "type": "", - "value": "0xc0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1014:3:62", - "nodeType": "YulIdentifier", - "src": "1014:3:62" - }, - "nativeSrc": "1014:17:62", - "nodeType": "YulFunctionCall", - "src": "1014:17:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "1008:5:62", - "nodeType": "YulIdentifier", - "src": "1008:5:62" - }, - "nativeSrc": "1008:24:62", - "nodeType": "YulFunctionCall", - "src": "1008:24:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "979:6:62", - "nodeType": "YulIdentifier", - "src": "979:6:62" - }, - "nativeSrc": "979:54:62", - "nodeType": "YulFunctionCall", - "src": "979:54:62" - }, - "nativeSrc": "979:54:62", - "nodeType": "YulExpressionStatement", - "src": "979:54:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1053:9:62", - "nodeType": "YulIdentifier", - "src": "1053:9:62" - }, - { - "kind": "number", - "nativeSrc": "1064:4:62", - "nodeType": "YulLiteral", - "src": "1064:4:62", - "type": "", - "value": "0xe0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1049:3:62", - "nodeType": "YulIdentifier", - "src": "1049:3:62" - }, - "nativeSrc": "1049:20:62", - "nodeType": "YulFunctionCall", - "src": "1049:20:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1081:6:62", - "nodeType": "YulIdentifier", - "src": "1081:6:62" - }, - { - "kind": "number", - "nativeSrc": "1089:4:62", - "nodeType": "YulLiteral", - "src": "1089:4:62", - "type": "", - "value": "0xe0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1077:3:62", - "nodeType": "YulIdentifier", - "src": "1077:3:62" - }, - "nativeSrc": "1077:17:62", - "nodeType": "YulFunctionCall", - "src": "1077:17:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "1071:5:62", - "nodeType": "YulIdentifier", - "src": "1071:5:62" - }, - "nativeSrc": "1071:24:62", - "nodeType": "YulFunctionCall", - "src": "1071:24:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1042:6:62", - "nodeType": "YulIdentifier", - "src": "1042:6:62" - }, - "nativeSrc": "1042:54:62", - "nodeType": "YulFunctionCall", - "src": "1042:54:62" - }, - "nativeSrc": "1042:54:62", - "nodeType": "YulExpressionStatement", - "src": "1042:54:62" - } - ] - }, - "name": "abi_encode_tuple_t_struct$_State_$11307_memory_ptr__to_t_struct$_State_$11307_memory_ptr__fromStack_reversed", - "nativeSrc": "402:700:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "520:9:62", - "nodeType": "YulTypedName", - "src": "520:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "531:6:62", - "nodeType": "YulTypedName", - "src": "531:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "542:4:62", - "nodeType": "YulTypedName", - "src": "542:4:62", - "type": "" - } - ], - "src": "402:700:62" - }, - { - "body": { - "nativeSrc": "1208:76:62", - "nodeType": "YulBlock", - "src": "1208:76:62", - "statements": [ - { - "nativeSrc": "1218:26:62", - "nodeType": "YulAssignment", - "src": "1218:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1230:9:62", - "nodeType": "YulIdentifier", - "src": "1230:9:62" - }, - { - "kind": "number", - "nativeSrc": "1241:2:62", - "nodeType": "YulLiteral", - "src": "1241:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1226:3:62", - "nodeType": "YulIdentifier", - "src": "1226:3:62" - }, - "nativeSrc": "1226:18:62", - "nodeType": "YulFunctionCall", - "src": "1226:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1218:4:62", - "nodeType": "YulIdentifier", - "src": "1218:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1260:9:62", - "nodeType": "YulIdentifier", - "src": "1260:9:62" - }, - { - "name": "value0", - "nativeSrc": "1271:6:62", - "nodeType": "YulIdentifier", - "src": "1271:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1253:6:62", - "nodeType": "YulIdentifier", - "src": "1253:6:62" - }, - "nativeSrc": "1253:25:62", - "nodeType": "YulFunctionCall", - "src": "1253:25:62" - }, - "nativeSrc": "1253:25:62", - "nodeType": "YulExpressionStatement", - "src": "1253:25:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "1107:177:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1177:9:62", - "nodeType": "YulTypedName", - "src": "1177:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1188:6:62", - "nodeType": "YulTypedName", - "src": "1188:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1199:4:62", - "nodeType": "YulTypedName", - "src": "1199:4:62", - "type": "" - } - ], - "src": "1107:177:62" - }, - { - "body": { - "nativeSrc": "1474:206:62", - "nodeType": "YulBlock", - "src": "1474:206:62", - "statements": [ - { - "nativeSrc": "1484:27:62", - "nodeType": "YulAssignment", - "src": "1484:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1496:9:62", - "nodeType": "YulIdentifier", - "src": "1496:9:62" - }, - { - "kind": "number", - "nativeSrc": "1507:3:62", - "nodeType": "YulLiteral", - "src": "1507:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1492:3:62", - "nodeType": "YulIdentifier", - "src": "1492:3:62" - }, - "nativeSrc": "1492:19:62", - "nodeType": "YulFunctionCall", - "src": "1492:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "1484:4:62", - "nodeType": "YulIdentifier", - "src": "1484:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1527:9:62", - "nodeType": "YulIdentifier", - "src": "1527:9:62" - }, - { - "name": "value0", - "nativeSrc": "1538:6:62", - "nodeType": "YulIdentifier", - "src": "1538:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1520:6:62", - "nodeType": "YulIdentifier", - "src": "1520:6:62" - }, - "nativeSrc": "1520:25:62", - "nodeType": "YulFunctionCall", - "src": "1520:25:62" - }, - "nativeSrc": "1520:25:62", - "nodeType": "YulExpressionStatement", - "src": "1520:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1565:9:62", - "nodeType": "YulIdentifier", - "src": "1565:9:62" - }, - { - "kind": "number", - "nativeSrc": "1576:2:62", - "nodeType": "YulLiteral", - "src": "1576:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1561:3:62", - "nodeType": "YulIdentifier", - "src": "1561:3:62" - }, - "nativeSrc": "1561:18:62", - "nodeType": "YulFunctionCall", - "src": "1561:18:62" - }, - { - "name": "value1", - "nativeSrc": "1581:6:62", - "nodeType": "YulIdentifier", - "src": "1581:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1554:6:62", - "nodeType": "YulIdentifier", - "src": "1554:6:62" - }, - "nativeSrc": "1554:34:62", - "nodeType": "YulFunctionCall", - "src": "1554:34:62" - }, - "nativeSrc": "1554:34:62", - "nodeType": "YulExpressionStatement", - "src": "1554:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1608:9:62", - "nodeType": "YulIdentifier", - "src": "1608:9:62" - }, - { - "kind": "number", - "nativeSrc": "1619:2:62", - "nodeType": "YulLiteral", - "src": "1619:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1604:3:62", - "nodeType": "YulIdentifier", - "src": "1604:3:62" - }, - "nativeSrc": "1604:18:62", - "nodeType": "YulFunctionCall", - "src": "1604:18:62" - }, - { - "name": "value2", - "nativeSrc": "1624:6:62", - "nodeType": "YulIdentifier", - "src": "1624:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1597:6:62", - "nodeType": "YulIdentifier", - "src": "1597:6:62" - }, - "nativeSrc": "1597:34:62", - "nodeType": "YulFunctionCall", - "src": "1597:34:62" - }, - "nativeSrc": "1597:34:62", - "nodeType": "YulExpressionStatement", - "src": "1597:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1651:9:62", - "nodeType": "YulIdentifier", - "src": "1651:9:62" - }, - { - "kind": "number", - "nativeSrc": "1662:2:62", - "nodeType": "YulLiteral", - "src": "1662:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1647:3:62", - "nodeType": "YulIdentifier", - "src": "1647:3:62" - }, - "nativeSrc": "1647:18:62", - "nodeType": "YulFunctionCall", - "src": "1647:18:62" - }, - { - "name": "value3", - "nativeSrc": "1667:6:62", - "nodeType": "YulIdentifier", - "src": "1667:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1640:6:62", - "nodeType": "YulIdentifier", - "src": "1640:6:62" - }, - "nativeSrc": "1640:34:62", - "nodeType": "YulFunctionCall", - "src": "1640:34:62" - }, - "nativeSrc": "1640:34:62", - "nodeType": "YulExpressionStatement", - "src": "1640:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_bytes32_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "1289:391:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1419:9:62", - "nodeType": "YulTypedName", - "src": "1419:9:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "1430:6:62", - "nodeType": "YulTypedName", - "src": "1430:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "1438:6:62", - "nodeType": "YulTypedName", - "src": "1438:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1446:6:62", - "nodeType": "YulTypedName", - "src": "1446:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "1454:6:62", - "nodeType": "YulTypedName", - "src": "1454:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1465:4:62", - "nodeType": "YulTypedName", - "src": "1465:4:62", - "type": "" - } - ], - "src": "1289:391:62" - }, - { - "body": { - "nativeSrc": "1729:77:62", - "nodeType": "YulBlock", - "src": "1729:77:62", - "statements": [ - { - "body": { - "nativeSrc": "1784:16:62", - "nodeType": "YulBlock", - "src": "1784:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1793:1:62", - "nodeType": "YulLiteral", - "src": "1793:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1796:1:62", - "nodeType": "YulLiteral", - "src": "1796:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1786:6:62", - "nodeType": "YulIdentifier", - "src": "1786:6:62" - }, - "nativeSrc": "1786:12:62", - "nodeType": "YulFunctionCall", - "src": "1786:12:62" - }, - "nativeSrc": "1786:12:62", - "nodeType": "YulExpressionStatement", - "src": "1786:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1752:5:62", - "nodeType": "YulIdentifier", - "src": "1752:5:62" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1763:5:62", - "nodeType": "YulIdentifier", - "src": "1763:5:62" - }, - { - "kind": "number", - "nativeSrc": "1770:10:62", - "nodeType": "YulLiteral", - "src": "1770:10:62", - "type": "", - "value": "0xffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1759:3:62", - "nodeType": "YulIdentifier", - "src": "1759:3:62" - }, - "nativeSrc": "1759:22:62", - "nodeType": "YulFunctionCall", - "src": "1759:22:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "1749:2:62", - "nodeType": "YulIdentifier", - "src": "1749:2:62" - }, - "nativeSrc": "1749:33:62", - "nodeType": "YulFunctionCall", - "src": "1749:33:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "1742:6:62", - "nodeType": "YulIdentifier", - "src": "1742:6:62" - }, - "nativeSrc": "1742:41:62", - "nodeType": "YulFunctionCall", - "src": "1742:41:62" - }, - "nativeSrc": "1739:61:62", - "nodeType": "YulIf", - "src": "1739:61:62" - } - ] - }, - "name": "validator_revert_uint32", - "nativeSrc": "1685:121:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1718:5:62", - "nodeType": "YulTypedName", - "src": "1718:5:62", - "type": "" - } - ], - "src": "1685:121:62" - }, - { - "body": { - "nativeSrc": "1914:382:62", - "nodeType": "YulBlock", - "src": "1914:382:62", - "statements": [ - { - "body": { - "nativeSrc": "1960:16:62", - "nodeType": "YulBlock", - "src": "1960:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1969:1:62", - "nodeType": "YulLiteral", - "src": "1969:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1972:1:62", - "nodeType": "YulLiteral", - "src": "1972:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1962:6:62", - "nodeType": "YulIdentifier", - "src": "1962:6:62" - }, - "nativeSrc": "1962:12:62", - "nodeType": "YulFunctionCall", - "src": "1962:12:62" - }, - "nativeSrc": "1962:12:62", - "nodeType": "YulExpressionStatement", - "src": "1962:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1935:7:62", - "nodeType": "YulIdentifier", - "src": "1935:7:62" - }, - { - "name": "headStart", - "nativeSrc": "1944:9:62", - "nodeType": "YulIdentifier", - "src": "1944:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1931:3:62", - "nodeType": "YulIdentifier", - "src": "1931:3:62" - }, - "nativeSrc": "1931:23:62", - "nodeType": "YulFunctionCall", - "src": "1931:23:62" - }, - { - "kind": "number", - "nativeSrc": "1956:2:62", - "nodeType": "YulLiteral", - "src": "1956:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1927:3:62", - "nodeType": "YulIdentifier", - "src": "1927:3:62" - }, - "nativeSrc": "1927:32:62", - "nodeType": "YulFunctionCall", - "src": "1927:32:62" - }, - "nativeSrc": "1924:52:62", - "nodeType": "YulIf", - "src": "1924:52:62" - }, - { - "nativeSrc": "1985:14:62", - "nodeType": "YulVariableDeclaration", - "src": "1985:14:62", - "value": { - "kind": "number", - "nativeSrc": "1998:1:62", - "nodeType": "YulLiteral", - "src": "1998:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "1989:5:62", - "nodeType": "YulTypedName", - "src": "1989:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "2008:32:62", - "nodeType": "YulAssignment", - "src": "2008:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2030:9:62", - "nodeType": "YulIdentifier", - "src": "2030:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2017:12:62", - "nodeType": "YulIdentifier", - "src": "2017:12:62" - }, - "nativeSrc": "2017:23:62", - "nodeType": "YulFunctionCall", - "src": "2017:23:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "2008:5:62", - "nodeType": "YulIdentifier", - "src": "2008:5:62" - } - ] - }, - { - "nativeSrc": "2049:15:62", - "nodeType": "YulAssignment", - "src": "2049:15:62", - "value": { - "name": "value", - "nativeSrc": "2059:5:62", - "nodeType": "YulIdentifier", - "src": "2059:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2049:6:62", - "nodeType": "YulIdentifier", - "src": "2049:6:62" - } - ] - }, - { - "nativeSrc": "2073:47:62", - "nodeType": "YulVariableDeclaration", - "src": "2073:47:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2105:9:62", - "nodeType": "YulIdentifier", - "src": "2105:9:62" - }, - { - "kind": "number", - "nativeSrc": "2116:2:62", - "nodeType": "YulLiteral", - "src": "2116:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2101:3:62", - "nodeType": "YulIdentifier", - "src": "2101:3:62" - }, - "nativeSrc": "2101:18:62", - "nodeType": "YulFunctionCall", - "src": "2101:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2088:12:62", - "nodeType": "YulIdentifier", - "src": "2088:12:62" - }, - "nativeSrc": "2088:32:62", - "nodeType": "YulFunctionCall", - "src": "2088:32:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "2077:7:62", - "nodeType": "YulTypedName", - "src": "2077:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "2153:7:62", - "nodeType": "YulIdentifier", - "src": "2153:7:62" - } - ], - "functionName": { - "name": "validator_revert_uint32", - "nativeSrc": "2129:23:62", - "nodeType": "YulIdentifier", - "src": "2129:23:62" - }, - "nativeSrc": "2129:32:62", - "nodeType": "YulFunctionCall", - "src": "2129:32:62" - }, - "nativeSrc": "2129:32:62", - "nodeType": "YulExpressionStatement", - "src": "2129:32:62" - }, - { - "nativeSrc": "2170:17:62", - "nodeType": "YulAssignment", - "src": "2170:17:62", - "value": { - "name": "value_1", - "nativeSrc": "2180:7:62", - "nodeType": "YulIdentifier", - "src": "2180:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "2170:6:62", - "nodeType": "YulIdentifier", - "src": "2170:6:62" - } - ] - }, - { - "nativeSrc": "2196:16:62", - "nodeType": "YulVariableDeclaration", - "src": "2196:16:62", - "value": { - "kind": "number", - "nativeSrc": "2211:1:62", - "nodeType": "YulLiteral", - "src": "2211:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "2200:7:62", - "nodeType": "YulTypedName", - "src": "2200:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "2221:43:62", - "nodeType": "YulAssignment", - "src": "2221:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2249:9:62", - "nodeType": "YulIdentifier", - "src": "2249:9:62" - }, - { - "kind": "number", - "nativeSrc": "2260:2:62", - "nodeType": "YulLiteral", - "src": "2260:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2245:3:62", - "nodeType": "YulIdentifier", - "src": "2245:3:62" - }, - "nativeSrc": "2245:18:62", - "nodeType": "YulFunctionCall", - "src": "2245:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2232:12:62", - "nodeType": "YulIdentifier", - "src": "2232:12:62" - }, - "nativeSrc": "2232:32:62", - "nodeType": "YulFunctionCall", - "src": "2232:32:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "2221:7:62", - "nodeType": "YulIdentifier", - "src": "2221:7:62" - } - ] - }, - { - "nativeSrc": "2273:17:62", - "nodeType": "YulAssignment", - "src": "2273:17:62", - "value": { - "name": "value_2", - "nativeSrc": "2283:7:62", - "nodeType": "YulIdentifier", - "src": "2283:7:62" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "2273:6:62", - "nodeType": "YulIdentifier", - "src": "2273:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256t_uint32t_uint256", - "nativeSrc": "1811:485:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1864:9:62", - "nodeType": "YulTypedName", - "src": "1864:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1875:7:62", - "nodeType": "YulTypedName", - "src": "1875:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1887:6:62", - "nodeType": "YulTypedName", - "src": "1887:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1895:6:62", - "nodeType": "YulTypedName", - "src": "1895:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "1903:6:62", - "nodeType": "YulTypedName", - "src": "1903:6:62", - "type": "" - } - ], - "src": "1811:485:62" - }, - { - "body": { - "nativeSrc": "2370:176:62", - "nodeType": "YulBlock", - "src": "2370:176:62", - "statements": [ - { - "body": { - "nativeSrc": "2416:16:62", - "nodeType": "YulBlock", - "src": "2416:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2425:1:62", - "nodeType": "YulLiteral", - "src": "2425:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2428:1:62", - "nodeType": "YulLiteral", - "src": "2428:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2418:6:62", - "nodeType": "YulIdentifier", - "src": "2418:6:62" - }, - "nativeSrc": "2418:12:62", - "nodeType": "YulFunctionCall", - "src": "2418:12:62" - }, - "nativeSrc": "2418:12:62", - "nodeType": "YulExpressionStatement", - "src": "2418:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2391:7:62", - "nodeType": "YulIdentifier", - "src": "2391:7:62" - }, - { - "name": "headStart", - "nativeSrc": "2400:9:62", - "nodeType": "YulIdentifier", - "src": "2400:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2387:3:62", - "nodeType": "YulIdentifier", - "src": "2387:3:62" - }, - "nativeSrc": "2387:23:62", - "nodeType": "YulFunctionCall", - "src": "2387:23:62" - }, - { - "kind": "number", - "nativeSrc": "2412:2:62", - "nodeType": "YulLiteral", - "src": "2412:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2383:3:62", - "nodeType": "YulIdentifier", - "src": "2383:3:62" - }, - "nativeSrc": "2383:32:62", - "nodeType": "YulFunctionCall", - "src": "2383:32:62" - }, - "nativeSrc": "2380:52:62", - "nodeType": "YulIf", - "src": "2380:52:62" - }, - { - "nativeSrc": "2441:36:62", - "nodeType": "YulVariableDeclaration", - "src": "2441:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2467:9:62", - "nodeType": "YulIdentifier", - "src": "2467:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2454:12:62", - "nodeType": "YulIdentifier", - "src": "2454:12:62" - }, - "nativeSrc": "2454:23:62", - "nodeType": "YulFunctionCall", - "src": "2454:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "2445:5:62", - "nodeType": "YulTypedName", - "src": "2445:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "2510:5:62", - "nodeType": "YulIdentifier", - "src": "2510:5:62" - } - ], - "functionName": { - "name": "validator_revert_uint32", - "nativeSrc": "2486:23:62", - "nodeType": "YulIdentifier", - "src": "2486:23:62" - }, - "nativeSrc": "2486:30:62", - "nodeType": "YulFunctionCall", - "src": "2486:30:62" - }, - "nativeSrc": "2486:30:62", - "nodeType": "YulExpressionStatement", - "src": "2486:30:62" - }, - { - "nativeSrc": "2525:15:62", - "nodeType": "YulAssignment", - "src": "2525:15:62", - "value": { - "name": "value", - "nativeSrc": "2535:5:62", - "nodeType": "YulIdentifier", - "src": "2535:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2525:6:62", - "nodeType": "YulIdentifier", - "src": "2525:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint32", - "nativeSrc": "2301:245:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2336:9:62", - "nodeType": "YulTypedName", - "src": "2336:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "2347:7:62", - "nodeType": "YulTypedName", - "src": "2347:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "2359:6:62", - "nodeType": "YulTypedName", - "src": "2359:6:62", - "type": "" - } - ], - "src": "2301:245:62" - }, - { - "body": { - "nativeSrc": "2650:93:62", - "nodeType": "YulBlock", - "src": "2650:93:62", - "statements": [ - { - "nativeSrc": "2660:26:62", - "nodeType": "YulAssignment", - "src": "2660:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2672:9:62", - "nodeType": "YulIdentifier", - "src": "2672:9:62" - }, - { - "kind": "number", - "nativeSrc": "2683:2:62", - "nodeType": "YulLiteral", - "src": "2683:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2668:3:62", - "nodeType": "YulIdentifier", - "src": "2668:3:62" - }, - "nativeSrc": "2668:18:62", - "nodeType": "YulFunctionCall", - "src": "2668:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2660:4:62", - "nodeType": "YulIdentifier", - "src": "2660:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2702:9:62", - "nodeType": "YulIdentifier", - "src": "2702:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "2717:6:62", - "nodeType": "YulIdentifier", - "src": "2717:6:62" - }, - { - "kind": "number", - "nativeSrc": "2725:10:62", - "nodeType": "YulLiteral", - "src": "2725:10:62", - "type": "", - "value": "0xffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "2713:3:62", - "nodeType": "YulIdentifier", - "src": "2713:3:62" - }, - "nativeSrc": "2713:23:62", - "nodeType": "YulFunctionCall", - "src": "2713:23:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2695:6:62", - "nodeType": "YulIdentifier", - "src": "2695:6:62" - }, - "nativeSrc": "2695:42:62", - "nodeType": "YulFunctionCall", - "src": "2695:42:62" - }, - "nativeSrc": "2695:42:62", - "nodeType": "YulExpressionStatement", - "src": "2695:42:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed", - "nativeSrc": "2551:192:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2619:9:62", - "nodeType": "YulTypedName", - "src": "2619:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "2630:6:62", - "nodeType": "YulTypedName", - "src": "2630:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2641:4:62", - "nodeType": "YulTypedName", - "src": "2641:4:62", - "type": "" - } - ], - "src": "2551:192:62" - }, - { - "body": { - "nativeSrc": "2820:275:62", - "nodeType": "YulBlock", - "src": "2820:275:62", - "statements": [ - { - "body": { - "nativeSrc": "2869:16:62", - "nodeType": "YulBlock", - "src": "2869:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2878:1:62", - "nodeType": "YulLiteral", - "src": "2878:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2881:1:62", - "nodeType": "YulLiteral", - "src": "2881:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2871:6:62", - "nodeType": "YulIdentifier", - "src": "2871:6:62" - }, - "nativeSrc": "2871:12:62", - "nodeType": "YulFunctionCall", - "src": "2871:12:62" - }, - "nativeSrc": "2871:12:62", - "nodeType": "YulExpressionStatement", - "src": "2871:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2848:6:62", - "nodeType": "YulIdentifier", - "src": "2848:6:62" - }, - { - "kind": "number", - "nativeSrc": "2856:4:62", - "nodeType": "YulLiteral", - "src": "2856:4:62", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2844:3:62", - "nodeType": "YulIdentifier", - "src": "2844:3:62" - }, - "nativeSrc": "2844:17:62", - "nodeType": "YulFunctionCall", - "src": "2844:17:62" - }, - { - "name": "end", - "nativeSrc": "2863:3:62", - "nodeType": "YulIdentifier", - "src": "2863:3:62" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "2840:3:62", - "nodeType": "YulIdentifier", - "src": "2840:3:62" - }, - "nativeSrc": "2840:27:62", - "nodeType": "YulFunctionCall", - "src": "2840:27:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "2833:6:62", - "nodeType": "YulIdentifier", - "src": "2833:6:62" - }, - "nativeSrc": "2833:35:62", - "nodeType": "YulFunctionCall", - "src": "2833:35:62" - }, - "nativeSrc": "2830:55:62", - "nodeType": "YulIf", - "src": "2830:55:62" - }, - { - "nativeSrc": "2894:30:62", - "nodeType": "YulAssignment", - "src": "2894:30:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "2917:6:62", - "nodeType": "YulIdentifier", - "src": "2917:6:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2904:12:62", - "nodeType": "YulIdentifier", - "src": "2904:12:62" - }, - "nativeSrc": "2904:20:62", - "nodeType": "YulFunctionCall", - "src": "2904:20:62" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "2894:6:62", - "nodeType": "YulIdentifier", - "src": "2894:6:62" - } - ] - }, - { - "body": { - "nativeSrc": "2967:16:62", - "nodeType": "YulBlock", - "src": "2967:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "2976:1:62", - "nodeType": "YulLiteral", - "src": "2976:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "2979:1:62", - "nodeType": "YulLiteral", - "src": "2979:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "2969:6:62", - "nodeType": "YulIdentifier", - "src": "2969:6:62" - }, - "nativeSrc": "2969:12:62", - "nodeType": "YulFunctionCall", - "src": "2969:12:62" - }, - "nativeSrc": "2969:12:62", - "nodeType": "YulExpressionStatement", - "src": "2969:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "2939:6:62", - "nodeType": "YulIdentifier", - "src": "2939:6:62" - }, - { - "kind": "number", - "nativeSrc": "2947:18:62", - "nodeType": "YulLiteral", - "src": "2947:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2936:2:62", - "nodeType": "YulIdentifier", - "src": "2936:2:62" - }, - "nativeSrc": "2936:30:62", - "nodeType": "YulFunctionCall", - "src": "2936:30:62" - }, - "nativeSrc": "2933:50:62", - "nodeType": "YulIf", - "src": "2933:50:62" - }, - { - "nativeSrc": "2992:29:62", - "nodeType": "YulAssignment", - "src": "2992:29:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3008:6:62", - "nodeType": "YulIdentifier", - "src": "3008:6:62" - }, - { - "kind": "number", - "nativeSrc": "3016:4:62", - "nodeType": "YulLiteral", - "src": "3016:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3004:3:62", - "nodeType": "YulIdentifier", - "src": "3004:3:62" - }, - "nativeSrc": "3004:17:62", - "nodeType": "YulFunctionCall", - "src": "3004:17:62" - }, - "variableNames": [ - { - "name": "arrayPos", - "nativeSrc": "2992:8:62", - "nodeType": "YulIdentifier", - "src": "2992:8:62" - } - ] - }, - { - "body": { - "nativeSrc": "3073:16:62", - "nodeType": "YulBlock", - "src": "3073:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3082:1:62", - "nodeType": "YulLiteral", - "src": "3082:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3085:1:62", - "nodeType": "YulLiteral", - "src": "3085:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3075:6:62", - "nodeType": "YulIdentifier", - "src": "3075:6:62" - }, - "nativeSrc": "3075:12:62", - "nodeType": "YulFunctionCall", - "src": "3075:12:62" - }, - "nativeSrc": "3075:12:62", - "nodeType": "YulExpressionStatement", - "src": "3075:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3044:6:62", - "nodeType": "YulIdentifier", - "src": "3044:6:62" - }, - { - "name": "length", - "nativeSrc": "3052:6:62", - "nodeType": "YulIdentifier", - "src": "3052:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3040:3:62", - "nodeType": "YulIdentifier", - "src": "3040:3:62" - }, - "nativeSrc": "3040:19:62", - "nodeType": "YulFunctionCall", - "src": "3040:19:62" - }, - { - "kind": "number", - "nativeSrc": "3061:4:62", - "nodeType": "YulLiteral", - "src": "3061:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3036:3:62", - "nodeType": "YulIdentifier", - "src": "3036:3:62" - }, - "nativeSrc": "3036:30:62", - "nodeType": "YulFunctionCall", - "src": "3036:30:62" - }, - { - "name": "end", - "nativeSrc": "3068:3:62", - "nodeType": "YulIdentifier", - "src": "3068:3:62" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3033:2:62", - "nodeType": "YulIdentifier", - "src": "3033:2:62" - }, - "nativeSrc": "3033:39:62", - "nodeType": "YulFunctionCall", - "src": "3033:39:62" - }, - "nativeSrc": "3030:59:62", - "nodeType": "YulIf", - "src": "3030:59:62" - } - ] - }, - "name": "abi_decode_bytes_calldata", - "nativeSrc": "2748:347:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "2783:6:62", - "nodeType": "YulTypedName", - "src": "2783:6:62", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2791:3:62", - "nodeType": "YulTypedName", - "src": "2791:3:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "arrayPos", - "nativeSrc": "2799:8:62", - "nodeType": "YulTypedName", - "src": "2799:8:62", - "type": "" - }, - { - "name": "length", - "nativeSrc": "2809:6:62", - "nodeType": "YulTypedName", - "src": "2809:6:62", - "type": "" - } - ], - "src": "2748:347:62" - }, - { - "body": { - "nativeSrc": "3206:438:62", - "nodeType": "YulBlock", - "src": "3206:438:62", - "statements": [ - { - "body": { - "nativeSrc": "3252:16:62", - "nodeType": "YulBlock", - "src": "3252:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3261:1:62", - "nodeType": "YulLiteral", - "src": "3261:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3264:1:62", - "nodeType": "YulLiteral", - "src": "3264:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3254:6:62", - "nodeType": "YulIdentifier", - "src": "3254:6:62" - }, - "nativeSrc": "3254:12:62", - "nodeType": "YulFunctionCall", - "src": "3254:12:62" - }, - "nativeSrc": "3254:12:62", - "nodeType": "YulExpressionStatement", - "src": "3254:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3227:7:62", - "nodeType": "YulIdentifier", - "src": "3227:7:62" - }, - { - "name": "headStart", - "nativeSrc": "3236:9:62", - "nodeType": "YulIdentifier", - "src": "3236:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3223:3:62", - "nodeType": "YulIdentifier", - "src": "3223:3:62" - }, - "nativeSrc": "3223:23:62", - "nodeType": "YulFunctionCall", - "src": "3223:23:62" - }, - { - "kind": "number", - "nativeSrc": "3248:2:62", - "nodeType": "YulLiteral", - "src": "3248:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3219:3:62", - "nodeType": "YulIdentifier", - "src": "3219:3:62" - }, - "nativeSrc": "3219:32:62", - "nodeType": "YulFunctionCall", - "src": "3219:32:62" - }, - "nativeSrc": "3216:52:62", - "nodeType": "YulIf", - "src": "3216:52:62" - }, - { - "nativeSrc": "3277:36:62", - "nodeType": "YulVariableDeclaration", - "src": "3277:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3303:9:62", - "nodeType": "YulIdentifier", - "src": "3303:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3290:12:62", - "nodeType": "YulIdentifier", - "src": "3290:12:62" - }, - "nativeSrc": "3290:23:62", - "nodeType": "YulFunctionCall", - "src": "3290:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "3281:5:62", - "nodeType": "YulTypedName", - "src": "3281:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3347:5:62", - "nodeType": "YulIdentifier", - "src": "3347:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "3322:24:62", - "nodeType": "YulIdentifier", - "src": "3322:24:62" - }, - "nativeSrc": "3322:31:62", - "nodeType": "YulFunctionCall", - "src": "3322:31:62" - }, - "nativeSrc": "3322:31:62", - "nodeType": "YulExpressionStatement", - "src": "3322:31:62" - }, - { - "nativeSrc": "3362:15:62", - "nodeType": "YulAssignment", - "src": "3362:15:62", - "value": { - "name": "value", - "nativeSrc": "3372:5:62", - "nodeType": "YulIdentifier", - "src": "3372:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3362:6:62", - "nodeType": "YulIdentifier", - "src": "3362:6:62" - } - ] - }, - { - "nativeSrc": "3386:46:62", - "nodeType": "YulVariableDeclaration", - "src": "3386:46:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3417:9:62", - "nodeType": "YulIdentifier", - "src": "3417:9:62" - }, - { - "kind": "number", - "nativeSrc": "3428:2:62", - "nodeType": "YulLiteral", - "src": "3428:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3413:3:62", - "nodeType": "YulIdentifier", - "src": "3413:3:62" - }, - "nativeSrc": "3413:18:62", - "nodeType": "YulFunctionCall", - "src": "3413:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3400:12:62", - "nodeType": "YulIdentifier", - "src": "3400:12:62" - }, - "nativeSrc": "3400:32:62", - "nodeType": "YulFunctionCall", - "src": "3400:32:62" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3390:6:62", - "nodeType": "YulTypedName", - "src": "3390:6:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3475:16:62", - "nodeType": "YulBlock", - "src": "3475:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3484:1:62", - "nodeType": "YulLiteral", - "src": "3484:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3487:1:62", - "nodeType": "YulLiteral", - "src": "3487:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3477:6:62", - "nodeType": "YulIdentifier", - "src": "3477:6:62" - }, - "nativeSrc": "3477:12:62", - "nodeType": "YulFunctionCall", - "src": "3477:12:62" - }, - "nativeSrc": "3477:12:62", - "nodeType": "YulExpressionStatement", - "src": "3477:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "3447:6:62", - "nodeType": "YulIdentifier", - "src": "3447:6:62" - }, - { - "kind": "number", - "nativeSrc": "3455:18:62", - "nodeType": "YulLiteral", - "src": "3455:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "3444:2:62", - "nodeType": "YulIdentifier", - "src": "3444:2:62" - }, - "nativeSrc": "3444:30:62", - "nodeType": "YulFunctionCall", - "src": "3444:30:62" - }, - "nativeSrc": "3441:50:62", - "nodeType": "YulIf", - "src": "3441:50:62" - }, - { - "nativeSrc": "3500:84:62", - "nodeType": "YulVariableDeclaration", - "src": "3500:84:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3556:9:62", - "nodeType": "YulIdentifier", - "src": "3556:9:62" - }, - { - "name": "offset", - "nativeSrc": "3567:6:62", - "nodeType": "YulIdentifier", - "src": "3567:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3552:3:62", - "nodeType": "YulIdentifier", - "src": "3552:3:62" - }, - "nativeSrc": "3552:22:62", - "nodeType": "YulFunctionCall", - "src": "3552:22:62" - }, - { - "name": "dataEnd", - "nativeSrc": "3576:7:62", - "nodeType": "YulIdentifier", - "src": "3576:7:62" - } - ], - "functionName": { - "name": "abi_decode_bytes_calldata", - "nativeSrc": "3526:25:62", - "nodeType": "YulIdentifier", - "src": "3526:25:62" - }, - "nativeSrc": "3526:58:62", - "nodeType": "YulFunctionCall", - "src": "3526:58:62" - }, - "variables": [ - { - "name": "value1_1", - "nativeSrc": "3504:8:62", - "nodeType": "YulTypedName", - "src": "3504:8:62", - "type": "" - }, - { - "name": "value2_1", - "nativeSrc": "3514:8:62", - "nodeType": "YulTypedName", - "src": "3514:8:62", - "type": "" - } - ] - }, - { - "nativeSrc": "3593:18:62", - "nodeType": "YulAssignment", - "src": "3593:18:62", - "value": { - "name": "value1_1", - "nativeSrc": "3603:8:62", - "nodeType": "YulIdentifier", - "src": "3603:8:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "3593:6:62", - "nodeType": "YulIdentifier", - "src": "3593:6:62" - } - ] - }, - { - "nativeSrc": "3620:18:62", - "nodeType": "YulAssignment", - "src": "3620:18:62", - "value": { - "name": "value2_1", - "nativeSrc": "3630:8:62", - "nodeType": "YulIdentifier", - "src": "3630:8:62" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "3620:6:62", - "nodeType": "YulIdentifier", - "src": "3620:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bytes_calldata_ptr", - "nativeSrc": "3100:544:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3156:9:62", - "nodeType": "YulTypedName", - "src": "3156:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3167:7:62", - "nodeType": "YulTypedName", - "src": "3167:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3179:6:62", - "nodeType": "YulTypedName", - "src": "3179:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3187:6:62", - "nodeType": "YulTypedName", - "src": "3187:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "3195:6:62", - "nodeType": "YulTypedName", - "src": "3195:6:62", - "type": "" - } - ], - "src": "3100:544:62" - }, - { - "body": { - "nativeSrc": "3691:76:62", - "nodeType": "YulBlock", - "src": "3691:76:62", - "statements": [ - { - "body": { - "nativeSrc": "3745:16:62", - "nodeType": "YulBlock", - "src": "3745:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3754:1:62", - "nodeType": "YulLiteral", - "src": "3754:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3757:1:62", - "nodeType": "YulLiteral", - "src": "3757:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3747:6:62", - "nodeType": "YulIdentifier", - "src": "3747:6:62" - }, - "nativeSrc": "3747:12:62", - "nodeType": "YulFunctionCall", - "src": "3747:12:62" - }, - "nativeSrc": "3747:12:62", - "nodeType": "YulExpressionStatement", - "src": "3747:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3714:5:62", - "nodeType": "YulIdentifier", - "src": "3714:5:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "3735:5:62", - "nodeType": "YulIdentifier", - "src": "3735:5:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3728:6:62", - "nodeType": "YulIdentifier", - "src": "3728:6:62" - }, - "nativeSrc": "3728:13:62", - "nodeType": "YulFunctionCall", - "src": "3728:13:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3721:6:62", - "nodeType": "YulIdentifier", - "src": "3721:6:62" - }, - "nativeSrc": "3721:21:62", - "nodeType": "YulFunctionCall", - "src": "3721:21:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "3711:2:62", - "nodeType": "YulIdentifier", - "src": "3711:2:62" - }, - "nativeSrc": "3711:32:62", - "nodeType": "YulFunctionCall", - "src": "3711:32:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "3704:6:62", - "nodeType": "YulIdentifier", - "src": "3704:6:62" - }, - "nativeSrc": "3704:40:62", - "nodeType": "YulFunctionCall", - "src": "3704:40:62" - }, - "nativeSrc": "3701:60:62", - "nodeType": "YulIf", - "src": "3701:60:62" - } - ] - }, - "name": "validator_revert_bool", - "nativeSrc": "3649:118:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "3680:5:62", - "nodeType": "YulTypedName", - "src": "3680:5:62", - "type": "" - } - ], - "src": "3649:118:62" - }, - { - "body": { - "nativeSrc": "3856:298:62", - "nodeType": "YulBlock", - "src": "3856:298:62", - "statements": [ - { - "body": { - "nativeSrc": "3902:16:62", - "nodeType": "YulBlock", - "src": "3902:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3911:1:62", - "nodeType": "YulLiteral", - "src": "3911:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "3914:1:62", - "nodeType": "YulLiteral", - "src": "3914:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "3904:6:62", - "nodeType": "YulIdentifier", - "src": "3904:6:62" - }, - "nativeSrc": "3904:12:62", - "nodeType": "YulFunctionCall", - "src": "3904:12:62" - }, - "nativeSrc": "3904:12:62", - "nodeType": "YulExpressionStatement", - "src": "3904:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "3877:7:62", - "nodeType": "YulIdentifier", - "src": "3877:7:62" - }, - { - "name": "headStart", - "nativeSrc": "3886:9:62", - "nodeType": "YulIdentifier", - "src": "3886:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "3873:3:62", - "nodeType": "YulIdentifier", - "src": "3873:3:62" - }, - "nativeSrc": "3873:23:62", - "nodeType": "YulFunctionCall", - "src": "3873:23:62" - }, - { - "kind": "number", - "nativeSrc": "3898:2:62", - "nodeType": "YulLiteral", - "src": "3898:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3869:3:62", - "nodeType": "YulIdentifier", - "src": "3869:3:62" - }, - "nativeSrc": "3869:32:62", - "nodeType": "YulFunctionCall", - "src": "3869:32:62" - }, - "nativeSrc": "3866:52:62", - "nodeType": "YulIf", - "src": "3866:52:62" - }, - { - "nativeSrc": "3927:36:62", - "nodeType": "YulVariableDeclaration", - "src": "3927:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3953:9:62", - "nodeType": "YulIdentifier", - "src": "3953:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "3940:12:62", - "nodeType": "YulIdentifier", - "src": "3940:12:62" - }, - "nativeSrc": "3940:23:62", - "nodeType": "YulFunctionCall", - "src": "3940:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "3931:5:62", - "nodeType": "YulTypedName", - "src": "3931:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "3997:5:62", - "nodeType": "YulIdentifier", - "src": "3997:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "3972:24:62", - "nodeType": "YulIdentifier", - "src": "3972:24:62" - }, - "nativeSrc": "3972:31:62", - "nodeType": "YulFunctionCall", - "src": "3972:31:62" - }, - "nativeSrc": "3972:31:62", - "nodeType": "YulExpressionStatement", - "src": "3972:31:62" - }, - { - "nativeSrc": "4012:15:62", - "nodeType": "YulAssignment", - "src": "4012:15:62", - "value": { - "name": "value", - "nativeSrc": "4022:5:62", - "nodeType": "YulIdentifier", - "src": "4022:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4012:6:62", - "nodeType": "YulIdentifier", - "src": "4012:6:62" - } - ] - }, - { - "nativeSrc": "4036:47:62", - "nodeType": "YulVariableDeclaration", - "src": "4036:47:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4068:9:62", - "nodeType": "YulIdentifier", - "src": "4068:9:62" - }, - { - "kind": "number", - "nativeSrc": "4079:2:62", - "nodeType": "YulLiteral", - "src": "4079:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4064:3:62", - "nodeType": "YulIdentifier", - "src": "4064:3:62" - }, - "nativeSrc": "4064:18:62", - "nodeType": "YulFunctionCall", - "src": "4064:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4051:12:62", - "nodeType": "YulIdentifier", - "src": "4051:12:62" - }, - "nativeSrc": "4051:32:62", - "nodeType": "YulFunctionCall", - "src": "4051:32:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "4040:7:62", - "nodeType": "YulTypedName", - "src": "4040:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "4114:7:62", - "nodeType": "YulIdentifier", - "src": "4114:7:62" - } - ], - "functionName": { - "name": "validator_revert_bool", - "nativeSrc": "4092:21:62", - "nodeType": "YulIdentifier", - "src": "4092:21:62" - }, - "nativeSrc": "4092:30:62", - "nodeType": "YulFunctionCall", - "src": "4092:30:62" - }, - "nativeSrc": "4092:30:62", - "nodeType": "YulExpressionStatement", - "src": "4092:30:62" - }, - { - "nativeSrc": "4131:17:62", - "nodeType": "YulAssignment", - "src": "4131:17:62", - "value": { - "name": "value_1", - "nativeSrc": "4141:7:62", - "nodeType": "YulIdentifier", - "src": "4141:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "4131:6:62", - "nodeType": "YulIdentifier", - "src": "4131:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_bool", - "nativeSrc": "3772:382:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3814:9:62", - "nodeType": "YulTypedName", - "src": "3814:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3825:7:62", - "nodeType": "YulTypedName", - "src": "3825:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3837:6:62", - "nodeType": "YulTypedName", - "src": "3837:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "3845:6:62", - "nodeType": "YulTypedName", - "src": "3845:6:62", - "type": "" - } - ], - "src": "3772:382:62" - }, - { - "body": { - "nativeSrc": "4229:156:62", - "nodeType": "YulBlock", - "src": "4229:156:62", - "statements": [ - { - "body": { - "nativeSrc": "4275:16:62", - "nodeType": "YulBlock", - "src": "4275:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4284:1:62", - "nodeType": "YulLiteral", - "src": "4284:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "4287:1:62", - "nodeType": "YulLiteral", - "src": "4287:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "4277:6:62", - "nodeType": "YulIdentifier", - "src": "4277:6:62" - }, - "nativeSrc": "4277:12:62", - "nodeType": "YulFunctionCall", - "src": "4277:12:62" - }, - "nativeSrc": "4277:12:62", - "nodeType": "YulExpressionStatement", - "src": "4277:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4250:7:62", - "nodeType": "YulIdentifier", - "src": "4250:7:62" - }, - { - "name": "headStart", - "nativeSrc": "4259:9:62", - "nodeType": "YulIdentifier", - "src": "4259:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4246:3:62", - "nodeType": "YulIdentifier", - "src": "4246:3:62" - }, - "nativeSrc": "4246:23:62", - "nodeType": "YulFunctionCall", - "src": "4246:23:62" - }, - { - "kind": "number", - "nativeSrc": "4271:2:62", - "nodeType": "YulLiteral", - "src": "4271:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4242:3:62", - "nodeType": "YulIdentifier", - "src": "4242:3:62" - }, - "nativeSrc": "4242:32:62", - "nodeType": "YulFunctionCall", - "src": "4242:32:62" - }, - "nativeSrc": "4239:52:62", - "nodeType": "YulIf", - "src": "4239:52:62" - }, - { - "nativeSrc": "4300:14:62", - "nodeType": "YulVariableDeclaration", - "src": "4300:14:62", - "value": { - "kind": "number", - "nativeSrc": "4313:1:62", - "nodeType": "YulLiteral", - "src": "4313:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "4304:5:62", - "nodeType": "YulTypedName", - "src": "4304:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "4323:32:62", - "nodeType": "YulAssignment", - "src": "4323:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4345:9:62", - "nodeType": "YulIdentifier", - "src": "4345:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4332:12:62", - "nodeType": "YulIdentifier", - "src": "4332:12:62" - }, - "nativeSrc": "4332:23:62", - "nodeType": "YulFunctionCall", - "src": "4332:23:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "4323:5:62", - "nodeType": "YulIdentifier", - "src": "4323:5:62" - } - ] - }, - { - "nativeSrc": "4364:15:62", - "nodeType": "YulAssignment", - "src": "4364:15:62", - "value": { - "name": "value", - "nativeSrc": "4374:5:62", - "nodeType": "YulIdentifier", - "src": "4374:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4364:6:62", - "nodeType": "YulIdentifier", - "src": "4364:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "4159:226:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4195:9:62", - "nodeType": "YulTypedName", - "src": "4195:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4206:7:62", - "nodeType": "YulTypedName", - "src": "4206:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4218:6:62", - "nodeType": "YulTypedName", - "src": "4218:6:62", - "type": "" - } - ], - "src": "4159:226:62" - }, - { - "body": { - "nativeSrc": "4485:92:62", - "nodeType": "YulBlock", - "src": "4485:92:62", - "statements": [ - { - "nativeSrc": "4495:26:62", - "nodeType": "YulAssignment", - "src": "4495:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4507:9:62", - "nodeType": "YulIdentifier", - "src": "4507:9:62" - }, - { - "kind": "number", - "nativeSrc": "4518:2:62", - "nodeType": "YulLiteral", - "src": "4518:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4503:3:62", - "nodeType": "YulIdentifier", - "src": "4503:3:62" - }, - "nativeSrc": "4503:18:62", - "nodeType": "YulFunctionCall", - "src": "4503:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4495:4:62", - "nodeType": "YulIdentifier", - "src": "4495:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4537:9:62", - "nodeType": "YulIdentifier", - "src": "4537:9:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4562:6:62", - "nodeType": "YulIdentifier", - "src": "4562:6:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "4555:6:62", - "nodeType": "YulIdentifier", - "src": "4555:6:62" - }, - "nativeSrc": "4555:14:62", - "nodeType": "YulFunctionCall", - "src": "4555:14:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "4548:6:62", - "nodeType": "YulIdentifier", - "src": "4548:6:62" - }, - "nativeSrc": "4548:22:62", - "nodeType": "YulFunctionCall", - "src": "4548:22:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4530:6:62", - "nodeType": "YulIdentifier", - "src": "4530:6:62" - }, - "nativeSrc": "4530:41:62", - "nodeType": "YulFunctionCall", - "src": "4530:41:62" - }, - "nativeSrc": "4530:41:62", - "nodeType": "YulExpressionStatement", - "src": "4530:41:62" - } - ] - }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nativeSrc": "4390:187:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4454:9:62", - "nodeType": "YulTypedName", - "src": "4454:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4465:6:62", - "nodeType": "YulTypedName", - "src": "4465:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4476:4:62", - "nodeType": "YulTypedName", - "src": "4476:4:62", - "type": "" - } - ], - "src": "4390:187:62" - }, - { - "body": { - "nativeSrc": "4652:156:62", - "nodeType": "YulBlock", - "src": "4652:156:62", - "statements": [ - { - "body": { - "nativeSrc": "4698:16:62", - "nodeType": "YulBlock", - "src": "4698:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4707:1:62", - "nodeType": "YulLiteral", - "src": "4707:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "4710:1:62", - "nodeType": "YulLiteral", - "src": "4710:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "4700:6:62", - "nodeType": "YulIdentifier", - "src": "4700:6:62" - }, - "nativeSrc": "4700:12:62", - "nodeType": "YulFunctionCall", - "src": "4700:12:62" - }, - "nativeSrc": "4700:12:62", - "nodeType": "YulExpressionStatement", - "src": "4700:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "4673:7:62", - "nodeType": "YulIdentifier", - "src": "4673:7:62" - }, - { - "name": "headStart", - "nativeSrc": "4682:9:62", - "nodeType": "YulIdentifier", - "src": "4682:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4669:3:62", - "nodeType": "YulIdentifier", - "src": "4669:3:62" - }, - "nativeSrc": "4669:23:62", - "nodeType": "YulFunctionCall", - "src": "4669:23:62" - }, - { - "kind": "number", - "nativeSrc": "4694:2:62", - "nodeType": "YulLiteral", - "src": "4694:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "4665:3:62", - "nodeType": "YulIdentifier", - "src": "4665:3:62" - }, - "nativeSrc": "4665:32:62", - "nodeType": "YulFunctionCall", - "src": "4665:32:62" - }, - "nativeSrc": "4662:52:62", - "nodeType": "YulIf", - "src": "4662:52:62" - }, - { - "nativeSrc": "4723:14:62", - "nodeType": "YulVariableDeclaration", - "src": "4723:14:62", - "value": { - "kind": "number", - "nativeSrc": "4736:1:62", - "nodeType": "YulLiteral", - "src": "4736:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "4727:5:62", - "nodeType": "YulTypedName", - "src": "4727:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "4746:32:62", - "nodeType": "YulAssignment", - "src": "4746:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4768:9:62", - "nodeType": "YulIdentifier", - "src": "4768:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "4755:12:62", - "nodeType": "YulIdentifier", - "src": "4755:12:62" - }, - "nativeSrc": "4755:23:62", - "nodeType": "YulFunctionCall", - "src": "4755:23:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "4746:5:62", - "nodeType": "YulIdentifier", - "src": "4746:5:62" - } - ] - }, - { - "nativeSrc": "4787:15:62", - "nodeType": "YulAssignment", - "src": "4787:15:62", - "value": { - "name": "value", - "nativeSrc": "4797:5:62", - "nodeType": "YulIdentifier", - "src": "4797:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "4787:6:62", - "nodeType": "YulIdentifier", - "src": "4787:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nativeSrc": "4582:226:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4618:9:62", - "nodeType": "YulTypedName", - "src": "4618:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "4629:7:62", - "nodeType": "YulTypedName", - "src": "4629:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "4641:6:62", - "nodeType": "YulTypedName", - "src": "4641:6:62", - "type": "" - } - ], - "src": "4582:226:62" - }, - { - "body": { - "nativeSrc": "4938:153:62", - "nodeType": "YulBlock", - "src": "4938:153:62", - "statements": [ - { - "nativeSrc": "4948:26:62", - "nodeType": "YulAssignment", - "src": "4948:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4960:9:62", - "nodeType": "YulIdentifier", - "src": "4960:9:62" - }, - { - "kind": "number", - "nativeSrc": "4971:2:62", - "nodeType": "YulLiteral", - "src": "4971:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4956:3:62", - "nodeType": "YulIdentifier", - "src": "4956:3:62" - }, - "nativeSrc": "4956:18:62", - "nodeType": "YulFunctionCall", - "src": "4956:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4948:4:62", - "nodeType": "YulIdentifier", - "src": "4948:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4990:9:62", - "nodeType": "YulIdentifier", - "src": "4990:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "5005:6:62", - "nodeType": "YulIdentifier", - "src": "5005:6:62" - }, - { - "kind": "number", - "nativeSrc": "5013:10:62", - "nodeType": "YulLiteral", - "src": "5013:10:62", - "type": "", - "value": "0xffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "5001:3:62", - "nodeType": "YulIdentifier", - "src": "5001:3:62" - }, - "nativeSrc": "5001:23:62", - "nodeType": "YulFunctionCall", - "src": "5001:23:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4983:6:62", - "nodeType": "YulIdentifier", - "src": "4983:6:62" - }, - "nativeSrc": "4983:42:62", - "nodeType": "YulFunctionCall", - "src": "4983:42:62" - }, - "nativeSrc": "4983:42:62", - "nodeType": "YulExpressionStatement", - "src": "4983:42:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5045:9:62", - "nodeType": "YulIdentifier", - "src": "5045:9:62" - }, - { - "kind": "number", - "nativeSrc": "5056:2:62", - "nodeType": "YulLiteral", - "src": "5056:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5041:3:62", - "nodeType": "YulIdentifier", - "src": "5041:3:62" - }, - "nativeSrc": "5041:18:62", - "nodeType": "YulFunctionCall", - "src": "5041:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "5065:6:62", - "nodeType": "YulIdentifier", - "src": "5065:6:62" - }, - { - "kind": "number", - "nativeSrc": "5073:10:62", - "nodeType": "YulLiteral", - "src": "5073:10:62", - "type": "", - "value": "0xffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "5061:3:62", - "nodeType": "YulIdentifier", - "src": "5061:3:62" - }, - "nativeSrc": "5061:23:62", - "nodeType": "YulFunctionCall", - "src": "5061:23:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5034:6:62", - "nodeType": "YulIdentifier", - "src": "5034:6:62" - }, - "nativeSrc": "5034:51:62", - "nodeType": "YulFunctionCall", - "src": "5034:51:62" - }, - "nativeSrc": "5034:51:62", - "nodeType": "YulExpressionStatement", - "src": "5034:51:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint32_t_uint32__to_t_uint32_t_uint32__fromStack_reversed", - "nativeSrc": "4813:278:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4899:9:62", - "nodeType": "YulTypedName", - "src": "4899:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "4910:6:62", - "nodeType": "YulTypedName", - "src": "4910:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4918:6:62", - "nodeType": "YulTypedName", - "src": "4918:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4929:4:62", - "nodeType": "YulTypedName", - "src": "4929:4:62", - "type": "" - } - ], - "src": "4813:278:62" - }, - { - "body": { - "nativeSrc": "5162:184:62", - "nodeType": "YulBlock", - "src": "5162:184:62", - "statements": [ - { - "nativeSrc": "5172:10:62", - "nodeType": "YulVariableDeclaration", - "src": "5172:10:62", - "value": { - "kind": "number", - "nativeSrc": "5181:1:62", - "nodeType": "YulLiteral", - "src": "5181:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "5176:1:62", - "nodeType": "YulTypedName", - "src": "5176:1:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5241:63:62", - "nodeType": "YulBlock", - "src": "5241:63:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "5266:3:62", - "nodeType": "YulIdentifier", - "src": "5266:3:62" - }, - { - "name": "i", - "nativeSrc": "5271:1:62", - "nodeType": "YulIdentifier", - "src": "5271:1:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5262:3:62", - "nodeType": "YulIdentifier", - "src": "5262:3:62" - }, - "nativeSrc": "5262:11:62", - "nodeType": "YulFunctionCall", - "src": "5262:11:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "5285:3:62", - "nodeType": "YulIdentifier", - "src": "5285:3:62" - }, - { - "name": "i", - "nativeSrc": "5290:1:62", - "nodeType": "YulIdentifier", - "src": "5290:1:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5281:3:62", - "nodeType": "YulIdentifier", - "src": "5281:3:62" - }, - "nativeSrc": "5281:11:62", - "nodeType": "YulFunctionCall", - "src": "5281:11:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5275:5:62", - "nodeType": "YulIdentifier", - "src": "5275:5:62" - }, - "nativeSrc": "5275:18:62", - "nodeType": "YulFunctionCall", - "src": "5275:18:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5255:6:62", - "nodeType": "YulIdentifier", - "src": "5255:6:62" - }, - "nativeSrc": "5255:39:62", - "nodeType": "YulFunctionCall", - "src": "5255:39:62" - }, - "nativeSrc": "5255:39:62", - "nodeType": "YulExpressionStatement", - "src": "5255:39:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "5202:1:62", - "nodeType": "YulIdentifier", - "src": "5202:1:62" - }, - { - "name": "length", - "nativeSrc": "5205:6:62", - "nodeType": "YulIdentifier", - "src": "5205:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5199:2:62", - "nodeType": "YulIdentifier", - "src": "5199:2:62" - }, - "nativeSrc": "5199:13:62", - "nodeType": "YulFunctionCall", - "src": "5199:13:62" - }, - "nativeSrc": "5191:113:62", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "5213:19:62", - "nodeType": "YulBlock", - "src": "5213:19:62", - "statements": [ - { - "nativeSrc": "5215:15:62", - "nodeType": "YulAssignment", - "src": "5215:15:62", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "5224:1:62", - "nodeType": "YulIdentifier", - "src": "5224:1:62" - }, - { - "kind": "number", - "nativeSrc": "5227:2:62", - "nodeType": "YulLiteral", - "src": "5227:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5220:3:62", - "nodeType": "YulIdentifier", - "src": "5220:3:62" - }, - "nativeSrc": "5220:10:62", - "nodeType": "YulFunctionCall", - "src": "5220:10:62" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "5215:1:62", - "nodeType": "YulIdentifier", - "src": "5215:1:62" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "5195:3:62", - "nodeType": "YulBlock", - "src": "5195:3:62", - "statements": [] - }, - "src": "5191:113:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "5324:3:62", - "nodeType": "YulIdentifier", - "src": "5324:3:62" - }, - { - "name": "length", - "nativeSrc": "5329:6:62", - "nodeType": "YulIdentifier", - "src": "5329:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5320:3:62", - "nodeType": "YulIdentifier", - "src": "5320:3:62" - }, - "nativeSrc": "5320:16:62", - "nodeType": "YulFunctionCall", - "src": "5320:16:62" - }, - { - "kind": "number", - "nativeSrc": "5338:1:62", - "nodeType": "YulLiteral", - "src": "5338:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5313:6:62", - "nodeType": "YulIdentifier", - "src": "5313:6:62" - }, - "nativeSrc": "5313:27:62", - "nodeType": "YulFunctionCall", - "src": "5313:27:62" - }, - "nativeSrc": "5313:27:62", - "nodeType": "YulExpressionStatement", - "src": "5313:27:62" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5096:250:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "5140:3:62", - "nodeType": "YulTypedName", - "src": "5140:3:62", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "5145:3:62", - "nodeType": "YulTypedName", - "src": "5145:3:62", - "type": "" - }, - { - "name": "length", - "nativeSrc": "5150:6:62", - "nodeType": "YulTypedName", - "src": "5150:6:62", - "type": "" - } - ], - "src": "5096:250:62" - }, - { - "body": { - "nativeSrc": "5401:221:62", - "nodeType": "YulBlock", - "src": "5401:221:62", - "statements": [ - { - "nativeSrc": "5411:26:62", - "nodeType": "YulVariableDeclaration", - "src": "5411:26:62", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "5431:5:62", - "nodeType": "YulIdentifier", - "src": "5431:5:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5425:5:62", - "nodeType": "YulIdentifier", - "src": "5425:5:62" - }, - "nativeSrc": "5425:12:62", - "nodeType": "YulFunctionCall", - "src": "5425:12:62" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "5415:6:62", - "nodeType": "YulTypedName", - "src": "5415:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5453:3:62", - "nodeType": "YulIdentifier", - "src": "5453:3:62" - }, - { - "name": "length", - "nativeSrc": "5458:6:62", - "nodeType": "YulIdentifier", - "src": "5458:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5446:6:62", - "nodeType": "YulIdentifier", - "src": "5446:6:62" - }, - "nativeSrc": "5446:19:62", - "nodeType": "YulFunctionCall", - "src": "5446:19:62" - }, - "nativeSrc": "5446:19:62", - "nodeType": "YulExpressionStatement", - "src": "5446:19:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5513:5:62", - "nodeType": "YulIdentifier", - "src": "5513:5:62" - }, - { - "kind": "number", - "nativeSrc": "5520:4:62", - "nodeType": "YulLiteral", - "src": "5520:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5509:3:62", - "nodeType": "YulIdentifier", - "src": "5509:3:62" - }, - "nativeSrc": "5509:16:62", - "nodeType": "YulFunctionCall", - "src": "5509:16:62" - }, - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5531:3:62", - "nodeType": "YulIdentifier", - "src": "5531:3:62" - }, - { - "kind": "number", - "nativeSrc": "5536:4:62", - "nodeType": "YulLiteral", - "src": "5536:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5527:3:62", - "nodeType": "YulIdentifier", - "src": "5527:3:62" - }, - "nativeSrc": "5527:14:62", - "nodeType": "YulFunctionCall", - "src": "5527:14:62" - }, - { - "name": "length", - "nativeSrc": "5543:6:62", - "nodeType": "YulIdentifier", - "src": "5543:6:62" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "5474:34:62", - "nodeType": "YulIdentifier", - "src": "5474:34:62" - }, - "nativeSrc": "5474:76:62", - "nodeType": "YulFunctionCall", - "src": "5474:76:62" - }, - "nativeSrc": "5474:76:62", - "nodeType": "YulExpressionStatement", - "src": "5474:76:62" - }, - { - "nativeSrc": "5559:57:62", - "nodeType": "YulAssignment", - "src": "5559:57:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "5574:3:62", - "nodeType": "YulIdentifier", - "src": "5574:3:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "5587:6:62", - "nodeType": "YulIdentifier", - "src": "5587:6:62" - }, - { - "kind": "number", - "nativeSrc": "5595:2:62", - "nodeType": "YulLiteral", - "src": "5595:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5583:3:62", - "nodeType": "YulIdentifier", - "src": "5583:3:62" - }, - "nativeSrc": "5583:15:62", - "nodeType": "YulFunctionCall", - "src": "5583:15:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5604:2:62", - "nodeType": "YulLiteral", - "src": "5604:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "5600:3:62", - "nodeType": "YulIdentifier", - "src": "5600:3:62" - }, - "nativeSrc": "5600:7:62", - "nodeType": "YulFunctionCall", - "src": "5600:7:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "5579:3:62", - "nodeType": "YulIdentifier", - "src": "5579:3:62" - }, - "nativeSrc": "5579:29:62", - "nodeType": "YulFunctionCall", - "src": "5579:29:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5570:3:62", - "nodeType": "YulIdentifier", - "src": "5570:3:62" - }, - "nativeSrc": "5570:39:62", - "nodeType": "YulFunctionCall", - "src": "5570:39:62" - }, - { - "kind": "number", - "nativeSrc": "5611:4:62", - "nodeType": "YulLiteral", - "src": "5611:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5566:3:62", - "nodeType": "YulIdentifier", - "src": "5566:3:62" - }, - "nativeSrc": "5566:50:62", - "nodeType": "YulFunctionCall", - "src": "5566:50:62" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "5559:3:62", - "nodeType": "YulIdentifier", - "src": "5559:3:62" - } - ] - } - ] - }, - "name": "abi_encode_string", - "nativeSrc": "5351:271:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "5378:5:62", - "nodeType": "YulTypedName", - "src": "5378:5:62", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "5385:3:62", - "nodeType": "YulTypedName", - "src": "5385:3:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "5393:3:62", - "nodeType": "YulTypedName", - "src": "5393:3:62", - "type": "" - } - ], - "src": "5351:271:62" - }, - { - "body": { - "nativeSrc": "5824:257:62", - "nodeType": "YulBlock", - "src": "5824:257:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5841:9:62", - "nodeType": "YulIdentifier", - "src": "5841:9:62" - }, - { - "name": "value0", - "nativeSrc": "5852:6:62", - "nodeType": "YulIdentifier", - "src": "5852:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5834:6:62", - "nodeType": "YulIdentifier", - "src": "5834:6:62" - }, - "nativeSrc": "5834:25:62", - "nodeType": "YulFunctionCall", - "src": "5834:25:62" - }, - "nativeSrc": "5834:25:62", - "nodeType": "YulExpressionStatement", - "src": "5834:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5879:9:62", - "nodeType": "YulIdentifier", - "src": "5879:9:62" - }, - { - "kind": "number", - "nativeSrc": "5890:2:62", - "nodeType": "YulLiteral", - "src": "5890:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5875:3:62", - "nodeType": "YulIdentifier", - "src": "5875:3:62" - }, - "nativeSrc": "5875:18:62", - "nodeType": "YulFunctionCall", - "src": "5875:18:62" - }, - { - "kind": "number", - "nativeSrc": "5895:2:62", - "nodeType": "YulLiteral", - "src": "5895:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5868:6:62", - "nodeType": "YulIdentifier", - "src": "5868:6:62" - }, - "nativeSrc": "5868:30:62", - "nodeType": "YulFunctionCall", - "src": "5868:30:62" - }, - "nativeSrc": "5868:30:62", - "nodeType": "YulExpressionStatement", - "src": "5868:30:62" - }, - { - "nativeSrc": "5907:59:62", - "nodeType": "YulVariableDeclaration", - "src": "5907:59:62", - "value": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "5939:6:62", - "nodeType": "YulIdentifier", - "src": "5939:6:62" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5951:9:62", - "nodeType": "YulIdentifier", - "src": "5951:9:62" - }, - { - "kind": "number", - "nativeSrc": "5962:2:62", - "nodeType": "YulLiteral", - "src": "5962:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5947:3:62", - "nodeType": "YulIdentifier", - "src": "5947:3:62" - }, - "nativeSrc": "5947:18:62", - "nodeType": "YulFunctionCall", - "src": "5947:18:62" - } - ], - "functionName": { - "name": "abi_encode_string", - "nativeSrc": "5921:17:62", - "nodeType": "YulIdentifier", - "src": "5921:17:62" - }, - "nativeSrc": "5921:45:62", - "nodeType": "YulFunctionCall", - "src": "5921:45:62" - }, - "variables": [ - { - "name": "tail_1", - "nativeSrc": "5911:6:62", - "nodeType": "YulTypedName", - "src": "5911:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "5986:9:62", - "nodeType": "YulIdentifier", - "src": "5986:9:62" - }, - { - "kind": "number", - "nativeSrc": "5997:2:62", - "nodeType": "YulLiteral", - "src": "5997:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5982:3:62", - "nodeType": "YulIdentifier", - "src": "5982:3:62" - }, - "nativeSrc": "5982:18:62", - "nodeType": "YulFunctionCall", - "src": "5982:18:62" - }, - { - "arguments": [ - { - "name": "tail_1", - "nativeSrc": "6006:6:62", - "nodeType": "YulIdentifier", - "src": "6006:6:62" - }, - { - "name": "headStart", - "nativeSrc": "6014:9:62", - "nodeType": "YulIdentifier", - "src": "6014:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6002:3:62", - "nodeType": "YulIdentifier", - "src": "6002:3:62" - }, - "nativeSrc": "6002:22:62", - "nodeType": "YulFunctionCall", - "src": "6002:22:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5975:6:62", - "nodeType": "YulIdentifier", - "src": "5975:6:62" - }, - "nativeSrc": "5975:50:62", - "nodeType": "YulFunctionCall", - "src": "5975:50:62" - }, - "nativeSrc": "5975:50:62", - "nodeType": "YulExpressionStatement", - "src": "5975:50:62" - }, - { - "nativeSrc": "6034:41:62", - "nodeType": "YulAssignment", - "src": "6034:41:62", - "value": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "6060:6:62", - "nodeType": "YulIdentifier", - "src": "6060:6:62" - }, - { - "name": "tail_1", - "nativeSrc": "6068:6:62", - "nodeType": "YulIdentifier", - "src": "6068:6:62" - } - ], - "functionName": { - "name": "abi_encode_string", - "nativeSrc": "6042:17:62", - "nodeType": "YulIdentifier", - "src": "6042:17:62" - }, - "nativeSrc": "6042:33:62", - "nodeType": "YulFunctionCall", - "src": "6042:33:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "6034:4:62", - "nodeType": "YulIdentifier", - "src": "6034:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "5627:454:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "5777:9:62", - "nodeType": "YulTypedName", - "src": "5777:9:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "5788:6:62", - "nodeType": "YulTypedName", - "src": "5788:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "5796:6:62", - "nodeType": "YulTypedName", - "src": "5796:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "5804:6:62", - "nodeType": "YulTypedName", - "src": "5804:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "5815:4:62", - "nodeType": "YulTypedName", - "src": "5815:4:62", - "type": "" - } - ], - "src": "5627:454:62" - }, - { - "body": { - "nativeSrc": "6383:408:62", - "nodeType": "YulBlock", - "src": "6383:408:62", - "statements": [ - { - "nativeSrc": "6393:27:62", - "nodeType": "YulAssignment", - "src": "6393:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6405:9:62", - "nodeType": "YulIdentifier", - "src": "6405:9:62" - }, - { - "kind": "number", - "nativeSrc": "6416:3:62", - "nodeType": "YulLiteral", - "src": "6416:3:62", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6401:3:62", - "nodeType": "YulIdentifier", - "src": "6401:3:62" - }, - "nativeSrc": "6401:19:62", - "nodeType": "YulFunctionCall", - "src": "6401:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "6393:4:62", - "nodeType": "YulIdentifier", - "src": "6393:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6436:9:62", - "nodeType": "YulIdentifier", - "src": "6436:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "6451:6:62", - "nodeType": "YulIdentifier", - "src": "6451:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6467:3:62", - "nodeType": "YulLiteral", - "src": "6467:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "6472:1:62", - "nodeType": "YulLiteral", - "src": "6472:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "6463:3:62", - "nodeType": "YulIdentifier", - "src": "6463:3:62" - }, - "nativeSrc": "6463:11:62", - "nodeType": "YulFunctionCall", - "src": "6463:11:62" - }, - { - "kind": "number", - "nativeSrc": "6476:1:62", - "nodeType": "YulLiteral", - "src": "6476:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6459:3:62", - "nodeType": "YulIdentifier", - "src": "6459:3:62" - }, - "nativeSrc": "6459:19:62", - "nodeType": "YulFunctionCall", - "src": "6459:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "6447:3:62", - "nodeType": "YulIdentifier", - "src": "6447:3:62" - }, - "nativeSrc": "6447:32:62", - "nodeType": "YulFunctionCall", - "src": "6447:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6429:6:62", - "nodeType": "YulIdentifier", - "src": "6429:6:62" - }, - "nativeSrc": "6429:51:62", - "nodeType": "YulFunctionCall", - "src": "6429:51:62" - }, - "nativeSrc": "6429:51:62", - "nodeType": "YulExpressionStatement", - "src": "6429:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6500:9:62", - "nodeType": "YulIdentifier", - "src": "6500:9:62" - }, - { - "kind": "number", - "nativeSrc": "6511:2:62", - "nodeType": "YulLiteral", - "src": "6511:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6496:3:62", - "nodeType": "YulIdentifier", - "src": "6496:3:62" - }, - "nativeSrc": "6496:18:62", - "nodeType": "YulFunctionCall", - "src": "6496:18:62" - }, - { - "name": "value1", - "nativeSrc": "6516:6:62", - "nodeType": "YulIdentifier", - "src": "6516:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6489:6:62", - "nodeType": "YulIdentifier", - "src": "6489:6:62" - }, - "nativeSrc": "6489:34:62", - "nodeType": "YulFunctionCall", - "src": "6489:34:62" - }, - "nativeSrc": "6489:34:62", - "nodeType": "YulExpressionStatement", - "src": "6489:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6543:9:62", - "nodeType": "YulIdentifier", - "src": "6543:9:62" - }, - { - "kind": "number", - "nativeSrc": "6554:2:62", - "nodeType": "YulLiteral", - "src": "6554:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6539:3:62", - "nodeType": "YulIdentifier", - "src": "6539:3:62" - }, - "nativeSrc": "6539:18:62", - "nodeType": "YulFunctionCall", - "src": "6539:18:62" - }, - { - "name": "value2", - "nativeSrc": "6559:6:62", - "nodeType": "YulIdentifier", - "src": "6559:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6532:6:62", - "nodeType": "YulIdentifier", - "src": "6532:6:62" - }, - "nativeSrc": "6532:34:62", - "nodeType": "YulFunctionCall", - "src": "6532:34:62" - }, - "nativeSrc": "6532:34:62", - "nodeType": "YulExpressionStatement", - "src": "6532:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6586:9:62", - "nodeType": "YulIdentifier", - "src": "6586:9:62" - }, - { - "kind": "number", - "nativeSrc": "6597:2:62", - "nodeType": "YulLiteral", - "src": "6597:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6582:3:62", - "nodeType": "YulIdentifier", - "src": "6582:3:62" - }, - "nativeSrc": "6582:18:62", - "nodeType": "YulFunctionCall", - "src": "6582:18:62" - }, - { - "name": "value3", - "nativeSrc": "6602:6:62", - "nodeType": "YulIdentifier", - "src": "6602:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6575:6:62", - "nodeType": "YulIdentifier", - "src": "6575:6:62" - }, - "nativeSrc": "6575:34:62", - "nodeType": "YulFunctionCall", - "src": "6575:34:62" - }, - "nativeSrc": "6575:34:62", - "nodeType": "YulExpressionStatement", - "src": "6575:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6629:9:62", - "nodeType": "YulIdentifier", - "src": "6629:9:62" - }, - { - "kind": "number", - "nativeSrc": "6640:3:62", - "nodeType": "YulLiteral", - "src": "6640:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6625:3:62", - "nodeType": "YulIdentifier", - "src": "6625:3:62" - }, - "nativeSrc": "6625:19:62", - "nodeType": "YulFunctionCall", - "src": "6625:19:62" - }, - { - "name": "value4", - "nativeSrc": "6646:6:62", - "nodeType": "YulIdentifier", - "src": "6646:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6618:6:62", - "nodeType": "YulIdentifier", - "src": "6618:6:62" - }, - "nativeSrc": "6618:35:62", - "nodeType": "YulFunctionCall", - "src": "6618:35:62" - }, - "nativeSrc": "6618:35:62", - "nodeType": "YulExpressionStatement", - "src": "6618:35:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6673:9:62", - "nodeType": "YulIdentifier", - "src": "6673:9:62" - }, - { - "kind": "number", - "nativeSrc": "6684:3:62", - "nodeType": "YulLiteral", - "src": "6684:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6669:3:62", - "nodeType": "YulIdentifier", - "src": "6669:3:62" - }, - "nativeSrc": "6669:19:62", - "nodeType": "YulFunctionCall", - "src": "6669:19:62" - }, - { - "name": "value5", - "nativeSrc": "6690:6:62", - "nodeType": "YulIdentifier", - "src": "6690:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6662:6:62", - "nodeType": "YulIdentifier", - "src": "6662:6:62" - }, - "nativeSrc": "6662:35:62", - "nodeType": "YulFunctionCall", - "src": "6662:35:62" - }, - "nativeSrc": "6662:35:62", - "nodeType": "YulExpressionStatement", - "src": "6662:35:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6717:9:62", - "nodeType": "YulIdentifier", - "src": "6717:9:62" - }, - { - "kind": "number", - "nativeSrc": "6728:3:62", - "nodeType": "YulLiteral", - "src": "6728:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6713:3:62", - "nodeType": "YulIdentifier", - "src": "6713:3:62" - }, - "nativeSrc": "6713:19:62", - "nodeType": "YulFunctionCall", - "src": "6713:19:62" - }, - { - "name": "value6", - "nativeSrc": "6734:6:62", - "nodeType": "YulIdentifier", - "src": "6734:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6706:6:62", - "nodeType": "YulIdentifier", - "src": "6706:6:62" - }, - "nativeSrc": "6706:35:62", - "nodeType": "YulFunctionCall", - "src": "6706:35:62" - }, - "nativeSrc": "6706:35:62", - "nodeType": "YulExpressionStatement", - "src": "6706:35:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "6761:9:62", - "nodeType": "YulIdentifier", - "src": "6761:9:62" - }, - { - "kind": "number", - "nativeSrc": "6772:3:62", - "nodeType": "YulLiteral", - "src": "6772:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6757:3:62", - "nodeType": "YulIdentifier", - "src": "6757:3:62" - }, - "nativeSrc": "6757:19:62", - "nodeType": "YulFunctionCall", - "src": "6757:19:62" - }, - { - "name": "value7", - "nativeSrc": "6778:6:62", - "nodeType": "YulIdentifier", - "src": "6778:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6750:6:62", - "nodeType": "YulIdentifier", - "src": "6750:6:62" - }, - "nativeSrc": "6750:35:62", - "nodeType": "YulFunctionCall", - "src": "6750:35:62" - }, - "nativeSrc": "6750:35:62", - "nodeType": "YulExpressionStatement", - "src": "6750:35:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "6086:705:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6296:9:62", - "nodeType": "YulTypedName", - "src": "6296:9:62", - "type": "" - }, - { - "name": "value7", - "nativeSrc": "6307:6:62", - "nodeType": "YulTypedName", - "src": "6307:6:62", - "type": "" - }, - { - "name": "value6", - "nativeSrc": "6315:6:62", - "nodeType": "YulTypedName", - "src": "6315:6:62", - "type": "" - }, - { - "name": "value5", - "nativeSrc": "6323:6:62", - "nodeType": "YulTypedName", - "src": "6323:6:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "6331:6:62", - "nodeType": "YulTypedName", - "src": "6331:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "6339:6:62", - "nodeType": "YulTypedName", - "src": "6339:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "6347:6:62", - "nodeType": "YulTypedName", - "src": "6347:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "6355:6:62", - "nodeType": "YulTypedName", - "src": "6355:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "6363:6:62", - "nodeType": "YulTypedName", - "src": "6363:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "6374:4:62", - "nodeType": "YulTypedName", - "src": "6374:4:62", - "type": "" - } - ], - "src": "6086:705:62" - }, - { - "body": { - "nativeSrc": "7009:276:62", - "nodeType": "YulBlock", - "src": "7009:276:62", - "statements": [ - { - "nativeSrc": "7019:27:62", - "nodeType": "YulAssignment", - "src": "7019:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7031:9:62", - "nodeType": "YulIdentifier", - "src": "7031:9:62" - }, - { - "kind": "number", - "nativeSrc": "7042:3:62", - "nodeType": "YulLiteral", - "src": "7042:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7027:3:62", - "nodeType": "YulIdentifier", - "src": "7027:3:62" - }, - "nativeSrc": "7027:19:62", - "nodeType": "YulFunctionCall", - "src": "7027:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7019:4:62", - "nodeType": "YulIdentifier", - "src": "7019:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7062:9:62", - "nodeType": "YulIdentifier", - "src": "7062:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7077:6:62", - "nodeType": "YulIdentifier", - "src": "7077:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7093:3:62", - "nodeType": "YulLiteral", - "src": "7093:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "7098:1:62", - "nodeType": "YulLiteral", - "src": "7098:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "7089:3:62", - "nodeType": "YulIdentifier", - "src": "7089:3:62" - }, - "nativeSrc": "7089:11:62", - "nodeType": "YulFunctionCall", - "src": "7089:11:62" - }, - { - "kind": "number", - "nativeSrc": "7102:1:62", - "nodeType": "YulLiteral", - "src": "7102:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7085:3:62", - "nodeType": "YulIdentifier", - "src": "7085:3:62" - }, - "nativeSrc": "7085:19:62", - "nodeType": "YulFunctionCall", - "src": "7085:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "7073:3:62", - "nodeType": "YulIdentifier", - "src": "7073:3:62" - }, - "nativeSrc": "7073:32:62", - "nodeType": "YulFunctionCall", - "src": "7073:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7055:6:62", - "nodeType": "YulIdentifier", - "src": "7055:6:62" - }, - "nativeSrc": "7055:51:62", - "nodeType": "YulFunctionCall", - "src": "7055:51:62" - }, - "nativeSrc": "7055:51:62", - "nodeType": "YulExpressionStatement", - "src": "7055:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7126:9:62", - "nodeType": "YulIdentifier", - "src": "7126:9:62" - }, - { - "kind": "number", - "nativeSrc": "7137:2:62", - "nodeType": "YulLiteral", - "src": "7137:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7122:3:62", - "nodeType": "YulIdentifier", - "src": "7122:3:62" - }, - "nativeSrc": "7122:18:62", - "nodeType": "YulFunctionCall", - "src": "7122:18:62" - }, - { - "name": "value1", - "nativeSrc": "7142:6:62", - "nodeType": "YulIdentifier", - "src": "7142:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7115:6:62", - "nodeType": "YulIdentifier", - "src": "7115:6:62" - }, - "nativeSrc": "7115:34:62", - "nodeType": "YulFunctionCall", - "src": "7115:34:62" - }, - "nativeSrc": "7115:34:62", - "nodeType": "YulExpressionStatement", - "src": "7115:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7169:9:62", - "nodeType": "YulIdentifier", - "src": "7169:9:62" - }, - { - "kind": "number", - "nativeSrc": "7180:2:62", - "nodeType": "YulLiteral", - "src": "7180:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7165:3:62", - "nodeType": "YulIdentifier", - "src": "7165:3:62" - }, - "nativeSrc": "7165:18:62", - "nodeType": "YulFunctionCall", - "src": "7165:18:62" - }, - { - "name": "value2", - "nativeSrc": "7185:6:62", - "nodeType": "YulIdentifier", - "src": "7185:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7158:6:62", - "nodeType": "YulIdentifier", - "src": "7158:6:62" - }, - "nativeSrc": "7158:34:62", - "nodeType": "YulFunctionCall", - "src": "7158:34:62" - }, - "nativeSrc": "7158:34:62", - "nodeType": "YulExpressionStatement", - "src": "7158:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7212:9:62", - "nodeType": "YulIdentifier", - "src": "7212:9:62" - }, - { - "kind": "number", - "nativeSrc": "7223:2:62", - "nodeType": "YulLiteral", - "src": "7223:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7208:3:62", - "nodeType": "YulIdentifier", - "src": "7208:3:62" - }, - "nativeSrc": "7208:18:62", - "nodeType": "YulFunctionCall", - "src": "7208:18:62" - }, - { - "name": "value3", - "nativeSrc": "7228:6:62", - "nodeType": "YulIdentifier", - "src": "7228:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7201:6:62", - "nodeType": "YulIdentifier", - "src": "7201:6:62" - }, - "nativeSrc": "7201:34:62", - "nodeType": "YulFunctionCall", - "src": "7201:34:62" - }, - "nativeSrc": "7201:34:62", - "nodeType": "YulExpressionStatement", - "src": "7201:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7255:9:62", - "nodeType": "YulIdentifier", - "src": "7255:9:62" - }, - { - "kind": "number", - "nativeSrc": "7266:3:62", - "nodeType": "YulLiteral", - "src": "7266:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7251:3:62", - "nodeType": "YulIdentifier", - "src": "7251:3:62" - }, - "nativeSrc": "7251:19:62", - "nodeType": "YulFunctionCall", - "src": "7251:19:62" - }, - { - "name": "value4", - "nativeSrc": "7272:6:62", - "nodeType": "YulIdentifier", - "src": "7272:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7244:6:62", - "nodeType": "YulIdentifier", - "src": "7244:6:62" - }, - "nativeSrc": "7244:35:62", - "nodeType": "YulFunctionCall", - "src": "7244:35:62" - }, - "nativeSrc": "7244:35:62", - "nodeType": "YulExpressionStatement", - "src": "7244:35:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__to_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "6796:489:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "6946:9:62", - "nodeType": "YulTypedName", - "src": "6946:9:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "6957:6:62", - "nodeType": "YulTypedName", - "src": "6957:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "6965:6:62", - "nodeType": "YulTypedName", - "src": "6965:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "6973:6:62", - "nodeType": "YulTypedName", - "src": "6973:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "6981:6:62", - "nodeType": "YulTypedName", - "src": "6981:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "6989:6:62", - "nodeType": "YulTypedName", - "src": "6989:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7000:4:62", - "nodeType": "YulTypedName", - "src": "7000:4:62", - "type": "" - } - ], - "src": "6796:489:62" - }, - { - "body": { - "nativeSrc": "7439:172:62", - "nodeType": "YulBlock", - "src": "7439:172:62", - "statements": [ - { - "nativeSrc": "7449:26:62", - "nodeType": "YulAssignment", - "src": "7449:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7461:9:62", - "nodeType": "YulIdentifier", - "src": "7461:9:62" - }, - { - "kind": "number", - "nativeSrc": "7472:2:62", - "nodeType": "YulLiteral", - "src": "7472:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7457:3:62", - "nodeType": "YulIdentifier", - "src": "7457:3:62" - }, - "nativeSrc": "7457:18:62", - "nodeType": "YulFunctionCall", - "src": "7457:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7449:4:62", - "nodeType": "YulIdentifier", - "src": "7449:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7491:9:62", - "nodeType": "YulIdentifier", - "src": "7491:9:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7512:6:62", - "nodeType": "YulIdentifier", - "src": "7512:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "7506:5:62", - "nodeType": "YulIdentifier", - "src": "7506:5:62" - }, - "nativeSrc": "7506:13:62", - "nodeType": "YulFunctionCall", - "src": "7506:13:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "7529:3:62", - "nodeType": "YulLiteral", - "src": "7529:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "7534:1:62", - "nodeType": "YulLiteral", - "src": "7534:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "7525:3:62", - "nodeType": "YulIdentifier", - "src": "7525:3:62" - }, - "nativeSrc": "7525:11:62", - "nodeType": "YulFunctionCall", - "src": "7525:11:62" - }, - { - "kind": "number", - "nativeSrc": "7538:1:62", - "nodeType": "YulLiteral", - "src": "7538:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "7521:3:62", - "nodeType": "YulIdentifier", - "src": "7521:3:62" - }, - "nativeSrc": "7521:19:62", - "nodeType": "YulFunctionCall", - "src": "7521:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "7502:3:62", - "nodeType": "YulIdentifier", - "src": "7502:3:62" - }, - "nativeSrc": "7502:39:62", - "nodeType": "YulFunctionCall", - "src": "7502:39:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7484:6:62", - "nodeType": "YulIdentifier", - "src": "7484:6:62" - }, - "nativeSrc": "7484:58:62", - "nodeType": "YulFunctionCall", - "src": "7484:58:62" - }, - "nativeSrc": "7484:58:62", - "nodeType": "YulExpressionStatement", - "src": "7484:58:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7562:9:62", - "nodeType": "YulIdentifier", - "src": "7562:9:62" - }, - { - "kind": "number", - "nativeSrc": "7573:4:62", - "nodeType": "YulLiteral", - "src": "7573:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7558:3:62", - "nodeType": "YulIdentifier", - "src": "7558:3:62" - }, - "nativeSrc": "7558:20:62", - "nodeType": "YulFunctionCall", - "src": "7558:20:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7590:6:62", - "nodeType": "YulIdentifier", - "src": "7590:6:62" - }, - { - "kind": "number", - "nativeSrc": "7598:4:62", - "nodeType": "YulLiteral", - "src": "7598:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7586:3:62", - "nodeType": "YulIdentifier", - "src": "7586:3:62" - }, - "nativeSrc": "7586:17:62", - "nodeType": "YulFunctionCall", - "src": "7586:17:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "7580:5:62", - "nodeType": "YulIdentifier", - "src": "7580:5:62" - }, - "nativeSrc": "7580:24:62", - "nodeType": "YulFunctionCall", - "src": "7580:24:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7551:6:62", - "nodeType": "YulIdentifier", - "src": "7551:6:62" - }, - "nativeSrc": "7551:54:62", - "nodeType": "YulFunctionCall", - "src": "7551:54:62" - }, - "nativeSrc": "7551:54:62", - "nodeType": "YulExpressionStatement", - "src": "7551:54:62" - } - ] - }, - "name": "abi_encode_tuple_t_struct$_State_$11933_memory_ptr__to_t_struct$_State_$11933_memory_ptr__fromStack_reversed", - "nativeSrc": "7290:321:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7408:9:62", - "nodeType": "YulTypedName", - "src": "7408:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7419:6:62", - "nodeType": "YulTypedName", - "src": "7419:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7430:4:62", - "nodeType": "YulTypedName", - "src": "7430:4:62", - "type": "" - } - ], - "src": "7290:321:62" - }, - { - "body": { - "nativeSrc": "7741:169:62", - "nodeType": "YulBlock", - "src": "7741:169:62", - "statements": [ - { - "nativeSrc": "7751:26:62", - "nodeType": "YulAssignment", - "src": "7751:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7763:9:62", - "nodeType": "YulIdentifier", - "src": "7763:9:62" - }, - { - "kind": "number", - "nativeSrc": "7774:2:62", - "nodeType": "YulLiteral", - "src": "7774:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7759:3:62", - "nodeType": "YulIdentifier", - "src": "7759:3:62" - }, - "nativeSrc": "7759:18:62", - "nodeType": "YulFunctionCall", - "src": "7759:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "7751:4:62", - "nodeType": "YulIdentifier", - "src": "7751:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7793:9:62", - "nodeType": "YulIdentifier", - "src": "7793:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "7808:6:62", - "nodeType": "YulIdentifier", - "src": "7808:6:62" - }, - { - "kind": "number", - "nativeSrc": "7816:18:62", - "nodeType": "YulLiteral", - "src": "7816:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "7804:3:62", - "nodeType": "YulIdentifier", - "src": "7804:3:62" - }, - "nativeSrc": "7804:31:62", - "nodeType": "YulFunctionCall", - "src": "7804:31:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7786:6:62", - "nodeType": "YulIdentifier", - "src": "7786:6:62" - }, - "nativeSrc": "7786:50:62", - "nodeType": "YulFunctionCall", - "src": "7786:50:62" - }, - "nativeSrc": "7786:50:62", - "nodeType": "YulExpressionStatement", - "src": "7786:50:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7856:9:62", - "nodeType": "YulIdentifier", - "src": "7856:9:62" - }, - { - "kind": "number", - "nativeSrc": "7867:2:62", - "nodeType": "YulLiteral", - "src": "7867:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7852:3:62", - "nodeType": "YulIdentifier", - "src": "7852:3:62" - }, - "nativeSrc": "7852:18:62", - "nodeType": "YulFunctionCall", - "src": "7852:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "7876:6:62", - "nodeType": "YulIdentifier", - "src": "7876:6:62" - }, - { - "kind": "number", - "nativeSrc": "7884:18:62", - "nodeType": "YulLiteral", - "src": "7884:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "7872:3:62", - "nodeType": "YulIdentifier", - "src": "7872:3:62" - }, - "nativeSrc": "7872:31:62", - "nodeType": "YulFunctionCall", - "src": "7872:31:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "7845:6:62", - "nodeType": "YulIdentifier", - "src": "7845:6:62" - }, - "nativeSrc": "7845:59:62", - "nodeType": "YulFunctionCall", - "src": "7845:59:62" - }, - "nativeSrc": "7845:59:62", - "nodeType": "YulExpressionStatement", - "src": "7845:59:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed", - "nativeSrc": "7616:294:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7702:9:62", - "nodeType": "YulTypedName", - "src": "7702:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7713:6:62", - "nodeType": "YulTypedName", - "src": "7713:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7721:6:62", - "nodeType": "YulTypedName", - "src": "7721:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "7732:4:62", - "nodeType": "YulTypedName", - "src": "7732:4:62", - "type": "" - } - ], - "src": "7616:294:62" - }, - { - "body": { - "nativeSrc": "8016:102:62", - "nodeType": "YulBlock", - "src": "8016:102:62", - "statements": [ - { - "nativeSrc": "8026:26:62", - "nodeType": "YulAssignment", - "src": "8026:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8038:9:62", - "nodeType": "YulIdentifier", - "src": "8038:9:62" - }, - { - "kind": "number", - "nativeSrc": "8049:2:62", - "nodeType": "YulLiteral", - "src": "8049:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8034:3:62", - "nodeType": "YulIdentifier", - "src": "8034:3:62" - }, - "nativeSrc": "8034:18:62", - "nodeType": "YulFunctionCall", - "src": "8034:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8026:4:62", - "nodeType": "YulIdentifier", - "src": "8026:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8068:9:62", - "nodeType": "YulIdentifier", - "src": "8068:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8083:6:62", - "nodeType": "YulIdentifier", - "src": "8083:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8099:3:62", - "nodeType": "YulLiteral", - "src": "8099:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "8104:1:62", - "nodeType": "YulLiteral", - "src": "8104:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "8095:3:62", - "nodeType": "YulIdentifier", - "src": "8095:3:62" - }, - "nativeSrc": "8095:11:62", - "nodeType": "YulFunctionCall", - "src": "8095:11:62" - }, - { - "kind": "number", - "nativeSrc": "8108:1:62", - "nodeType": "YulLiteral", - "src": "8108:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "8091:3:62", - "nodeType": "YulIdentifier", - "src": "8091:3:62" - }, - "nativeSrc": "8091:19:62", - "nodeType": "YulFunctionCall", - "src": "8091:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "8079:3:62", - "nodeType": "YulIdentifier", - "src": "8079:3:62" - }, - "nativeSrc": "8079:32:62", - "nodeType": "YulFunctionCall", - "src": "8079:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8061:6:62", - "nodeType": "YulIdentifier", - "src": "8061:6:62" - }, - "nativeSrc": "8061:51:62", - "nodeType": "YulFunctionCall", - "src": "8061:51:62" - }, - "nativeSrc": "8061:51:62", - "nodeType": "YulExpressionStatement", - "src": "8061:51:62" - } - ] - }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "7915:203:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "7985:9:62", - "nodeType": "YulTypedName", - "src": "7985:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "7996:6:62", - "nodeType": "YulTypedName", - "src": "7996:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8007:4:62", - "nodeType": "YulTypedName", - "src": "8007:4:62", - "type": "" - } - ], - "src": "7915:203:62" - }, - { - "body": { - "nativeSrc": "8227:404:62", - "nodeType": "YulBlock", - "src": "8227:404:62", - "statements": [ - { - "body": { - "nativeSrc": "8273:16:62", - "nodeType": "YulBlock", - "src": "8273:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "8282:1:62", - "nodeType": "YulLiteral", - "src": "8282:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "8285:1:62", - "nodeType": "YulLiteral", - "src": "8285:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "8275:6:62", - "nodeType": "YulIdentifier", - "src": "8275:6:62" - }, - "nativeSrc": "8275:12:62", - "nodeType": "YulFunctionCall", - "src": "8275:12:62" - }, - "nativeSrc": "8275:12:62", - "nodeType": "YulExpressionStatement", - "src": "8275:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "8248:7:62", - "nodeType": "YulIdentifier", - "src": "8248:7:62" - }, - { - "name": "headStart", - "nativeSrc": "8257:9:62", - "nodeType": "YulIdentifier", - "src": "8257:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "8244:3:62", - "nodeType": "YulIdentifier", - "src": "8244:3:62" - }, - "nativeSrc": "8244:23:62", - "nodeType": "YulFunctionCall", - "src": "8244:23:62" - }, - { - "kind": "number", - "nativeSrc": "8269:2:62", - "nodeType": "YulLiteral", - "src": "8269:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "8240:3:62", - "nodeType": "YulIdentifier", - "src": "8240:3:62" - }, - "nativeSrc": "8240:32:62", - "nodeType": "YulFunctionCall", - "src": "8240:32:62" - }, - "nativeSrc": "8237:52:62", - "nodeType": "YulIf", - "src": "8237:52:62" - }, - { - "nativeSrc": "8298:36:62", - "nodeType": "YulVariableDeclaration", - "src": "8298:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8324:9:62", - "nodeType": "YulIdentifier", - "src": "8324:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "8311:12:62", - "nodeType": "YulIdentifier", - "src": "8311:12:62" - }, - "nativeSrc": "8311:23:62", - "nodeType": "YulFunctionCall", - "src": "8311:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "8302:5:62", - "nodeType": "YulTypedName", - "src": "8302:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "8368:5:62", - "nodeType": "YulIdentifier", - "src": "8368:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "8343:24:62", - "nodeType": "YulIdentifier", - "src": "8343:24:62" - }, - "nativeSrc": "8343:31:62", - "nodeType": "YulFunctionCall", - "src": "8343:31:62" - }, - "nativeSrc": "8343:31:62", - "nodeType": "YulExpressionStatement", - "src": "8343:31:62" - }, - { - "nativeSrc": "8383:15:62", - "nodeType": "YulAssignment", - "src": "8383:15:62", - "value": { - "name": "value", - "nativeSrc": "8393:5:62", - "nodeType": "YulIdentifier", - "src": "8393:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "8383:6:62", - "nodeType": "YulIdentifier", - "src": "8383:6:62" - } - ] - }, - { - "nativeSrc": "8407:47:62", - "nodeType": "YulVariableDeclaration", - "src": "8407:47:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8439:9:62", - "nodeType": "YulIdentifier", - "src": "8439:9:62" - }, - { - "kind": "number", - "nativeSrc": "8450:2:62", - "nodeType": "YulLiteral", - "src": "8450:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8435:3:62", - "nodeType": "YulIdentifier", - "src": "8435:3:62" - }, - "nativeSrc": "8435:18:62", - "nodeType": "YulFunctionCall", - "src": "8435:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "8422:12:62", - "nodeType": "YulIdentifier", - "src": "8422:12:62" - }, - "nativeSrc": "8422:32:62", - "nodeType": "YulFunctionCall", - "src": "8422:32:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "8411:7:62", - "nodeType": "YulTypedName", - "src": "8411:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "8488:7:62", - "nodeType": "YulIdentifier", - "src": "8488:7:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "8463:24:62", - "nodeType": "YulIdentifier", - "src": "8463:24:62" - }, - "nativeSrc": "8463:33:62", - "nodeType": "YulFunctionCall", - "src": "8463:33:62" - }, - "nativeSrc": "8463:33:62", - "nodeType": "YulExpressionStatement", - "src": "8463:33:62" - }, - { - "nativeSrc": "8505:17:62", - "nodeType": "YulAssignment", - "src": "8505:17:62", - "value": { - "name": "value_1", - "nativeSrc": "8515:7:62", - "nodeType": "YulIdentifier", - "src": "8515:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "8505:6:62", - "nodeType": "YulIdentifier", - "src": "8505:6:62" - } - ] - }, - { - "nativeSrc": "8531:16:62", - "nodeType": "YulVariableDeclaration", - "src": "8531:16:62", - "value": { - "kind": "number", - "nativeSrc": "8546:1:62", - "nodeType": "YulLiteral", - "src": "8546:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "8535:7:62", - "nodeType": "YulTypedName", - "src": "8535:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "8556:43:62", - "nodeType": "YulAssignment", - "src": "8556:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8584:9:62", - "nodeType": "YulIdentifier", - "src": "8584:9:62" - }, - { - "kind": "number", - "nativeSrc": "8595:2:62", - "nodeType": "YulLiteral", - "src": "8595:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8580:3:62", - "nodeType": "YulIdentifier", - "src": "8580:3:62" - }, - "nativeSrc": "8580:18:62", - "nodeType": "YulFunctionCall", - "src": "8580:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "8567:12:62", - "nodeType": "YulIdentifier", - "src": "8567:12:62" - }, - "nativeSrc": "8567:32:62", - "nodeType": "YulFunctionCall", - "src": "8567:32:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "8556:7:62", - "nodeType": "YulIdentifier", - "src": "8556:7:62" - } - ] - }, - { - "nativeSrc": "8608:17:62", - "nodeType": "YulAssignment", - "src": "8608:17:62", - "value": { - "name": "value_2", - "nativeSrc": "8618:7:62", - "nodeType": "YulIdentifier", - "src": "8618:7:62" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "8608:6:62", - "nodeType": "YulIdentifier", - "src": "8608:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_addresst_bytes32", - "nativeSrc": "8123:508:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8177:9:62", - "nodeType": "YulTypedName", - "src": "8177:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "8188:7:62", - "nodeType": "YulTypedName", - "src": "8188:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "8200:6:62", - "nodeType": "YulTypedName", - "src": "8200:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8208:6:62", - "nodeType": "YulTypedName", - "src": "8208:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "8216:6:62", - "nodeType": "YulTypedName", - "src": "8216:6:62", - "type": "" - } - ], - "src": "8123:508:62" - }, - { - "body": { - "nativeSrc": "8765:119:62", - "nodeType": "YulBlock", - "src": "8765:119:62", - "statements": [ - { - "nativeSrc": "8775:26:62", - "nodeType": "YulAssignment", - "src": "8775:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8787:9:62", - "nodeType": "YulIdentifier", - "src": "8787:9:62" - }, - { - "kind": "number", - "nativeSrc": "8798:2:62", - "nodeType": "YulLiteral", - "src": "8798:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8783:3:62", - "nodeType": "YulIdentifier", - "src": "8783:3:62" - }, - "nativeSrc": "8783:18:62", - "nodeType": "YulFunctionCall", - "src": "8783:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8775:4:62", - "nodeType": "YulIdentifier", - "src": "8775:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8817:9:62", - "nodeType": "YulIdentifier", - "src": "8817:9:62" - }, - { - "name": "value0", - "nativeSrc": "8828:6:62", - "nodeType": "YulIdentifier", - "src": "8828:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8810:6:62", - "nodeType": "YulIdentifier", - "src": "8810:6:62" - }, - "nativeSrc": "8810:25:62", - "nodeType": "YulFunctionCall", - "src": "8810:25:62" - }, - "nativeSrc": "8810:25:62", - "nodeType": "YulExpressionStatement", - "src": "8810:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8855:9:62", - "nodeType": "YulIdentifier", - "src": "8855:9:62" - }, - { - "kind": "number", - "nativeSrc": "8866:2:62", - "nodeType": "YulLiteral", - "src": "8866:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8851:3:62", - "nodeType": "YulIdentifier", - "src": "8851:3:62" - }, - "nativeSrc": "8851:18:62", - "nodeType": "YulFunctionCall", - "src": "8851:18:62" - }, - { - "name": "value1", - "nativeSrc": "8871:6:62", - "nodeType": "YulIdentifier", - "src": "8871:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8844:6:62", - "nodeType": "YulIdentifier", - "src": "8844:6:62" - }, - "nativeSrc": "8844:34:62", - "nodeType": "YulFunctionCall", - "src": "8844:34:62" - }, - "nativeSrc": "8844:34:62", - "nodeType": "YulExpressionStatement", - "src": "8844:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "8636:248:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8726:9:62", - "nodeType": "YulTypedName", - "src": "8726:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8737:6:62", - "nodeType": "YulTypedName", - "src": "8737:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8745:6:62", - "nodeType": "YulTypedName", - "src": "8745:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8756:4:62", - "nodeType": "YulTypedName", - "src": "8756:4:62", - "type": "" - } - ], - "src": "8636:248:62" - }, - { - "body": { - "nativeSrc": "8993:404:62", - "nodeType": "YulBlock", - "src": "8993:404:62", - "statements": [ - { - "body": { - "nativeSrc": "9039:16:62", - "nodeType": "YulBlock", - "src": "9039:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9048:1:62", - "nodeType": "YulLiteral", - "src": "9048:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "9051:1:62", - "nodeType": "YulLiteral", - "src": "9051:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "9041:6:62", - "nodeType": "YulIdentifier", - "src": "9041:6:62" - }, - "nativeSrc": "9041:12:62", - "nodeType": "YulFunctionCall", - "src": "9041:12:62" - }, - "nativeSrc": "9041:12:62", - "nodeType": "YulExpressionStatement", - "src": "9041:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "9014:7:62", - "nodeType": "YulIdentifier", - "src": "9014:7:62" - }, - { - "name": "headStart", - "nativeSrc": "9023:9:62", - "nodeType": "YulIdentifier", - "src": "9023:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "9010:3:62", - "nodeType": "YulIdentifier", - "src": "9010:3:62" - }, - "nativeSrc": "9010:23:62", - "nodeType": "YulFunctionCall", - "src": "9010:23:62" - }, - { - "kind": "number", - "nativeSrc": "9035:2:62", - "nodeType": "YulLiteral", - "src": "9035:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "9006:3:62", - "nodeType": "YulIdentifier", - "src": "9006:3:62" - }, - "nativeSrc": "9006:32:62", - "nodeType": "YulFunctionCall", - "src": "9006:32:62" - }, - "nativeSrc": "9003:52:62", - "nodeType": "YulIf", - "src": "9003:52:62" - }, - { - "nativeSrc": "9064:36:62", - "nodeType": "YulVariableDeclaration", - "src": "9064:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9090:9:62", - "nodeType": "YulIdentifier", - "src": "9090:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "9077:12:62", - "nodeType": "YulIdentifier", - "src": "9077:12:62" - }, - "nativeSrc": "9077:23:62", - "nodeType": "YulFunctionCall", - "src": "9077:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "9068:5:62", - "nodeType": "YulTypedName", - "src": "9068:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "9134:5:62", - "nodeType": "YulIdentifier", - "src": "9134:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "9109:24:62", - "nodeType": "YulIdentifier", - "src": "9109:24:62" - }, - "nativeSrc": "9109:31:62", - "nodeType": "YulFunctionCall", - "src": "9109:31:62" - }, - "nativeSrc": "9109:31:62", - "nodeType": "YulExpressionStatement", - "src": "9109:31:62" - }, - { - "nativeSrc": "9149:15:62", - "nodeType": "YulAssignment", - "src": "9149:15:62", - "value": { - "name": "value", - "nativeSrc": "9159:5:62", - "nodeType": "YulIdentifier", - "src": "9159:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "9149:6:62", - "nodeType": "YulIdentifier", - "src": "9149:6:62" - } - ] - }, - { - "nativeSrc": "9173:47:62", - "nodeType": "YulVariableDeclaration", - "src": "9173:47:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9205:9:62", - "nodeType": "YulIdentifier", - "src": "9205:9:62" - }, - { - "kind": "number", - "nativeSrc": "9216:2:62", - "nodeType": "YulLiteral", - "src": "9216:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9201:3:62", - "nodeType": "YulIdentifier", - "src": "9201:3:62" - }, - "nativeSrc": "9201:18:62", - "nodeType": "YulFunctionCall", - "src": "9201:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "9188:12:62", - "nodeType": "YulIdentifier", - "src": "9188:12:62" - }, - "nativeSrc": "9188:32:62", - "nodeType": "YulFunctionCall", - "src": "9188:32:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "9177:7:62", - "nodeType": "YulTypedName", - "src": "9177:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "9254:7:62", - "nodeType": "YulIdentifier", - "src": "9254:7:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "9229:24:62", - "nodeType": "YulIdentifier", - "src": "9229:24:62" - }, - "nativeSrc": "9229:33:62", - "nodeType": "YulFunctionCall", - "src": "9229:33:62" - }, - "nativeSrc": "9229:33:62", - "nodeType": "YulExpressionStatement", - "src": "9229:33:62" - }, - { - "nativeSrc": "9271:17:62", - "nodeType": "YulAssignment", - "src": "9271:17:62", - "value": { - "name": "value_1", - "nativeSrc": "9281:7:62", - "nodeType": "YulIdentifier", - "src": "9281:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "9271:6:62", - "nodeType": "YulIdentifier", - "src": "9271:6:62" - } - ] - }, - { - "nativeSrc": "9297:16:62", - "nodeType": "YulVariableDeclaration", - "src": "9297:16:62", - "value": { - "kind": "number", - "nativeSrc": "9312:1:62", - "nodeType": "YulLiteral", - "src": "9312:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "9301:7:62", - "nodeType": "YulTypedName", - "src": "9301:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "9322:43:62", - "nodeType": "YulAssignment", - "src": "9322:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9350:9:62", - "nodeType": "YulIdentifier", - "src": "9350:9:62" - }, - { - "kind": "number", - "nativeSrc": "9361:2:62", - "nodeType": "YulLiteral", - "src": "9361:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9346:3:62", - "nodeType": "YulIdentifier", - "src": "9346:3:62" - }, - "nativeSrc": "9346:18:62", - "nodeType": "YulFunctionCall", - "src": "9346:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "9333:12:62", - "nodeType": "YulIdentifier", - "src": "9333:12:62" - }, - "nativeSrc": "9333:32:62", - "nodeType": "YulFunctionCall", - "src": "9333:32:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "9322:7:62", - "nodeType": "YulIdentifier", - "src": "9322:7:62" - } - ] - }, - { - "nativeSrc": "9374:17:62", - "nodeType": "YulAssignment", - "src": "9374:17:62", - "value": { - "name": "value_2", - "nativeSrc": "9384:7:62", - "nodeType": "YulIdentifier", - "src": "9384:7:62" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "9374:6:62", - "nodeType": "YulIdentifier", - "src": "9374:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_addresst_uint256", - "nativeSrc": "8889:508:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8943:9:62", - "nodeType": "YulTypedName", - "src": "8943:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "8954:7:62", - "nodeType": "YulTypedName", - "src": "8954:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "8966:6:62", - "nodeType": "YulTypedName", - "src": "8966:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "8974:6:62", - "nodeType": "YulTypedName", - "src": "8974:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "8982:6:62", - "nodeType": "YulTypedName", - "src": "8982:6:62", - "type": "" - } - ], - "src": "8889:508:62" - }, - { - "body": { - "nativeSrc": "9759:881:62", - "nodeType": "YulBlock", - "src": "9759:881:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9776:9:62", - "nodeType": "YulIdentifier", - "src": "9776:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "9791:6:62", - "nodeType": "YulIdentifier", - "src": "9791:6:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9803:3:62", - "nodeType": "YulLiteral", - "src": "9803:3:62", - "type": "", - "value": "248" - }, - { - "kind": "number", - "nativeSrc": "9808:3:62", - "nodeType": "YulLiteral", - "src": "9808:3:62", - "type": "", - "value": "255" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "9799:3:62", - "nodeType": "YulIdentifier", - "src": "9799:3:62" - }, - "nativeSrc": "9799:13:62", - "nodeType": "YulFunctionCall", - "src": "9799:13:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "9787:3:62", - "nodeType": "YulIdentifier", - "src": "9787:3:62" - }, - "nativeSrc": "9787:26:62", - "nodeType": "YulFunctionCall", - "src": "9787:26:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9769:6:62", - "nodeType": "YulIdentifier", - "src": "9769:6:62" - }, - "nativeSrc": "9769:45:62", - "nodeType": "YulFunctionCall", - "src": "9769:45:62" - }, - "nativeSrc": "9769:45:62", - "nodeType": "YulExpressionStatement", - "src": "9769:45:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9834:9:62", - "nodeType": "YulIdentifier", - "src": "9834:9:62" - }, - { - "kind": "number", - "nativeSrc": "9845:2:62", - "nodeType": "YulLiteral", - "src": "9845:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9830:3:62", - "nodeType": "YulIdentifier", - "src": "9830:3:62" - }, - "nativeSrc": "9830:18:62", - "nodeType": "YulFunctionCall", - "src": "9830:18:62" - }, - { - "kind": "number", - "nativeSrc": "9850:3:62", - "nodeType": "YulLiteral", - "src": "9850:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9823:6:62", - "nodeType": "YulIdentifier", - "src": "9823:6:62" - }, - "nativeSrc": "9823:31:62", - "nodeType": "YulFunctionCall", - "src": "9823:31:62" - }, - "nativeSrc": "9823:31:62", - "nodeType": "YulExpressionStatement", - "src": "9823:31:62" - }, - { - "nativeSrc": "9863:60:62", - "nodeType": "YulVariableDeclaration", - "src": "9863:60:62", - "value": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "9895:6:62", - "nodeType": "YulIdentifier", - "src": "9895:6:62" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9907:9:62", - "nodeType": "YulIdentifier", - "src": "9907:9:62" - }, - { - "kind": "number", - "nativeSrc": "9918:3:62", - "nodeType": "YulLiteral", - "src": "9918:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9903:3:62", - "nodeType": "YulIdentifier", - "src": "9903:3:62" - }, - "nativeSrc": "9903:19:62", - "nodeType": "YulFunctionCall", - "src": "9903:19:62" - } - ], - "functionName": { - "name": "abi_encode_string", - "nativeSrc": "9877:17:62", - "nodeType": "YulIdentifier", - "src": "9877:17:62" - }, - "nativeSrc": "9877:46:62", - "nodeType": "YulFunctionCall", - "src": "9877:46:62" - }, - "variables": [ - { - "name": "tail_1", - "nativeSrc": "9867:6:62", - "nodeType": "YulTypedName", - "src": "9867:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "9943:9:62", - "nodeType": "YulIdentifier", - "src": "9943:9:62" - }, - { - "kind": "number", - "nativeSrc": "9954:2:62", - "nodeType": "YulLiteral", - "src": "9954:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9939:3:62", - "nodeType": "YulIdentifier", - "src": "9939:3:62" - }, - "nativeSrc": "9939:18:62", - "nodeType": "YulFunctionCall", - "src": "9939:18:62" - }, - { - "arguments": [ - { - "name": "tail_1", - "nativeSrc": "9963:6:62", - "nodeType": "YulIdentifier", - "src": "9963:6:62" - }, - { - "name": "headStart", - "nativeSrc": "9971:9:62", - "nodeType": "YulIdentifier", - "src": "9971:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "9959:3:62", - "nodeType": "YulIdentifier", - "src": "9959:3:62" - }, - "nativeSrc": "9959:22:62", - "nodeType": "YulFunctionCall", - "src": "9959:22:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9932:6:62", - "nodeType": "YulIdentifier", - "src": "9932:6:62" - }, - "nativeSrc": "9932:50:62", - "nodeType": "YulFunctionCall", - "src": "9932:50:62" - }, - "nativeSrc": "9932:50:62", - "nodeType": "YulExpressionStatement", - "src": "9932:50:62" - }, - { - "nativeSrc": "9991:47:62", - "nodeType": "YulVariableDeclaration", - "src": "9991:47:62", - "value": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "10023:6:62", - "nodeType": "YulIdentifier", - "src": "10023:6:62" - }, - { - "name": "tail_1", - "nativeSrc": "10031:6:62", - "nodeType": "YulIdentifier", - "src": "10031:6:62" - } - ], - "functionName": { - "name": "abi_encode_string", - "nativeSrc": "10005:17:62", - "nodeType": "YulIdentifier", - "src": "10005:17:62" - }, - "nativeSrc": "10005:33:62", - "nodeType": "YulFunctionCall", - "src": "10005:33:62" - }, - "variables": [ - { - "name": "tail_2", - "nativeSrc": "9995:6:62", - "nodeType": "YulTypedName", - "src": "9995:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10058:9:62", - "nodeType": "YulIdentifier", - "src": "10058:9:62" - }, - { - "kind": "number", - "nativeSrc": "10069:2:62", - "nodeType": "YulLiteral", - "src": "10069:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10054:3:62", - "nodeType": "YulIdentifier", - "src": "10054:3:62" - }, - "nativeSrc": "10054:18:62", - "nodeType": "YulFunctionCall", - "src": "10054:18:62" - }, - { - "name": "value3", - "nativeSrc": "10074:6:62", - "nodeType": "YulIdentifier", - "src": "10074:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10047:6:62", - "nodeType": "YulIdentifier", - "src": "10047:6:62" - }, - "nativeSrc": "10047:34:62", - "nodeType": "YulFunctionCall", - "src": "10047:34:62" - }, - "nativeSrc": "10047:34:62", - "nodeType": "YulExpressionStatement", - "src": "10047:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10101:9:62", - "nodeType": "YulIdentifier", - "src": "10101:9:62" - }, - { - "kind": "number", - "nativeSrc": "10112:3:62", - "nodeType": "YulLiteral", - "src": "10112:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10097:3:62", - "nodeType": "YulIdentifier", - "src": "10097:3:62" - }, - "nativeSrc": "10097:19:62", - "nodeType": "YulFunctionCall", - "src": "10097:19:62" - }, - { - "arguments": [ - { - "name": "value4", - "nativeSrc": "10122:6:62", - "nodeType": "YulIdentifier", - "src": "10122:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "10138:3:62", - "nodeType": "YulLiteral", - "src": "10138:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "10143:1:62", - "nodeType": "YulLiteral", - "src": "10143:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "10134:3:62", - "nodeType": "YulIdentifier", - "src": "10134:3:62" - }, - "nativeSrc": "10134:11:62", - "nodeType": "YulFunctionCall", - "src": "10134:11:62" - }, - { - "kind": "number", - "nativeSrc": "10147:1:62", - "nodeType": "YulLiteral", - "src": "10147:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "10130:3:62", - "nodeType": "YulIdentifier", - "src": "10130:3:62" - }, - "nativeSrc": "10130:19:62", - "nodeType": "YulFunctionCall", - "src": "10130:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "10118:3:62", - "nodeType": "YulIdentifier", - "src": "10118:3:62" - }, - "nativeSrc": "10118:32:62", - "nodeType": "YulFunctionCall", - "src": "10118:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10090:6:62", - "nodeType": "YulIdentifier", - "src": "10090:6:62" - }, - "nativeSrc": "10090:61:62", - "nodeType": "YulFunctionCall", - "src": "10090:61:62" - }, - "nativeSrc": "10090:61:62", - "nodeType": "YulExpressionStatement", - "src": "10090:61:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10171:9:62", - "nodeType": "YulIdentifier", - "src": "10171:9:62" - }, - { - "kind": "number", - "nativeSrc": "10182:3:62", - "nodeType": "YulLiteral", - "src": "10182:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10167:3:62", - "nodeType": "YulIdentifier", - "src": "10167:3:62" - }, - "nativeSrc": "10167:19:62", - "nodeType": "YulFunctionCall", - "src": "10167:19:62" - }, - { - "name": "value5", - "nativeSrc": "10188:6:62", - "nodeType": "YulIdentifier", - "src": "10188:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10160:6:62", - "nodeType": "YulIdentifier", - "src": "10160:6:62" - }, - "nativeSrc": "10160:35:62", - "nodeType": "YulFunctionCall", - "src": "10160:35:62" - }, - "nativeSrc": "10160:35:62", - "nodeType": "YulExpressionStatement", - "src": "10160:35:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10215:9:62", - "nodeType": "YulIdentifier", - "src": "10215:9:62" - }, - { - "kind": "number", - "nativeSrc": "10226:3:62", - "nodeType": "YulLiteral", - "src": "10226:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10211:3:62", - "nodeType": "YulIdentifier", - "src": "10211:3:62" - }, - "nativeSrc": "10211:19:62", - "nodeType": "YulFunctionCall", - "src": "10211:19:62" - }, - { - "arguments": [ - { - "name": "tail_2", - "nativeSrc": "10236:6:62", - "nodeType": "YulIdentifier", - "src": "10236:6:62" - }, - { - "name": "headStart", - "nativeSrc": "10244:9:62", - "nodeType": "YulIdentifier", - "src": "10244:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "10232:3:62", - "nodeType": "YulIdentifier", - "src": "10232:3:62" - }, - "nativeSrc": "10232:22:62", - "nodeType": "YulFunctionCall", - "src": "10232:22:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10204:6:62", - "nodeType": "YulIdentifier", - "src": "10204:6:62" - }, - "nativeSrc": "10204:51:62", - "nodeType": "YulFunctionCall", - "src": "10204:51:62" - }, - "nativeSrc": "10204:51:62", - "nodeType": "YulExpressionStatement", - "src": "10204:51:62" - }, - { - "nativeSrc": "10264:17:62", - "nodeType": "YulVariableDeclaration", - "src": "10264:17:62", - "value": { - "name": "tail_2", - "nativeSrc": "10275:6:62", - "nodeType": "YulIdentifier", - "src": "10275:6:62" - }, - "variables": [ - { - "name": "pos", - "nativeSrc": "10268:3:62", - "nodeType": "YulTypedName", - "src": "10268:3:62", - "type": "" - } - ] - }, - { - "nativeSrc": "10290:27:62", - "nodeType": "YulVariableDeclaration", - "src": "10290:27:62", - "value": { - "arguments": [ - { - "name": "value6", - "nativeSrc": "10310:6:62", - "nodeType": "YulIdentifier", - "src": "10310:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "10304:5:62", - "nodeType": "YulIdentifier", - "src": "10304:5:62" - }, - "nativeSrc": "10304:13:62", - "nodeType": "YulFunctionCall", - "src": "10304:13:62" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "10294:6:62", - "nodeType": "YulTypedName", - "src": "10294:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "tail_2", - "nativeSrc": "10333:6:62", - "nodeType": "YulIdentifier", - "src": "10333:6:62" - }, - { - "name": "length", - "nativeSrc": "10341:6:62", - "nodeType": "YulIdentifier", - "src": "10341:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10326:6:62", - "nodeType": "YulIdentifier", - "src": "10326:6:62" - }, - "nativeSrc": "10326:22:62", - "nodeType": "YulFunctionCall", - "src": "10326:22:62" - }, - "nativeSrc": "10326:22:62", - "nodeType": "YulExpressionStatement", - "src": "10326:22:62" - }, - { - "nativeSrc": "10357:22:62", - "nodeType": "YulAssignment", - "src": "10357:22:62", - "value": { - "arguments": [ - { - "name": "tail_2", - "nativeSrc": "10368:6:62", - "nodeType": "YulIdentifier", - "src": "10368:6:62" - }, - { - "kind": "number", - "nativeSrc": "10376:2:62", - "nodeType": "YulLiteral", - "src": "10376:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10364:3:62", - "nodeType": "YulIdentifier", - "src": "10364:3:62" - }, - "nativeSrc": "10364:15:62", - "nodeType": "YulFunctionCall", - "src": "10364:15:62" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "10357:3:62", - "nodeType": "YulIdentifier", - "src": "10357:3:62" - } - ] - }, - { - "nativeSrc": "10388:29:62", - "nodeType": "YulVariableDeclaration", - "src": "10388:29:62", - "value": { - "arguments": [ - { - "name": "value6", - "nativeSrc": "10406:6:62", - "nodeType": "YulIdentifier", - "src": "10406:6:62" - }, - { - "kind": "number", - "nativeSrc": "10414:2:62", - "nodeType": "YulLiteral", - "src": "10414:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10402:3:62", - "nodeType": "YulIdentifier", - "src": "10402:3:62" - }, - "nativeSrc": "10402:15:62", - "nodeType": "YulFunctionCall", - "src": "10402:15:62" - }, - "variables": [ - { - "name": "srcPtr", - "nativeSrc": "10392:6:62", - "nodeType": "YulTypedName", - "src": "10392:6:62", - "type": "" - } - ] - }, - { - "nativeSrc": "10426:10:62", - "nodeType": "YulVariableDeclaration", - "src": "10426:10:62", - "value": { - "kind": "number", - "nativeSrc": "10435:1:62", - "nodeType": "YulLiteral", - "src": "10435:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "10430:1:62", - "nodeType": "YulTypedName", - "src": "10430:1:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "10494:120:62", - "nodeType": "YulBlock", - "src": "10494:120:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "10515:3:62", - "nodeType": "YulIdentifier", - "src": "10515:3:62" - }, - { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "10526:6:62", - "nodeType": "YulIdentifier", - "src": "10526:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "10520:5:62", - "nodeType": "YulIdentifier", - "src": "10520:5:62" - }, - "nativeSrc": "10520:13:62", - "nodeType": "YulFunctionCall", - "src": "10520:13:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10508:6:62", - "nodeType": "YulIdentifier", - "src": "10508:6:62" - }, - "nativeSrc": "10508:26:62", - "nodeType": "YulFunctionCall", - "src": "10508:26:62" - }, - "nativeSrc": "10508:26:62", - "nodeType": "YulExpressionStatement", - "src": "10508:26:62" - }, - { - "nativeSrc": "10547:19:62", - "nodeType": "YulAssignment", - "src": "10547:19:62", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "10558:3:62", - "nodeType": "YulIdentifier", - "src": "10558:3:62" - }, - { - "kind": "number", - "nativeSrc": "10563:2:62", - "nodeType": "YulLiteral", - "src": "10563:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10554:3:62", - "nodeType": "YulIdentifier", - "src": "10554:3:62" - }, - "nativeSrc": "10554:12:62", - "nodeType": "YulFunctionCall", - "src": "10554:12:62" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "10547:3:62", - "nodeType": "YulIdentifier", - "src": "10547:3:62" - } - ] - }, - { - "nativeSrc": "10579:25:62", - "nodeType": "YulAssignment", - "src": "10579:25:62", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "10593:6:62", - "nodeType": "YulIdentifier", - "src": "10593:6:62" - }, - { - "kind": "number", - "nativeSrc": "10601:2:62", - "nodeType": "YulLiteral", - "src": "10601:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10589:3:62", - "nodeType": "YulIdentifier", - "src": "10589:3:62" - }, - "nativeSrc": "10589:15:62", - "nodeType": "YulFunctionCall", - "src": "10589:15:62" - }, - "variableNames": [ - { - "name": "srcPtr", - "nativeSrc": "10579:6:62", - "nodeType": "YulIdentifier", - "src": "10579:6:62" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "10456:1:62", - "nodeType": "YulIdentifier", - "src": "10456:1:62" - }, - { - "name": "length", - "nativeSrc": "10459:6:62", - "nodeType": "YulIdentifier", - "src": "10459:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "10453:2:62", - "nodeType": "YulIdentifier", - "src": "10453:2:62" - }, - "nativeSrc": "10453:13:62", - "nodeType": "YulFunctionCall", - "src": "10453:13:62" - }, - "nativeSrc": "10445:169:62", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "10467:18:62", - "nodeType": "YulBlock", - "src": "10467:18:62", - "statements": [ - { - "nativeSrc": "10469:14:62", - "nodeType": "YulAssignment", - "src": "10469:14:62", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "10478:1:62", - "nodeType": "YulIdentifier", - "src": "10478:1:62" - }, - { - "kind": "number", - "nativeSrc": "10481:1:62", - "nodeType": "YulLiteral", - "src": "10481:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10474:3:62", - "nodeType": "YulIdentifier", - "src": "10474:3:62" - }, - "nativeSrc": "10474:9:62", - "nodeType": "YulFunctionCall", - "src": "10474:9:62" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "10469:1:62", - "nodeType": "YulIdentifier", - "src": "10469:1:62" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "10449:3:62", - "nodeType": "YulBlock", - "src": "10449:3:62", - "statements": [] - }, - "src": "10445:169:62" - }, - { - "nativeSrc": "10623:11:62", - "nodeType": "YulAssignment", - "src": "10623:11:62", - "value": { - "name": "pos", - "nativeSrc": "10631:3:62", - "nodeType": "YulIdentifier", - "src": "10631:3:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "10623:4:62", - "nodeType": "YulIdentifier", - "src": "10623:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", - "nativeSrc": "9402:1238:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "9680:9:62", - "nodeType": "YulTypedName", - "src": "9680:9:62", - "type": "" - }, - { - "name": "value6", - "nativeSrc": "9691:6:62", - "nodeType": "YulTypedName", - "src": "9691:6:62", - "type": "" - }, - { - "name": "value5", - "nativeSrc": "9699:6:62", - "nodeType": "YulTypedName", - "src": "9699:6:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "9707:6:62", - "nodeType": "YulTypedName", - "src": "9707:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "9715:6:62", - "nodeType": "YulTypedName", - "src": "9715:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "9723:6:62", - "nodeType": "YulTypedName", - "src": "9723:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "9731:6:62", - "nodeType": "YulTypedName", - "src": "9731:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "9739:6:62", - "nodeType": "YulTypedName", - "src": "9739:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "9750:4:62", - "nodeType": "YulTypedName", - "src": "9750:4:62", - "type": "" - } - ], - "src": "9402:1238:62" - }, - { - "body": { - "nativeSrc": "10744:101:62", - "nodeType": "YulBlock", - "src": "10744:101:62", - "statements": [ - { - "nativeSrc": "10754:26:62", - "nodeType": "YulAssignment", - "src": "10754:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10766:9:62", - "nodeType": "YulIdentifier", - "src": "10766:9:62" - }, - { - "kind": "number", - "nativeSrc": "10777:2:62", - "nodeType": "YulLiteral", - "src": "10777:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10762:3:62", - "nodeType": "YulIdentifier", - "src": "10762:3:62" - }, - "nativeSrc": "10762:18:62", - "nodeType": "YulFunctionCall", - "src": "10762:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "10754:4:62", - "nodeType": "YulIdentifier", - "src": "10754:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "10796:9:62", - "nodeType": "YulIdentifier", - "src": "10796:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "10811:6:62", - "nodeType": "YulIdentifier", - "src": "10811:6:62" - }, - { - "kind": "number", - "nativeSrc": "10819:18:62", - "nodeType": "YulLiteral", - "src": "10819:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "10807:3:62", - "nodeType": "YulIdentifier", - "src": "10807:3:62" - }, - "nativeSrc": "10807:31:62", - "nodeType": "YulFunctionCall", - "src": "10807:31:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "10789:6:62", - "nodeType": "YulIdentifier", - "src": "10789:6:62" - }, - "nativeSrc": "10789:50:62", - "nodeType": "YulFunctionCall", - "src": "10789:50:62" - }, - "nativeSrc": "10789:50:62", - "nodeType": "YulExpressionStatement", - "src": "10789:50:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", - "nativeSrc": "10645:200:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10713:9:62", - "nodeType": "YulTypedName", - "src": "10713:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "10724:6:62", - "nodeType": "YulTypedName", - "src": "10724:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "10735:4:62", - "nodeType": "YulTypedName", - "src": "10735:4:62", - "type": "" - } - ], - "src": "10645:200:62" - }, - { - "body": { - "nativeSrc": "10979:145:62", - "nodeType": "YulBlock", - "src": "10979:145:62", - "statements": [ - { - "nativeSrc": "10989:26:62", - "nodeType": "YulAssignment", - "src": "10989:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11001:9:62", - "nodeType": "YulIdentifier", - "src": "11001:9:62" - }, - { - "kind": "number", - "nativeSrc": "11012:2:62", - "nodeType": "YulLiteral", - "src": "11012:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10997:3:62", - "nodeType": "YulIdentifier", - "src": "10997:3:62" - }, - "nativeSrc": "10997:18:62", - "nodeType": "YulFunctionCall", - "src": "10997:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "10989:4:62", - "nodeType": "YulIdentifier", - "src": "10989:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11031:9:62", - "nodeType": "YulIdentifier", - "src": "11031:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "11046:6:62", - "nodeType": "YulIdentifier", - "src": "11046:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11062:3:62", - "nodeType": "YulLiteral", - "src": "11062:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "11067:1:62", - "nodeType": "YulLiteral", - "src": "11067:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "11058:3:62", - "nodeType": "YulIdentifier", - "src": "11058:3:62" - }, - "nativeSrc": "11058:11:62", - "nodeType": "YulFunctionCall", - "src": "11058:11:62" - }, - { - "kind": "number", - "nativeSrc": "11071:1:62", - "nodeType": "YulLiteral", - "src": "11071:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "11054:3:62", - "nodeType": "YulIdentifier", - "src": "11054:3:62" - }, - "nativeSrc": "11054:19:62", - "nodeType": "YulFunctionCall", - "src": "11054:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "11042:3:62", - "nodeType": "YulIdentifier", - "src": "11042:3:62" - }, - "nativeSrc": "11042:32:62", - "nodeType": "YulFunctionCall", - "src": "11042:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11024:6:62", - "nodeType": "YulIdentifier", - "src": "11024:6:62" - }, - "nativeSrc": "11024:51:62", - "nodeType": "YulFunctionCall", - "src": "11024:51:62" - }, - "nativeSrc": "11024:51:62", - "nodeType": "YulExpressionStatement", - "src": "11024:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11095:9:62", - "nodeType": "YulIdentifier", - "src": "11095:9:62" - }, - { - "kind": "number", - "nativeSrc": "11106:2:62", - "nodeType": "YulLiteral", - "src": "11106:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11091:3:62", - "nodeType": "YulIdentifier", - "src": "11091:3:62" - }, - "nativeSrc": "11091:18:62", - "nodeType": "YulFunctionCall", - "src": "11091:18:62" - }, - { - "name": "value1", - "nativeSrc": "11111:6:62", - "nodeType": "YulIdentifier", - "src": "11111:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11084:6:62", - "nodeType": "YulIdentifier", - "src": "11084:6:62" - }, - "nativeSrc": "11084:34:62", - "nodeType": "YulFunctionCall", - "src": "11084:34:62" - }, - "nativeSrc": "11084:34:62", - "nodeType": "YulExpressionStatement", - "src": "11084:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "10850:274:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "10940:9:62", - "nodeType": "YulTypedName", - "src": "10940:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "10951:6:62", - "nodeType": "YulTypedName", - "src": "10951:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "10959:6:62", - "nodeType": "YulTypedName", - "src": "10959:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "10970:4:62", - "nodeType": "YulTypedName", - "src": "10970:4:62", - "type": "" - } - ], - "src": "10850:274:62" - }, - { - "body": { - "nativeSrc": "11245:505:62", - "nodeType": "YulBlock", - "src": "11245:505:62", - "statements": [ - { - "body": { - "nativeSrc": "11291:16:62", - "nodeType": "YulBlock", - "src": "11291:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11300:1:62", - "nodeType": "YulLiteral", - "src": "11300:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "11303:1:62", - "nodeType": "YulLiteral", - "src": "11303:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "11293:6:62", - "nodeType": "YulIdentifier", - "src": "11293:6:62" - }, - "nativeSrc": "11293:12:62", - "nodeType": "YulFunctionCall", - "src": "11293:12:62" - }, - "nativeSrc": "11293:12:62", - "nodeType": "YulExpressionStatement", - "src": "11293:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "11266:7:62", - "nodeType": "YulIdentifier", - "src": "11266:7:62" - }, - { - "name": "headStart", - "nativeSrc": "11275:9:62", - "nodeType": "YulIdentifier", - "src": "11275:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "11262:3:62", - "nodeType": "YulIdentifier", - "src": "11262:3:62" - }, - "nativeSrc": "11262:23:62", - "nodeType": "YulFunctionCall", - "src": "11262:23:62" - }, - { - "kind": "number", - "nativeSrc": "11287:2:62", - "nodeType": "YulLiteral", - "src": "11287:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "11258:3:62", - "nodeType": "YulIdentifier", - "src": "11258:3:62" - }, - "nativeSrc": "11258:32:62", - "nodeType": "YulFunctionCall", - "src": "11258:32:62" - }, - "nativeSrc": "11255:52:62", - "nodeType": "YulIf", - "src": "11255:52:62" - }, - { - "nativeSrc": "11316:37:62", - "nodeType": "YulVariableDeclaration", - "src": "11316:37:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11343:9:62", - "nodeType": "YulIdentifier", - "src": "11343:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "11330:12:62", - "nodeType": "YulIdentifier", - "src": "11330:12:62" - }, - "nativeSrc": "11330:23:62", - "nodeType": "YulFunctionCall", - "src": "11330:23:62" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "11320:6:62", - "nodeType": "YulTypedName", - "src": "11320:6:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "11396:16:62", - "nodeType": "YulBlock", - "src": "11396:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11405:1:62", - "nodeType": "YulLiteral", - "src": "11405:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "11408:1:62", - "nodeType": "YulLiteral", - "src": "11408:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "11398:6:62", - "nodeType": "YulIdentifier", - "src": "11398:6:62" - }, - "nativeSrc": "11398:12:62", - "nodeType": "YulFunctionCall", - "src": "11398:12:62" - }, - "nativeSrc": "11398:12:62", - "nodeType": "YulExpressionStatement", - "src": "11398:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "11368:6:62", - "nodeType": "YulIdentifier", - "src": "11368:6:62" - }, - { - "kind": "number", - "nativeSrc": "11376:18:62", - "nodeType": "YulLiteral", - "src": "11376:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "11365:2:62", - "nodeType": "YulIdentifier", - "src": "11365:2:62" - }, - "nativeSrc": "11365:30:62", - "nodeType": "YulFunctionCall", - "src": "11365:30:62" - }, - "nativeSrc": "11362:50:62", - "nodeType": "YulIf", - "src": "11362:50:62" - }, - { - "nativeSrc": "11421:32:62", - "nodeType": "YulVariableDeclaration", - "src": "11421:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11435:9:62", - "nodeType": "YulIdentifier", - "src": "11435:9:62" - }, - { - "name": "offset", - "nativeSrc": "11446:6:62", - "nodeType": "YulIdentifier", - "src": "11446:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11431:3:62", - "nodeType": "YulIdentifier", - "src": "11431:3:62" - }, - "nativeSrc": "11431:22:62", - "nodeType": "YulFunctionCall", - "src": "11431:22:62" - }, - "variables": [ - { - "name": "_1", - "nativeSrc": "11425:2:62", - "nodeType": "YulTypedName", - "src": "11425:2:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "11501:16:62", - "nodeType": "YulBlock", - "src": "11501:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11510:1:62", - "nodeType": "YulLiteral", - "src": "11510:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "11513:1:62", - "nodeType": "YulLiteral", - "src": "11513:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "11503:6:62", - "nodeType": "YulIdentifier", - "src": "11503:6:62" - }, - "nativeSrc": "11503:12:62", - "nodeType": "YulFunctionCall", - "src": "11503:12:62" - }, - "nativeSrc": "11503:12:62", - "nodeType": "YulExpressionStatement", - "src": "11503:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_1", - "nativeSrc": "11480:2:62", - "nodeType": "YulIdentifier", - "src": "11480:2:62" - }, - { - "kind": "number", - "nativeSrc": "11484:4:62", - "nodeType": "YulLiteral", - "src": "11484:4:62", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11476:3:62", - "nodeType": "YulIdentifier", - "src": "11476:3:62" - }, - "nativeSrc": "11476:13:62", - "nodeType": "YulFunctionCall", - "src": "11476:13:62" - }, - { - "name": "dataEnd", - "nativeSrc": "11491:7:62", - "nodeType": "YulIdentifier", - "src": "11491:7:62" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "11472:3:62", - "nodeType": "YulIdentifier", - "src": "11472:3:62" - }, - "nativeSrc": "11472:27:62", - "nodeType": "YulFunctionCall", - "src": "11472:27:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "11465:6:62", - "nodeType": "YulIdentifier", - "src": "11465:6:62" - }, - "nativeSrc": "11465:35:62", - "nodeType": "YulFunctionCall", - "src": "11465:35:62" - }, - "nativeSrc": "11462:55:62", - "nodeType": "YulIf", - "src": "11462:55:62" - }, - { - "nativeSrc": "11526:30:62", - "nodeType": "YulVariableDeclaration", - "src": "11526:30:62", - "value": { - "arguments": [ - { - "name": "_1", - "nativeSrc": "11553:2:62", - "nodeType": "YulIdentifier", - "src": "11553:2:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "11540:12:62", - "nodeType": "YulIdentifier", - "src": "11540:12:62" - }, - "nativeSrc": "11540:16:62", - "nodeType": "YulFunctionCall", - "src": "11540:16:62" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "11530:6:62", - "nodeType": "YulTypedName", - "src": "11530:6:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "11599:16:62", - "nodeType": "YulBlock", - "src": "11599:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11608:1:62", - "nodeType": "YulLiteral", - "src": "11608:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "11611:1:62", - "nodeType": "YulLiteral", - "src": "11611:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "11601:6:62", - "nodeType": "YulIdentifier", - "src": "11601:6:62" - }, - "nativeSrc": "11601:12:62", - "nodeType": "YulFunctionCall", - "src": "11601:12:62" - }, - "nativeSrc": "11601:12:62", - "nodeType": "YulExpressionStatement", - "src": "11601:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "11571:6:62", - "nodeType": "YulIdentifier", - "src": "11571:6:62" - }, - { - "kind": "number", - "nativeSrc": "11579:18:62", - "nodeType": "YulLiteral", - "src": "11579:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "11568:2:62", - "nodeType": "YulIdentifier", - "src": "11568:2:62" - }, - "nativeSrc": "11568:30:62", - "nodeType": "YulFunctionCall", - "src": "11568:30:62" - }, - "nativeSrc": "11565:50:62", - "nodeType": "YulIf", - "src": "11565:50:62" - }, - { - "body": { - "nativeSrc": "11673:16:62", - "nodeType": "YulBlock", - "src": "11673:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11682:1:62", - "nodeType": "YulLiteral", - "src": "11682:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "11685:1:62", - "nodeType": "YulLiteral", - "src": "11685:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "11675:6:62", - "nodeType": "YulIdentifier", - "src": "11675:6:62" - }, - "nativeSrc": "11675:12:62", - "nodeType": "YulFunctionCall", - "src": "11675:12:62" - }, - "nativeSrc": "11675:12:62", - "nodeType": "YulExpressionStatement", - "src": "11675:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_1", - "nativeSrc": "11638:2:62", - "nodeType": "YulIdentifier", - "src": "11638:2:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "11646:1:62", - "nodeType": "YulLiteral", - "src": "11646:1:62", - "type": "", - "value": "5" - }, - { - "name": "length", - "nativeSrc": "11649:6:62", - "nodeType": "YulIdentifier", - "src": "11649:6:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "11642:3:62", - "nodeType": "YulIdentifier", - "src": "11642:3:62" - }, - "nativeSrc": "11642:14:62", - "nodeType": "YulFunctionCall", - "src": "11642:14:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11634:3:62", - "nodeType": "YulIdentifier", - "src": "11634:3:62" - }, - "nativeSrc": "11634:23:62", - "nodeType": "YulFunctionCall", - "src": "11634:23:62" - }, - { - "kind": "number", - "nativeSrc": "11659:2:62", - "nodeType": "YulLiteral", - "src": "11659:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11630:3:62", - "nodeType": "YulIdentifier", - "src": "11630:3:62" - }, - "nativeSrc": "11630:32:62", - "nodeType": "YulFunctionCall", - "src": "11630:32:62" - }, - { - "name": "dataEnd", - "nativeSrc": "11664:7:62", - "nodeType": "YulIdentifier", - "src": "11664:7:62" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "11627:2:62", - "nodeType": "YulIdentifier", - "src": "11627:2:62" - }, - "nativeSrc": "11627:45:62", - "nodeType": "YulFunctionCall", - "src": "11627:45:62" - }, - "nativeSrc": "11624:65:62", - "nodeType": "YulIf", - "src": "11624:65:62" - }, - { - "nativeSrc": "11698:21:62", - "nodeType": "YulAssignment", - "src": "11698:21:62", - "value": { - "arguments": [ - { - "name": "_1", - "nativeSrc": "11712:2:62", - "nodeType": "YulIdentifier", - "src": "11712:2:62" - }, - { - "kind": "number", - "nativeSrc": "11716:2:62", - "nodeType": "YulLiteral", - "src": "11716:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11708:3:62", - "nodeType": "YulIdentifier", - "src": "11708:3:62" - }, - "nativeSrc": "11708:11:62", - "nodeType": "YulFunctionCall", - "src": "11708:11:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "11698:6:62", - "nodeType": "YulIdentifier", - "src": "11698:6:62" - } - ] - }, - { - "nativeSrc": "11728:16:62", - "nodeType": "YulAssignment", - "src": "11728:16:62", - "value": { - "name": "length", - "nativeSrc": "11738:6:62", - "nodeType": "YulIdentifier", - "src": "11738:6:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "11728:6:62", - "nodeType": "YulIdentifier", - "src": "11728:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", - "nativeSrc": "11129:621:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "11203:9:62", - "nodeType": "YulTypedName", - "src": "11203:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "11214:7:62", - "nodeType": "YulTypedName", - "src": "11214:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "11226:6:62", - "nodeType": "YulTypedName", - "src": "11226:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "11234:6:62", - "nodeType": "YulTypedName", - "src": "11234:6:62", - "type": "" - } - ], - "src": "11129:621:62" - }, - { - "body": { - "nativeSrc": "11924:611:62", - "nodeType": "YulBlock", - "src": "11924:611:62", - "statements": [ - { - "nativeSrc": "11934:32:62", - "nodeType": "YulVariableDeclaration", - "src": "11934:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11952:9:62", - "nodeType": "YulIdentifier", - "src": "11952:9:62" - }, - { - "kind": "number", - "nativeSrc": "11963:2:62", - "nodeType": "YulLiteral", - "src": "11963:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11948:3:62", - "nodeType": "YulIdentifier", - "src": "11948:3:62" - }, - "nativeSrc": "11948:18:62", - "nodeType": "YulFunctionCall", - "src": "11948:18:62" - }, - "variables": [ - { - "name": "tail_1", - "nativeSrc": "11938:6:62", - "nodeType": "YulTypedName", - "src": "11938:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11982:9:62", - "nodeType": "YulIdentifier", - "src": "11982:9:62" - }, - { - "kind": "number", - "nativeSrc": "11993:2:62", - "nodeType": "YulLiteral", - "src": "11993:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "11975:6:62", - "nodeType": "YulIdentifier", - "src": "11975:6:62" - }, - "nativeSrc": "11975:21:62", - "nodeType": "YulFunctionCall", - "src": "11975:21:62" - }, - "nativeSrc": "11975:21:62", - "nodeType": "YulExpressionStatement", - "src": "11975:21:62" - }, - { - "nativeSrc": "12005:17:62", - "nodeType": "YulVariableDeclaration", - "src": "12005:17:62", - "value": { - "name": "tail_1", - "nativeSrc": "12016:6:62", - "nodeType": "YulIdentifier", - "src": "12016:6:62" - }, - "variables": [ - { - "name": "pos", - "nativeSrc": "12009:3:62", - "nodeType": "YulTypedName", - "src": "12009:3:62", - "type": "" - } - ] - }, - { - "nativeSrc": "12031:27:62", - "nodeType": "YulVariableDeclaration", - "src": "12031:27:62", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "12051:6:62", - "nodeType": "YulIdentifier", - "src": "12051:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "12045:5:62", - "nodeType": "YulIdentifier", - "src": "12045:5:62" - }, - "nativeSrc": "12045:13:62", - "nodeType": "YulFunctionCall", - "src": "12045:13:62" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "12035:6:62", - "nodeType": "YulTypedName", - "src": "12035:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "tail_1", - "nativeSrc": "12074:6:62", - "nodeType": "YulIdentifier", - "src": "12074:6:62" - }, - { - "name": "length", - "nativeSrc": "12082:6:62", - "nodeType": "YulIdentifier", - "src": "12082:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12067:6:62", - "nodeType": "YulIdentifier", - "src": "12067:6:62" - }, - "nativeSrc": "12067:22:62", - "nodeType": "YulFunctionCall", - "src": "12067:22:62" - }, - "nativeSrc": "12067:22:62", - "nodeType": "YulExpressionStatement", - "src": "12067:22:62" - }, - { - "nativeSrc": "12098:25:62", - "nodeType": "YulAssignment", - "src": "12098:25:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12109:9:62", - "nodeType": "YulIdentifier", - "src": "12109:9:62" - }, - { - "kind": "number", - "nativeSrc": "12120:2:62", - "nodeType": "YulLiteral", - "src": "12120:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12105:3:62", - "nodeType": "YulIdentifier", - "src": "12105:3:62" - }, - "nativeSrc": "12105:18:62", - "nodeType": "YulFunctionCall", - "src": "12105:18:62" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "12098:3:62", - "nodeType": "YulIdentifier", - "src": "12098:3:62" - } - ] - }, - { - "nativeSrc": "12132:53:62", - "nodeType": "YulVariableDeclaration", - "src": "12132:53:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12154:9:62", - "nodeType": "YulIdentifier", - "src": "12154:9:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "12169:1:62", - "nodeType": "YulLiteral", - "src": "12169:1:62", - "type": "", - "value": "5" - }, - { - "name": "length", - "nativeSrc": "12172:6:62", - "nodeType": "YulIdentifier", - "src": "12172:6:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "12165:3:62", - "nodeType": "YulIdentifier", - "src": "12165:3:62" - }, - "nativeSrc": "12165:14:62", - "nodeType": "YulFunctionCall", - "src": "12165:14:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12150:3:62", - "nodeType": "YulIdentifier", - "src": "12150:3:62" - }, - "nativeSrc": "12150:30:62", - "nodeType": "YulFunctionCall", - "src": "12150:30:62" - }, - { - "kind": "number", - "nativeSrc": "12182:2:62", - "nodeType": "YulLiteral", - "src": "12182:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12146:3:62", - "nodeType": "YulIdentifier", - "src": "12146:3:62" - }, - "nativeSrc": "12146:39:62", - "nodeType": "YulFunctionCall", - "src": "12146:39:62" - }, - "variables": [ - { - "name": "tail_2", - "nativeSrc": "12136:6:62", - "nodeType": "YulTypedName", - "src": "12136:6:62", - "type": "" - } - ] - }, - { - "nativeSrc": "12194:29:62", - "nodeType": "YulVariableDeclaration", - "src": "12194:29:62", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "12212:6:62", - "nodeType": "YulIdentifier", - "src": "12212:6:62" - }, - { - "kind": "number", - "nativeSrc": "12220:2:62", - "nodeType": "YulLiteral", - "src": "12220:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12208:3:62", - "nodeType": "YulIdentifier", - "src": "12208:3:62" - }, - "nativeSrc": "12208:15:62", - "nodeType": "YulFunctionCall", - "src": "12208:15:62" - }, - "variables": [ - { - "name": "srcPtr", - "nativeSrc": "12198:6:62", - "nodeType": "YulTypedName", - "src": "12198:6:62", - "type": "" - } - ] - }, - { - "nativeSrc": "12232:10:62", - "nodeType": "YulVariableDeclaration", - "src": "12232:10:62", - "value": { - "kind": "number", - "nativeSrc": "12241:1:62", - "nodeType": "YulLiteral", - "src": "12241:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "12236:1:62", - "nodeType": "YulTypedName", - "src": "12236:1:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "12300:206:62", - "nodeType": "YulBlock", - "src": "12300:206:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "12321:3:62", - "nodeType": "YulIdentifier", - "src": "12321:3:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "tail_2", - "nativeSrc": "12334:6:62", - "nodeType": "YulIdentifier", - "src": "12334:6:62" - }, - { - "name": "headStart", - "nativeSrc": "12342:9:62", - "nodeType": "YulIdentifier", - "src": "12342:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "12330:3:62", - "nodeType": "YulIdentifier", - "src": "12330:3:62" - }, - "nativeSrc": "12330:22:62", - "nodeType": "YulFunctionCall", - "src": "12330:22:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "12358:2:62", - "nodeType": "YulLiteral", - "src": "12358:2:62", - "type": "", - "value": "63" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "12354:3:62", - "nodeType": "YulIdentifier", - "src": "12354:3:62" - }, - "nativeSrc": "12354:7:62", - "nodeType": "YulFunctionCall", - "src": "12354:7:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12326:3:62", - "nodeType": "YulIdentifier", - "src": "12326:3:62" - }, - "nativeSrc": "12326:36:62", - "nodeType": "YulFunctionCall", - "src": "12326:36:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "12314:6:62", - "nodeType": "YulIdentifier", - "src": "12314:6:62" - }, - "nativeSrc": "12314:49:62", - "nodeType": "YulFunctionCall", - "src": "12314:49:62" - }, - "nativeSrc": "12314:49:62", - "nodeType": "YulExpressionStatement", - "src": "12314:49:62" - }, - { - "nativeSrc": "12376:50:62", - "nodeType": "YulAssignment", - "src": "12376:50:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "12410:6:62", - "nodeType": "YulIdentifier", - "src": "12410:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "12404:5:62", - "nodeType": "YulIdentifier", - "src": "12404:5:62" - }, - "nativeSrc": "12404:13:62", - "nodeType": "YulFunctionCall", - "src": "12404:13:62" - }, - { - "name": "tail_2", - "nativeSrc": "12419:6:62", - "nodeType": "YulIdentifier", - "src": "12419:6:62" - } - ], - "functionName": { - "name": "abi_encode_string", - "nativeSrc": "12386:17:62", - "nodeType": "YulIdentifier", - "src": "12386:17:62" - }, - "nativeSrc": "12386:40:62", - "nodeType": "YulFunctionCall", - "src": "12386:40:62" - }, - "variableNames": [ - { - "name": "tail_2", - "nativeSrc": "12376:6:62", - "nodeType": "YulIdentifier", - "src": "12376:6:62" - } - ] - }, - { - "nativeSrc": "12439:25:62", - "nodeType": "YulAssignment", - "src": "12439:25:62", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "12453:6:62", - "nodeType": "YulIdentifier", - "src": "12453:6:62" - }, - { - "kind": "number", - "nativeSrc": "12461:2:62", - "nodeType": "YulLiteral", - "src": "12461:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12449:3:62", - "nodeType": "YulIdentifier", - "src": "12449:3:62" - }, - "nativeSrc": "12449:15:62", - "nodeType": "YulFunctionCall", - "src": "12449:15:62" - }, - "variableNames": [ - { - "name": "srcPtr", - "nativeSrc": "12439:6:62", - "nodeType": "YulIdentifier", - "src": "12439:6:62" - } - ] - }, - { - "nativeSrc": "12477:19:62", - "nodeType": "YulAssignment", - "src": "12477:19:62", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "12488:3:62", - "nodeType": "YulIdentifier", - "src": "12488:3:62" - }, - { - "kind": "number", - "nativeSrc": "12493:2:62", - "nodeType": "YulLiteral", - "src": "12493:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12484:3:62", - "nodeType": "YulIdentifier", - "src": "12484:3:62" - }, - "nativeSrc": "12484:12:62", - "nodeType": "YulFunctionCall", - "src": "12484:12:62" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "12477:3:62", - "nodeType": "YulIdentifier", - "src": "12477:3:62" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "12262:1:62", - "nodeType": "YulIdentifier", - "src": "12262:1:62" - }, - { - "name": "length", - "nativeSrc": "12265:6:62", - "nodeType": "YulIdentifier", - "src": "12265:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "12259:2:62", - "nodeType": "YulIdentifier", - "src": "12259:2:62" - }, - "nativeSrc": "12259:13:62", - "nodeType": "YulFunctionCall", - "src": "12259:13:62" - }, - "nativeSrc": "12251:255:62", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "12273:18:62", - "nodeType": "YulBlock", - "src": "12273:18:62", - "statements": [ - { - "nativeSrc": "12275:14:62", - "nodeType": "YulAssignment", - "src": "12275:14:62", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "12284:1:62", - "nodeType": "YulIdentifier", - "src": "12284:1:62" - }, - { - "kind": "number", - "nativeSrc": "12287:1:62", - "nodeType": "YulLiteral", - "src": "12287:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12280:3:62", - "nodeType": "YulIdentifier", - "src": "12280:3:62" - }, - "nativeSrc": "12280:9:62", - "nodeType": "YulFunctionCall", - "src": "12280:9:62" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "12275:1:62", - "nodeType": "YulIdentifier", - "src": "12275:1:62" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "12255:3:62", - "nodeType": "YulBlock", - "src": "12255:3:62", - "statements": [] - }, - "src": "12251:255:62" - }, - { - "nativeSrc": "12515:14:62", - "nodeType": "YulAssignment", - "src": "12515:14:62", - "value": { - "name": "tail_2", - "nativeSrc": "12523:6:62", - "nodeType": "YulIdentifier", - "src": "12523:6:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "12515:4:62", - "nodeType": "YulIdentifier", - "src": "12515:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed", - "nativeSrc": "11755:780:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "11893:9:62", - "nodeType": "YulTypedName", - "src": "11893:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "11904:6:62", - "nodeType": "YulTypedName", - "src": "11904:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "11915:4:62", - "nodeType": "YulTypedName", - "src": "11915:4:62", - "type": "" - } - ], - "src": "11755:780:62" - }, - { - "body": { - "nativeSrc": "12680:571:62", - "nodeType": "YulBlock", - "src": "12680:571:62", - "statements": [ - { - "body": { - "nativeSrc": "12726:16:62", - "nodeType": "YulBlock", - "src": "12726:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "12735:1:62", - "nodeType": "YulLiteral", - "src": "12735:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "12738:1:62", - "nodeType": "YulLiteral", - "src": "12738:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "12728:6:62", - "nodeType": "YulIdentifier", - "src": "12728:6:62" - }, - "nativeSrc": "12728:12:62", - "nodeType": "YulFunctionCall", - "src": "12728:12:62" - }, - "nativeSrc": "12728:12:62", - "nodeType": "YulExpressionStatement", - "src": "12728:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "12701:7:62", - "nodeType": "YulIdentifier", - "src": "12701:7:62" - }, - { - "name": "headStart", - "nativeSrc": "12710:9:62", - "nodeType": "YulIdentifier", - "src": "12710:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "12697:3:62", - "nodeType": "YulIdentifier", - "src": "12697:3:62" - }, - "nativeSrc": "12697:23:62", - "nodeType": "YulFunctionCall", - "src": "12697:23:62" - }, - { - "kind": "number", - "nativeSrc": "12722:2:62", - "nodeType": "YulLiteral", - "src": "12722:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "12693:3:62", - "nodeType": "YulIdentifier", - "src": "12693:3:62" - }, - "nativeSrc": "12693:32:62", - "nodeType": "YulFunctionCall", - "src": "12693:32:62" - }, - "nativeSrc": "12690:52:62", - "nodeType": "YulIf", - "src": "12690:52:62" - }, - { - "nativeSrc": "12751:36:62", - "nodeType": "YulVariableDeclaration", - "src": "12751:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12777:9:62", - "nodeType": "YulIdentifier", - "src": "12777:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "12764:12:62", - "nodeType": "YulIdentifier", - "src": "12764:12:62" - }, - "nativeSrc": "12764:23:62", - "nodeType": "YulFunctionCall", - "src": "12764:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "12755:5:62", - "nodeType": "YulTypedName", - "src": "12755:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "12821:5:62", - "nodeType": "YulIdentifier", - "src": "12821:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "12796:24:62", - "nodeType": "YulIdentifier", - "src": "12796:24:62" - }, - "nativeSrc": "12796:31:62", - "nodeType": "YulFunctionCall", - "src": "12796:31:62" - }, - "nativeSrc": "12796:31:62", - "nodeType": "YulExpressionStatement", - "src": "12796:31:62" - }, - { - "nativeSrc": "12836:15:62", - "nodeType": "YulAssignment", - "src": "12836:15:62", - "value": { - "name": "value", - "nativeSrc": "12846:5:62", - "nodeType": "YulIdentifier", - "src": "12846:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "12836:6:62", - "nodeType": "YulIdentifier", - "src": "12836:6:62" - } - ] - }, - { - "nativeSrc": "12860:47:62", - "nodeType": "YulVariableDeclaration", - "src": "12860:47:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12892:9:62", - "nodeType": "YulIdentifier", - "src": "12892:9:62" - }, - { - "kind": "number", - "nativeSrc": "12903:2:62", - "nodeType": "YulLiteral", - "src": "12903:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12888:3:62", - "nodeType": "YulIdentifier", - "src": "12888:3:62" - }, - "nativeSrc": "12888:18:62", - "nodeType": "YulFunctionCall", - "src": "12888:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "12875:12:62", - "nodeType": "YulIdentifier", - "src": "12875:12:62" - }, - "nativeSrc": "12875:32:62", - "nodeType": "YulFunctionCall", - "src": "12875:32:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "12864:7:62", - "nodeType": "YulTypedName", - "src": "12864:7:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "12942:16:62", - "nodeType": "YulBlock", - "src": "12942:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "12951:1:62", - "nodeType": "YulLiteral", - "src": "12951:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "12954:1:62", - "nodeType": "YulLiteral", - "src": "12954:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "12944:6:62", - "nodeType": "YulIdentifier", - "src": "12944:6:62" - }, - "nativeSrc": "12944:12:62", - "nodeType": "YulFunctionCall", - "src": "12944:12:62" - }, - "nativeSrc": "12944:12:62", - "nodeType": "YulExpressionStatement", - "src": "12944:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "12929:7:62", - "nodeType": "YulIdentifier", - "src": "12929:7:62" - }, - { - "kind": "number", - "nativeSrc": "12938:1:62", - "nodeType": "YulLiteral", - "src": "12938:1:62", - "type": "", - "value": "3" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "12926:2:62", - "nodeType": "YulIdentifier", - "src": "12926:2:62" - }, - "nativeSrc": "12926:14:62", - "nodeType": "YulFunctionCall", - "src": "12926:14:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "12919:6:62", - "nodeType": "YulIdentifier", - "src": "12919:6:62" - }, - "nativeSrc": "12919:22:62", - "nodeType": "YulFunctionCall", - "src": "12919:22:62" - }, - "nativeSrc": "12916:42:62", - "nodeType": "YulIf", - "src": "12916:42:62" - }, - { - "nativeSrc": "12967:17:62", - "nodeType": "YulAssignment", - "src": "12967:17:62", - "value": { - "name": "value_1", - "nativeSrc": "12977:7:62", - "nodeType": "YulIdentifier", - "src": "12977:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "12967:6:62", - "nodeType": "YulIdentifier", - "src": "12967:6:62" - } - ] - }, - { - "nativeSrc": "12993:46:62", - "nodeType": "YulVariableDeclaration", - "src": "12993:46:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13024:9:62", - "nodeType": "YulIdentifier", - "src": "13024:9:62" - }, - { - "kind": "number", - "nativeSrc": "13035:2:62", - "nodeType": "YulLiteral", - "src": "13035:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13020:3:62", - "nodeType": "YulIdentifier", - "src": "13020:3:62" - }, - "nativeSrc": "13020:18:62", - "nodeType": "YulFunctionCall", - "src": "13020:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "13007:12:62", - "nodeType": "YulIdentifier", - "src": "13007:12:62" - }, - "nativeSrc": "13007:32:62", - "nodeType": "YulFunctionCall", - "src": "13007:32:62" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "12997:6:62", - "nodeType": "YulTypedName", - "src": "12997:6:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "13082:16:62", - "nodeType": "YulBlock", - "src": "13082:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "13091:1:62", - "nodeType": "YulLiteral", - "src": "13091:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "13094:1:62", - "nodeType": "YulLiteral", - "src": "13094:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "13084:6:62", - "nodeType": "YulIdentifier", - "src": "13084:6:62" - }, - "nativeSrc": "13084:12:62", - "nodeType": "YulFunctionCall", - "src": "13084:12:62" - }, - "nativeSrc": "13084:12:62", - "nodeType": "YulExpressionStatement", - "src": "13084:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "13054:6:62", - "nodeType": "YulIdentifier", - "src": "13054:6:62" - }, - { - "kind": "number", - "nativeSrc": "13062:18:62", - "nodeType": "YulLiteral", - "src": "13062:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "13051:2:62", - "nodeType": "YulIdentifier", - "src": "13051:2:62" - }, - "nativeSrc": "13051:30:62", - "nodeType": "YulFunctionCall", - "src": "13051:30:62" - }, - "nativeSrc": "13048:50:62", - "nodeType": "YulIf", - "src": "13048:50:62" - }, - { - "nativeSrc": "13107:84:62", - "nodeType": "YulVariableDeclaration", - "src": "13107:84:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13163:9:62", - "nodeType": "YulIdentifier", - "src": "13163:9:62" - }, - { - "name": "offset", - "nativeSrc": "13174:6:62", - "nodeType": "YulIdentifier", - "src": "13174:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13159:3:62", - "nodeType": "YulIdentifier", - "src": "13159:3:62" - }, - "nativeSrc": "13159:22:62", - "nodeType": "YulFunctionCall", - "src": "13159:22:62" - }, - { - "name": "dataEnd", - "nativeSrc": "13183:7:62", - "nodeType": "YulIdentifier", - "src": "13183:7:62" - } - ], - "functionName": { - "name": "abi_decode_bytes_calldata", - "nativeSrc": "13133:25:62", - "nodeType": "YulIdentifier", - "src": "13133:25:62" - }, - "nativeSrc": "13133:58:62", - "nodeType": "YulFunctionCall", - "src": "13133:58:62" - }, - "variables": [ - { - "name": "value2_1", - "nativeSrc": "13111:8:62", - "nodeType": "YulTypedName", - "src": "13111:8:62", - "type": "" - }, - { - "name": "value3_1", - "nativeSrc": "13121:8:62", - "nodeType": "YulTypedName", - "src": "13121:8:62", - "type": "" - } - ] - }, - { - "nativeSrc": "13200:18:62", - "nodeType": "YulAssignment", - "src": "13200:18:62", - "value": { - "name": "value2_1", - "nativeSrc": "13210:8:62", - "nodeType": "YulIdentifier", - "src": "13210:8:62" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "13200:6:62", - "nodeType": "YulIdentifier", - "src": "13200:6:62" - } - ] - }, - { - "nativeSrc": "13227:18:62", - "nodeType": "YulAssignment", - "src": "13227:18:62", - "value": { - "name": "value3_1", - "nativeSrc": "13237:8:62", - "nodeType": "YulIdentifier", - "src": "13237:8:62" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "13227:6:62", - "nodeType": "YulIdentifier", - "src": "13227:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_enum$_PaymentTypes_$2166t_bytes_calldata_ptr", - "nativeSrc": "12540:711:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "12622:9:62", - "nodeType": "YulTypedName", - "src": "12622:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "12633:7:62", - "nodeType": "YulTypedName", - "src": "12633:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "12645:6:62", - "nodeType": "YulTypedName", - "src": "12645:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "12653:6:62", - "nodeType": "YulTypedName", - "src": "12653:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "12661:6:62", - "nodeType": "YulTypedName", - "src": "12661:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "12669:6:62", - "nodeType": "YulTypedName", - "src": "12669:6:62", - "type": "" - } - ], - "src": "12540:711:62" - }, - { - "body": { - "nativeSrc": "13343:301:62", - "nodeType": "YulBlock", - "src": "13343:301:62", - "statements": [ - { - "body": { - "nativeSrc": "13389:16:62", - "nodeType": "YulBlock", - "src": "13389:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "13398:1:62", - "nodeType": "YulLiteral", - "src": "13398:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "13401:1:62", - "nodeType": "YulLiteral", - "src": "13401:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "13391:6:62", - "nodeType": "YulIdentifier", - "src": "13391:6:62" - }, - "nativeSrc": "13391:12:62", - "nodeType": "YulFunctionCall", - "src": "13391:12:62" - }, - "nativeSrc": "13391:12:62", - "nodeType": "YulExpressionStatement", - "src": "13391:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "13364:7:62", - "nodeType": "YulIdentifier", - "src": "13364:7:62" - }, - { - "name": "headStart", - "nativeSrc": "13373:9:62", - "nodeType": "YulIdentifier", - "src": "13373:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "13360:3:62", - "nodeType": "YulIdentifier", - "src": "13360:3:62" - }, - "nativeSrc": "13360:23:62", - "nodeType": "YulFunctionCall", - "src": "13360:23:62" - }, - { - "kind": "number", - "nativeSrc": "13385:2:62", - "nodeType": "YulLiteral", - "src": "13385:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "13356:3:62", - "nodeType": "YulIdentifier", - "src": "13356:3:62" - }, - "nativeSrc": "13356:32:62", - "nodeType": "YulFunctionCall", - "src": "13356:32:62" - }, - "nativeSrc": "13353:52:62", - "nodeType": "YulIf", - "src": "13353:52:62" - }, - { - "nativeSrc": "13414:36:62", - "nodeType": "YulVariableDeclaration", - "src": "13414:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13440:9:62", - "nodeType": "YulIdentifier", - "src": "13440:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "13427:12:62", - "nodeType": "YulIdentifier", - "src": "13427:12:62" - }, - "nativeSrc": "13427:23:62", - "nodeType": "YulFunctionCall", - "src": "13427:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "13418:5:62", - "nodeType": "YulTypedName", - "src": "13418:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "13484:5:62", - "nodeType": "YulIdentifier", - "src": "13484:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "13459:24:62", - "nodeType": "YulIdentifier", - "src": "13459:24:62" - }, - "nativeSrc": "13459:31:62", - "nodeType": "YulFunctionCall", - "src": "13459:31:62" - }, - "nativeSrc": "13459:31:62", - "nodeType": "YulExpressionStatement", - "src": "13459:31:62" - }, - { - "nativeSrc": "13499:15:62", - "nodeType": "YulAssignment", - "src": "13499:15:62", - "value": { - "name": "value", - "nativeSrc": "13509:5:62", - "nodeType": "YulIdentifier", - "src": "13509:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "13499:6:62", - "nodeType": "YulIdentifier", - "src": "13499:6:62" - } - ] - }, - { - "nativeSrc": "13523:47:62", - "nodeType": "YulVariableDeclaration", - "src": "13523:47:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13555:9:62", - "nodeType": "YulIdentifier", - "src": "13555:9:62" - }, - { - "kind": "number", - "nativeSrc": "13566:2:62", - "nodeType": "YulLiteral", - "src": "13566:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13551:3:62", - "nodeType": "YulIdentifier", - "src": "13551:3:62" - }, - "nativeSrc": "13551:18:62", - "nodeType": "YulFunctionCall", - "src": "13551:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "13538:12:62", - "nodeType": "YulIdentifier", - "src": "13538:12:62" - }, - "nativeSrc": "13538:32:62", - "nodeType": "YulFunctionCall", - "src": "13538:32:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "13527:7:62", - "nodeType": "YulTypedName", - "src": "13527:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "13604:7:62", - "nodeType": "YulIdentifier", - "src": "13604:7:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "13579:24:62", - "nodeType": "YulIdentifier", - "src": "13579:24:62" - }, - "nativeSrc": "13579:33:62", - "nodeType": "YulFunctionCall", - "src": "13579:33:62" - }, - "nativeSrc": "13579:33:62", - "nodeType": "YulExpressionStatement", - "src": "13579:33:62" - }, - { - "nativeSrc": "13621:17:62", - "nodeType": "YulAssignment", - "src": "13621:17:62", - "value": { - "name": "value_1", - "nativeSrc": "13631:7:62", - "nodeType": "YulIdentifier", - "src": "13631:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "13621:6:62", - "nodeType": "YulIdentifier", - "src": "13621:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_address", - "nativeSrc": "13256:388:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "13301:9:62", - "nodeType": "YulTypedName", - "src": "13301:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "13312:7:62", - "nodeType": "YulTypedName", - "src": "13312:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "13324:6:62", - "nodeType": "YulTypedName", - "src": "13324:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "13332:6:62", - "nodeType": "YulTypedName", - "src": "13332:6:62", - "type": "" - } - ], - "src": "13256:388:62" - }, - { - "body": { - "nativeSrc": "13750:76:62", - "nodeType": "YulBlock", - "src": "13750:76:62", - "statements": [ - { - "nativeSrc": "13760:26:62", - "nodeType": "YulAssignment", - "src": "13760:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13772:9:62", - "nodeType": "YulIdentifier", - "src": "13772:9:62" - }, - { - "kind": "number", - "nativeSrc": "13783:2:62", - "nodeType": "YulLiteral", - "src": "13783:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13768:3:62", - "nodeType": "YulIdentifier", - "src": "13768:3:62" - }, - "nativeSrc": "13768:18:62", - "nodeType": "YulFunctionCall", - "src": "13768:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "13760:4:62", - "nodeType": "YulIdentifier", - "src": "13760:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13802:9:62", - "nodeType": "YulIdentifier", - "src": "13802:9:62" - }, - { - "name": "value0", - "nativeSrc": "13813:6:62", - "nodeType": "YulIdentifier", - "src": "13813:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "13795:6:62", - "nodeType": "YulIdentifier", - "src": "13795:6:62" - }, - "nativeSrc": "13795:25:62", - "nodeType": "YulFunctionCall", - "src": "13795:25:62" - }, - "nativeSrc": "13795:25:62", - "nodeType": "YulExpressionStatement", - "src": "13795:25:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "13649:177:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "13719:9:62", - "nodeType": "YulTypedName", - "src": "13719:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "13730:6:62", - "nodeType": "YulTypedName", - "src": "13730:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "13741:4:62", - "nodeType": "YulTypedName", - "src": "13741:4:62", - "type": "" - } - ], - "src": "13649:177:62" - }, - { - "body": { - "nativeSrc": "14016:206:62", - "nodeType": "YulBlock", - "src": "14016:206:62", - "statements": [ - { - "nativeSrc": "14026:27:62", - "nodeType": "YulAssignment", - "src": "14026:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14038:9:62", - "nodeType": "YulIdentifier", - "src": "14038:9:62" - }, - { - "kind": "number", - "nativeSrc": "14049:3:62", - "nodeType": "YulLiteral", - "src": "14049:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14034:3:62", - "nodeType": "YulIdentifier", - "src": "14034:3:62" - }, - "nativeSrc": "14034:19:62", - "nodeType": "YulFunctionCall", - "src": "14034:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "14026:4:62", - "nodeType": "YulIdentifier", - "src": "14026:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14069:9:62", - "nodeType": "YulIdentifier", - "src": "14069:9:62" - }, - { - "name": "value0", - "nativeSrc": "14080:6:62", - "nodeType": "YulIdentifier", - "src": "14080:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14062:6:62", - "nodeType": "YulIdentifier", - "src": "14062:6:62" - }, - "nativeSrc": "14062:25:62", - "nodeType": "YulFunctionCall", - "src": "14062:25:62" - }, - "nativeSrc": "14062:25:62", - "nodeType": "YulExpressionStatement", - "src": "14062:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14107:9:62", - "nodeType": "YulIdentifier", - "src": "14107:9:62" - }, - { - "kind": "number", - "nativeSrc": "14118:2:62", - "nodeType": "YulLiteral", - "src": "14118:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14103:3:62", - "nodeType": "YulIdentifier", - "src": "14103:3:62" - }, - "nativeSrc": "14103:18:62", - "nodeType": "YulFunctionCall", - "src": "14103:18:62" - }, - { - "name": "value1", - "nativeSrc": "14123:6:62", - "nodeType": "YulIdentifier", - "src": "14123:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14096:6:62", - "nodeType": "YulIdentifier", - "src": "14096:6:62" - }, - "nativeSrc": "14096:34:62", - "nodeType": "YulFunctionCall", - "src": "14096:34:62" - }, - "nativeSrc": "14096:34:62", - "nodeType": "YulExpressionStatement", - "src": "14096:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14150:9:62", - "nodeType": "YulIdentifier", - "src": "14150:9:62" - }, - { - "kind": "number", - "nativeSrc": "14161:2:62", - "nodeType": "YulLiteral", - "src": "14161:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14146:3:62", - "nodeType": "YulIdentifier", - "src": "14146:3:62" - }, - "nativeSrc": "14146:18:62", - "nodeType": "YulFunctionCall", - "src": "14146:18:62" - }, - { - "name": "value2", - "nativeSrc": "14166:6:62", - "nodeType": "YulIdentifier", - "src": "14166:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14139:6:62", - "nodeType": "YulIdentifier", - "src": "14139:6:62" - }, - "nativeSrc": "14139:34:62", - "nodeType": "YulFunctionCall", - "src": "14139:34:62" - }, - "nativeSrc": "14139:34:62", - "nodeType": "YulExpressionStatement", - "src": "14139:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14193:9:62", - "nodeType": "YulIdentifier", - "src": "14193:9:62" - }, - { - "kind": "number", - "nativeSrc": "14204:2:62", - "nodeType": "YulLiteral", - "src": "14204:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14189:3:62", - "nodeType": "YulIdentifier", - "src": "14189:3:62" - }, - "nativeSrc": "14189:18:62", - "nodeType": "YulFunctionCall", - "src": "14189:18:62" - }, - { - "name": "value3", - "nativeSrc": "14209:6:62", - "nodeType": "YulIdentifier", - "src": "14209:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14182:6:62", - "nodeType": "YulIdentifier", - "src": "14182:6:62" - }, - "nativeSrc": "14182:34:62", - "nodeType": "YulFunctionCall", - "src": "14182:34:62" - }, - "nativeSrc": "14182:34:62", - "nodeType": "YulExpressionStatement", - "src": "14182:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes32__to_t_uint256_t_uint256_t_uint256_t_bytes32__fromStack_reversed", - "nativeSrc": "13831:391:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "13961:9:62", - "nodeType": "YulTypedName", - "src": "13961:9:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "13972:6:62", - "nodeType": "YulTypedName", - "src": "13972:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "13980:6:62", - "nodeType": "YulTypedName", - "src": "13980:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "13988:6:62", - "nodeType": "YulTypedName", - "src": "13988:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "13996:6:62", - "nodeType": "YulTypedName", - "src": "13996:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "14007:4:62", - "nodeType": "YulTypedName", - "src": "14007:4:62", - "type": "" - } - ], - "src": "13831:391:62" - }, - { - "body": { - "nativeSrc": "14335:101:62", - "nodeType": "YulBlock", - "src": "14335:101:62", - "statements": [ - { - "nativeSrc": "14345:26:62", - "nodeType": "YulAssignment", - "src": "14345:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14357:9:62", - "nodeType": "YulIdentifier", - "src": "14357:9:62" - }, - { - "kind": "number", - "nativeSrc": "14368:2:62", - "nodeType": "YulLiteral", - "src": "14368:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14353:3:62", - "nodeType": "YulIdentifier", - "src": "14353:3:62" - }, - "nativeSrc": "14353:18:62", - "nodeType": "YulFunctionCall", - "src": "14353:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "14345:4:62", - "nodeType": "YulIdentifier", - "src": "14345:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14387:9:62", - "nodeType": "YulIdentifier", - "src": "14387:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "14402:6:62", - "nodeType": "YulIdentifier", - "src": "14402:6:62" - }, - { - "kind": "number", - "nativeSrc": "14410:18:62", - "nodeType": "YulLiteral", - "src": "14410:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "14398:3:62", - "nodeType": "YulIdentifier", - "src": "14398:3:62" - }, - "nativeSrc": "14398:31:62", - "nodeType": "YulFunctionCall", - "src": "14398:31:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14380:6:62", - "nodeType": "YulIdentifier", - "src": "14380:6:62" - }, - "nativeSrc": "14380:50:62", - "nodeType": "YulFunctionCall", - "src": "14380:50:62" - }, - "nativeSrc": "14380:50:62", - "nodeType": "YulExpressionStatement", - "src": "14380:50:62" - } - ] - }, - "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", - "nativeSrc": "14227:209:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "14304:9:62", - "nodeType": "YulTypedName", - "src": "14304:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "14315:6:62", - "nodeType": "YulTypedName", - "src": "14315:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "14326:4:62", - "nodeType": "YulTypedName", - "src": "14326:4:62", - "type": "" - } - ], - "src": "14227:209:62" - }, - { - "body": { - "nativeSrc": "14598:240:62", - "nodeType": "YulBlock", - "src": "14598:240:62", - "statements": [ - { - "nativeSrc": "14608:26:62", - "nodeType": "YulAssignment", - "src": "14608:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14620:9:62", - "nodeType": "YulIdentifier", - "src": "14620:9:62" - }, - { - "kind": "number", - "nativeSrc": "14631:2:62", - "nodeType": "YulLiteral", - "src": "14631:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14616:3:62", - "nodeType": "YulIdentifier", - "src": "14616:3:62" - }, - "nativeSrc": "14616:18:62", - "nodeType": "YulFunctionCall", - "src": "14616:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "14608:4:62", - "nodeType": "YulIdentifier", - "src": "14608:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14650:9:62", - "nodeType": "YulIdentifier", - "src": "14650:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "14665:6:62", - "nodeType": "YulIdentifier", - "src": "14665:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14681:3:62", - "nodeType": "YulLiteral", - "src": "14681:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "14686:1:62", - "nodeType": "YulLiteral", - "src": "14686:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "14677:3:62", - "nodeType": "YulIdentifier", - "src": "14677:3:62" - }, - "nativeSrc": "14677:11:62", - "nodeType": "YulFunctionCall", - "src": "14677:11:62" - }, - { - "kind": "number", - "nativeSrc": "14690:1:62", - "nodeType": "YulLiteral", - "src": "14690:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "14673:3:62", - "nodeType": "YulIdentifier", - "src": "14673:3:62" - }, - "nativeSrc": "14673:19:62", - "nodeType": "YulFunctionCall", - "src": "14673:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "14661:3:62", - "nodeType": "YulIdentifier", - "src": "14661:3:62" - }, - "nativeSrc": "14661:32:62", - "nodeType": "YulFunctionCall", - "src": "14661:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14643:6:62", - "nodeType": "YulIdentifier", - "src": "14643:6:62" - }, - "nativeSrc": "14643:51:62", - "nodeType": "YulFunctionCall", - "src": "14643:51:62" - }, - "nativeSrc": "14643:51:62", - "nodeType": "YulExpressionStatement", - "src": "14643:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14714:9:62", - "nodeType": "YulIdentifier", - "src": "14714:9:62" - }, - { - "kind": "number", - "nativeSrc": "14725:2:62", - "nodeType": "YulLiteral", - "src": "14725:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14710:3:62", - "nodeType": "YulIdentifier", - "src": "14710:3:62" - }, - "nativeSrc": "14710:18:62", - "nodeType": "YulFunctionCall", - "src": "14710:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "14734:6:62", - "nodeType": "YulIdentifier", - "src": "14734:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14750:3:62", - "nodeType": "YulLiteral", - "src": "14750:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "14755:1:62", - "nodeType": "YulLiteral", - "src": "14755:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "14746:3:62", - "nodeType": "YulIdentifier", - "src": "14746:3:62" - }, - "nativeSrc": "14746:11:62", - "nodeType": "YulFunctionCall", - "src": "14746:11:62" - }, - { - "kind": "number", - "nativeSrc": "14759:1:62", - "nodeType": "YulLiteral", - "src": "14759:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "14742:3:62", - "nodeType": "YulIdentifier", - "src": "14742:3:62" - }, - "nativeSrc": "14742:19:62", - "nodeType": "YulFunctionCall", - "src": "14742:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "14730:3:62", - "nodeType": "YulIdentifier", - "src": "14730:3:62" - }, - "nativeSrc": "14730:32:62", - "nodeType": "YulFunctionCall", - "src": "14730:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14703:6:62", - "nodeType": "YulIdentifier", - "src": "14703:6:62" - }, - "nativeSrc": "14703:60:62", - "nodeType": "YulFunctionCall", - "src": "14703:60:62" - }, - "nativeSrc": "14703:60:62", - "nodeType": "YulExpressionStatement", - "src": "14703:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "14783:9:62", - "nodeType": "YulIdentifier", - "src": "14783:9:62" - }, - { - "kind": "number", - "nativeSrc": "14794:2:62", - "nodeType": "YulLiteral", - "src": "14794:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14779:3:62", - "nodeType": "YulIdentifier", - "src": "14779:3:62" - }, - "nativeSrc": "14779:18:62", - "nodeType": "YulFunctionCall", - "src": "14779:18:62" - }, - { - "arguments": [ - { - "name": "value2", - "nativeSrc": "14803:6:62", - "nodeType": "YulIdentifier", - "src": "14803:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14819:3:62", - "nodeType": "YulLiteral", - "src": "14819:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "14824:1:62", - "nodeType": "YulLiteral", - "src": "14824:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "14815:3:62", - "nodeType": "YulIdentifier", - "src": "14815:3:62" - }, - "nativeSrc": "14815:11:62", - "nodeType": "YulFunctionCall", - "src": "14815:11:62" - }, - { - "kind": "number", - "nativeSrc": "14828:1:62", - "nodeType": "YulLiteral", - "src": "14828:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "14811:3:62", - "nodeType": "YulIdentifier", - "src": "14811:3:62" - }, - "nativeSrc": "14811:19:62", - "nodeType": "YulFunctionCall", - "src": "14811:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "14799:3:62", - "nodeType": "YulIdentifier", - "src": "14799:3:62" - }, - "nativeSrc": "14799:32:62", - "nodeType": "YulFunctionCall", - "src": "14799:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14772:6:62", - "nodeType": "YulIdentifier", - "src": "14772:6:62" - }, - "nativeSrc": "14772:60:62", - "nodeType": "YulFunctionCall", - "src": "14772:60:62" - }, - "nativeSrc": "14772:60:62", - "nodeType": "YulExpressionStatement", - "src": "14772:60:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed", - "nativeSrc": "14441:397:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "14551:9:62", - "nodeType": "YulTypedName", - "src": "14551:9:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "14562:6:62", - "nodeType": "YulTypedName", - "src": "14562:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "14570:6:62", - "nodeType": "YulTypedName", - "src": "14570:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "14578:6:62", - "nodeType": "YulTypedName", - "src": "14578:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "14589:4:62", - "nodeType": "YulTypedName", - "src": "14589:4:62", - "type": "" - } - ], - "src": "14441:397:62" - }, - { - "body": { - "nativeSrc": "14921:167:62", - "nodeType": "YulBlock", - "src": "14921:167:62", - "statements": [ - { - "body": { - "nativeSrc": "14967:16:62", - "nodeType": "YulBlock", - "src": "14967:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "14976:1:62", - "nodeType": "YulLiteral", - "src": "14976:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "14979:1:62", - "nodeType": "YulLiteral", - "src": "14979:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "14969:6:62", - "nodeType": "YulIdentifier", - "src": "14969:6:62" - }, - "nativeSrc": "14969:12:62", - "nodeType": "YulFunctionCall", - "src": "14969:12:62" - }, - "nativeSrc": "14969:12:62", - "nodeType": "YulExpressionStatement", - "src": "14969:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "14942:7:62", - "nodeType": "YulIdentifier", - "src": "14942:7:62" - }, - { - "name": "headStart", - "nativeSrc": "14951:9:62", - "nodeType": "YulIdentifier", - "src": "14951:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "14938:3:62", - "nodeType": "YulIdentifier", - "src": "14938:3:62" - }, - "nativeSrc": "14938:23:62", - "nodeType": "YulFunctionCall", - "src": "14938:23:62" - }, - { - "kind": "number", - "nativeSrc": "14963:2:62", - "nodeType": "YulLiteral", - "src": "14963:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "14934:3:62", - "nodeType": "YulIdentifier", - "src": "14934:3:62" - }, - "nativeSrc": "14934:32:62", - "nodeType": "YulFunctionCall", - "src": "14934:32:62" - }, - "nativeSrc": "14931:52:62", - "nodeType": "YulIf", - "src": "14931:52:62" - }, - { - "nativeSrc": "14992:29:62", - "nodeType": "YulVariableDeclaration", - "src": "14992:29:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15011:9:62", - "nodeType": "YulIdentifier", - "src": "15011:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "15005:5:62", - "nodeType": "YulIdentifier", - "src": "15005:5:62" - }, - "nativeSrc": "15005:16:62", - "nodeType": "YulFunctionCall", - "src": "15005:16:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "14996:5:62", - "nodeType": "YulTypedName", - "src": "14996:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "15052:5:62", - "nodeType": "YulIdentifier", - "src": "15052:5:62" - } - ], - "functionName": { - "name": "validator_revert_bool", - "nativeSrc": "15030:21:62", - "nodeType": "YulIdentifier", - "src": "15030:21:62" - }, - "nativeSrc": "15030:28:62", - "nodeType": "YulFunctionCall", - "src": "15030:28:62" - }, - "nativeSrc": "15030:28:62", - "nodeType": "YulExpressionStatement", - "src": "15030:28:62" - }, - { - "nativeSrc": "15067:15:62", - "nodeType": "YulAssignment", - "src": "15067:15:62", - "value": { - "name": "value", - "nativeSrc": "15077:5:62", - "nodeType": "YulIdentifier", - "src": "15077:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "15067:6:62", - "nodeType": "YulIdentifier", - "src": "15067:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bool_fromMemory", - "nativeSrc": "14843:245:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "14887:9:62", - "nodeType": "YulTypedName", - "src": "14887:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "14898:7:62", - "nodeType": "YulTypedName", - "src": "14898:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "14910:6:62", - "nodeType": "YulTypedName", - "src": "14910:6:62", - "type": "" - } - ], - "src": "14843:245:62" - }, - { - "body": { - "nativeSrc": "15222:171:62", - "nodeType": "YulBlock", - "src": "15222:171:62", - "statements": [ - { - "nativeSrc": "15232:26:62", - "nodeType": "YulAssignment", - "src": "15232:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15244:9:62", - "nodeType": "YulIdentifier", - "src": "15244:9:62" - }, - { - "kind": "number", - "nativeSrc": "15255:2:62", - "nodeType": "YulLiteral", - "src": "15255:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15240:3:62", - "nodeType": "YulIdentifier", - "src": "15240:3:62" - }, - "nativeSrc": "15240:18:62", - "nodeType": "YulFunctionCall", - "src": "15240:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "15232:4:62", - "nodeType": "YulIdentifier", - "src": "15232:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15274:9:62", - "nodeType": "YulIdentifier", - "src": "15274:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "15289:6:62", - "nodeType": "YulIdentifier", - "src": "15289:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15305:3:62", - "nodeType": "YulLiteral", - "src": "15305:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "15310:1:62", - "nodeType": "YulLiteral", - "src": "15310:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "15301:3:62", - "nodeType": "YulIdentifier", - "src": "15301:3:62" - }, - "nativeSrc": "15301:11:62", - "nodeType": "YulFunctionCall", - "src": "15301:11:62" - }, - { - "kind": "number", - "nativeSrc": "15314:1:62", - "nodeType": "YulLiteral", - "src": "15314:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "15297:3:62", - "nodeType": "YulIdentifier", - "src": "15297:3:62" - }, - "nativeSrc": "15297:19:62", - "nodeType": "YulFunctionCall", - "src": "15297:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "15285:3:62", - "nodeType": "YulIdentifier", - "src": "15285:3:62" - }, - "nativeSrc": "15285:32:62", - "nodeType": "YulFunctionCall", - "src": "15285:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15267:6:62", - "nodeType": "YulIdentifier", - "src": "15267:6:62" - }, - "nativeSrc": "15267:51:62", - "nodeType": "YulFunctionCall", - "src": "15267:51:62" - }, - "nativeSrc": "15267:51:62", - "nodeType": "YulExpressionStatement", - "src": "15267:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15338:9:62", - "nodeType": "YulIdentifier", - "src": "15338:9:62" - }, - { - "kind": "number", - "nativeSrc": "15349:2:62", - "nodeType": "YulLiteral", - "src": "15349:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15334:3:62", - "nodeType": "YulIdentifier", - "src": "15334:3:62" - }, - "nativeSrc": "15334:18:62", - "nodeType": "YulFunctionCall", - "src": "15334:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "15358:6:62", - "nodeType": "YulIdentifier", - "src": "15358:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15374:3:62", - "nodeType": "YulLiteral", - "src": "15374:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "15379:1:62", - "nodeType": "YulLiteral", - "src": "15379:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "15370:3:62", - "nodeType": "YulIdentifier", - "src": "15370:3:62" - }, - "nativeSrc": "15370:11:62", - "nodeType": "YulFunctionCall", - "src": "15370:11:62" - }, - { - "kind": "number", - "nativeSrc": "15383:1:62", - "nodeType": "YulLiteral", - "src": "15383:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "15366:3:62", - "nodeType": "YulIdentifier", - "src": "15366:3:62" - }, - "nativeSrc": "15366:19:62", - "nodeType": "YulFunctionCall", - "src": "15366:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "15354:3:62", - "nodeType": "YulIdentifier", - "src": "15354:3:62" - }, - "nativeSrc": "15354:32:62", - "nodeType": "YulFunctionCall", - "src": "15354:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15327:6:62", - "nodeType": "YulIdentifier", - "src": "15327:6:62" - }, - "nativeSrc": "15327:60:62", - "nodeType": "YulFunctionCall", - "src": "15327:60:62" - }, - "nativeSrc": "15327:60:62", - "nodeType": "YulExpressionStatement", - "src": "15327:60:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", - "nativeSrc": "15093:300:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "15183:9:62", - "nodeType": "YulTypedName", - "src": "15183:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "15194:6:62", - "nodeType": "YulTypedName", - "src": "15194:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "15202:6:62", - "nodeType": "YulTypedName", - "src": "15202:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "15213:4:62", - "nodeType": "YulTypedName", - "src": "15213:4:62", - "type": "" - } - ], - "src": "15093:300:62" - }, - { - "body": { - "nativeSrc": "15430:95:62", - "nodeType": "YulBlock", - "src": "15430:95:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15447:1:62", - "nodeType": "YulLiteral", - "src": "15447:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15454:3:62", - "nodeType": "YulLiteral", - "src": "15454:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "15459:10:62", - "nodeType": "YulLiteral", - "src": "15459:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "15450:3:62", - "nodeType": "YulIdentifier", - "src": "15450:3:62" - }, - "nativeSrc": "15450:20:62", - "nodeType": "YulFunctionCall", - "src": "15450:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15440:6:62", - "nodeType": "YulIdentifier", - "src": "15440:6:62" - }, - "nativeSrc": "15440:31:62", - "nodeType": "YulFunctionCall", - "src": "15440:31:62" - }, - "nativeSrc": "15440:31:62", - "nodeType": "YulExpressionStatement", - "src": "15440:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15487:1:62", - "nodeType": "YulLiteral", - "src": "15487:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "15490:4:62", - "nodeType": "YulLiteral", - "src": "15490:4:62", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15480:6:62", - "nodeType": "YulIdentifier", - "src": "15480:6:62" - }, - "nativeSrc": "15480:15:62", - "nodeType": "YulFunctionCall", - "src": "15480:15:62" - }, - "nativeSrc": "15480:15:62", - "nodeType": "YulExpressionStatement", - "src": "15480:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15511:1:62", - "nodeType": "YulLiteral", - "src": "15511:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "15514:4:62", - "nodeType": "YulLiteral", - "src": "15514:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "15504:6:62", - "nodeType": "YulIdentifier", - "src": "15504:6:62" - }, - "nativeSrc": "15504:15:62", - "nodeType": "YulFunctionCall", - "src": "15504:15:62" - }, - "nativeSrc": "15504:15:62", - "nodeType": "YulExpressionStatement", - "src": "15504:15:62" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "15398:127:62", - "nodeType": "YulFunctionDefinition", - "src": "15398:127:62" - }, - { - "body": { - "nativeSrc": "15576:211:62", - "nodeType": "YulBlock", - "src": "15576:211:62", - "statements": [ - { - "nativeSrc": "15586:21:62", - "nodeType": "YulAssignment", - "src": "15586:21:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15602:4:62", - "nodeType": "YulLiteral", - "src": "15602:4:62", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "15596:5:62", - "nodeType": "YulIdentifier", - "src": "15596:5:62" - }, - "nativeSrc": "15596:11:62", - "nodeType": "YulFunctionCall", - "src": "15596:11:62" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "15586:6:62", - "nodeType": "YulIdentifier", - "src": "15586:6:62" - } - ] - }, - { - "nativeSrc": "15616:35:62", - "nodeType": "YulVariableDeclaration", - "src": "15616:35:62", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "15638:6:62", - "nodeType": "YulIdentifier", - "src": "15638:6:62" - }, - { - "kind": "number", - "nativeSrc": "15646:4:62", - "nodeType": "YulLiteral", - "src": "15646:4:62", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15634:3:62", - "nodeType": "YulIdentifier", - "src": "15634:3:62" - }, - "nativeSrc": "15634:17:62", - "nodeType": "YulFunctionCall", - "src": "15634:17:62" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "15620:10:62", - "nodeType": "YulTypedName", - "src": "15620:10:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "15726:22:62", - "nodeType": "YulBlock", - "src": "15726:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "15728:16:62", - "nodeType": "YulIdentifier", - "src": "15728:16:62" - }, - "nativeSrc": "15728:18:62", - "nodeType": "YulFunctionCall", - "src": "15728:18:62" - }, - "nativeSrc": "15728:18:62", - "nodeType": "YulExpressionStatement", - "src": "15728:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "15669:10:62", - "nodeType": "YulIdentifier", - "src": "15669:10:62" - }, - { - "kind": "number", - "nativeSrc": "15681:18:62", - "nodeType": "YulLiteral", - "src": "15681:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "15666:2:62", - "nodeType": "YulIdentifier", - "src": "15666:2:62" - }, - "nativeSrc": "15666:34:62", - "nodeType": "YulFunctionCall", - "src": "15666:34:62" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "15705:10:62", - "nodeType": "YulIdentifier", - "src": "15705:10:62" - }, - { - "name": "memPtr", - "nativeSrc": "15717:6:62", - "nodeType": "YulIdentifier", - "src": "15717:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "15702:2:62", - "nodeType": "YulIdentifier", - "src": "15702:2:62" - }, - "nativeSrc": "15702:22:62", - "nodeType": "YulFunctionCall", - "src": "15702:22:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "15663:2:62", - "nodeType": "YulIdentifier", - "src": "15663:2:62" - }, - "nativeSrc": "15663:62:62", - "nodeType": "YulFunctionCall", - "src": "15663:62:62" - }, - "nativeSrc": "15660:88:62", - "nodeType": "YulIf", - "src": "15660:88:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15764:4:62", - "nodeType": "YulLiteral", - "src": "15764:4:62", - "type": "", - "value": "0x40" - }, - { - "name": "newFreePtr", - "nativeSrc": "15770:10:62", - "nodeType": "YulIdentifier", - "src": "15770:10:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "15757:6:62", - "nodeType": "YulIdentifier", - "src": "15757:6:62" - }, - "nativeSrc": "15757:24:62", - "nodeType": "YulFunctionCall", - "src": "15757:24:62" - }, - "nativeSrc": "15757:24:62", - "nodeType": "YulExpressionStatement", - "src": "15757:24:62" - } - ] - }, - "name": "allocate_memory_4281", - "nativeSrc": "15530:257:62", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "15565:6:62", - "nodeType": "YulTypedName", - "src": "15565:6:62", - "type": "" - } - ], - "src": "15530:257:62" - }, - { - "body": { - "nativeSrc": "15833:207:62", - "nodeType": "YulBlock", - "src": "15833:207:62", - "statements": [ - { - "nativeSrc": "15843:19:62", - "nodeType": "YulAssignment", - "src": "15843:19:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "15859:2:62", - "nodeType": "YulLiteral", - "src": "15859:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "15853:5:62", - "nodeType": "YulIdentifier", - "src": "15853:5:62" - }, - "nativeSrc": "15853:9:62", - "nodeType": "YulFunctionCall", - "src": "15853:9:62" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "15843:6:62", - "nodeType": "YulIdentifier", - "src": "15843:6:62" - } - ] - }, - { - "nativeSrc": "15871:35:62", - "nodeType": "YulVariableDeclaration", - "src": "15871:35:62", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "15893:6:62", - "nodeType": "YulIdentifier", - "src": "15893:6:62" - }, - { - "kind": "number", - "nativeSrc": "15901:4:62", - "nodeType": "YulLiteral", - "src": "15901:4:62", - "type": "", - "value": "0xa0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15889:3:62", - "nodeType": "YulIdentifier", - "src": "15889:3:62" - }, - "nativeSrc": "15889:17:62", - "nodeType": "YulFunctionCall", - "src": "15889:17:62" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "15875:10:62", - "nodeType": "YulTypedName", - "src": "15875:10:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "15981:22:62", - "nodeType": "YulBlock", - "src": "15981:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "15983:16:62", - "nodeType": "YulIdentifier", - "src": "15983:16:62" - }, - "nativeSrc": "15983:18:62", - "nodeType": "YulFunctionCall", - "src": "15983:18:62" - }, - "nativeSrc": "15983:18:62", - "nodeType": "YulExpressionStatement", - "src": "15983:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "15924:10:62", - "nodeType": "YulIdentifier", - "src": "15924:10:62" - }, - { - "kind": "number", - "nativeSrc": "15936:18:62", - "nodeType": "YulLiteral", - "src": "15936:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "15921:2:62", - "nodeType": "YulIdentifier", - "src": "15921:2:62" - }, - "nativeSrc": "15921:34:62", - "nodeType": "YulFunctionCall", - "src": "15921:34:62" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "15960:10:62", - "nodeType": "YulIdentifier", - "src": "15960:10:62" - }, - { - "name": "memPtr", - "nativeSrc": "15972:6:62", - "nodeType": "YulIdentifier", - "src": "15972:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "15957:2:62", - "nodeType": "YulIdentifier", - "src": "15957:2:62" - }, - "nativeSrc": "15957:22:62", - "nodeType": "YulFunctionCall", - "src": "15957:22:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "15918:2:62", - "nodeType": "YulIdentifier", - "src": "15918:2:62" - }, - "nativeSrc": "15918:62:62", - "nodeType": "YulFunctionCall", - "src": "15918:62:62" - }, - "nativeSrc": "15915:88:62", - "nodeType": "YulIf", - "src": "15915:88:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16019:2:62", - "nodeType": "YulLiteral", - "src": "16019:2:62", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "16023:10:62", - "nodeType": "YulIdentifier", - "src": "16023:10:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "16012:6:62", - "nodeType": "YulIdentifier", - "src": "16012:6:62" - }, - "nativeSrc": "16012:22:62", - "nodeType": "YulFunctionCall", - "src": "16012:22:62" - }, - "nativeSrc": "16012:22:62", - "nodeType": "YulExpressionStatement", - "src": "16012:22:62" - } - ] - }, - "name": "allocate_memory", - "nativeSrc": "15792:248:62", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "15822:6:62", - "nodeType": "YulTypedName", - "src": "15822:6:62", - "type": "" - } - ], - "src": "15792:248:62" - }, - { - "body": { - "nativeSrc": "16091:206:62", - "nodeType": "YulBlock", - "src": "16091:206:62", - "statements": [ - { - "nativeSrc": "16101:19:62", - "nodeType": "YulAssignment", - "src": "16101:19:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16117:2:62", - "nodeType": "YulLiteral", - "src": "16117:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "16111:5:62", - "nodeType": "YulIdentifier", - "src": "16111:5:62" - }, - "nativeSrc": "16111:9:62", - "nodeType": "YulFunctionCall", - "src": "16111:9:62" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "16101:6:62", - "nodeType": "YulIdentifier", - "src": "16101:6:62" - } - ] - }, - { - "nativeSrc": "16129:34:62", - "nodeType": "YulVariableDeclaration", - "src": "16129:34:62", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "16151:6:62", - "nodeType": "YulIdentifier", - "src": "16151:6:62" - }, - { - "kind": "number", - "nativeSrc": "16159:3:62", - "nodeType": "YulLiteral", - "src": "16159:3:62", - "type": "", - "value": "288" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16147:3:62", - "nodeType": "YulIdentifier", - "src": "16147:3:62" - }, - "nativeSrc": "16147:16:62", - "nodeType": "YulFunctionCall", - "src": "16147:16:62" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "16133:10:62", - "nodeType": "YulTypedName", - "src": "16133:10:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "16238:22:62", - "nodeType": "YulBlock", - "src": "16238:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "16240:16:62", - "nodeType": "YulIdentifier", - "src": "16240:16:62" - }, - "nativeSrc": "16240:18:62", - "nodeType": "YulFunctionCall", - "src": "16240:18:62" - }, - "nativeSrc": "16240:18:62", - "nodeType": "YulExpressionStatement", - "src": "16240:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "16181:10:62", - "nodeType": "YulIdentifier", - "src": "16181:10:62" - }, - { - "kind": "number", - "nativeSrc": "16193:18:62", - "nodeType": "YulLiteral", - "src": "16193:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "16178:2:62", - "nodeType": "YulIdentifier", - "src": "16178:2:62" - }, - "nativeSrc": "16178:34:62", - "nodeType": "YulFunctionCall", - "src": "16178:34:62" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "16217:10:62", - "nodeType": "YulIdentifier", - "src": "16217:10:62" - }, - { - "name": "memPtr", - "nativeSrc": "16229:6:62", - "nodeType": "YulIdentifier", - "src": "16229:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "16214:2:62", - "nodeType": "YulIdentifier", - "src": "16214:2:62" - }, - "nativeSrc": "16214:22:62", - "nodeType": "YulFunctionCall", - "src": "16214:22:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "16175:2:62", - "nodeType": "YulIdentifier", - "src": "16175:2:62" - }, - "nativeSrc": "16175:62:62", - "nodeType": "YulFunctionCall", - "src": "16175:62:62" - }, - "nativeSrc": "16172:88:62", - "nodeType": "YulIf", - "src": "16172:88:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16276:2:62", - "nodeType": "YulLiteral", - "src": "16276:2:62", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "16280:10:62", - "nodeType": "YulIdentifier", - "src": "16280:10:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "16269:6:62", - "nodeType": "YulIdentifier", - "src": "16269:6:62" - }, - "nativeSrc": "16269:22:62", - "nodeType": "YulFunctionCall", - "src": "16269:22:62" - }, - "nativeSrc": "16269:22:62", - "nodeType": "YulExpressionStatement", - "src": "16269:22:62" - } - ] - }, - "name": "allocate_memory_4284", - "nativeSrc": "16045:252:62", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "16080:6:62", - "nodeType": "YulTypedName", - "src": "16080:6:62", - "type": "" - } - ], - "src": "16045:252:62" - }, - { - "body": { - "nativeSrc": "16355:836:62", - "nodeType": "YulBlock", - "src": "16355:836:62", - "statements": [ - { - "body": { - "nativeSrc": "16404:16:62", - "nodeType": "YulBlock", - "src": "16404:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16413:1:62", - "nodeType": "YulLiteral", - "src": "16413:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "16416:1:62", - "nodeType": "YulLiteral", - "src": "16416:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "16406:6:62", - "nodeType": "YulIdentifier", - "src": "16406:6:62" - }, - "nativeSrc": "16406:12:62", - "nodeType": "YulFunctionCall", - "src": "16406:12:62" - }, - "nativeSrc": "16406:12:62", - "nodeType": "YulExpressionStatement", - "src": "16406:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nativeSrc": "16383:6:62", - "nodeType": "YulIdentifier", - "src": "16383:6:62" - }, - { - "kind": "number", - "nativeSrc": "16391:4:62", - "nodeType": "YulLiteral", - "src": "16391:4:62", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16379:3:62", - "nodeType": "YulIdentifier", - "src": "16379:3:62" - }, - "nativeSrc": "16379:17:62", - "nodeType": "YulFunctionCall", - "src": "16379:17:62" - }, - { - "name": "end", - "nativeSrc": "16398:3:62", - "nodeType": "YulIdentifier", - "src": "16398:3:62" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "16375:3:62", - "nodeType": "YulIdentifier", - "src": "16375:3:62" - }, - "nativeSrc": "16375:27:62", - "nodeType": "YulFunctionCall", - "src": "16375:27:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "16368:6:62", - "nodeType": "YulIdentifier", - "src": "16368:6:62" - }, - "nativeSrc": "16368:35:62", - "nodeType": "YulFunctionCall", - "src": "16368:35:62" - }, - "nativeSrc": "16365:55:62", - "nodeType": "YulIf", - "src": "16365:55:62" - }, - { - "nativeSrc": "16429:34:62", - "nodeType": "YulVariableDeclaration", - "src": "16429:34:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "16456:6:62", - "nodeType": "YulIdentifier", - "src": "16456:6:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "16443:12:62", - "nodeType": "YulIdentifier", - "src": "16443:12:62" - }, - "nativeSrc": "16443:20:62", - "nodeType": "YulFunctionCall", - "src": "16443:20:62" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "16433:6:62", - "nodeType": "YulTypedName", - "src": "16433:6:62", - "type": "" - } - ] - }, - { - "nativeSrc": "16472:28:62", - "nodeType": "YulVariableDeclaration", - "src": "16472:28:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "16487:6:62", - "nodeType": "YulIdentifier", - "src": "16487:6:62" - }, - { - "kind": "number", - "nativeSrc": "16495:4:62", - "nodeType": "YulLiteral", - "src": "16495:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16483:3:62", - "nodeType": "YulIdentifier", - "src": "16483:3:62" - }, - "nativeSrc": "16483:17:62", - "nodeType": "YulFunctionCall", - "src": "16483:17:62" - }, - "variables": [ - { - "name": "src", - "nativeSrc": "16476:3:62", - "nodeType": "YulTypedName", - "src": "16476:3:62", - "type": "" - } - ] - }, - { - "nativeSrc": "16509:16:62", - "nodeType": "YulVariableDeclaration", - "src": "16509:16:62", - "value": { - "kind": "number", - "nativeSrc": "16524:1:62", - "nodeType": "YulLiteral", - "src": "16524:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "array_1", - "nativeSrc": "16513:7:62", - "nodeType": "YulTypedName", - "src": "16513:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "16534:13:62", - "nodeType": "YulVariableDeclaration", - "src": "16534:13:62", - "value": { - "kind": "number", - "nativeSrc": "16546:1:62", - "nodeType": "YulLiteral", - "src": "16546:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "size", - "nativeSrc": "16538:4:62", - "nodeType": "YulTypedName", - "src": "16538:4:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "16590:22:62", - "nodeType": "YulBlock", - "src": "16590:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "16592:16:62", - "nodeType": "YulIdentifier", - "src": "16592:16:62" - }, - "nativeSrc": "16592:18:62", - "nodeType": "YulFunctionCall", - "src": "16592:18:62" - }, - "nativeSrc": "16592:18:62", - "nodeType": "YulExpressionStatement", - "src": "16592:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "16562:6:62", - "nodeType": "YulIdentifier", - "src": "16562:6:62" - }, - { - "kind": "number", - "nativeSrc": "16570:18:62", - "nodeType": "YulLiteral", - "src": "16570:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "16559:2:62", - "nodeType": "YulIdentifier", - "src": "16559:2:62" - }, - "nativeSrc": "16559:30:62", - "nodeType": "YulFunctionCall", - "src": "16559:30:62" - }, - "nativeSrc": "16556:56:62", - "nodeType": "YulIf", - "src": "16556:56:62" - }, - { - "nativeSrc": "16621:43:62", - "nodeType": "YulVariableDeclaration", - "src": "16621:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "16643:6:62", - "nodeType": "YulIdentifier", - "src": "16643:6:62" - }, - { - "kind": "number", - "nativeSrc": "16651:2:62", - "nodeType": "YulLiteral", - "src": "16651:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16639:3:62", - "nodeType": "YulIdentifier", - "src": "16639:3:62" - }, - "nativeSrc": "16639:15:62", - "nodeType": "YulFunctionCall", - "src": "16639:15:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16660:2:62", - "nodeType": "YulLiteral", - "src": "16660:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "16656:3:62", - "nodeType": "YulIdentifier", - "src": "16656:3:62" - }, - "nativeSrc": "16656:7:62", - "nodeType": "YulFunctionCall", - "src": "16656:7:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "16635:3:62", - "nodeType": "YulIdentifier", - "src": "16635:3:62" - }, - "nativeSrc": "16635:29:62", - "nodeType": "YulFunctionCall", - "src": "16635:29:62" - }, - "variables": [ - { - "name": "result", - "nativeSrc": "16625:6:62", - "nodeType": "YulTypedName", - "src": "16625:6:62", - "type": "" - } - ] - }, - { - "nativeSrc": "16673:25:62", - "nodeType": "YulAssignment", - "src": "16673:25:62", - "value": { - "arguments": [ - { - "name": "result", - "nativeSrc": "16685:6:62", - "nodeType": "YulIdentifier", - "src": "16685:6:62" - }, - { - "kind": "number", - "nativeSrc": "16693:4:62", - "nodeType": "YulLiteral", - "src": "16693:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16681:3:62", - "nodeType": "YulIdentifier", - "src": "16681:3:62" - }, - "nativeSrc": "16681:17:62", - "nodeType": "YulFunctionCall", - "src": "16681:17:62" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "16673:4:62", - "nodeType": "YulIdentifier", - "src": "16673:4:62" - } - ] - }, - { - "nativeSrc": "16707:15:62", - "nodeType": "YulVariableDeclaration", - "src": "16707:15:62", - "value": { - "kind": "number", - "nativeSrc": "16721:1:62", - "nodeType": "YulLiteral", - "src": "16721:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "memPtr", - "nativeSrc": "16711:6:62", - "nodeType": "YulTypedName", - "src": "16711:6:62", - "type": "" - } - ] - }, - { - "nativeSrc": "16731:19:62", - "nodeType": "YulAssignment", - "src": "16731:19:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16747:2:62", - "nodeType": "YulLiteral", - "src": "16747:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "16741:5:62", - "nodeType": "YulIdentifier", - "src": "16741:5:62" - }, - "nativeSrc": "16741:9:62", - "nodeType": "YulFunctionCall", - "src": "16741:9:62" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "16731:6:62", - "nodeType": "YulIdentifier", - "src": "16731:6:62" - } - ] - }, - { - "nativeSrc": "16759:60:62", - "nodeType": "YulVariableDeclaration", - "src": "16759:60:62", - "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "16781:6:62", - "nodeType": "YulIdentifier", - "src": "16781:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "result", - "nativeSrc": "16797:6:62", - "nodeType": "YulIdentifier", - "src": "16797:6:62" - }, - { - "kind": "number", - "nativeSrc": "16805:2:62", - "nodeType": "YulLiteral", - "src": "16805:2:62", - "type": "", - "value": "63" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16793:3:62", - "nodeType": "YulIdentifier", - "src": "16793:3:62" - }, - "nativeSrc": "16793:15:62", - "nodeType": "YulFunctionCall", - "src": "16793:15:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16814:2:62", - "nodeType": "YulLiteral", - "src": "16814:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "16810:3:62", - "nodeType": "YulIdentifier", - "src": "16810:3:62" - }, - "nativeSrc": "16810:7:62", - "nodeType": "YulFunctionCall", - "src": "16810:7:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "16789:3:62", - "nodeType": "YulIdentifier", - "src": "16789:3:62" - }, - "nativeSrc": "16789:29:62", - "nodeType": "YulFunctionCall", - "src": "16789:29:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16777:3:62", - "nodeType": "YulIdentifier", - "src": "16777:3:62" - }, - "nativeSrc": "16777:42:62", - "nodeType": "YulFunctionCall", - "src": "16777:42:62" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "16763:10:62", - "nodeType": "YulTypedName", - "src": "16763:10:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "16894:22:62", - "nodeType": "YulBlock", - "src": "16894:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "16896:16:62", - "nodeType": "YulIdentifier", - "src": "16896:16:62" - }, - "nativeSrc": "16896:18:62", - "nodeType": "YulFunctionCall", - "src": "16896:18:62" - }, - "nativeSrc": "16896:18:62", - "nodeType": "YulExpressionStatement", - "src": "16896:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "16837:10:62", - "nodeType": "YulIdentifier", - "src": "16837:10:62" - }, - { - "kind": "number", - "nativeSrc": "16849:18:62", - "nodeType": "YulLiteral", - "src": "16849:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "16834:2:62", - "nodeType": "YulIdentifier", - "src": "16834:2:62" - }, - "nativeSrc": "16834:34:62", - "nodeType": "YulFunctionCall", - "src": "16834:34:62" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "16873:10:62", - "nodeType": "YulIdentifier", - "src": "16873:10:62" - }, - { - "name": "memPtr", - "nativeSrc": "16885:6:62", - "nodeType": "YulIdentifier", - "src": "16885:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "16870:2:62", - "nodeType": "YulIdentifier", - "src": "16870:2:62" - }, - "nativeSrc": "16870:22:62", - "nodeType": "YulFunctionCall", - "src": "16870:22:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "16831:2:62", - "nodeType": "YulIdentifier", - "src": "16831:2:62" - }, - "nativeSrc": "16831:62:62", - "nodeType": "YulFunctionCall", - "src": "16831:62:62" - }, - "nativeSrc": "16828:88:62", - "nodeType": "YulIf", - "src": "16828:88:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "16932:2:62", - "nodeType": "YulLiteral", - "src": "16932:2:62", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "16936:10:62", - "nodeType": "YulIdentifier", - "src": "16936:10:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "16925:6:62", - "nodeType": "YulIdentifier", - "src": "16925:6:62" - }, - "nativeSrc": "16925:22:62", - "nodeType": "YulFunctionCall", - "src": "16925:22:62" - }, - "nativeSrc": "16925:22:62", - "nodeType": "YulExpressionStatement", - "src": "16925:22:62" - }, - { - "nativeSrc": "16956:17:62", - "nodeType": "YulAssignment", - "src": "16956:17:62", - "value": { - "name": "memPtr", - "nativeSrc": "16967:6:62", - "nodeType": "YulIdentifier", - "src": "16967:6:62" - }, - "variableNames": [ - { - "name": "array_1", - "nativeSrc": "16956:7:62", - "nodeType": "YulIdentifier", - "src": "16956:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "16989:6:62", - "nodeType": "YulIdentifier", - "src": "16989:6:62" - }, - { - "name": "length", - "nativeSrc": "16997:6:62", - "nodeType": "YulIdentifier", - "src": "16997:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "16982:6:62", - "nodeType": "YulIdentifier", - "src": "16982:6:62" - }, - "nativeSrc": "16982:22:62", - "nodeType": "YulFunctionCall", - "src": "16982:22:62" - }, - "nativeSrc": "16982:22:62", - "nodeType": "YulExpressionStatement", - "src": "16982:22:62" - }, - { - "body": { - "nativeSrc": "17042:16:62", - "nodeType": "YulBlock", - "src": "17042:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "17051:1:62", - "nodeType": "YulLiteral", - "src": "17051:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "17054:1:62", - "nodeType": "YulLiteral", - "src": "17054:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "17044:6:62", - "nodeType": "YulIdentifier", - "src": "17044:6:62" - }, - "nativeSrc": "17044:12:62", - "nodeType": "YulFunctionCall", - "src": "17044:12:62" - }, - "nativeSrc": "17044:12:62", - "nodeType": "YulExpressionStatement", - "src": "17044:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "17023:3:62", - "nodeType": "YulIdentifier", - "src": "17023:3:62" - }, - { - "name": "length", - "nativeSrc": "17028:6:62", - "nodeType": "YulIdentifier", - "src": "17028:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17019:3:62", - "nodeType": "YulIdentifier", - "src": "17019:3:62" - }, - "nativeSrc": "17019:16:62", - "nodeType": "YulFunctionCall", - "src": "17019:16:62" - }, - { - "name": "end", - "nativeSrc": "17037:3:62", - "nodeType": "YulIdentifier", - "src": "17037:3:62" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "17016:2:62", - "nodeType": "YulIdentifier", - "src": "17016:2:62" - }, - "nativeSrc": "17016:25:62", - "nodeType": "YulFunctionCall", - "src": "17016:25:62" - }, - "nativeSrc": "17013:45:62", - "nodeType": "YulIf", - "src": "17013:45:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "17084:6:62", - "nodeType": "YulIdentifier", - "src": "17084:6:62" - }, - { - "kind": "number", - "nativeSrc": "17092:4:62", - "nodeType": "YulLiteral", - "src": "17092:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17080:3:62", - "nodeType": "YulIdentifier", - "src": "17080:3:62" - }, - "nativeSrc": "17080:17:62", - "nodeType": "YulFunctionCall", - "src": "17080:17:62" - }, - { - "name": "src", - "nativeSrc": "17099:3:62", - "nodeType": "YulIdentifier", - "src": "17099:3:62" - }, - { - "name": "length", - "nativeSrc": "17104:6:62", - "nodeType": "YulIdentifier", - "src": "17104:6:62" - } - ], - "functionName": { - "name": "calldatacopy", - "nativeSrc": "17067:12:62", - "nodeType": "YulIdentifier", - "src": "17067:12:62" - }, - "nativeSrc": "17067:44:62", - "nodeType": "YulFunctionCall", - "src": "17067:44:62" - }, - "nativeSrc": "17067:44:62", - "nodeType": "YulExpressionStatement", - "src": "17067:44:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "17135:6:62", - "nodeType": "YulIdentifier", - "src": "17135:6:62" - }, - { - "name": "length", - "nativeSrc": "17143:6:62", - "nodeType": "YulIdentifier", - "src": "17143:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17131:3:62", - "nodeType": "YulIdentifier", - "src": "17131:3:62" - }, - "nativeSrc": "17131:19:62", - "nodeType": "YulFunctionCall", - "src": "17131:19:62" - }, - { - "kind": "number", - "nativeSrc": "17152:4:62", - "nodeType": "YulLiteral", - "src": "17152:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17127:3:62", - "nodeType": "YulIdentifier", - "src": "17127:3:62" - }, - "nativeSrc": "17127:30:62", - "nodeType": "YulFunctionCall", - "src": "17127:30:62" - }, - { - "kind": "number", - "nativeSrc": "17159:1:62", - "nodeType": "YulLiteral", - "src": "17159:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "17120:6:62", - "nodeType": "YulIdentifier", - "src": "17120:6:62" - }, - "nativeSrc": "17120:41:62", - "nodeType": "YulFunctionCall", - "src": "17120:41:62" - }, - "nativeSrc": "17120:41:62", - "nodeType": "YulExpressionStatement", - "src": "17120:41:62" - }, - { - "nativeSrc": "17170:15:62", - "nodeType": "YulAssignment", - "src": "17170:15:62", - "value": { - "name": "memPtr", - "nativeSrc": "17179:6:62", - "nodeType": "YulIdentifier", - "src": "17179:6:62" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "17170:5:62", - "nodeType": "YulIdentifier", - "src": "17170:5:62" - } - ] - } - ] - }, - "name": "abi_decode_string", - "nativeSrc": "16302:889:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "16329:6:62", - "nodeType": "YulTypedName", - "src": "16329:6:62", - "type": "" - }, - { - "name": "end", - "nativeSrc": "16337:3:62", - "nodeType": "YulTypedName", - "src": "16337:3:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "16345:5:62", - "nodeType": "YulTypedName", - "src": "16345:5:62", - "type": "" - } - ], - "src": "16302:889:62" - }, - { - "body": { - "nativeSrc": "17328:549:62", - "nodeType": "YulBlock", - "src": "17328:549:62", - "statements": [ - { - "body": { - "nativeSrc": "17374:16:62", - "nodeType": "YulBlock", - "src": "17374:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "17383:1:62", - "nodeType": "YulLiteral", - "src": "17383:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "17386:1:62", - "nodeType": "YulLiteral", - "src": "17386:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "17376:6:62", - "nodeType": "YulIdentifier", - "src": "17376:6:62" - }, - "nativeSrc": "17376:12:62", - "nodeType": "YulFunctionCall", - "src": "17376:12:62" - }, - "nativeSrc": "17376:12:62", - "nodeType": "YulExpressionStatement", - "src": "17376:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "17349:7:62", - "nodeType": "YulIdentifier", - "src": "17349:7:62" - }, - { - "name": "headStart", - "nativeSrc": "17358:9:62", - "nodeType": "YulIdentifier", - "src": "17358:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "17345:3:62", - "nodeType": "YulIdentifier", - "src": "17345:3:62" - }, - "nativeSrc": "17345:23:62", - "nodeType": "YulFunctionCall", - "src": "17345:23:62" - }, - { - "kind": "number", - "nativeSrc": "17370:2:62", - "nodeType": "YulLiteral", - "src": "17370:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "17341:3:62", - "nodeType": "YulIdentifier", - "src": "17341:3:62" - }, - "nativeSrc": "17341:32:62", - "nodeType": "YulFunctionCall", - "src": "17341:32:62" - }, - "nativeSrc": "17338:52:62", - "nodeType": "YulIf", - "src": "17338:52:62" - }, - { - "nativeSrc": "17399:37:62", - "nodeType": "YulVariableDeclaration", - "src": "17399:37:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17426:9:62", - "nodeType": "YulIdentifier", - "src": "17426:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "17413:12:62", - "nodeType": "YulIdentifier", - "src": "17413:12:62" - }, - "nativeSrc": "17413:23:62", - "nodeType": "YulFunctionCall", - "src": "17413:23:62" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "17403:6:62", - "nodeType": "YulTypedName", - "src": "17403:6:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "17479:16:62", - "nodeType": "YulBlock", - "src": "17479:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "17488:1:62", - "nodeType": "YulLiteral", - "src": "17488:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "17491:1:62", - "nodeType": "YulLiteral", - "src": "17491:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "17481:6:62", - "nodeType": "YulIdentifier", - "src": "17481:6:62" - }, - "nativeSrc": "17481:12:62", - "nodeType": "YulFunctionCall", - "src": "17481:12:62" - }, - "nativeSrc": "17481:12:62", - "nodeType": "YulExpressionStatement", - "src": "17481:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "17451:6:62", - "nodeType": "YulIdentifier", - "src": "17451:6:62" - }, - { - "kind": "number", - "nativeSrc": "17459:18:62", - "nodeType": "YulLiteral", - "src": "17459:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "17448:2:62", - "nodeType": "YulIdentifier", - "src": "17448:2:62" - }, - "nativeSrc": "17448:30:62", - "nodeType": "YulFunctionCall", - "src": "17448:30:62" - }, - "nativeSrc": "17445:50:62", - "nodeType": "YulIf", - "src": "17445:50:62" - }, - { - "nativeSrc": "17504:60:62", - "nodeType": "YulAssignment", - "src": "17504:60:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17536:9:62", - "nodeType": "YulIdentifier", - "src": "17536:9:62" - }, - { - "name": "offset", - "nativeSrc": "17547:6:62", - "nodeType": "YulIdentifier", - "src": "17547:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17532:3:62", - "nodeType": "YulIdentifier", - "src": "17532:3:62" - }, - "nativeSrc": "17532:22:62", - "nodeType": "YulFunctionCall", - "src": "17532:22:62" - }, - { - "name": "dataEnd", - "nativeSrc": "17556:7:62", - "nodeType": "YulIdentifier", - "src": "17556:7:62" - } - ], - "functionName": { - "name": "abi_decode_string", - "nativeSrc": "17514:17:62", - "nodeType": "YulIdentifier", - "src": "17514:17:62" - }, - "nativeSrc": "17514:50:62", - "nodeType": "YulFunctionCall", - "src": "17514:50:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "17504:6:62", - "nodeType": "YulIdentifier", - "src": "17504:6:62" - } - ] - }, - { - "nativeSrc": "17573:48:62", - "nodeType": "YulVariableDeclaration", - "src": "17573:48:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17606:9:62", - "nodeType": "YulIdentifier", - "src": "17606:9:62" - }, - { - "kind": "number", - "nativeSrc": "17617:2:62", - "nodeType": "YulLiteral", - "src": "17617:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17602:3:62", - "nodeType": "YulIdentifier", - "src": "17602:3:62" - }, - "nativeSrc": "17602:18:62", - "nodeType": "YulFunctionCall", - "src": "17602:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "17589:12:62", - "nodeType": "YulIdentifier", - "src": "17589:12:62" - }, - "nativeSrc": "17589:32:62", - "nodeType": "YulFunctionCall", - "src": "17589:32:62" - }, - "variables": [ - { - "name": "offset_1", - "nativeSrc": "17577:8:62", - "nodeType": "YulTypedName", - "src": "17577:8:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "17666:16:62", - "nodeType": "YulBlock", - "src": "17666:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "17675:1:62", - "nodeType": "YulLiteral", - "src": "17675:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "17678:1:62", - "nodeType": "YulLiteral", - "src": "17678:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "17668:6:62", - "nodeType": "YulIdentifier", - "src": "17668:6:62" - }, - "nativeSrc": "17668:12:62", - "nodeType": "YulFunctionCall", - "src": "17668:12:62" - }, - "nativeSrc": "17668:12:62", - "nodeType": "YulExpressionStatement", - "src": "17668:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_1", - "nativeSrc": "17636:8:62", - "nodeType": "YulIdentifier", - "src": "17636:8:62" - }, - { - "kind": "number", - "nativeSrc": "17646:18:62", - "nodeType": "YulLiteral", - "src": "17646:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "17633:2:62", - "nodeType": "YulIdentifier", - "src": "17633:2:62" - }, - "nativeSrc": "17633:32:62", - "nodeType": "YulFunctionCall", - "src": "17633:32:62" - }, - "nativeSrc": "17630:52:62", - "nodeType": "YulIf", - "src": "17630:52:62" - }, - { - "nativeSrc": "17691:62:62", - "nodeType": "YulAssignment", - "src": "17691:62:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17723:9:62", - "nodeType": "YulIdentifier", - "src": "17723:9:62" - }, - { - "name": "offset_1", - "nativeSrc": "17734:8:62", - "nodeType": "YulIdentifier", - "src": "17734:8:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17719:3:62", - "nodeType": "YulIdentifier", - "src": "17719:3:62" - }, - "nativeSrc": "17719:24:62", - "nodeType": "YulFunctionCall", - "src": "17719:24:62" - }, - { - "name": "dataEnd", - "nativeSrc": "17745:7:62", - "nodeType": "YulIdentifier", - "src": "17745:7:62" - } - ], - "functionName": { - "name": "abi_decode_string", - "nativeSrc": "17701:17:62", - "nodeType": "YulIdentifier", - "src": "17701:17:62" - }, - "nativeSrc": "17701:52:62", - "nodeType": "YulFunctionCall", - "src": "17701:52:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "17691:6:62", - "nodeType": "YulIdentifier", - "src": "17691:6:62" - } - ] - }, - { - "nativeSrc": "17762:45:62", - "nodeType": "YulVariableDeclaration", - "src": "17762:45:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "17792:9:62", - "nodeType": "YulIdentifier", - "src": "17792:9:62" - }, - { - "kind": "number", - "nativeSrc": "17803:2:62", - "nodeType": "YulLiteral", - "src": "17803:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17788:3:62", - "nodeType": "YulIdentifier", - "src": "17788:3:62" - }, - "nativeSrc": "17788:18:62", - "nodeType": "YulFunctionCall", - "src": "17788:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "17775:12:62", - "nodeType": "YulIdentifier", - "src": "17775:12:62" - }, - "nativeSrc": "17775:32:62", - "nodeType": "YulFunctionCall", - "src": "17775:32:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "17766:5:62", - "nodeType": "YulTypedName", - "src": "17766:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "17841:5:62", - "nodeType": "YulIdentifier", - "src": "17841:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "17816:24:62", - "nodeType": "YulIdentifier", - "src": "17816:24:62" - }, - "nativeSrc": "17816:31:62", - "nodeType": "YulFunctionCall", - "src": "17816:31:62" - }, - "nativeSrc": "17816:31:62", - "nodeType": "YulExpressionStatement", - "src": "17816:31:62" - }, - { - "nativeSrc": "17856:15:62", - "nodeType": "YulAssignment", - "src": "17856:15:62", - "value": { - "name": "value", - "nativeSrc": "17866:5:62", - "nodeType": "YulIdentifier", - "src": "17866:5:62" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "17856:6:62", - "nodeType": "YulIdentifier", - "src": "17856:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address_payable", - "nativeSrc": "17196:681:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "17278:9:62", - "nodeType": "YulTypedName", - "src": "17278:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "17289:7:62", - "nodeType": "YulTypedName", - "src": "17289:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "17301:6:62", - "nodeType": "YulTypedName", - "src": "17301:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "17309:6:62", - "nodeType": "YulTypedName", - "src": "17309:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "17317:6:62", - "nodeType": "YulTypedName", - "src": "17317:6:62", - "type": "" - } - ], - "src": "17196:681:62" - }, - { - "body": { - "nativeSrc": "17937:325:62", - "nodeType": "YulBlock", - "src": "17937:325:62", - "statements": [ - { - "nativeSrc": "17947:22:62", - "nodeType": "YulAssignment", - "src": "17947:22:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "17961:1:62", - "nodeType": "YulLiteral", - "src": "17961:1:62", - "type": "", - "value": "1" - }, - { - "name": "data", - "nativeSrc": "17964:4:62", - "nodeType": "YulIdentifier", - "src": "17964:4:62" - } - ], - "functionName": { - "name": "shr", - "nativeSrc": "17957:3:62", - "nodeType": "YulIdentifier", - "src": "17957:3:62" - }, - "nativeSrc": "17957:12:62", - "nodeType": "YulFunctionCall", - "src": "17957:12:62" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "17947:6:62", - "nodeType": "YulIdentifier", - "src": "17947:6:62" - } - ] - }, - { - "nativeSrc": "17978:38:62", - "nodeType": "YulVariableDeclaration", - "src": "17978:38:62", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "18008:4:62", - "nodeType": "YulIdentifier", - "src": "18008:4:62" - }, - { - "kind": "number", - "nativeSrc": "18014:1:62", - "nodeType": "YulLiteral", - "src": "18014:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "18004:3:62", - "nodeType": "YulIdentifier", - "src": "18004:3:62" - }, - "nativeSrc": "18004:12:62", - "nodeType": "YulFunctionCall", - "src": "18004:12:62" - }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "17982:18:62", - "nodeType": "YulTypedName", - "src": "17982:18:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "18055:31:62", - "nodeType": "YulBlock", - "src": "18055:31:62", - "statements": [ - { - "nativeSrc": "18057:27:62", - "nodeType": "YulAssignment", - "src": "18057:27:62", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "18071:6:62", - "nodeType": "YulIdentifier", - "src": "18071:6:62" - }, - { - "kind": "number", - "nativeSrc": "18079:4:62", - "nodeType": "YulLiteral", - "src": "18079:4:62", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "18067:3:62", - "nodeType": "YulIdentifier", - "src": "18067:3:62" - }, - "nativeSrc": "18067:17:62", - "nodeType": "YulFunctionCall", - "src": "18067:17:62" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "18057:6:62", - "nodeType": "YulIdentifier", - "src": "18057:6:62" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "18035:18:62", - "nodeType": "YulIdentifier", - "src": "18035:18:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "18028:6:62", - "nodeType": "YulIdentifier", - "src": "18028:6:62" - }, - "nativeSrc": "18028:26:62", - "nodeType": "YulFunctionCall", - "src": "18028:26:62" - }, - "nativeSrc": "18025:61:62", - "nodeType": "YulIf", - "src": "18025:61:62" - }, - { - "body": { - "nativeSrc": "18145:111:62", - "nodeType": "YulBlock", - "src": "18145:111:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18166:1:62", - "nodeType": "YulLiteral", - "src": "18166:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18173:3:62", - "nodeType": "YulLiteral", - "src": "18173:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "18178:10:62", - "nodeType": "YulLiteral", - "src": "18178:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "18169:3:62", - "nodeType": "YulIdentifier", - "src": "18169:3:62" - }, - "nativeSrc": "18169:20:62", - "nodeType": "YulFunctionCall", - "src": "18169:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18159:6:62", - "nodeType": "YulIdentifier", - "src": "18159:6:62" - }, - "nativeSrc": "18159:31:62", - "nodeType": "YulFunctionCall", - "src": "18159:31:62" - }, - "nativeSrc": "18159:31:62", - "nodeType": "YulExpressionStatement", - "src": "18159:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18210:1:62", - "nodeType": "YulLiteral", - "src": "18210:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "18213:4:62", - "nodeType": "YulLiteral", - "src": "18213:4:62", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18203:6:62", - "nodeType": "YulIdentifier", - "src": "18203:6:62" - }, - "nativeSrc": "18203:15:62", - "nodeType": "YulFunctionCall", - "src": "18203:15:62" - }, - "nativeSrc": "18203:15:62", - "nodeType": "YulExpressionStatement", - "src": "18203:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18238:1:62", - "nodeType": "YulLiteral", - "src": "18238:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "18241:4:62", - "nodeType": "YulLiteral", - "src": "18241:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "18231:6:62", - "nodeType": "YulIdentifier", - "src": "18231:6:62" - }, - "nativeSrc": "18231:15:62", - "nodeType": "YulFunctionCall", - "src": "18231:15:62" - }, - "nativeSrc": "18231:15:62", - "nodeType": "YulExpressionStatement", - "src": "18231:15:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "18101:18:62", - "nodeType": "YulIdentifier", - "src": "18101:18:62" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "18124:6:62", - "nodeType": "YulIdentifier", - "src": "18124:6:62" - }, - { - "kind": "number", - "nativeSrc": "18132:2:62", - "nodeType": "YulLiteral", - "src": "18132:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "18121:2:62", - "nodeType": "YulIdentifier", - "src": "18121:2:62" - }, - "nativeSrc": "18121:14:62", - "nodeType": "YulFunctionCall", - "src": "18121:14:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "18098:2:62", - "nodeType": "YulIdentifier", - "src": "18098:2:62" - }, - "nativeSrc": "18098:38:62", - "nodeType": "YulFunctionCall", - "src": "18098:38:62" - }, - "nativeSrc": "18095:161:62", - "nodeType": "YulIf", - "src": "18095:161:62" - } - ] - }, - "name": "extract_byte_array_length", - "nativeSrc": "17882:380:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nativeSrc": "17917:4:62", - "nodeType": "YulTypedName", - "src": "17917:4:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "17926:6:62", - "nodeType": "YulTypedName", - "src": "17926:6:62", - "type": "" - } - ], - "src": "17882:380:62" - }, - { - "body": { - "nativeSrc": "18323:65:62", - "nodeType": "YulBlock", - "src": "18323:65:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18340:1:62", - "nodeType": "YulLiteral", - "src": "18340:1:62", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nativeSrc": "18343:3:62", - "nodeType": "YulIdentifier", - "src": "18343:3:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18333:6:62", - "nodeType": "YulIdentifier", - "src": "18333:6:62" - }, - "nativeSrc": "18333:14:62", - "nodeType": "YulFunctionCall", - "src": "18333:14:62" - }, - "nativeSrc": "18333:14:62", - "nodeType": "YulExpressionStatement", - "src": "18333:14:62" - }, - { - "nativeSrc": "18356:26:62", - "nodeType": "YulAssignment", - "src": "18356:26:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18374:1:62", - "nodeType": "YulLiteral", - "src": "18374:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "18377:4:62", - "nodeType": "YulLiteral", - "src": "18377:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nativeSrc": "18364:9:62", - "nodeType": "YulIdentifier", - "src": "18364:9:62" - }, - "nativeSrc": "18364:18:62", - "nodeType": "YulFunctionCall", - "src": "18364:18:62" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "18356:4:62", - "nodeType": "YulIdentifier", - "src": "18356:4:62" - } - ] - } - ] - }, - "name": "array_dataslot_string_storage", - "nativeSrc": "18267:121:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nativeSrc": "18306:3:62", - "nodeType": "YulTypedName", - "src": "18306:3:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nativeSrc": "18314:4:62", - "nodeType": "YulTypedName", - "src": "18314:4:62", - "type": "" - } - ], - "src": "18267:121:62" - }, - { - "body": { - "nativeSrc": "18474:437:62", - "nodeType": "YulBlock", - "src": "18474:437:62", - "statements": [ - { - "body": { - "nativeSrc": "18507:398:62", - "nodeType": "YulBlock", - "src": "18507:398:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18528:1:62", - "nodeType": "YulLiteral", - "src": "18528:1:62", - "type": "", - "value": "0" - }, - { - "name": "array", - "nativeSrc": "18531:5:62", - "nodeType": "YulIdentifier", - "src": "18531:5:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18521:6:62", - "nodeType": "YulIdentifier", - "src": "18521:6:62" - }, - "nativeSrc": "18521:16:62", - "nodeType": "YulFunctionCall", - "src": "18521:16:62" - }, - "nativeSrc": "18521:16:62", - "nodeType": "YulExpressionStatement", - "src": "18521:16:62" - }, - { - "nativeSrc": "18550:30:62", - "nodeType": "YulVariableDeclaration", - "src": "18550:30:62", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18572:1:62", - "nodeType": "YulLiteral", - "src": "18572:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "18575:4:62", - "nodeType": "YulLiteral", - "src": "18575:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nativeSrc": "18562:9:62", - "nodeType": "YulIdentifier", - "src": "18562:9:62" - }, - "nativeSrc": "18562:18:62", - "nodeType": "YulFunctionCall", - "src": "18562:18:62" - }, - "variables": [ - { - "name": "data", - "nativeSrc": "18554:4:62", - "nodeType": "YulTypedName", - "src": "18554:4:62", - "type": "" - } - ] - }, - { - "nativeSrc": "18593:57:62", - "nodeType": "YulVariableDeclaration", - "src": "18593:57:62", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "18616:4:62", - "nodeType": "YulIdentifier", - "src": "18616:4:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18626:1:62", - "nodeType": "YulLiteral", - "src": "18626:1:62", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "18633:10:62", - "nodeType": "YulIdentifier", - "src": "18633:10:62" - }, - { - "kind": "number", - "nativeSrc": "18645:2:62", - "nodeType": "YulLiteral", - "src": "18645:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18629:3:62", - "nodeType": "YulIdentifier", - "src": "18629:3:62" - }, - "nativeSrc": "18629:19:62", - "nodeType": "YulFunctionCall", - "src": "18629:19:62" - } - ], - "functionName": { - "name": "shr", - "nativeSrc": "18622:3:62", - "nodeType": "YulIdentifier", - "src": "18622:3:62" - }, - "nativeSrc": "18622:27:62", - "nodeType": "YulFunctionCall", - "src": "18622:27:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18612:3:62", - "nodeType": "YulIdentifier", - "src": "18612:3:62" - }, - "nativeSrc": "18612:38:62", - "nodeType": "YulFunctionCall", - "src": "18612:38:62" - }, - "variables": [ - { - "name": "deleteStart", - "nativeSrc": "18597:11:62", - "nodeType": "YulTypedName", - "src": "18597:11:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "18687:23:62", - "nodeType": "YulBlock", - "src": "18687:23:62", - "statements": [ - { - "nativeSrc": "18689:19:62", - "nodeType": "YulAssignment", - "src": "18689:19:62", - "value": { - "name": "data", - "nativeSrc": "18704:4:62", - "nodeType": "YulIdentifier", - "src": "18704:4:62" - }, - "variableNames": [ - { - "name": "deleteStart", - "nativeSrc": "18689:11:62", - "nodeType": "YulIdentifier", - "src": "18689:11:62" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "18669:10:62", - "nodeType": "YulIdentifier", - "src": "18669:10:62" - }, - { - "kind": "number", - "nativeSrc": "18681:4:62", - "nodeType": "YulLiteral", - "src": "18681:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "18666:2:62", - "nodeType": "YulIdentifier", - "src": "18666:2:62" - }, - "nativeSrc": "18666:20:62", - "nodeType": "YulFunctionCall", - "src": "18666:20:62" - }, - "nativeSrc": "18663:47:62", - "nodeType": "YulIf", - "src": "18663:47:62" - }, - { - "nativeSrc": "18723:41:62", - "nodeType": "YulVariableDeclaration", - "src": "18723:41:62", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "18737:4:62", - "nodeType": "YulIdentifier", - "src": "18737:4:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "18747:1:62", - "nodeType": "YulLiteral", - "src": "18747:1:62", - "type": "", - "value": "5" - }, - { - "arguments": [ - { - "name": "len", - "nativeSrc": "18754:3:62", - "nodeType": "YulIdentifier", - "src": "18754:3:62" - }, - { - "kind": "number", - "nativeSrc": "18759:2:62", - "nodeType": "YulLiteral", - "src": "18759:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18750:3:62", - "nodeType": "YulIdentifier", - "src": "18750:3:62" - }, - "nativeSrc": "18750:12:62", - "nodeType": "YulFunctionCall", - "src": "18750:12:62" - } - ], - "functionName": { - "name": "shr", - "nativeSrc": "18743:3:62", - "nodeType": "YulIdentifier", - "src": "18743:3:62" - }, - "nativeSrc": "18743:20:62", - "nodeType": "YulFunctionCall", - "src": "18743:20:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18733:3:62", - "nodeType": "YulIdentifier", - "src": "18733:3:62" - }, - "nativeSrc": "18733:31:62", - "nodeType": "YulFunctionCall", - "src": "18733:31:62" - }, - "variables": [ - { - "name": "_1", - "nativeSrc": "18727:2:62", - "nodeType": "YulTypedName", - "src": "18727:2:62", - "type": "" - } - ] - }, - { - "nativeSrc": "18777:24:62", - "nodeType": "YulVariableDeclaration", - "src": "18777:24:62", - "value": { - "name": "deleteStart", - "nativeSrc": "18790:11:62", - "nodeType": "YulIdentifier", - "src": "18790:11:62" - }, - "variables": [ - { - "name": "start", - "nativeSrc": "18781:5:62", - "nodeType": "YulTypedName", - "src": "18781:5:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "18875:20:62", - "nodeType": "YulBlock", - "src": "18875:20:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "start", - "nativeSrc": "18884:5:62", - "nodeType": "YulIdentifier", - "src": "18884:5:62" - }, - { - "kind": "number", - "nativeSrc": "18891:1:62", - "nodeType": "YulLiteral", - "src": "18891:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "18877:6:62", - "nodeType": "YulIdentifier", - "src": "18877:6:62" - }, - "nativeSrc": "18877:16:62", - "nodeType": "YulFunctionCall", - "src": "18877:16:62" - }, - "nativeSrc": "18877:16:62", - "nodeType": "YulExpressionStatement", - "src": "18877:16:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "start", - "nativeSrc": "18825:5:62", - "nodeType": "YulIdentifier", - "src": "18825:5:62" - }, - { - "name": "_1", - "nativeSrc": "18832:2:62", - "nodeType": "YulIdentifier", - "src": "18832:2:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "18822:2:62", - "nodeType": "YulIdentifier", - "src": "18822:2:62" - }, - "nativeSrc": "18822:13:62", - "nodeType": "YulFunctionCall", - "src": "18822:13:62" - }, - "nativeSrc": "18814:81:62", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "18836:26:62", - "nodeType": "YulBlock", - "src": "18836:26:62", - "statements": [ - { - "nativeSrc": "18838:22:62", - "nodeType": "YulAssignment", - "src": "18838:22:62", - "value": { - "arguments": [ - { - "name": "start", - "nativeSrc": "18851:5:62", - "nodeType": "YulIdentifier", - "src": "18851:5:62" - }, - { - "kind": "number", - "nativeSrc": "18858:1:62", - "nodeType": "YulLiteral", - "src": "18858:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18847:3:62", - "nodeType": "YulIdentifier", - "src": "18847:3:62" - }, - "nativeSrc": "18847:13:62", - "nodeType": "YulFunctionCall", - "src": "18847:13:62" - }, - "variableNames": [ - { - "name": "start", - "nativeSrc": "18838:5:62", - "nodeType": "YulIdentifier", - "src": "18838:5:62" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "18818:3:62", - "nodeType": "YulBlock", - "src": "18818:3:62", - "statements": [] - }, - "src": "18814:81:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "len", - "nativeSrc": "18490:3:62", - "nodeType": "YulIdentifier", - "src": "18490:3:62" - }, - { - "kind": "number", - "nativeSrc": "18495:2:62", - "nodeType": "YulLiteral", - "src": "18495:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "18487:2:62", - "nodeType": "YulIdentifier", - "src": "18487:2:62" - }, - "nativeSrc": "18487:11:62", - "nodeType": "YulFunctionCall", - "src": "18487:11:62" - }, - "nativeSrc": "18484:421:62", - "nodeType": "YulIf", - "src": "18484:421:62" - } - ] - }, - "name": "clean_up_bytearray_end_slots_string_storage", - "nativeSrc": "18393:518:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "array", - "nativeSrc": "18446:5:62", - "nodeType": "YulTypedName", - "src": "18446:5:62", - "type": "" - }, - { - "name": "len", - "nativeSrc": "18453:3:62", - "nodeType": "YulTypedName", - "src": "18453:3:62", - "type": "" - }, - { - "name": "startIndex", - "nativeSrc": "18458:10:62", - "nodeType": "YulTypedName", - "src": "18458:10:62", - "type": "" - } - ], - "src": "18393:518:62" - }, - { - "body": { - "nativeSrc": "19001:81:62", - "nodeType": "YulBlock", - "src": "19001:81:62", - "statements": [ - { - "nativeSrc": "19011:65:62", - "nodeType": "YulAssignment", - "src": "19011:65:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "data", - "nativeSrc": "19026:4:62", - "nodeType": "YulIdentifier", - "src": "19026:4:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "19044:1:62", - "nodeType": "YulLiteral", - "src": "19044:1:62", - "type": "", - "value": "3" - }, - { - "name": "len", - "nativeSrc": "19047:3:62", - "nodeType": "YulIdentifier", - "src": "19047:3:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "19040:3:62", - "nodeType": "YulIdentifier", - "src": "19040:3:62" - }, - "nativeSrc": "19040:11:62", - "nodeType": "YulFunctionCall", - "src": "19040:11:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "19057:1:62", - "nodeType": "YulLiteral", - "src": "19057:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "19053:3:62", - "nodeType": "YulIdentifier", - "src": "19053:3:62" - }, - "nativeSrc": "19053:6:62", - "nodeType": "YulFunctionCall", - "src": "19053:6:62" - } - ], - "functionName": { - "name": "shr", - "nativeSrc": "19036:3:62", - "nodeType": "YulIdentifier", - "src": "19036:3:62" - }, - "nativeSrc": "19036:24:62", - "nodeType": "YulFunctionCall", - "src": "19036:24:62" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "19032:3:62", - "nodeType": "YulIdentifier", - "src": "19032:3:62" - }, - "nativeSrc": "19032:29:62", - "nodeType": "YulFunctionCall", - "src": "19032:29:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "19022:3:62", - "nodeType": "YulIdentifier", - "src": "19022:3:62" - }, - "nativeSrc": "19022:40:62", - "nodeType": "YulFunctionCall", - "src": "19022:40:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "19068:1:62", - "nodeType": "YulLiteral", - "src": "19068:1:62", - "type": "", - "value": "1" - }, - { - "name": "len", - "nativeSrc": "19071:3:62", - "nodeType": "YulIdentifier", - "src": "19071:3:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "19064:3:62", - "nodeType": "YulIdentifier", - "src": "19064:3:62" - }, - "nativeSrc": "19064:11:62", - "nodeType": "YulFunctionCall", - "src": "19064:11:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "19019:2:62", - "nodeType": "YulIdentifier", - "src": "19019:2:62" - }, - "nativeSrc": "19019:57:62", - "nodeType": "YulFunctionCall", - "src": "19019:57:62" - }, - "variableNames": [ - { - "name": "used", - "nativeSrc": "19011:4:62", - "nodeType": "YulIdentifier", - "src": "19011:4:62" - } - ] - } - ] - }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "18916:166:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nativeSrc": "18978:4:62", - "nodeType": "YulTypedName", - "src": "18978:4:62", - "type": "" - }, - { - "name": "len", - "nativeSrc": "18984:3:62", - "nodeType": "YulTypedName", - "src": "18984:3:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "used", - "nativeSrc": "18992:4:62", - "nodeType": "YulTypedName", - "src": "18992:4:62", - "type": "" - } - ], - "src": "18916:166:62" - }, - { - "body": { - "nativeSrc": "19183:1203:62", - "nodeType": "YulBlock", - "src": "19183:1203:62", - "statements": [ - { - "nativeSrc": "19193:24:62", - "nodeType": "YulVariableDeclaration", - "src": "19193:24:62", - "value": { - "arguments": [ - { - "name": "src", - "nativeSrc": "19213:3:62", - "nodeType": "YulIdentifier", - "src": "19213:3:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "19207:5:62", - "nodeType": "YulIdentifier", - "src": "19207:5:62" - }, - "nativeSrc": "19207:10:62", - "nodeType": "YulFunctionCall", - "src": "19207:10:62" - }, - "variables": [ - { - "name": "newLen", - "nativeSrc": "19197:6:62", - "nodeType": "YulTypedName", - "src": "19197:6:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "19260:22:62", - "nodeType": "YulBlock", - "src": "19260:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "19262:16:62", - "nodeType": "YulIdentifier", - "src": "19262:16:62" - }, - "nativeSrc": "19262:18:62", - "nodeType": "YulFunctionCall", - "src": "19262:18:62" - }, - "nativeSrc": "19262:18:62", - "nodeType": "YulExpressionStatement", - "src": "19262:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "19232:6:62", - "nodeType": "YulIdentifier", - "src": "19232:6:62" - }, - { - "kind": "number", - "nativeSrc": "19240:18:62", - "nodeType": "YulLiteral", - "src": "19240:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "19229:2:62", - "nodeType": "YulIdentifier", - "src": "19229:2:62" - }, - "nativeSrc": "19229:30:62", - "nodeType": "YulFunctionCall", - "src": "19229:30:62" - }, - "nativeSrc": "19226:56:62", - "nodeType": "YulIf", - "src": "19226:56:62" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "19335:4:62", - "nodeType": "YulIdentifier", - "src": "19335:4:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "slot", - "nativeSrc": "19373:4:62", - "nodeType": "YulIdentifier", - "src": "19373:4:62" - } - ], - "functionName": { - "name": "sload", - "nativeSrc": "19367:5:62", - "nodeType": "YulIdentifier", - "src": "19367:5:62" - }, - "nativeSrc": "19367:11:62", - "nodeType": "YulFunctionCall", - "src": "19367:11:62" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nativeSrc": "19341:25:62", - "nodeType": "YulIdentifier", - "src": "19341:25:62" - }, - "nativeSrc": "19341:38:62", - "nodeType": "YulFunctionCall", - "src": "19341:38:62" - }, - { - "name": "newLen", - "nativeSrc": "19381:6:62", - "nodeType": "YulIdentifier", - "src": "19381:6:62" - } - ], - "functionName": { - "name": "clean_up_bytearray_end_slots_string_storage", - "nativeSrc": "19291:43:62", - "nodeType": "YulIdentifier", - "src": "19291:43:62" - }, - "nativeSrc": "19291:97:62", - "nodeType": "YulFunctionCall", - "src": "19291:97:62" - }, - "nativeSrc": "19291:97:62", - "nodeType": "YulExpressionStatement", - "src": "19291:97:62" - }, - { - "nativeSrc": "19397:18:62", - "nodeType": "YulVariableDeclaration", - "src": "19397:18:62", - "value": { - "kind": "number", - "nativeSrc": "19414:1:62", - "nodeType": "YulLiteral", - "src": "19414:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "srcOffset", - "nativeSrc": "19401:9:62", - "nodeType": "YulTypedName", - "src": "19401:9:62", - "type": "" - } - ] - }, - { - "nativeSrc": "19424:17:62", - "nodeType": "YulAssignment", - "src": "19424:17:62", - "value": { - "kind": "number", - "nativeSrc": "19437:4:62", - "nodeType": "YulLiteral", - "src": "19437:4:62", - "type": "", - "value": "0x20" - }, - "variableNames": [ - { - "name": "srcOffset", - "nativeSrc": "19424:9:62", - "nodeType": "YulIdentifier", - "src": "19424:9:62" - } - ] - }, - { - "cases": [ - { - "body": { - "nativeSrc": "19487:642:62", - "nodeType": "YulBlock", - "src": "19487:642:62", - "statements": [ - { - "nativeSrc": "19501:35:62", - "nodeType": "YulVariableDeclaration", - "src": "19501:35:62", - "value": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "19520:6:62", - "nodeType": "YulIdentifier", - "src": "19520:6:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "19532:2:62", - "nodeType": "YulLiteral", - "src": "19532:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "19528:3:62", - "nodeType": "YulIdentifier", - "src": "19528:3:62" - }, - "nativeSrc": "19528:7:62", - "nodeType": "YulFunctionCall", - "src": "19528:7:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "19516:3:62", - "nodeType": "YulIdentifier", - "src": "19516:3:62" - }, - "nativeSrc": "19516:20:62", - "nodeType": "YulFunctionCall", - "src": "19516:20:62" - }, - "variables": [ - { - "name": "loopEnd", - "nativeSrc": "19505:7:62", - "nodeType": "YulTypedName", - "src": "19505:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "19549:49:62", - "nodeType": "YulVariableDeclaration", - "src": "19549:49:62", - "value": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "19593:4:62", - "nodeType": "YulIdentifier", - "src": "19593:4:62" - } - ], - "functionName": { - "name": "array_dataslot_string_storage", - "nativeSrc": "19563:29:62", - "nodeType": "YulIdentifier", - "src": "19563:29:62" - }, - "nativeSrc": "19563:35:62", - "nodeType": "YulFunctionCall", - "src": "19563:35:62" - }, - "variables": [ - { - "name": "dstPtr", - "nativeSrc": "19553:6:62", - "nodeType": "YulTypedName", - "src": "19553:6:62", - "type": "" - } - ] - }, - { - "nativeSrc": "19611:10:62", - "nodeType": "YulVariableDeclaration", - "src": "19611:10:62", - "value": { - "kind": "number", - "nativeSrc": "19620:1:62", - "nodeType": "YulLiteral", - "src": "19620:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "19615:1:62", - "nodeType": "YulTypedName", - "src": "19615:1:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "19691:165:62", - "nodeType": "YulBlock", - "src": "19691:165:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "19716:6:62", - "nodeType": "YulIdentifier", - "src": "19716:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "19734:3:62", - "nodeType": "YulIdentifier", - "src": "19734:3:62" - }, - { - "name": "srcOffset", - "nativeSrc": "19739:9:62", - "nodeType": "YulIdentifier", - "src": "19739:9:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19730:3:62", - "nodeType": "YulIdentifier", - "src": "19730:3:62" - }, - "nativeSrc": "19730:19:62", - "nodeType": "YulFunctionCall", - "src": "19730:19:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "19724:5:62", - "nodeType": "YulIdentifier", - "src": "19724:5:62" - }, - "nativeSrc": "19724:26:62", - "nodeType": "YulFunctionCall", - "src": "19724:26:62" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "19709:6:62", - "nodeType": "YulIdentifier", - "src": "19709:6:62" - }, - "nativeSrc": "19709:42:62", - "nodeType": "YulFunctionCall", - "src": "19709:42:62" - }, - "nativeSrc": "19709:42:62", - "nodeType": "YulExpressionStatement", - "src": "19709:42:62" - }, - { - "nativeSrc": "19768:24:62", - "nodeType": "YulAssignment", - "src": "19768:24:62", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "19782:6:62", - "nodeType": "YulIdentifier", - "src": "19782:6:62" - }, - { - "kind": "number", - "nativeSrc": "19790:1:62", - "nodeType": "YulLiteral", - "src": "19790:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19778:3:62", - "nodeType": "YulIdentifier", - "src": "19778:3:62" - }, - "nativeSrc": "19778:14:62", - "nodeType": "YulFunctionCall", - "src": "19778:14:62" - }, - "variableNames": [ - { - "name": "dstPtr", - "nativeSrc": "19768:6:62", - "nodeType": "YulIdentifier", - "src": "19768:6:62" - } - ] - }, - { - "nativeSrc": "19809:33:62", - "nodeType": "YulAssignment", - "src": "19809:33:62", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nativeSrc": "19826:9:62", - "nodeType": "YulIdentifier", - "src": "19826:9:62" - }, - { - "kind": "number", - "nativeSrc": "19837:4:62", - "nodeType": "YulLiteral", - "src": "19837:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19822:3:62", - "nodeType": "YulIdentifier", - "src": "19822:3:62" - }, - "nativeSrc": "19822:20:62", - "nodeType": "YulFunctionCall", - "src": "19822:20:62" - }, - "variableNames": [ - { - "name": "srcOffset", - "nativeSrc": "19809:9:62", - "nodeType": "YulIdentifier", - "src": "19809:9:62" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "19645:1:62", - "nodeType": "YulIdentifier", - "src": "19645:1:62" - }, - { - "name": "loopEnd", - "nativeSrc": "19648:7:62", - "nodeType": "YulIdentifier", - "src": "19648:7:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "19642:2:62", - "nodeType": "YulIdentifier", - "src": "19642:2:62" - }, - "nativeSrc": "19642:14:62", - "nodeType": "YulFunctionCall", - "src": "19642:14:62" - }, - "nativeSrc": "19634:222:62", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "19657:21:62", - "nodeType": "YulBlock", - "src": "19657:21:62", - "statements": [ - { - "nativeSrc": "19659:17:62", - "nodeType": "YulAssignment", - "src": "19659:17:62", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "19668:1:62", - "nodeType": "YulIdentifier", - "src": "19668:1:62" - }, - { - "kind": "number", - "nativeSrc": "19671:4:62", - "nodeType": "YulLiteral", - "src": "19671:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19664:3:62", - "nodeType": "YulIdentifier", - "src": "19664:3:62" - }, - "nativeSrc": "19664:12:62", - "nodeType": "YulFunctionCall", - "src": "19664:12:62" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "19659:1:62", - "nodeType": "YulIdentifier", - "src": "19659:1:62" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "19638:3:62", - "nodeType": "YulBlock", - "src": "19638:3:62", - "statements": [] - }, - "src": "19634:222:62" - }, - { - "body": { - "nativeSrc": "19904:166:62", - "nodeType": "YulBlock", - "src": "19904:166:62", - "statements": [ - { - "nativeSrc": "19922:43:62", - "nodeType": "YulVariableDeclaration", - "src": "19922:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "19949:3:62", - "nodeType": "YulIdentifier", - "src": "19949:3:62" - }, - { - "name": "srcOffset", - "nativeSrc": "19954:9:62", - "nodeType": "YulIdentifier", - "src": "19954:9:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "19945:3:62", - "nodeType": "YulIdentifier", - "src": "19945:3:62" - }, - "nativeSrc": "19945:19:62", - "nodeType": "YulFunctionCall", - "src": "19945:19:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "19939:5:62", - "nodeType": "YulIdentifier", - "src": "19939:5:62" - }, - "nativeSrc": "19939:26:62", - "nodeType": "YulFunctionCall", - "src": "19939:26:62" - }, - "variables": [ - { - "name": "lastValue", - "nativeSrc": "19926:9:62", - "nodeType": "YulTypedName", - "src": "19926:9:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "19989:6:62", - "nodeType": "YulIdentifier", - "src": "19989:6:62" - }, - { - "arguments": [ - { - "name": "lastValue", - "nativeSrc": "20001:9:62", - "nodeType": "YulIdentifier", - "src": "20001:9:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "20028:1:62", - "nodeType": "YulLiteral", - "src": "20028:1:62", - "type": "", - "value": "3" - }, - { - "name": "newLen", - "nativeSrc": "20031:6:62", - "nodeType": "YulIdentifier", - "src": "20031:6:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "20024:3:62", - "nodeType": "YulIdentifier", - "src": "20024:3:62" - }, - "nativeSrc": "20024:14:62", - "nodeType": "YulFunctionCall", - "src": "20024:14:62" - }, - { - "kind": "number", - "nativeSrc": "20040:3:62", - "nodeType": "YulLiteral", - "src": "20040:3:62", - "type": "", - "value": "248" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "20020:3:62", - "nodeType": "YulIdentifier", - "src": "20020:3:62" - }, - "nativeSrc": "20020:24:62", - "nodeType": "YulFunctionCall", - "src": "20020:24:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "20050:1:62", - "nodeType": "YulLiteral", - "src": "20050:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "20046:3:62", - "nodeType": "YulIdentifier", - "src": "20046:3:62" - }, - "nativeSrc": "20046:6:62", - "nodeType": "YulFunctionCall", - "src": "20046:6:62" - } - ], - "functionName": { - "name": "shr", - "nativeSrc": "20016:3:62", - "nodeType": "YulIdentifier", - "src": "20016:3:62" - }, - "nativeSrc": "20016:37:62", - "nodeType": "YulFunctionCall", - "src": "20016:37:62" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "20012:3:62", - "nodeType": "YulIdentifier", - "src": "20012:3:62" - }, - "nativeSrc": "20012:42:62", - "nodeType": "YulFunctionCall", - "src": "20012:42:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "19997:3:62", - "nodeType": "YulIdentifier", - "src": "19997:3:62" - }, - "nativeSrc": "19997:58:62", - "nodeType": "YulFunctionCall", - "src": "19997:58:62" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "19982:6:62", - "nodeType": "YulIdentifier", - "src": "19982:6:62" - }, - "nativeSrc": "19982:74:62", - "nodeType": "YulFunctionCall", - "src": "19982:74:62" - }, - "nativeSrc": "19982:74:62", - "nodeType": "YulExpressionStatement", - "src": "19982:74:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nativeSrc": "19875:7:62", - "nodeType": "YulIdentifier", - "src": "19875:7:62" - }, - { - "name": "newLen", - "nativeSrc": "19884:6:62", - "nodeType": "YulIdentifier", - "src": "19884:6:62" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "19872:2:62", - "nodeType": "YulIdentifier", - "src": "19872:2:62" - }, - "nativeSrc": "19872:19:62", - "nodeType": "YulFunctionCall", - "src": "19872:19:62" - }, - "nativeSrc": "19869:201:62", - "nodeType": "YulIf", - "src": "19869:201:62" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "20090:4:62", - "nodeType": "YulIdentifier", - "src": "20090:4:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "20104:1:62", - "nodeType": "YulLiteral", - "src": "20104:1:62", - "type": "", - "value": "1" - }, - { - "name": "newLen", - "nativeSrc": "20107:6:62", - "nodeType": "YulIdentifier", - "src": "20107:6:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "20100:3:62", - "nodeType": "YulIdentifier", - "src": "20100:3:62" - }, - "nativeSrc": "20100:14:62", - "nodeType": "YulFunctionCall", - "src": "20100:14:62" - }, - { - "kind": "number", - "nativeSrc": "20116:1:62", - "nodeType": "YulLiteral", - "src": "20116:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20096:3:62", - "nodeType": "YulIdentifier", - "src": "20096:3:62" - }, - "nativeSrc": "20096:22:62", - "nodeType": "YulFunctionCall", - "src": "20096:22:62" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "20083:6:62", - "nodeType": "YulIdentifier", - "src": "20083:6:62" - }, - "nativeSrc": "20083:36:62", - "nodeType": "YulFunctionCall", - "src": "20083:36:62" - }, - "nativeSrc": "20083:36:62", - "nodeType": "YulExpressionStatement", - "src": "20083:36:62" - } - ] - }, - "nativeSrc": "19480:649:62", - "nodeType": "YulCase", - "src": "19480:649:62", - "value": { - "kind": "number", - "nativeSrc": "19485:1:62", - "nodeType": "YulLiteral", - "src": "19485:1:62", - "type": "", - "value": "1" - } - }, - { - "body": { - "nativeSrc": "20146:234:62", - "nodeType": "YulBlock", - "src": "20146:234:62", - "statements": [ - { - "nativeSrc": "20160:14:62", - "nodeType": "YulVariableDeclaration", - "src": "20160:14:62", - "value": { - "kind": "number", - "nativeSrc": "20173:1:62", - "nodeType": "YulLiteral", - "src": "20173:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "20164:5:62", - "nodeType": "YulTypedName", - "src": "20164:5:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "20209:67:62", - "nodeType": "YulBlock", - "src": "20209:67:62", - "statements": [ - { - "nativeSrc": "20227:35:62", - "nodeType": "YulAssignment", - "src": "20227:35:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "20246:3:62", - "nodeType": "YulIdentifier", - "src": "20246:3:62" - }, - { - "name": "srcOffset", - "nativeSrc": "20251:9:62", - "nodeType": "YulIdentifier", - "src": "20251:9:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20242:3:62", - "nodeType": "YulIdentifier", - "src": "20242:3:62" - }, - "nativeSrc": "20242:19:62", - "nodeType": "YulFunctionCall", - "src": "20242:19:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "20236:5:62", - "nodeType": "YulIdentifier", - "src": "20236:5:62" - }, - "nativeSrc": "20236:26:62", - "nodeType": "YulFunctionCall", - "src": "20236:26:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "20227:5:62", - "nodeType": "YulIdentifier", - "src": "20227:5:62" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nativeSrc": "20190:6:62", - "nodeType": "YulIdentifier", - "src": "20190:6:62" - }, - "nativeSrc": "20187:89:62", - "nodeType": "YulIf", - "src": "20187:89:62" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "20296:4:62", - "nodeType": "YulIdentifier", - "src": "20296:4:62" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "20355:5:62", - "nodeType": "YulIdentifier", - "src": "20355:5:62" - }, - { - "name": "newLen", - "nativeSrc": "20362:6:62", - "nodeType": "YulIdentifier", - "src": "20362:6:62" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "20302:52:62", - "nodeType": "YulIdentifier", - "src": "20302:52:62" - }, - "nativeSrc": "20302:67:62", - "nodeType": "YulFunctionCall", - "src": "20302:67:62" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "20289:6:62", - "nodeType": "YulIdentifier", - "src": "20289:6:62" - }, - "nativeSrc": "20289:81:62", - "nodeType": "YulFunctionCall", - "src": "20289:81:62" - }, - "nativeSrc": "20289:81:62", - "nodeType": "YulExpressionStatement", - "src": "20289:81:62" - } - ] - }, - "nativeSrc": "20138:242:62", - "nodeType": "YulCase", - "src": "20138:242:62", - "value": "default" - } - ], - "expression": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "19460:6:62", - "nodeType": "YulIdentifier", - "src": "19460:6:62" - }, - { - "kind": "number", - "nativeSrc": "19468:2:62", - "nodeType": "YulLiteral", - "src": "19468:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "19457:2:62", - "nodeType": "YulIdentifier", - "src": "19457:2:62" - }, - "nativeSrc": "19457:14:62", - "nodeType": "YulFunctionCall", - "src": "19457:14:62" - }, - "nativeSrc": "19450:930:62", - "nodeType": "YulSwitch", - "src": "19450:930:62" - } - ] - }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", - "nativeSrc": "19087:1299:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "slot", - "nativeSrc": "19168:4:62", - "nodeType": "YulTypedName", - "src": "19168:4:62", - "type": "" - }, - { - "name": "src", - "nativeSrc": "19174:3:62", - "nodeType": "YulTypedName", - "src": "19174:3:62", - "type": "" - } - ], - "src": "19087:1299:62" - }, - { - "body": { - "nativeSrc": "20520:259:62", - "nodeType": "YulBlock", - "src": "20520:259:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20537:9:62", - "nodeType": "YulIdentifier", - "src": "20537:9:62" - }, - { - "kind": "number", - "nativeSrc": "20548:2:62", - "nodeType": "YulLiteral", - "src": "20548:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "20530:6:62", - "nodeType": "YulIdentifier", - "src": "20530:6:62" - }, - "nativeSrc": "20530:21:62", - "nodeType": "YulFunctionCall", - "src": "20530:21:62" - }, - "nativeSrc": "20530:21:62", - "nodeType": "YulExpressionStatement", - "src": "20530:21:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20571:9:62", - "nodeType": "YulIdentifier", - "src": "20571:9:62" - }, - { - "kind": "number", - "nativeSrc": "20582:2:62", - "nodeType": "YulLiteral", - "src": "20582:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20567:3:62", - "nodeType": "YulIdentifier", - "src": "20567:3:62" - }, - "nativeSrc": "20567:18:62", - "nodeType": "YulFunctionCall", - "src": "20567:18:62" - }, - { - "name": "value1", - "nativeSrc": "20587:6:62", - "nodeType": "YulIdentifier", - "src": "20587:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "20560:6:62", - "nodeType": "YulIdentifier", - "src": "20560:6:62" - }, - "nativeSrc": "20560:34:62", - "nodeType": "YulFunctionCall", - "src": "20560:34:62" - }, - "nativeSrc": "20560:34:62", - "nodeType": "YulExpressionStatement", - "src": "20560:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20620:9:62", - "nodeType": "YulIdentifier", - "src": "20620:9:62" - }, - { - "kind": "number", - "nativeSrc": "20631:2:62", - "nodeType": "YulLiteral", - "src": "20631:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20616:3:62", - "nodeType": "YulIdentifier", - "src": "20616:3:62" - }, - "nativeSrc": "20616:18:62", - "nodeType": "YulFunctionCall", - "src": "20616:18:62" - }, - { - "name": "value0", - "nativeSrc": "20636:6:62", - "nodeType": "YulIdentifier", - "src": "20636:6:62" - }, - { - "name": "value1", - "nativeSrc": "20644:6:62", - "nodeType": "YulIdentifier", - "src": "20644:6:62" - } - ], - "functionName": { - "name": "calldatacopy", - "nativeSrc": "20603:12:62", - "nodeType": "YulIdentifier", - "src": "20603:12:62" - }, - "nativeSrc": "20603:48:62", - "nodeType": "YulFunctionCall", - "src": "20603:48:62" - }, - "nativeSrc": "20603:48:62", - "nodeType": "YulExpressionStatement", - "src": "20603:48:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20675:9:62", - "nodeType": "YulIdentifier", - "src": "20675:9:62" - }, - { - "name": "value1", - "nativeSrc": "20686:6:62", - "nodeType": "YulIdentifier", - "src": "20686:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20671:3:62", - "nodeType": "YulIdentifier", - "src": "20671:3:62" - }, - "nativeSrc": "20671:22:62", - "nodeType": "YulFunctionCall", - "src": "20671:22:62" - }, - { - "kind": "number", - "nativeSrc": "20695:2:62", - "nodeType": "YulLiteral", - "src": "20695:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20667:3:62", - "nodeType": "YulIdentifier", - "src": "20667:3:62" - }, - "nativeSrc": "20667:31:62", - "nodeType": "YulFunctionCall", - "src": "20667:31:62" - }, - { - "kind": "number", - "nativeSrc": "20700:1:62", - "nodeType": "YulLiteral", - "src": "20700:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "20660:6:62", - "nodeType": "YulIdentifier", - "src": "20660:6:62" - }, - "nativeSrc": "20660:42:62", - "nodeType": "YulFunctionCall", - "src": "20660:42:62" - }, - "nativeSrc": "20660:42:62", - "nodeType": "YulExpressionStatement", - "src": "20660:42:62" - }, - { - "nativeSrc": "20711:62:62", - "nodeType": "YulAssignment", - "src": "20711:62:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20727:9:62", - "nodeType": "YulIdentifier", - "src": "20727:9:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "20746:6:62", - "nodeType": "YulIdentifier", - "src": "20746:6:62" - }, - { - "kind": "number", - "nativeSrc": "20754:2:62", - "nodeType": "YulLiteral", - "src": "20754:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20742:3:62", - "nodeType": "YulIdentifier", - "src": "20742:3:62" - }, - "nativeSrc": "20742:15:62", - "nodeType": "YulFunctionCall", - "src": "20742:15:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "20763:2:62", - "nodeType": "YulLiteral", - "src": "20763:2:62", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "20759:3:62", - "nodeType": "YulIdentifier", - "src": "20759:3:62" - }, - "nativeSrc": "20759:7:62", - "nodeType": "YulFunctionCall", - "src": "20759:7:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "20738:3:62", - "nodeType": "YulIdentifier", - "src": "20738:3:62" - }, - "nativeSrc": "20738:29:62", - "nodeType": "YulFunctionCall", - "src": "20738:29:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20723:3:62", - "nodeType": "YulIdentifier", - "src": "20723:3:62" - }, - "nativeSrc": "20723:45:62", - "nodeType": "YulFunctionCall", - "src": "20723:45:62" - }, - { - "kind": "number", - "nativeSrc": "20770:2:62", - "nodeType": "YulLiteral", - "src": "20770:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20719:3:62", - "nodeType": "YulIdentifier", - "src": "20719:3:62" - }, - "nativeSrc": "20719:54:62", - "nodeType": "YulFunctionCall", - "src": "20719:54:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "20711:4:62", - "nodeType": "YulIdentifier", - "src": "20711:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "20391:388:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "20481:9:62", - "nodeType": "YulTypedName", - "src": "20481:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "20492:6:62", - "nodeType": "YulTypedName", - "src": "20492:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "20500:6:62", - "nodeType": "YulTypedName", - "src": "20500:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "20511:4:62", - "nodeType": "YulTypedName", - "src": "20511:4:62", - "type": "" - } - ], - "src": "20391:388:62" - }, - { - "body": { - "nativeSrc": "20862:177:62", - "nodeType": "YulBlock", - "src": "20862:177:62", - "statements": [ - { - "body": { - "nativeSrc": "20908:16:62", - "nodeType": "YulBlock", - "src": "20908:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "20917:1:62", - "nodeType": "YulLiteral", - "src": "20917:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "20920:1:62", - "nodeType": "YulLiteral", - "src": "20920:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "20910:6:62", - "nodeType": "YulIdentifier", - "src": "20910:6:62" - }, - "nativeSrc": "20910:12:62", - "nodeType": "YulFunctionCall", - "src": "20910:12:62" - }, - "nativeSrc": "20910:12:62", - "nodeType": "YulExpressionStatement", - "src": "20910:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "20883:7:62", - "nodeType": "YulIdentifier", - "src": "20883:7:62" - }, - { - "name": "headStart", - "nativeSrc": "20892:9:62", - "nodeType": "YulIdentifier", - "src": "20892:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "20879:3:62", - "nodeType": "YulIdentifier", - "src": "20879:3:62" - }, - "nativeSrc": "20879:23:62", - "nodeType": "YulFunctionCall", - "src": "20879:23:62" - }, - { - "kind": "number", - "nativeSrc": "20904:2:62", - "nodeType": "YulLiteral", - "src": "20904:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "20875:3:62", - "nodeType": "YulIdentifier", - "src": "20875:3:62" - }, - "nativeSrc": "20875:32:62", - "nodeType": "YulFunctionCall", - "src": "20875:32:62" - }, - "nativeSrc": "20872:52:62", - "nodeType": "YulIf", - "src": "20872:52:62" - }, - { - "nativeSrc": "20933:36:62", - "nodeType": "YulVariableDeclaration", - "src": "20933:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20959:9:62", - "nodeType": "YulIdentifier", - "src": "20959:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "20946:12:62", - "nodeType": "YulIdentifier", - "src": "20946:12:62" - }, - "nativeSrc": "20946:23:62", - "nodeType": "YulFunctionCall", - "src": "20946:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "20937:5:62", - "nodeType": "YulTypedName", - "src": "20937:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "21003:5:62", - "nodeType": "YulIdentifier", - "src": "21003:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "20978:24:62", - "nodeType": "YulIdentifier", - "src": "20978:24:62" - }, - "nativeSrc": "20978:31:62", - "nodeType": "YulFunctionCall", - "src": "20978:31:62" - }, - "nativeSrc": "20978:31:62", - "nodeType": "YulExpressionStatement", - "src": "20978:31:62" - }, - { - "nativeSrc": "21018:15:62", - "nodeType": "YulAssignment", - "src": "21018:15:62", - "value": { - "name": "value", - "nativeSrc": "21028:5:62", - "nodeType": "YulIdentifier", - "src": "21028:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "21018:6:62", - "nodeType": "YulIdentifier", - "src": "21018:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_payable", - "nativeSrc": "20784:255:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "20828:9:62", - "nodeType": "YulTypedName", - "src": "20828:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "20839:7:62", - "nodeType": "YulTypedName", - "src": "20839:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "20851:6:62", - "nodeType": "YulTypedName", - "src": "20851:6:62", - "type": "" - } - ], - "src": "20784:255:62" - }, - { - "body": { - "nativeSrc": "21218:171:62", - "nodeType": "YulBlock", - "src": "21218:171:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21235:9:62", - "nodeType": "YulIdentifier", - "src": "21235:9:62" - }, - { - "kind": "number", - "nativeSrc": "21246:2:62", - "nodeType": "YulLiteral", - "src": "21246:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21228:6:62", - "nodeType": "YulIdentifier", - "src": "21228:6:62" - }, - "nativeSrc": "21228:21:62", - "nodeType": "YulFunctionCall", - "src": "21228:21:62" - }, - "nativeSrc": "21228:21:62", - "nodeType": "YulExpressionStatement", - "src": "21228:21:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21269:9:62", - "nodeType": "YulIdentifier", - "src": "21269:9:62" - }, - { - "kind": "number", - "nativeSrc": "21280:2:62", - "nodeType": "YulLiteral", - "src": "21280:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21265:3:62", - "nodeType": "YulIdentifier", - "src": "21265:3:62" - }, - "nativeSrc": "21265:18:62", - "nodeType": "YulFunctionCall", - "src": "21265:18:62" - }, - { - "kind": "number", - "nativeSrc": "21285:2:62", - "nodeType": "YulLiteral", - "src": "21285:2:62", - "type": "", - "value": "21" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21258:6:62", - "nodeType": "YulIdentifier", - "src": "21258:6:62" - }, - "nativeSrc": "21258:30:62", - "nodeType": "YulFunctionCall", - "src": "21258:30:62" - }, - "nativeSrc": "21258:30:62", - "nodeType": "YulExpressionStatement", - "src": "21258:30:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21308:9:62", - "nodeType": "YulIdentifier", - "src": "21308:9:62" - }, - { - "kind": "number", - "nativeSrc": "21319:2:62", - "nodeType": "YulLiteral", - "src": "21319:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21304:3:62", - "nodeType": "YulIdentifier", - "src": "21304:3:62" - }, - "nativeSrc": "21304:18:62", - "nodeType": "YulFunctionCall", - "src": "21304:18:62" - }, - { - "hexValue": "4549503731323a20556e696e697469616c697a6564", - "kind": "string", - "nativeSrc": "21324:23:62", - "nodeType": "YulLiteral", - "src": "21324:23:62", - "type": "", - "value": "EIP712: Uninitialized" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21297:6:62", - "nodeType": "YulIdentifier", - "src": "21297:6:62" - }, - "nativeSrc": "21297:51:62", - "nodeType": "YulFunctionCall", - "src": "21297:51:62" - }, - "nativeSrc": "21297:51:62", - "nodeType": "YulExpressionStatement", - "src": "21297:51:62" - }, - { - "nativeSrc": "21357:26:62", - "nodeType": "YulAssignment", - "src": "21357:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21369:9:62", - "nodeType": "YulIdentifier", - "src": "21369:9:62" - }, - { - "kind": "number", - "nativeSrc": "21380:2:62", - "nodeType": "YulLiteral", - "src": "21380:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21365:3:62", - "nodeType": "YulIdentifier", - "src": "21365:3:62" - }, - "nativeSrc": "21365:18:62", - "nodeType": "YulFunctionCall", - "src": "21365:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "21357:4:62", - "nodeType": "YulIdentifier", - "src": "21357:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "21044:345:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "21195:9:62", - "nodeType": "YulTypedName", - "src": "21195:9:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "21209:4:62", - "nodeType": "YulTypedName", - "src": "21209:4:62", - "type": "" - } - ], - "src": "21044:345:62" - }, - { - "body": { - "nativeSrc": "21426:95:62", - "nodeType": "YulBlock", - "src": "21426:95:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21443:1:62", - "nodeType": "YulLiteral", - "src": "21443:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21450:3:62", - "nodeType": "YulLiteral", - "src": "21450:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "21455:10:62", - "nodeType": "YulLiteral", - "src": "21455:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "21446:3:62", - "nodeType": "YulIdentifier", - "src": "21446:3:62" - }, - "nativeSrc": "21446:20:62", - "nodeType": "YulFunctionCall", - "src": "21446:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21436:6:62", - "nodeType": "YulIdentifier", - "src": "21436:6:62" - }, - "nativeSrc": "21436:31:62", - "nodeType": "YulFunctionCall", - "src": "21436:31:62" - }, - "nativeSrc": "21436:31:62", - "nodeType": "YulExpressionStatement", - "src": "21436:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21483:1:62", - "nodeType": "YulLiteral", - "src": "21483:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "21486:4:62", - "nodeType": "YulLiteral", - "src": "21486:4:62", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "21476:6:62", - "nodeType": "YulIdentifier", - "src": "21476:6:62" - }, - "nativeSrc": "21476:15:62", - "nodeType": "YulFunctionCall", - "src": "21476:15:62" - }, - "nativeSrc": "21476:15:62", - "nodeType": "YulExpressionStatement", - "src": "21476:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21507:1:62", - "nodeType": "YulLiteral", - "src": "21507:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "21510:4:62", - "nodeType": "YulLiteral", - "src": "21510:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "21500:6:62", - "nodeType": "YulIdentifier", - "src": "21500:6:62" - }, - "nativeSrc": "21500:15:62", - "nodeType": "YulFunctionCall", - "src": "21500:15:62" - }, - "nativeSrc": "21500:15:62", - "nodeType": "YulExpressionStatement", - "src": "21500:15:62" - } - ] - }, - "name": "panic_error_0x11", - "nativeSrc": "21394:127:62", - "nodeType": "YulFunctionDefinition", - "src": "21394:127:62" - }, - { - "body": { - "nativeSrc": "21575:79:62", - "nodeType": "YulBlock", - "src": "21575:79:62", - "statements": [ - { - "nativeSrc": "21585:17:62", - "nodeType": "YulAssignment", - "src": "21585:17:62", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "21597:1:62", - "nodeType": "YulIdentifier", - "src": "21597:1:62" - }, - { - "name": "y", - "nativeSrc": "21600:1:62", - "nodeType": "YulIdentifier", - "src": "21600:1:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "21593:3:62", - "nodeType": "YulIdentifier", - "src": "21593:3:62" - }, - "nativeSrc": "21593:9:62", - "nodeType": "YulFunctionCall", - "src": "21593:9:62" - }, - "variableNames": [ - { - "name": "diff", - "nativeSrc": "21585:4:62", - "nodeType": "YulIdentifier", - "src": "21585:4:62" - } - ] - }, - { - "body": { - "nativeSrc": "21626:22:62", - "nodeType": "YulBlock", - "src": "21626:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "21628:16:62", - "nodeType": "YulIdentifier", - "src": "21628:16:62" - }, - "nativeSrc": "21628:18:62", - "nodeType": "YulFunctionCall", - "src": "21628:18:62" - }, - "nativeSrc": "21628:18:62", - "nodeType": "YulExpressionStatement", - "src": "21628:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "diff", - "nativeSrc": "21617:4:62", - "nodeType": "YulIdentifier", - "src": "21617:4:62" - }, - { - "name": "x", - "nativeSrc": "21623:1:62", - "nodeType": "YulIdentifier", - "src": "21623:1:62" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "21614:2:62", - "nodeType": "YulIdentifier", - "src": "21614:2:62" - }, - "nativeSrc": "21614:11:62", - "nodeType": "YulFunctionCall", - "src": "21614:11:62" - }, - "nativeSrc": "21611:37:62", - "nodeType": "YulIf", - "src": "21611:37:62" - } - ] - }, - "name": "checked_sub_t_uint256", - "nativeSrc": "21526:128:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "21557:1:62", - "nodeType": "YulTypedName", - "src": "21557:1:62", - "type": "" - }, - { - "name": "y", - "nativeSrc": "21560:1:62", - "nodeType": "YulTypedName", - "src": "21560:1:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "diff", - "nativeSrc": "21566:4:62", - "nodeType": "YulTypedName", - "src": "21566:4:62", - "type": "" - } - ], - "src": "21526:128:62" - }, - { - "body": { - "nativeSrc": "21789:201:62", - "nodeType": "YulBlock", - "src": "21789:201:62", - "statements": [ - { - "body": { - "nativeSrc": "21827:16:62", - "nodeType": "YulBlock", - "src": "21827:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21836:1:62", - "nodeType": "YulLiteral", - "src": "21836:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "21839:1:62", - "nodeType": "YulLiteral", - "src": "21839:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "21829:6:62", - "nodeType": "YulIdentifier", - "src": "21829:6:62" - }, - "nativeSrc": "21829:12:62", - "nodeType": "YulFunctionCall", - "src": "21829:12:62" - }, - "nativeSrc": "21829:12:62", - "nodeType": "YulExpressionStatement", - "src": "21829:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "21805:10:62", - "nodeType": "YulIdentifier", - "src": "21805:10:62" - }, - { - "name": "endIndex", - "nativeSrc": "21817:8:62", - "nodeType": "YulIdentifier", - "src": "21817:8:62" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "21802:2:62", - "nodeType": "YulIdentifier", - "src": "21802:2:62" - }, - "nativeSrc": "21802:24:62", - "nodeType": "YulFunctionCall", - "src": "21802:24:62" - }, - "nativeSrc": "21799:44:62", - "nodeType": "YulIf", - "src": "21799:44:62" - }, - { - "body": { - "nativeSrc": "21876:16:62", - "nodeType": "YulBlock", - "src": "21876:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "21885:1:62", - "nodeType": "YulLiteral", - "src": "21885:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "21888:1:62", - "nodeType": "YulLiteral", - "src": "21888:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "21878:6:62", - "nodeType": "YulIdentifier", - "src": "21878:6:62" - }, - "nativeSrc": "21878:12:62", - "nodeType": "YulFunctionCall", - "src": "21878:12:62" - }, - "nativeSrc": "21878:12:62", - "nodeType": "YulExpressionStatement", - "src": "21878:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "endIndex", - "nativeSrc": "21858:8:62", - "nodeType": "YulIdentifier", - "src": "21858:8:62" - }, - { - "name": "length", - "nativeSrc": "21868:6:62", - "nodeType": "YulIdentifier", - "src": "21868:6:62" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "21855:2:62", - "nodeType": "YulIdentifier", - "src": "21855:2:62" - }, - "nativeSrc": "21855:20:62", - "nodeType": "YulFunctionCall", - "src": "21855:20:62" - }, - "nativeSrc": "21852:40:62", - "nodeType": "YulIf", - "src": "21852:40:62" - }, - { - "nativeSrc": "21901:36:62", - "nodeType": "YulAssignment", - "src": "21901:36:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "21918:6:62", - "nodeType": "YulIdentifier", - "src": "21918:6:62" - }, - { - "name": "startIndex", - "nativeSrc": "21926:10:62", - "nodeType": "YulIdentifier", - "src": "21926:10:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21914:3:62", - "nodeType": "YulIdentifier", - "src": "21914:3:62" - }, - "nativeSrc": "21914:23:62", - "nodeType": "YulFunctionCall", - "src": "21914:23:62" - }, - "variableNames": [ - { - "name": "offsetOut", - "nativeSrc": "21901:9:62", - "nodeType": "YulIdentifier", - "src": "21901:9:62" - } - ] - }, - { - "nativeSrc": "21946:38:62", - "nodeType": "YulAssignment", - "src": "21946:38:62", - "value": { - "arguments": [ - { - "name": "endIndex", - "nativeSrc": "21963:8:62", - "nodeType": "YulIdentifier", - "src": "21963:8:62" - }, - { - "name": "startIndex", - "nativeSrc": "21973:10:62", - "nodeType": "YulIdentifier", - "src": "21973:10:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "21959:3:62", - "nodeType": "YulIdentifier", - "src": "21959:3:62" - }, - "nativeSrc": "21959:25:62", - "nodeType": "YulFunctionCall", - "src": "21959:25:62" - }, - "variableNames": [ - { - "name": "lengthOut", - "nativeSrc": "21946:9:62", - "nodeType": "YulIdentifier", - "src": "21946:9:62" - } - ] - } - ] - }, - "name": "calldata_array_index_range_access_t_bytes_calldata_ptr", - "nativeSrc": "21659:331:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "21723:6:62", - "nodeType": "YulTypedName", - "src": "21723:6:62", - "type": "" - }, - { - "name": "length", - "nativeSrc": "21731:6:62", - "nodeType": "YulTypedName", - "src": "21731:6:62", - "type": "" - }, - { - "name": "startIndex", - "nativeSrc": "21739:10:62", - "nodeType": "YulTypedName", - "src": "21739:10:62", - "type": "" - }, - { - "name": "endIndex", - "nativeSrc": "21751:8:62", - "nodeType": "YulTypedName", - "src": "21751:8:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "offsetOut", - "nativeSrc": "21764:9:62", - "nodeType": "YulTypedName", - "src": "21764:9:62", - "type": "" - }, - { - "name": "lengthOut", - "nativeSrc": "21775:9:62", - "nodeType": "YulTypedName", - "src": "21775:9:62", - "type": "" - } - ], - "src": "21659:331:62" - }, - { - "body": { - "nativeSrc": "22027:95:62", - "nodeType": "YulBlock", - "src": "22027:95:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22044:1:62", - "nodeType": "YulLiteral", - "src": "22044:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22051:3:62", - "nodeType": "YulLiteral", - "src": "22051:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "22056:10:62", - "nodeType": "YulLiteral", - "src": "22056:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "22047:3:62", - "nodeType": "YulIdentifier", - "src": "22047:3:62" - }, - "nativeSrc": "22047:20:62", - "nodeType": "YulFunctionCall", - "src": "22047:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22037:6:62", - "nodeType": "YulIdentifier", - "src": "22037:6:62" - }, - "nativeSrc": "22037:31:62", - "nodeType": "YulFunctionCall", - "src": "22037:31:62" - }, - "nativeSrc": "22037:31:62", - "nodeType": "YulExpressionStatement", - "src": "22037:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22084:1:62", - "nodeType": "YulLiteral", - "src": "22084:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "22087:4:62", - "nodeType": "YulLiteral", - "src": "22087:4:62", - "type": "", - "value": "0x32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22077:6:62", - "nodeType": "YulIdentifier", - "src": "22077:6:62" - }, - "nativeSrc": "22077:15:62", - "nodeType": "YulFunctionCall", - "src": "22077:15:62" - }, - "nativeSrc": "22077:15:62", - "nodeType": "YulExpressionStatement", - "src": "22077:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22108:1:62", - "nodeType": "YulLiteral", - "src": "22108:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "22111:4:62", - "nodeType": "YulLiteral", - "src": "22111:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "22101:6:62", - "nodeType": "YulIdentifier", - "src": "22101:6:62" - }, - "nativeSrc": "22101:15:62", - "nodeType": "YulFunctionCall", - "src": "22101:15:62" - }, - "nativeSrc": "22101:15:62", - "nodeType": "YulExpressionStatement", - "src": "22101:15:62" - } - ] - }, - "name": "panic_error_0x32", - "nativeSrc": "21995:127:62", - "nodeType": "YulFunctionDefinition", - "src": "21995:127:62" - }, - { - "body": { - "nativeSrc": "22221:427:62", - "nodeType": "YulBlock", - "src": "22221:427:62", - "statements": [ - { - "nativeSrc": "22231:51:62", - "nodeType": "YulVariableDeclaration", - "src": "22231:51:62", - "value": { - "arguments": [ - { - "name": "ptr_to_tail", - "nativeSrc": "22270:11:62", - "nodeType": "YulIdentifier", - "src": "22270:11:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "22257:12:62", - "nodeType": "YulIdentifier", - "src": "22257:12:62" - }, - "nativeSrc": "22257:25:62", - "nodeType": "YulFunctionCall", - "src": "22257:25:62" - }, - "variables": [ - { - "name": "rel_offset_of_tail", - "nativeSrc": "22235:18:62", - "nodeType": "YulTypedName", - "src": "22235:18:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "22371:16:62", - "nodeType": "YulBlock", - "src": "22371:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22380:1:62", - "nodeType": "YulLiteral", - "src": "22380:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "22383:1:62", - "nodeType": "YulLiteral", - "src": "22383:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "22373:6:62", - "nodeType": "YulIdentifier", - "src": "22373:6:62" - }, - "nativeSrc": "22373:12:62", - "nodeType": "YulFunctionCall", - "src": "22373:12:62" - }, - "nativeSrc": "22373:12:62", - "nodeType": "YulExpressionStatement", - "src": "22373:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "rel_offset_of_tail", - "nativeSrc": "22305:18:62", - "nodeType": "YulIdentifier", - "src": "22305:18:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [], - "functionName": { - "name": "calldatasize", - "nativeSrc": "22333:12:62", - "nodeType": "YulIdentifier", - "src": "22333:12:62" - }, - "nativeSrc": "22333:14:62", - "nodeType": "YulFunctionCall", - "src": "22333:14:62" - }, - { - "name": "base_ref", - "nativeSrc": "22349:8:62", - "nodeType": "YulIdentifier", - "src": "22349:8:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "22329:3:62", - "nodeType": "YulIdentifier", - "src": "22329:3:62" - }, - "nativeSrc": "22329:29:62", - "nodeType": "YulFunctionCall", - "src": "22329:29:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22364:2:62", - "nodeType": "YulLiteral", - "src": "22364:2:62", - "type": "", - "value": "30" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "22360:3:62", - "nodeType": "YulIdentifier", - "src": "22360:3:62" - }, - "nativeSrc": "22360:7:62", - "nodeType": "YulFunctionCall", - "src": "22360:7:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22325:3:62", - "nodeType": "YulIdentifier", - "src": "22325:3:62" - }, - "nativeSrc": "22325:43:62", - "nodeType": "YulFunctionCall", - "src": "22325:43:62" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "22301:3:62", - "nodeType": "YulIdentifier", - "src": "22301:3:62" - }, - "nativeSrc": "22301:68:62", - "nodeType": "YulFunctionCall", - "src": "22301:68:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "22294:6:62", - "nodeType": "YulIdentifier", - "src": "22294:6:62" - }, - "nativeSrc": "22294:76:62", - "nodeType": "YulFunctionCall", - "src": "22294:76:62" - }, - "nativeSrc": "22291:96:62", - "nodeType": "YulIf", - "src": "22291:96:62" - }, - { - "nativeSrc": "22396:47:62", - "nodeType": "YulVariableDeclaration", - "src": "22396:47:62", - "value": { - "arguments": [ - { - "name": "base_ref", - "nativeSrc": "22414:8:62", - "nodeType": "YulIdentifier", - "src": "22414:8:62" - }, - { - "name": "rel_offset_of_tail", - "nativeSrc": "22424:18:62", - "nodeType": "YulIdentifier", - "src": "22424:18:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22410:3:62", - "nodeType": "YulIdentifier", - "src": "22410:3:62" - }, - "nativeSrc": "22410:33:62", - "nodeType": "YulFunctionCall", - "src": "22410:33:62" - }, - "variables": [ - { - "name": "addr_1", - "nativeSrc": "22400:6:62", - "nodeType": "YulTypedName", - "src": "22400:6:62", - "type": "" - } - ] - }, - { - "nativeSrc": "22452:30:62", - "nodeType": "YulAssignment", - "src": "22452:30:62", - "value": { - "arguments": [ - { - "name": "addr_1", - "nativeSrc": "22475:6:62", - "nodeType": "YulIdentifier", - "src": "22475:6:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "22462:12:62", - "nodeType": "YulIdentifier", - "src": "22462:12:62" - }, - "nativeSrc": "22462:20:62", - "nodeType": "YulFunctionCall", - "src": "22462:20:62" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "22452:6:62", - "nodeType": "YulIdentifier", - "src": "22452:6:62" - } - ] - }, - { - "body": { - "nativeSrc": "22525:16:62", - "nodeType": "YulBlock", - "src": "22525:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22534:1:62", - "nodeType": "YulLiteral", - "src": "22534:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "22537:1:62", - "nodeType": "YulLiteral", - "src": "22537:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "22527:6:62", - "nodeType": "YulIdentifier", - "src": "22527:6:62" - }, - "nativeSrc": "22527:12:62", - "nodeType": "YulFunctionCall", - "src": "22527:12:62" - }, - "nativeSrc": "22527:12:62", - "nodeType": "YulExpressionStatement", - "src": "22527:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "22497:6:62", - "nodeType": "YulIdentifier", - "src": "22497:6:62" - }, - { - "kind": "number", - "nativeSrc": "22505:18:62", - "nodeType": "YulLiteral", - "src": "22505:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "22494:2:62", - "nodeType": "YulIdentifier", - "src": "22494:2:62" - }, - "nativeSrc": "22494:30:62", - "nodeType": "YulFunctionCall", - "src": "22494:30:62" - }, - "nativeSrc": "22491:50:62", - "nodeType": "YulIf", - "src": "22491:50:62" - }, - { - "nativeSrc": "22550:25:62", - "nodeType": "YulAssignment", - "src": "22550:25:62", - "value": { - "arguments": [ - { - "name": "addr_1", - "nativeSrc": "22562:6:62", - "nodeType": "YulIdentifier", - "src": "22562:6:62" - }, - { - "kind": "number", - "nativeSrc": "22570:4:62", - "nodeType": "YulLiteral", - "src": "22570:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22558:3:62", - "nodeType": "YulIdentifier", - "src": "22558:3:62" - }, - "nativeSrc": "22558:17:62", - "nodeType": "YulFunctionCall", - "src": "22558:17:62" - }, - "variableNames": [ - { - "name": "addr", - "nativeSrc": "22550:4:62", - "nodeType": "YulIdentifier", - "src": "22550:4:62" - } - ] - }, - { - "body": { - "nativeSrc": "22626:16:62", - "nodeType": "YulBlock", - "src": "22626:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "22635:1:62", - "nodeType": "YulLiteral", - "src": "22635:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "22638:1:62", - "nodeType": "YulLiteral", - "src": "22638:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "22628:6:62", - "nodeType": "YulIdentifier", - "src": "22628:6:62" - }, - "nativeSrc": "22628:12:62", - "nodeType": "YulFunctionCall", - "src": "22628:12:62" - }, - "nativeSrc": "22628:12:62", - "nodeType": "YulExpressionStatement", - "src": "22628:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "addr", - "nativeSrc": "22591:4:62", - "nodeType": "YulIdentifier", - "src": "22591:4:62" - }, - { - "arguments": [ - { - "arguments": [], - "functionName": { - "name": "calldatasize", - "nativeSrc": "22601:12:62", - "nodeType": "YulIdentifier", - "src": "22601:12:62" - }, - "nativeSrc": "22601:14:62", - "nodeType": "YulFunctionCall", - "src": "22601:14:62" - }, - { - "name": "length", - "nativeSrc": "22617:6:62", - "nodeType": "YulIdentifier", - "src": "22617:6:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "22597:3:62", - "nodeType": "YulIdentifier", - "src": "22597:3:62" - }, - "nativeSrc": "22597:27:62", - "nodeType": "YulFunctionCall", - "src": "22597:27:62" - } - ], - "functionName": { - "name": "sgt", - "nativeSrc": "22587:3:62", - "nodeType": "YulIdentifier", - "src": "22587:3:62" - }, - "nativeSrc": "22587:38:62", - "nodeType": "YulFunctionCall", - "src": "22587:38:62" - }, - "nativeSrc": "22584:58:62", - "nodeType": "YulIf", - "src": "22584:58:62" - } - ] - }, - "name": "access_calldata_tail_t_bytes_calldata_ptr", - "nativeSrc": "22127:521:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "base_ref", - "nativeSrc": "22178:8:62", - "nodeType": "YulTypedName", - "src": "22178:8:62", - "type": "" - }, - { - "name": "ptr_to_tail", - "nativeSrc": "22188:11:62", - "nodeType": "YulTypedName", - "src": "22188:11:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "addr", - "nativeSrc": "22204:4:62", - "nodeType": "YulTypedName", - "src": "22204:4:62", - "type": "" - }, - { - "name": "length", - "nativeSrc": "22210:6:62", - "nodeType": "YulTypedName", - "src": "22210:6:62", - "type": "" - } - ], - "src": "22127:521:62" - }, - { - "body": { - "nativeSrc": "22846:247:62", - "nodeType": "YulBlock", - "src": "22846:247:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "22869:3:62", - "nodeType": "YulIdentifier", - "src": "22869:3:62" - }, - { - "name": "value0", - "nativeSrc": "22874:6:62", - "nodeType": "YulIdentifier", - "src": "22874:6:62" - }, - { - "name": "value1", - "nativeSrc": "22882:6:62", - "nodeType": "YulIdentifier", - "src": "22882:6:62" - } - ], - "functionName": { - "name": "calldatacopy", - "nativeSrc": "22856:12:62", - "nodeType": "YulIdentifier", - "src": "22856:12:62" - }, - "nativeSrc": "22856:33:62", - "nodeType": "YulFunctionCall", - "src": "22856:33:62" - }, - "nativeSrc": "22856:33:62", - "nodeType": "YulExpressionStatement", - "src": "22856:33:62" - }, - { - "nativeSrc": "22898:26:62", - "nodeType": "YulVariableDeclaration", - "src": "22898:26:62", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "22912:3:62", - "nodeType": "YulIdentifier", - "src": "22912:3:62" - }, - { - "name": "value1", - "nativeSrc": "22917:6:62", - "nodeType": "YulIdentifier", - "src": "22917:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22908:3:62", - "nodeType": "YulIdentifier", - "src": "22908:3:62" - }, - "nativeSrc": "22908:16:62", - "nodeType": "YulFunctionCall", - "src": "22908:16:62" - }, - "variables": [ - { - "name": "_1", - "nativeSrc": "22902:2:62", - "nodeType": "YulTypedName", - "src": "22902:2:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "_1", - "nativeSrc": "22940:2:62", - "nodeType": "YulIdentifier", - "src": "22940:2:62" - }, - { - "kind": "number", - "nativeSrc": "22944:1:62", - "nodeType": "YulLiteral", - "src": "22944:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "22933:6:62", - "nodeType": "YulIdentifier", - "src": "22933:6:62" - }, - "nativeSrc": "22933:13:62", - "nodeType": "YulFunctionCall", - "src": "22933:13:62" - }, - "nativeSrc": "22933:13:62", - "nodeType": "YulExpressionStatement", - "src": "22933:13:62" - }, - { - "nativeSrc": "22955:27:62", - "nodeType": "YulVariableDeclaration", - "src": "22955:27:62", - "value": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "22975:6:62", - "nodeType": "YulIdentifier", - "src": "22975:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "22969:5:62", - "nodeType": "YulIdentifier", - "src": "22969:5:62" - }, - "nativeSrc": "22969:13:62", - "nodeType": "YulFunctionCall", - "src": "22969:13:62" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "22959:6:62", - "nodeType": "YulTypedName", - "src": "22959:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value2", - "nativeSrc": "23030:6:62", - "nodeType": "YulIdentifier", - "src": "23030:6:62" - }, - { - "kind": "number", - "nativeSrc": "23038:4:62", - "nodeType": "YulLiteral", - "src": "23038:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23026:3:62", - "nodeType": "YulIdentifier", - "src": "23026:3:62" - }, - "nativeSrc": "23026:17:62", - "nodeType": "YulFunctionCall", - "src": "23026:17:62" - }, - { - "name": "_1", - "nativeSrc": "23045:2:62", - "nodeType": "YulIdentifier", - "src": "23045:2:62" - }, - { - "name": "length", - "nativeSrc": "23049:6:62", - "nodeType": "YulIdentifier", - "src": "23049:6:62" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "22991:34:62", - "nodeType": "YulIdentifier", - "src": "22991:34:62" - }, - "nativeSrc": "22991:65:62", - "nodeType": "YulFunctionCall", - "src": "22991:65:62" - }, - "nativeSrc": "22991:65:62", - "nodeType": "YulExpressionStatement", - "src": "22991:65:62" - }, - { - "nativeSrc": "23065:22:62", - "nodeType": "YulAssignment", - "src": "23065:22:62", - "value": { - "arguments": [ - { - "name": "_1", - "nativeSrc": "23076:2:62", - "nodeType": "YulIdentifier", - "src": "23076:2:62" - }, - { - "name": "length", - "nativeSrc": "23080:6:62", - "nodeType": "YulIdentifier", - "src": "23080:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23072:3:62", - "nodeType": "YulIdentifier", - "src": "23072:3:62" - }, - "nativeSrc": "23072:15:62", - "nodeType": "YulFunctionCall", - "src": "23072:15:62" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "23065:3:62", - "nodeType": "YulIdentifier", - "src": "23065:3:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "22653:440:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "22806:3:62", - "nodeType": "YulTypedName", - "src": "22806:3:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "22811:6:62", - "nodeType": "YulTypedName", - "src": "22811:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "22819:6:62", - "nodeType": "YulTypedName", - "src": "22819:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "22827:6:62", - "nodeType": "YulTypedName", - "src": "22827:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "22838:3:62", - "nodeType": "YulTypedName", - "src": "22838:3:62", - "type": "" - } - ], - "src": "22653:440:62" - }, - { - "body": { - "nativeSrc": "23130:95:62", - "nodeType": "YulBlock", - "src": "23130:95:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23147:1:62", - "nodeType": "YulLiteral", - "src": "23147:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23154:3:62", - "nodeType": "YulLiteral", - "src": "23154:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "23159:10:62", - "nodeType": "YulLiteral", - "src": "23159:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "23150:3:62", - "nodeType": "YulIdentifier", - "src": "23150:3:62" - }, - "nativeSrc": "23150:20:62", - "nodeType": "YulFunctionCall", - "src": "23150:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "23140:6:62", - "nodeType": "YulIdentifier", - "src": "23140:6:62" - }, - "nativeSrc": "23140:31:62", - "nodeType": "YulFunctionCall", - "src": "23140:31:62" - }, - "nativeSrc": "23140:31:62", - "nodeType": "YulExpressionStatement", - "src": "23140:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23187:1:62", - "nodeType": "YulLiteral", - "src": "23187:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "23190:4:62", - "nodeType": "YulLiteral", - "src": "23190:4:62", - "type": "", - "value": "0x21" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "23180:6:62", - "nodeType": "YulIdentifier", - "src": "23180:6:62" - }, - "nativeSrc": "23180:15:62", - "nodeType": "YulFunctionCall", - "src": "23180:15:62" - }, - "nativeSrc": "23180:15:62", - "nodeType": "YulExpressionStatement", - "src": "23180:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23211:1:62", - "nodeType": "YulLiteral", - "src": "23211:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "23214:4:62", - "nodeType": "YulLiteral", - "src": "23214:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "23204:6:62", - "nodeType": "YulIdentifier", - "src": "23204:6:62" - }, - "nativeSrc": "23204:15:62", - "nodeType": "YulFunctionCall", - "src": "23204:15:62" - }, - "nativeSrc": "23204:15:62", - "nodeType": "YulExpressionStatement", - "src": "23204:15:62" - } - ] - }, - "name": "panic_error_0x21", - "nativeSrc": "23098:127:62", - "nodeType": "YulFunctionDefinition", - "src": "23098:127:62" - }, - { - "body": { - "nativeSrc": "23274:85:62", - "nodeType": "YulBlock", - "src": "23274:85:62", - "statements": [ - { - "body": { - "nativeSrc": "23337:16:62", - "nodeType": "YulBlock", - "src": "23337:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23346:1:62", - "nodeType": "YulLiteral", - "src": "23346:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "23349:1:62", - "nodeType": "YulLiteral", - "src": "23349:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "23339:6:62", - "nodeType": "YulIdentifier", - "src": "23339:6:62" - }, - "nativeSrc": "23339:12:62", - "nodeType": "YulFunctionCall", - "src": "23339:12:62" - }, - "nativeSrc": "23339:12:62", - "nodeType": "YulExpressionStatement", - "src": "23339:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "23297:5:62", - "nodeType": "YulIdentifier", - "src": "23297:5:62" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "23308:5:62", - "nodeType": "YulIdentifier", - "src": "23308:5:62" - }, - { - "kind": "number", - "nativeSrc": "23315:18:62", - "nodeType": "YulLiteral", - "src": "23315:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "23304:3:62", - "nodeType": "YulIdentifier", - "src": "23304:3:62" - }, - "nativeSrc": "23304:30:62", - "nodeType": "YulFunctionCall", - "src": "23304:30:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "23294:2:62", - "nodeType": "YulIdentifier", - "src": "23294:2:62" - }, - "nativeSrc": "23294:41:62", - "nodeType": "YulFunctionCall", - "src": "23294:41:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "23287:6:62", - "nodeType": "YulIdentifier", - "src": "23287:6:62" - }, - "nativeSrc": "23287:49:62", - "nodeType": "YulFunctionCall", - "src": "23287:49:62" - }, - "nativeSrc": "23284:69:62", - "nodeType": "YulIf", - "src": "23284:69:62" - } - ] - }, - "name": "validator_revert_uint64", - "nativeSrc": "23230:129:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "23263:5:62", - "nodeType": "YulTypedName", - "src": "23263:5:62", - "type": "" - } - ], - "src": "23230:129:62" - }, - { - "body": { - "nativeSrc": "23461:1544:62", - "nodeType": "YulBlock", - "src": "23461:1544:62", - "statements": [ - { - "body": { - "nativeSrc": "23507:16:62", - "nodeType": "YulBlock", - "src": "23507:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23516:1:62", - "nodeType": "YulLiteral", - "src": "23516:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "23519:1:62", - "nodeType": "YulLiteral", - "src": "23519:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "23509:6:62", - "nodeType": "YulIdentifier", - "src": "23509:6:62" - }, - "nativeSrc": "23509:12:62", - "nodeType": "YulFunctionCall", - "src": "23509:12:62" - }, - "nativeSrc": "23509:12:62", - "nodeType": "YulExpressionStatement", - "src": "23509:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "23482:7:62", - "nodeType": "YulIdentifier", - "src": "23482:7:62" - }, - { - "name": "headStart", - "nativeSrc": "23491:9:62", - "nodeType": "YulIdentifier", - "src": "23491:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "23478:3:62", - "nodeType": "YulIdentifier", - "src": "23478:3:62" - }, - "nativeSrc": "23478:23:62", - "nodeType": "YulFunctionCall", - "src": "23478:23:62" - }, - { - "kind": "number", - "nativeSrc": "23503:2:62", - "nodeType": "YulLiteral", - "src": "23503:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "23474:3:62", - "nodeType": "YulIdentifier", - "src": "23474:3:62" - }, - "nativeSrc": "23474:32:62", - "nodeType": "YulFunctionCall", - "src": "23474:32:62" - }, - "nativeSrc": "23471:52:62", - "nodeType": "YulIf", - "src": "23471:52:62" - }, - { - "nativeSrc": "23532:37:62", - "nodeType": "YulVariableDeclaration", - "src": "23532:37:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "23559:9:62", - "nodeType": "YulIdentifier", - "src": "23559:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "23546:12:62", - "nodeType": "YulIdentifier", - "src": "23546:12:62" - }, - "nativeSrc": "23546:23:62", - "nodeType": "YulFunctionCall", - "src": "23546:23:62" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "23536:6:62", - "nodeType": "YulTypedName", - "src": "23536:6:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "23612:16:62", - "nodeType": "YulBlock", - "src": "23612:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23621:1:62", - "nodeType": "YulLiteral", - "src": "23621:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "23624:1:62", - "nodeType": "YulLiteral", - "src": "23624:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "23614:6:62", - "nodeType": "YulIdentifier", - "src": "23614:6:62" - }, - "nativeSrc": "23614:12:62", - "nodeType": "YulFunctionCall", - "src": "23614:12:62" - }, - "nativeSrc": "23614:12:62", - "nodeType": "YulExpressionStatement", - "src": "23614:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "23584:6:62", - "nodeType": "YulIdentifier", - "src": "23584:6:62" - }, - { - "kind": "number", - "nativeSrc": "23592:18:62", - "nodeType": "YulLiteral", - "src": "23592:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "23581:2:62", - "nodeType": "YulIdentifier", - "src": "23581:2:62" - }, - "nativeSrc": "23581:30:62", - "nodeType": "YulFunctionCall", - "src": "23581:30:62" - }, - "nativeSrc": "23578:50:62", - "nodeType": "YulIf", - "src": "23578:50:62" - }, - { - "nativeSrc": "23637:32:62", - "nodeType": "YulVariableDeclaration", - "src": "23637:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "23651:9:62", - "nodeType": "YulIdentifier", - "src": "23651:9:62" - }, - { - "name": "offset", - "nativeSrc": "23662:6:62", - "nodeType": "YulIdentifier", - "src": "23662:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23647:3:62", - "nodeType": "YulIdentifier", - "src": "23647:3:62" - }, - "nativeSrc": "23647:22:62", - "nodeType": "YulFunctionCall", - "src": "23647:22:62" - }, - "variables": [ - { - "name": "_1", - "nativeSrc": "23641:2:62", - "nodeType": "YulTypedName", - "src": "23641:2:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "23709:16:62", - "nodeType": "YulBlock", - "src": "23709:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23718:1:62", - "nodeType": "YulLiteral", - "src": "23718:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "23721:1:62", - "nodeType": "YulLiteral", - "src": "23721:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "23711:6:62", - "nodeType": "YulIdentifier", - "src": "23711:6:62" - }, - "nativeSrc": "23711:12:62", - "nodeType": "YulFunctionCall", - "src": "23711:12:62" - }, - "nativeSrc": "23711:12:62", - "nodeType": "YulExpressionStatement", - "src": "23711:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "23689:7:62", - "nodeType": "YulIdentifier", - "src": "23689:7:62" - }, - { - "name": "_1", - "nativeSrc": "23698:2:62", - "nodeType": "YulIdentifier", - "src": "23698:2:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "23685:3:62", - "nodeType": "YulIdentifier", - "src": "23685:3:62" - }, - "nativeSrc": "23685:16:62", - "nodeType": "YulFunctionCall", - "src": "23685:16:62" - }, - { - "kind": "number", - "nativeSrc": "23703:4:62", - "nodeType": "YulLiteral", - "src": "23703:4:62", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "23681:3:62", - "nodeType": "YulIdentifier", - "src": "23681:3:62" - }, - "nativeSrc": "23681:27:62", - "nodeType": "YulFunctionCall", - "src": "23681:27:62" - }, - "nativeSrc": "23678:47:62", - "nodeType": "YulIf", - "src": "23678:47:62" - }, - { - "nativeSrc": "23734:35:62", - "nodeType": "YulVariableDeclaration", - "src": "23734:35:62", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_memory_4281", - "nativeSrc": "23747:20:62", - "nodeType": "YulIdentifier", - "src": "23747:20:62" - }, - "nativeSrc": "23747:22:62", - "nodeType": "YulFunctionCall", - "src": "23747:22:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "23738:5:62", - "nodeType": "YulTypedName", - "src": "23738:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "23778:32:62", - "nodeType": "YulVariableDeclaration", - "src": "23778:32:62", - "value": { - "arguments": [ - { - "name": "_1", - "nativeSrc": "23807:2:62", - "nodeType": "YulIdentifier", - "src": "23807:2:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "23794:12:62", - "nodeType": "YulIdentifier", - "src": "23794:12:62" - }, - "nativeSrc": "23794:16:62", - "nodeType": "YulFunctionCall", - "src": "23794:16:62" - }, - "variables": [ - { - "name": "offset_1", - "nativeSrc": "23782:8:62", - "nodeType": "YulTypedName", - "src": "23782:8:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "23855:16:62", - "nodeType": "YulBlock", - "src": "23855:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23864:1:62", - "nodeType": "YulLiteral", - "src": "23864:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "23867:1:62", - "nodeType": "YulLiteral", - "src": "23867:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "23857:6:62", - "nodeType": "YulIdentifier", - "src": "23857:6:62" - }, - "nativeSrc": "23857:12:62", - "nodeType": "YulFunctionCall", - "src": "23857:12:62" - }, - "nativeSrc": "23857:12:62", - "nodeType": "YulExpressionStatement", - "src": "23857:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_1", - "nativeSrc": "23825:8:62", - "nodeType": "YulIdentifier", - "src": "23825:8:62" - }, - { - "kind": "number", - "nativeSrc": "23835:18:62", - "nodeType": "YulLiteral", - "src": "23835:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "23822:2:62", - "nodeType": "YulIdentifier", - "src": "23822:2:62" - }, - "nativeSrc": "23822:32:62", - "nodeType": "YulFunctionCall", - "src": "23822:32:62" - }, - "nativeSrc": "23819:52:62", - "nodeType": "YulIf", - "src": "23819:52:62" - }, - { - "nativeSrc": "23880:27:62", - "nodeType": "YulVariableDeclaration", - "src": "23880:27:62", - "value": { - "arguments": [ - { - "name": "_1", - "nativeSrc": "23894:2:62", - "nodeType": "YulIdentifier", - "src": "23894:2:62" - }, - { - "name": "offset_1", - "nativeSrc": "23898:8:62", - "nodeType": "YulIdentifier", - "src": "23898:8:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23890:3:62", - "nodeType": "YulIdentifier", - "src": "23890:3:62" - }, - "nativeSrc": "23890:17:62", - "nodeType": "YulFunctionCall", - "src": "23890:17:62" - }, - "variables": [ - { - "name": "_2", - "nativeSrc": "23884:2:62", - "nodeType": "YulTypedName", - "src": "23884:2:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "23947:16:62", - "nodeType": "YulBlock", - "src": "23947:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23956:1:62", - "nodeType": "YulLiteral", - "src": "23956:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "23959:1:62", - "nodeType": "YulLiteral", - "src": "23959:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "23949:6:62", - "nodeType": "YulIdentifier", - "src": "23949:6:62" - }, - "nativeSrc": "23949:12:62", - "nodeType": "YulFunctionCall", - "src": "23949:12:62" - }, - "nativeSrc": "23949:12:62", - "nodeType": "YulExpressionStatement", - "src": "23949:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "23927:7:62", - "nodeType": "YulIdentifier", - "src": "23927:7:62" - }, - { - "name": "_2", - "nativeSrc": "23936:2:62", - "nodeType": "YulIdentifier", - "src": "23936:2:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "23923:3:62", - "nodeType": "YulIdentifier", - "src": "23923:3:62" - }, - "nativeSrc": "23923:16:62", - "nodeType": "YulFunctionCall", - "src": "23923:16:62" - }, - { - "kind": "number", - "nativeSrc": "23941:4:62", - "nodeType": "YulLiteral", - "src": "23941:4:62", - "type": "", - "value": "0xa0" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "23919:3:62", - "nodeType": "YulIdentifier", - "src": "23919:3:62" - }, - "nativeSrc": "23919:27:62", - "nodeType": "YulFunctionCall", - "src": "23919:27:62" - }, - "nativeSrc": "23916:47:62", - "nodeType": "YulIf", - "src": "23916:47:62" - }, - { - "nativeSrc": "23972:32:62", - "nodeType": "YulVariableDeclaration", - "src": "23972:32:62", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "23987:15:62", - "nodeType": "YulIdentifier", - "src": "23987:15:62" - }, - "nativeSrc": "23987:17:62", - "nodeType": "YulFunctionCall", - "src": "23987:17:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "23976:7:62", - "nodeType": "YulTypedName", - "src": "23976:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "24013:31:62", - "nodeType": "YulVariableDeclaration", - "src": "24013:31:62", - "value": { - "arguments": [ - { - "name": "_2", - "nativeSrc": "24041:2:62", - "nodeType": "YulIdentifier", - "src": "24041:2:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "24028:12:62", - "nodeType": "YulIdentifier", - "src": "24028:12:62" - }, - "nativeSrc": "24028:16:62", - "nodeType": "YulFunctionCall", - "src": "24028:16:62" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "24017:7:62", - "nodeType": "YulTypedName", - "src": "24017:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_2", - "nativeSrc": "24078:7:62", - "nodeType": "YulIdentifier", - "src": "24078:7:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "24053:24:62", - "nodeType": "YulIdentifier", - "src": "24053:24:62" - }, - "nativeSrc": "24053:33:62", - "nodeType": "YulFunctionCall", - "src": "24053:33:62" - }, - "nativeSrc": "24053:33:62", - "nodeType": "YulExpressionStatement", - "src": "24053:33:62" - }, - { - "expression": { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "24102:7:62", - "nodeType": "YulIdentifier", - "src": "24102:7:62" - }, - { - "name": "value_2", - "nativeSrc": "24111:7:62", - "nodeType": "YulIdentifier", - "src": "24111:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "24095:6:62", - "nodeType": "YulIdentifier", - "src": "24095:6:62" - }, - "nativeSrc": "24095:24:62", - "nodeType": "YulFunctionCall", - "src": "24095:24:62" - }, - "nativeSrc": "24095:24:62", - "nodeType": "YulExpressionStatement", - "src": "24095:24:62" - }, - { - "nativeSrc": "24128:40:62", - "nodeType": "YulVariableDeclaration", - "src": "24128:40:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "_2", - "nativeSrc": "24160:2:62", - "nodeType": "YulIdentifier", - "src": "24160:2:62" - }, - { - "kind": "number", - "nativeSrc": "24164:2:62", - "nodeType": "YulLiteral", - "src": "24164:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24156:3:62", - "nodeType": "YulIdentifier", - "src": "24156:3:62" - }, - "nativeSrc": "24156:11:62", - "nodeType": "YulFunctionCall", - "src": "24156:11:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "24143:12:62", - "nodeType": "YulIdentifier", - "src": "24143:12:62" - }, - "nativeSrc": "24143:25:62", - "nodeType": "YulFunctionCall", - "src": "24143:25:62" - }, - "variables": [ - { - "name": "value_3", - "nativeSrc": "24132:7:62", - "nodeType": "YulTypedName", - "src": "24132:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_3", - "nativeSrc": "24202:7:62", - "nodeType": "YulIdentifier", - "src": "24202:7:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "24177:24:62", - "nodeType": "YulIdentifier", - "src": "24177:24:62" - }, - "nativeSrc": "24177:33:62", - "nodeType": "YulFunctionCall", - "src": "24177:33:62" - }, - "nativeSrc": "24177:33:62", - "nodeType": "YulExpressionStatement", - "src": "24177:33:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "24230:7:62", - "nodeType": "YulIdentifier", - "src": "24230:7:62" - }, - { - "kind": "number", - "nativeSrc": "24239:2:62", - "nodeType": "YulLiteral", - "src": "24239:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24226:3:62", - "nodeType": "YulIdentifier", - "src": "24226:3:62" - }, - "nativeSrc": "24226:16:62", - "nodeType": "YulFunctionCall", - "src": "24226:16:62" - }, - { - "name": "value_3", - "nativeSrc": "24244:7:62", - "nodeType": "YulIdentifier", - "src": "24244:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "24219:6:62", - "nodeType": "YulIdentifier", - "src": "24219:6:62" - }, - "nativeSrc": "24219:33:62", - "nodeType": "YulFunctionCall", - "src": "24219:33:62" - }, - "nativeSrc": "24219:33:62", - "nodeType": "YulExpressionStatement", - "src": "24219:33:62" - }, - { - "nativeSrc": "24261:42:62", - "nodeType": "YulVariableDeclaration", - "src": "24261:42:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "_2", - "nativeSrc": "24293:2:62", - "nodeType": "YulIdentifier", - "src": "24293:2:62" - }, - { - "kind": "number", - "nativeSrc": "24297:4:62", - "nodeType": "YulLiteral", - "src": "24297:4:62", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24289:3:62", - "nodeType": "YulIdentifier", - "src": "24289:3:62" - }, - "nativeSrc": "24289:13:62", - "nodeType": "YulFunctionCall", - "src": "24289:13:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "24276:12:62", - "nodeType": "YulIdentifier", - "src": "24276:12:62" - }, - "nativeSrc": "24276:27:62", - "nodeType": "YulFunctionCall", - "src": "24276:27:62" - }, - "variables": [ - { - "name": "value_4", - "nativeSrc": "24265:7:62", - "nodeType": "YulTypedName", - "src": "24265:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_4", - "nativeSrc": "24336:7:62", - "nodeType": "YulIdentifier", - "src": "24336:7:62" - } - ], - "functionName": { - "name": "validator_revert_uint64", - "nativeSrc": "24312:23:62", - "nodeType": "YulIdentifier", - "src": "24312:23:62" - }, - "nativeSrc": "24312:32:62", - "nodeType": "YulFunctionCall", - "src": "24312:32:62" - }, - "nativeSrc": "24312:32:62", - "nodeType": "YulExpressionStatement", - "src": "24312:32:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "24364:7:62", - "nodeType": "YulIdentifier", - "src": "24364:7:62" - }, - { - "kind": "number", - "nativeSrc": "24373:4:62", - "nodeType": "YulLiteral", - "src": "24373:4:62", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24360:3:62", - "nodeType": "YulIdentifier", - "src": "24360:3:62" - }, - "nativeSrc": "24360:18:62", - "nodeType": "YulFunctionCall", - "src": "24360:18:62" - }, - { - "name": "value_4", - "nativeSrc": "24380:7:62", - "nodeType": "YulIdentifier", - "src": "24380:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "24353:6:62", - "nodeType": "YulIdentifier", - "src": "24353:6:62" - }, - "nativeSrc": "24353:35:62", - "nodeType": "YulFunctionCall", - "src": "24353:35:62" - }, - "nativeSrc": "24353:35:62", - "nodeType": "YulExpressionStatement", - "src": "24353:35:62" - }, - { - "nativeSrc": "24397:40:62", - "nodeType": "YulVariableDeclaration", - "src": "24397:40:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "_2", - "nativeSrc": "24429:2:62", - "nodeType": "YulIdentifier", - "src": "24429:2:62" - }, - { - "kind": "number", - "nativeSrc": "24433:2:62", - "nodeType": "YulLiteral", - "src": "24433:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24425:3:62", - "nodeType": "YulIdentifier", - "src": "24425:3:62" - }, - "nativeSrc": "24425:11:62", - "nodeType": "YulFunctionCall", - "src": "24425:11:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "24412:12:62", - "nodeType": "YulIdentifier", - "src": "24412:12:62" - }, - "nativeSrc": "24412:25:62", - "nodeType": "YulFunctionCall", - "src": "24412:25:62" - }, - "variables": [ - { - "name": "value_5", - "nativeSrc": "24401:7:62", - "nodeType": "YulTypedName", - "src": "24401:7:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "24504:16:62", - "nodeType": "YulBlock", - "src": "24504:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "24513:1:62", - "nodeType": "YulLiteral", - "src": "24513:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "24516:1:62", - "nodeType": "YulLiteral", - "src": "24516:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "24506:6:62", - "nodeType": "YulIdentifier", - "src": "24506:6:62" - }, - "nativeSrc": "24506:12:62", - "nodeType": "YulFunctionCall", - "src": "24506:12:62" - }, - "nativeSrc": "24506:12:62", - "nodeType": "YulExpressionStatement", - "src": "24506:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value_5", - "nativeSrc": "24459:7:62", - "nodeType": "YulIdentifier", - "src": "24459:7:62" - }, - { - "arguments": [ - { - "name": "value_5", - "nativeSrc": "24472:7:62", - "nodeType": "YulIdentifier", - "src": "24472:7:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "24489:3:62", - "nodeType": "YulLiteral", - "src": "24489:3:62", - "type": "", - "value": "128" - }, - { - "kind": "number", - "nativeSrc": "24494:1:62", - "nodeType": "YulLiteral", - "src": "24494:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "24485:3:62", - "nodeType": "YulIdentifier", - "src": "24485:3:62" - }, - "nativeSrc": "24485:11:62", - "nodeType": "YulFunctionCall", - "src": "24485:11:62" - }, - { - "kind": "number", - "nativeSrc": "24498:1:62", - "nodeType": "YulLiteral", - "src": "24498:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "24481:3:62", - "nodeType": "YulIdentifier", - "src": "24481:3:62" - }, - "nativeSrc": "24481:19:62", - "nodeType": "YulFunctionCall", - "src": "24481:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "24468:3:62", - "nodeType": "YulIdentifier", - "src": "24468:3:62" - }, - "nativeSrc": "24468:33:62", - "nodeType": "YulFunctionCall", - "src": "24468:33:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "24456:2:62", - "nodeType": "YulIdentifier", - "src": "24456:2:62" - }, - "nativeSrc": "24456:46:62", - "nodeType": "YulFunctionCall", - "src": "24456:46:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "24449:6:62", - "nodeType": "YulIdentifier", - "src": "24449:6:62" - }, - "nativeSrc": "24449:54:62", - "nodeType": "YulFunctionCall", - "src": "24449:54:62" - }, - "nativeSrc": "24446:74:62", - "nodeType": "YulIf", - "src": "24446:74:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "24540:7:62", - "nodeType": "YulIdentifier", - "src": "24540:7:62" - }, - { - "kind": "number", - "nativeSrc": "24549:2:62", - "nodeType": "YulLiteral", - "src": "24549:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24536:3:62", - "nodeType": "YulIdentifier", - "src": "24536:3:62" - }, - "nativeSrc": "24536:16:62", - "nodeType": "YulFunctionCall", - "src": "24536:16:62" - }, - { - "name": "value_5", - "nativeSrc": "24554:7:62", - "nodeType": "YulIdentifier", - "src": "24554:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "24529:6:62", - "nodeType": "YulIdentifier", - "src": "24529:6:62" - }, - "nativeSrc": "24529:33:62", - "nodeType": "YulFunctionCall", - "src": "24529:33:62" - }, - "nativeSrc": "24529:33:62", - "nodeType": "YulExpressionStatement", - "src": "24529:33:62" - }, - { - "nativeSrc": "24571:42:62", - "nodeType": "YulVariableDeclaration", - "src": "24571:42:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "_2", - "nativeSrc": "24604:2:62", - "nodeType": "YulIdentifier", - "src": "24604:2:62" - }, - { - "kind": "number", - "nativeSrc": "24608:3:62", - "nodeType": "YulLiteral", - "src": "24608:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24600:3:62", - "nodeType": "YulIdentifier", - "src": "24600:3:62" - }, - "nativeSrc": "24600:12:62", - "nodeType": "YulFunctionCall", - "src": "24600:12:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "24587:12:62", - "nodeType": "YulIdentifier", - "src": "24587:12:62" - }, - "nativeSrc": "24587:26:62", - "nodeType": "YulFunctionCall", - "src": "24587:26:62" - }, - "variables": [ - { - "name": "offset_2", - "nativeSrc": "24575:8:62", - "nodeType": "YulTypedName", - "src": "24575:8:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "24658:16:62", - "nodeType": "YulBlock", - "src": "24658:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "24667:1:62", - "nodeType": "YulLiteral", - "src": "24667:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "24670:1:62", - "nodeType": "YulLiteral", - "src": "24670:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "24660:6:62", - "nodeType": "YulIdentifier", - "src": "24660:6:62" - }, - "nativeSrc": "24660:12:62", - "nodeType": "YulFunctionCall", - "src": "24660:12:62" - }, - "nativeSrc": "24660:12:62", - "nodeType": "YulExpressionStatement", - "src": "24660:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_2", - "nativeSrc": "24628:8:62", - "nodeType": "YulIdentifier", - "src": "24628:8:62" - }, - { - "kind": "number", - "nativeSrc": "24638:18:62", - "nodeType": "YulLiteral", - "src": "24638:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "24625:2:62", - "nodeType": "YulIdentifier", - "src": "24625:2:62" - }, - "nativeSrc": "24625:32:62", - "nodeType": "YulFunctionCall", - "src": "24625:32:62" - }, - "nativeSrc": "24622:52:62", - "nodeType": "YulIf", - "src": "24622:52:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "24694:7:62", - "nodeType": "YulIdentifier", - "src": "24694:7:62" - }, - { - "kind": "number", - "nativeSrc": "24703:3:62", - "nodeType": "YulLiteral", - "src": "24703:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24690:3:62", - "nodeType": "YulIdentifier", - "src": "24690:3:62" - }, - "nativeSrc": "24690:17:62", - "nodeType": "YulFunctionCall", - "src": "24690:17:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "_2", - "nativeSrc": "24731:2:62", - "nodeType": "YulIdentifier", - "src": "24731:2:62" - }, - { - "name": "offset_2", - "nativeSrc": "24735:8:62", - "nodeType": "YulIdentifier", - "src": "24735:8:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24727:3:62", - "nodeType": "YulIdentifier", - "src": "24727:3:62" - }, - "nativeSrc": "24727:17:62", - "nodeType": "YulFunctionCall", - "src": "24727:17:62" - }, - { - "name": "dataEnd", - "nativeSrc": "24746:7:62", - "nodeType": "YulIdentifier", - "src": "24746:7:62" - } - ], - "functionName": { - "name": "abi_decode_string", - "nativeSrc": "24709:17:62", - "nodeType": "YulIdentifier", - "src": "24709:17:62" - }, - "nativeSrc": "24709:45:62", - "nodeType": "YulFunctionCall", - "src": "24709:45:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "24683:6:62", - "nodeType": "YulIdentifier", - "src": "24683:6:62" - }, - "nativeSrc": "24683:72:62", - "nodeType": "YulFunctionCall", - "src": "24683:72:62" - }, - "nativeSrc": "24683:72:62", - "nodeType": "YulExpressionStatement", - "src": "24683:72:62" - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "24771:5:62", - "nodeType": "YulIdentifier", - "src": "24771:5:62" - }, - { - "name": "value_1", - "nativeSrc": "24778:7:62", - "nodeType": "YulIdentifier", - "src": "24778:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "24764:6:62", - "nodeType": "YulIdentifier", - "src": "24764:6:62" - }, - "nativeSrc": "24764:22:62", - "nodeType": "YulFunctionCall", - "src": "24764:22:62" - }, - "nativeSrc": "24764:22:62", - "nodeType": "YulExpressionStatement", - "src": "24764:22:62" - }, - { - "nativeSrc": "24795:41:62", - "nodeType": "YulVariableDeclaration", - "src": "24795:41:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "_1", - "nativeSrc": "24828:2:62", - "nodeType": "YulIdentifier", - "src": "24828:2:62" - }, - { - "kind": "number", - "nativeSrc": "24832:2:62", - "nodeType": "YulLiteral", - "src": "24832:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24824:3:62", - "nodeType": "YulIdentifier", - "src": "24824:3:62" - }, - "nativeSrc": "24824:11:62", - "nodeType": "YulFunctionCall", - "src": "24824:11:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "24811:12:62", - "nodeType": "YulIdentifier", - "src": "24811:12:62" - }, - "nativeSrc": "24811:25:62", - "nodeType": "YulFunctionCall", - "src": "24811:25:62" - }, - "variables": [ - { - "name": "offset_3", - "nativeSrc": "24799:8:62", - "nodeType": "YulTypedName", - "src": "24799:8:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "24881:16:62", - "nodeType": "YulBlock", - "src": "24881:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "24890:1:62", - "nodeType": "YulLiteral", - "src": "24890:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "24893:1:62", - "nodeType": "YulLiteral", - "src": "24893:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "24883:6:62", - "nodeType": "YulIdentifier", - "src": "24883:6:62" - }, - "nativeSrc": "24883:12:62", - "nodeType": "YulFunctionCall", - "src": "24883:12:62" - }, - "nativeSrc": "24883:12:62", - "nodeType": "YulExpressionStatement", - "src": "24883:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset_3", - "nativeSrc": "24851:8:62", - "nodeType": "YulIdentifier", - "src": "24851:8:62" - }, - { - "kind": "number", - "nativeSrc": "24861:18:62", - "nodeType": "YulLiteral", - "src": "24861:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "24848:2:62", - "nodeType": "YulIdentifier", - "src": "24848:2:62" - }, - "nativeSrc": "24848:32:62", - "nodeType": "YulFunctionCall", - "src": "24848:32:62" - }, - "nativeSrc": "24845:52:62", - "nodeType": "YulIf", - "src": "24845:52:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "24917:5:62", - "nodeType": "YulIdentifier", - "src": "24917:5:62" - }, - { - "kind": "number", - "nativeSrc": "24924:2:62", - "nodeType": "YulLiteral", - "src": "24924:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24913:3:62", - "nodeType": "YulIdentifier", - "src": "24913:3:62" - }, - "nativeSrc": "24913:14:62", - "nodeType": "YulFunctionCall", - "src": "24913:14:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "_1", - "nativeSrc": "24951:2:62", - "nodeType": "YulIdentifier", - "src": "24951:2:62" - }, - { - "name": "offset_3", - "nativeSrc": "24955:8:62", - "nodeType": "YulIdentifier", - "src": "24955:8:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24947:3:62", - "nodeType": "YulIdentifier", - "src": "24947:3:62" - }, - "nativeSrc": "24947:17:62", - "nodeType": "YulFunctionCall", - "src": "24947:17:62" - }, - { - "name": "dataEnd", - "nativeSrc": "24966:7:62", - "nodeType": "YulIdentifier", - "src": "24966:7:62" - } - ], - "functionName": { - "name": "abi_decode_string", - "nativeSrc": "24929:17:62", - "nodeType": "YulIdentifier", - "src": "24929:17:62" - }, - "nativeSrc": "24929:45:62", - "nodeType": "YulFunctionCall", - "src": "24929:45:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "24906:6:62", - "nodeType": "YulIdentifier", - "src": "24906:6:62" - }, - "nativeSrc": "24906:69:62", - "nodeType": "YulFunctionCall", - "src": "24906:69:62" - }, - "nativeSrc": "24906:69:62", - "nodeType": "YulExpressionStatement", - "src": "24906:69:62" - }, - { - "nativeSrc": "24984:15:62", - "nodeType": "YulAssignment", - "src": "24984:15:62", - "value": { - "name": "value", - "nativeSrc": "24994:5:62", - "nodeType": "YulIdentifier", - "src": "24994:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "24984:6:62", - "nodeType": "YulIdentifier", - "src": "24984:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_struct$_SignedRAV_$2546_memory_ptr", - "nativeSrc": "23364:1641:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "23427:9:62", - "nodeType": "YulTypedName", - "src": "23427:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "23438:7:62", - "nodeType": "YulTypedName", - "src": "23438:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "23450:6:62", - "nodeType": "YulTypedName", - "src": "23450:6:62", - "type": "" - } - ], - "src": "23364:1641:62" - }, - { - "body": { - "nativeSrc": "25105:280:62", - "nodeType": "YulBlock", - "src": "25105:280:62", - "statements": [ - { - "body": { - "nativeSrc": "25151:16:62", - "nodeType": "YulBlock", - "src": "25151:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "25160:1:62", - "nodeType": "YulLiteral", - "src": "25160:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "25163:1:62", - "nodeType": "YulLiteral", - "src": "25163:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "25153:6:62", - "nodeType": "YulIdentifier", - "src": "25153:6:62" - }, - "nativeSrc": "25153:12:62", - "nodeType": "YulFunctionCall", - "src": "25153:12:62" - }, - "nativeSrc": "25153:12:62", - "nodeType": "YulExpressionStatement", - "src": "25153:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "25126:7:62", - "nodeType": "YulIdentifier", - "src": "25126:7:62" - }, - { - "name": "headStart", - "nativeSrc": "25135:9:62", - "nodeType": "YulIdentifier", - "src": "25135:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "25122:3:62", - "nodeType": "YulIdentifier", - "src": "25122:3:62" - }, - "nativeSrc": "25122:23:62", - "nodeType": "YulFunctionCall", - "src": "25122:23:62" - }, - { - "kind": "number", - "nativeSrc": "25147:2:62", - "nodeType": "YulLiteral", - "src": "25147:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "25118:3:62", - "nodeType": "YulIdentifier", - "src": "25118:3:62" - }, - "nativeSrc": "25118:32:62", - "nodeType": "YulFunctionCall", - "src": "25118:32:62" - }, - "nativeSrc": "25115:52:62", - "nodeType": "YulIf", - "src": "25115:52:62" - }, - { - "nativeSrc": "25176:36:62", - "nodeType": "YulVariableDeclaration", - "src": "25176:36:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "25202:9:62", - "nodeType": "YulIdentifier", - "src": "25202:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "25189:12:62", - "nodeType": "YulIdentifier", - "src": "25189:12:62" - }, - "nativeSrc": "25189:23:62", - "nodeType": "YulFunctionCall", - "src": "25189:23:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "25180:5:62", - "nodeType": "YulTypedName", - "src": "25180:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "25246:5:62", - "nodeType": "YulIdentifier", - "src": "25246:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "25221:24:62", - "nodeType": "YulIdentifier", - "src": "25221:24:62" - }, - "nativeSrc": "25221:31:62", - "nodeType": "YulFunctionCall", - "src": "25221:31:62" - }, - "nativeSrc": "25221:31:62", - "nodeType": "YulExpressionStatement", - "src": "25221:31:62" - }, - { - "nativeSrc": "25261:15:62", - "nodeType": "YulAssignment", - "src": "25261:15:62", - "value": { - "name": "value", - "nativeSrc": "25271:5:62", - "nodeType": "YulIdentifier", - "src": "25271:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "25261:6:62", - "nodeType": "YulIdentifier", - "src": "25261:6:62" - } - ] - }, - { - "nativeSrc": "25285:16:62", - "nodeType": "YulVariableDeclaration", - "src": "25285:16:62", - "value": { - "kind": "number", - "nativeSrc": "25300:1:62", - "nodeType": "YulLiteral", - "src": "25300:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "25289:7:62", - "nodeType": "YulTypedName", - "src": "25289:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "25310:43:62", - "nodeType": "YulAssignment", - "src": "25310:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "25338:9:62", - "nodeType": "YulIdentifier", - "src": "25338:9:62" - }, - { - "kind": "number", - "nativeSrc": "25349:2:62", - "nodeType": "YulLiteral", - "src": "25349:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "25334:3:62", - "nodeType": "YulIdentifier", - "src": "25334:3:62" - }, - "nativeSrc": "25334:18:62", - "nodeType": "YulFunctionCall", - "src": "25334:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "25321:12:62", - "nodeType": "YulIdentifier", - "src": "25321:12:62" - }, - "nativeSrc": "25321:32:62", - "nodeType": "YulFunctionCall", - "src": "25321:32:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "25310:7:62", - "nodeType": "YulIdentifier", - "src": "25310:7:62" - } - ] - }, - { - "nativeSrc": "25362:17:62", - "nodeType": "YulAssignment", - "src": "25362:17:62", - "value": { - "name": "value_1", - "nativeSrc": "25372:7:62", - "nodeType": "YulIdentifier", - "src": "25372:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "25362:6:62", - "nodeType": "YulIdentifier", - "src": "25362:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_payablet_bytes32", - "nativeSrc": "25010:375:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "25063:9:62", - "nodeType": "YulTypedName", - "src": "25063:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "25074:7:62", - "nodeType": "YulTypedName", - "src": "25074:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "25086:6:62", - "nodeType": "YulTypedName", - "src": "25086:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "25094:6:62", - "nodeType": "YulTypedName", - "src": "25094:6:62", - "type": "" - } - ], - "src": "25010:375:62" - }, - { - "body": { - "nativeSrc": "25444:186:62", - "nodeType": "YulBlock", - "src": "25444:186:62", - "statements": [ - { - "body": { - "nativeSrc": "25486:111:62", - "nodeType": "YulBlock", - "src": "25486:111:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "25507:1:62", - "nodeType": "YulLiteral", - "src": "25507:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "25514:3:62", - "nodeType": "YulLiteral", - "src": "25514:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "25519:10:62", - "nodeType": "YulLiteral", - "src": "25519:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "25510:3:62", - "nodeType": "YulIdentifier", - "src": "25510:3:62" - }, - "nativeSrc": "25510:20:62", - "nodeType": "YulFunctionCall", - "src": "25510:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "25500:6:62", - "nodeType": "YulIdentifier", - "src": "25500:6:62" - }, - "nativeSrc": "25500:31:62", - "nodeType": "YulFunctionCall", - "src": "25500:31:62" - }, - "nativeSrc": "25500:31:62", - "nodeType": "YulExpressionStatement", - "src": "25500:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "25551:1:62", - "nodeType": "YulLiteral", - "src": "25551:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "25554:4:62", - "nodeType": "YulLiteral", - "src": "25554:4:62", - "type": "", - "value": "0x21" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "25544:6:62", - "nodeType": "YulIdentifier", - "src": "25544:6:62" - }, - "nativeSrc": "25544:15:62", - "nodeType": "YulFunctionCall", - "src": "25544:15:62" - }, - "nativeSrc": "25544:15:62", - "nodeType": "YulExpressionStatement", - "src": "25544:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "25579:1:62", - "nodeType": "YulLiteral", - "src": "25579:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "25582:4:62", - "nodeType": "YulLiteral", - "src": "25582:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "25572:6:62", - "nodeType": "YulIdentifier", - "src": "25572:6:62" - }, - "nativeSrc": "25572:15:62", - "nodeType": "YulFunctionCall", - "src": "25572:15:62" - }, - "nativeSrc": "25572:15:62", - "nodeType": "YulExpressionStatement", - "src": "25572:15:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "25467:5:62", - "nodeType": "YulIdentifier", - "src": "25467:5:62" - }, - { - "kind": "number", - "nativeSrc": "25474:1:62", - "nodeType": "YulLiteral", - "src": "25474:1:62", - "type": "", - "value": "3" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "25464:2:62", - "nodeType": "YulIdentifier", - "src": "25464:2:62" - }, - "nativeSrc": "25464:12:62", - "nodeType": "YulFunctionCall", - "src": "25464:12:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "25457:6:62", - "nodeType": "YulIdentifier", - "src": "25457:6:62" - }, - "nativeSrc": "25457:20:62", - "nodeType": "YulFunctionCall", - "src": "25457:20:62" - }, - "nativeSrc": "25454:143:62", - "nodeType": "YulIf", - "src": "25454:143:62" - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "25613:3:62", - "nodeType": "YulIdentifier", - "src": "25613:3:62" - }, - { - "name": "value", - "nativeSrc": "25618:5:62", - "nodeType": "YulIdentifier", - "src": "25618:5:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "25606:6:62", - "nodeType": "YulIdentifier", - "src": "25606:6:62" - }, - "nativeSrc": "25606:18:62", - "nodeType": "YulFunctionCall", - "src": "25606:18:62" - }, - "nativeSrc": "25606:18:62", - "nodeType": "YulExpressionStatement", - "src": "25606:18:62" - } - ] - }, - "name": "abi_encode_enum_PaymentTypes", - "nativeSrc": "25390:240:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "25428:5:62", - "nodeType": "YulTypedName", - "src": "25428:5:62", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "25435:3:62", - "nodeType": "YulTypedName", - "src": "25435:3:62", - "type": "" - } - ], - "src": "25390:240:62" - }, - { - "body": { - "nativeSrc": "25751:98:62", - "nodeType": "YulBlock", - "src": "25751:98:62", - "statements": [ - { - "nativeSrc": "25761:26:62", - "nodeType": "YulAssignment", - "src": "25761:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "25773:9:62", - "nodeType": "YulIdentifier", - "src": "25773:9:62" - }, - { - "kind": "number", - "nativeSrc": "25784:2:62", - "nodeType": "YulLiteral", - "src": "25784:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "25769:3:62", - "nodeType": "YulIdentifier", - "src": "25769:3:62" - }, - "nativeSrc": "25769:18:62", - "nodeType": "YulFunctionCall", - "src": "25769:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "25761:4:62", - "nodeType": "YulIdentifier", - "src": "25761:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "25825:6:62", - "nodeType": "YulIdentifier", - "src": "25825:6:62" - }, - { - "name": "headStart", - "nativeSrc": "25833:9:62", - "nodeType": "YulIdentifier", - "src": "25833:9:62" - } - ], - "functionName": { - "name": "abi_encode_enum_PaymentTypes", - "nativeSrc": "25796:28:62", - "nodeType": "YulIdentifier", - "src": "25796:28:62" - }, - "nativeSrc": "25796:47:62", - "nodeType": "YulFunctionCall", - "src": "25796:47:62" - }, - "nativeSrc": "25796:47:62", - "nodeType": "YulExpressionStatement", - "src": "25796:47:62" - } - ] - }, - "name": "abi_encode_tuple_t_enum$_PaymentTypes_$2166__to_t_uint8__fromStack_reversed", - "nativeSrc": "25635:214:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "25720:9:62", - "nodeType": "YulTypedName", - "src": "25720:9:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "25731:6:62", - "nodeType": "YulTypedName", - "src": "25731:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "25742:4:62", - "nodeType": "YulTypedName", - "src": "25742:4:62", - "type": "" - } - ], - "src": "25635:214:62" - }, - { - "body": { - "nativeSrc": "25941:259:62", - "nodeType": "YulBlock", - "src": "25941:259:62", - "statements": [ - { - "body": { - "nativeSrc": "25987:16:62", - "nodeType": "YulBlock", - "src": "25987:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "25996:1:62", - "nodeType": "YulLiteral", - "src": "25996:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "25999:1:62", - "nodeType": "YulLiteral", - "src": "25999:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "25989:6:62", - "nodeType": "YulIdentifier", - "src": "25989:6:62" - }, - "nativeSrc": "25989:12:62", - "nodeType": "YulFunctionCall", - "src": "25989:12:62" - }, - "nativeSrc": "25989:12:62", - "nodeType": "YulExpressionStatement", - "src": "25989:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "25962:7:62", - "nodeType": "YulIdentifier", - "src": "25962:7:62" - }, - { - "name": "headStart", - "nativeSrc": "25971:9:62", - "nodeType": "YulIdentifier", - "src": "25971:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "25958:3:62", - "nodeType": "YulIdentifier", - "src": "25958:3:62" - }, - "nativeSrc": "25958:23:62", - "nodeType": "YulFunctionCall", - "src": "25958:23:62" - }, - { - "kind": "number", - "nativeSrc": "25983:2:62", - "nodeType": "YulLiteral", - "src": "25983:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "25954:3:62", - "nodeType": "YulIdentifier", - "src": "25954:3:62" - }, - "nativeSrc": "25954:32:62", - "nodeType": "YulFunctionCall", - "src": "25954:32:62" - }, - "nativeSrc": "25951:52:62", - "nodeType": "YulIf", - "src": "25951:52:62" - }, - { - "nativeSrc": "26012:14:62", - "nodeType": "YulVariableDeclaration", - "src": "26012:14:62", - "value": { - "kind": "number", - "nativeSrc": "26025:1:62", - "nodeType": "YulLiteral", - "src": "26025:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "26016:5:62", - "nodeType": "YulTypedName", - "src": "26016:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "26035:32:62", - "nodeType": "YulAssignment", - "src": "26035:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "26057:9:62", - "nodeType": "YulIdentifier", - "src": "26057:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "26044:12:62", - "nodeType": "YulIdentifier", - "src": "26044:12:62" - }, - "nativeSrc": "26044:23:62", - "nodeType": "YulFunctionCall", - "src": "26044:23:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "26035:5:62", - "nodeType": "YulIdentifier", - "src": "26035:5:62" - } - ] - }, - { - "nativeSrc": "26076:15:62", - "nodeType": "YulAssignment", - "src": "26076:15:62", - "value": { - "name": "value", - "nativeSrc": "26086:5:62", - "nodeType": "YulIdentifier", - "src": "26086:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "26076:6:62", - "nodeType": "YulIdentifier", - "src": "26076:6:62" - } - ] - }, - { - "nativeSrc": "26100:16:62", - "nodeType": "YulVariableDeclaration", - "src": "26100:16:62", - "value": { - "kind": "number", - "nativeSrc": "26115:1:62", - "nodeType": "YulLiteral", - "src": "26115:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "26104:7:62", - "nodeType": "YulTypedName", - "src": "26104:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "26125:43:62", - "nodeType": "YulAssignment", - "src": "26125:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "26153:9:62", - "nodeType": "YulIdentifier", - "src": "26153:9:62" - }, - { - "kind": "number", - "nativeSrc": "26164:2:62", - "nodeType": "YulLiteral", - "src": "26164:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "26149:3:62", - "nodeType": "YulIdentifier", - "src": "26149:3:62" - }, - "nativeSrc": "26149:18:62", - "nodeType": "YulFunctionCall", - "src": "26149:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "26136:12:62", - "nodeType": "YulIdentifier", - "src": "26136:12:62" - }, - "nativeSrc": "26136:32:62", - "nodeType": "YulFunctionCall", - "src": "26136:32:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "26125:7:62", - "nodeType": "YulIdentifier", - "src": "26125:7:62" - } - ] - }, - { - "nativeSrc": "26177:17:62", - "nodeType": "YulAssignment", - "src": "26177:17:62", - "value": { - "name": "value_1", - "nativeSrc": "26187:7:62", - "nodeType": "YulIdentifier", - "src": "26187:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "26177:6:62", - "nodeType": "YulIdentifier", - "src": "26177:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256t_uint256", - "nativeSrc": "25854:346:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "25899:9:62", - "nodeType": "YulTypedName", - "src": "25899:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "25910:7:62", - "nodeType": "YulTypedName", - "src": "25910:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "25922:6:62", - "nodeType": "YulTypedName", - "src": "25922:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "25930:6:62", - "nodeType": "YulTypedName", - "src": "25930:6:62", - "type": "" - } - ], - "src": "25854:346:62" - }, - { - "body": { - "nativeSrc": "26390:258:62", - "nodeType": "YulBlock", - "src": "26390:258:62", - "statements": [ - { - "nativeSrc": "26400:27:62", - "nodeType": "YulAssignment", - "src": "26400:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "26412:9:62", - "nodeType": "YulIdentifier", - "src": "26412:9:62" - }, - { - "kind": "number", - "nativeSrc": "26423:3:62", - "nodeType": "YulLiteral", - "src": "26423:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "26408:3:62", - "nodeType": "YulIdentifier", - "src": "26408:3:62" - }, - "nativeSrc": "26408:19:62", - "nodeType": "YulFunctionCall", - "src": "26408:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "26400:4:62", - "nodeType": "YulIdentifier", - "src": "26400:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "26443:9:62", - "nodeType": "YulIdentifier", - "src": "26443:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "26458:6:62", - "nodeType": "YulIdentifier", - "src": "26458:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "26474:3:62", - "nodeType": "YulLiteral", - "src": "26474:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "26479:1:62", - "nodeType": "YulLiteral", - "src": "26479:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "26470:3:62", - "nodeType": "YulIdentifier", - "src": "26470:3:62" - }, - "nativeSrc": "26470:11:62", - "nodeType": "YulFunctionCall", - "src": "26470:11:62" - }, - { - "kind": "number", - "nativeSrc": "26483:1:62", - "nodeType": "YulLiteral", - "src": "26483:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "26466:3:62", - "nodeType": "YulIdentifier", - "src": "26466:3:62" - }, - "nativeSrc": "26466:19:62", - "nodeType": "YulFunctionCall", - "src": "26466:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "26454:3:62", - "nodeType": "YulIdentifier", - "src": "26454:3:62" - }, - "nativeSrc": "26454:32:62", - "nodeType": "YulFunctionCall", - "src": "26454:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "26436:6:62", - "nodeType": "YulIdentifier", - "src": "26436:6:62" - }, - "nativeSrc": "26436:51:62", - "nodeType": "YulFunctionCall", - "src": "26436:51:62" - }, - "nativeSrc": "26436:51:62", - "nodeType": "YulExpressionStatement", - "src": "26436:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "26507:9:62", - "nodeType": "YulIdentifier", - "src": "26507:9:62" - }, - { - "kind": "number", - "nativeSrc": "26518:2:62", - "nodeType": "YulLiteral", - "src": "26518:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "26503:3:62", - "nodeType": "YulIdentifier", - "src": "26503:3:62" - }, - "nativeSrc": "26503:18:62", - "nodeType": "YulFunctionCall", - "src": "26503:18:62" - }, - { - "name": "value1", - "nativeSrc": "26523:6:62", - "nodeType": "YulIdentifier", - "src": "26523:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "26496:6:62", - "nodeType": "YulIdentifier", - "src": "26496:6:62" - }, - "nativeSrc": "26496:34:62", - "nodeType": "YulFunctionCall", - "src": "26496:34:62" - }, - "nativeSrc": "26496:34:62", - "nodeType": "YulExpressionStatement", - "src": "26496:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "26550:9:62", - "nodeType": "YulIdentifier", - "src": "26550:9:62" - }, - { - "kind": "number", - "nativeSrc": "26561:2:62", - "nodeType": "YulLiteral", - "src": "26561:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "26546:3:62", - "nodeType": "YulIdentifier", - "src": "26546:3:62" - }, - "nativeSrc": "26546:18:62", - "nodeType": "YulFunctionCall", - "src": "26546:18:62" - }, - { - "name": "value2", - "nativeSrc": "26566:6:62", - "nodeType": "YulIdentifier", - "src": "26566:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "26539:6:62", - "nodeType": "YulIdentifier", - "src": "26539:6:62" - }, - "nativeSrc": "26539:34:62", - "nodeType": "YulFunctionCall", - "src": "26539:34:62" - }, - "nativeSrc": "26539:34:62", - "nodeType": "YulExpressionStatement", - "src": "26539:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "26593:9:62", - "nodeType": "YulIdentifier", - "src": "26593:9:62" - }, - { - "kind": "number", - "nativeSrc": "26604:2:62", - "nodeType": "YulLiteral", - "src": "26604:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "26589:3:62", - "nodeType": "YulIdentifier", - "src": "26589:3:62" - }, - "nativeSrc": "26589:18:62", - "nodeType": "YulFunctionCall", - "src": "26589:18:62" - }, - { - "arguments": [ - { - "name": "value3", - "nativeSrc": "26613:6:62", - "nodeType": "YulIdentifier", - "src": "26613:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "26629:3:62", - "nodeType": "YulLiteral", - "src": "26629:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "26634:1:62", - "nodeType": "YulLiteral", - "src": "26634:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "26625:3:62", - "nodeType": "YulIdentifier", - "src": "26625:3:62" - }, - "nativeSrc": "26625:11:62", - "nodeType": "YulFunctionCall", - "src": "26625:11:62" - }, - { - "kind": "number", - "nativeSrc": "26638:1:62", - "nodeType": "YulLiteral", - "src": "26638:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "26621:3:62", - "nodeType": "YulIdentifier", - "src": "26621:3:62" - }, - "nativeSrc": "26621:19:62", - "nodeType": "YulFunctionCall", - "src": "26621:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "26609:3:62", - "nodeType": "YulIdentifier", - "src": "26609:3:62" - }, - "nativeSrc": "26609:32:62", - "nodeType": "YulFunctionCall", - "src": "26609:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "26582:6:62", - "nodeType": "YulIdentifier", - "src": "26582:6:62" - }, - "nativeSrc": "26582:60:62", - "nodeType": "YulFunctionCall", - "src": "26582:60:62" - }, - "nativeSrc": "26582:60:62", - "nodeType": "YulExpressionStatement", - "src": "26582:60:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_address__to_t_address_t_uint256_t_uint256_t_address__fromStack_reversed", - "nativeSrc": "26205:443:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "26335:9:62", - "nodeType": "YulTypedName", - "src": "26335:9:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "26346:6:62", - "nodeType": "YulTypedName", - "src": "26346:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "26354:6:62", - "nodeType": "YulTypedName", - "src": "26354:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "26362:6:62", - "nodeType": "YulTypedName", - "src": "26362:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "26370:6:62", - "nodeType": "YulTypedName", - "src": "26370:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "26381:4:62", - "nodeType": "YulTypedName", - "src": "26381:4:62", - "type": "" - } - ], - "src": "26205:443:62" - }, - { - "body": { - "nativeSrc": "26791:567:62", - "nodeType": "YulBlock", - "src": "26791:567:62", - "statements": [ - { - "body": { - "nativeSrc": "26838:16:62", - "nodeType": "YulBlock", - "src": "26838:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "26847:1:62", - "nodeType": "YulLiteral", - "src": "26847:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "26850:1:62", - "nodeType": "YulLiteral", - "src": "26850:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "26840:6:62", - "nodeType": "YulIdentifier", - "src": "26840:6:62" - }, - "nativeSrc": "26840:12:62", - "nodeType": "YulFunctionCall", - "src": "26840:12:62" - }, - "nativeSrc": "26840:12:62", - "nodeType": "YulExpressionStatement", - "src": "26840:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "26812:7:62", - "nodeType": "YulIdentifier", - "src": "26812:7:62" - }, - { - "name": "headStart", - "nativeSrc": "26821:9:62", - "nodeType": "YulIdentifier", - "src": "26821:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "26808:3:62", - "nodeType": "YulIdentifier", - "src": "26808:3:62" - }, - "nativeSrc": "26808:23:62", - "nodeType": "YulFunctionCall", - "src": "26808:23:62" - }, - { - "kind": "number", - "nativeSrc": "26833:3:62", - "nodeType": "YulLiteral", - "src": "26833:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "26804:3:62", - "nodeType": "YulIdentifier", - "src": "26804:3:62" - }, - "nativeSrc": "26804:33:62", - "nodeType": "YulFunctionCall", - "src": "26804:33:62" - }, - "nativeSrc": "26801:53:62", - "nodeType": "YulIf", - "src": "26801:53:62" - }, - { - "nativeSrc": "26863:14:62", - "nodeType": "YulVariableDeclaration", - "src": "26863:14:62", - "value": { - "kind": "number", - "nativeSrc": "26876:1:62", - "nodeType": "YulLiteral", - "src": "26876:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "26867:5:62", - "nodeType": "YulTypedName", - "src": "26867:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "26886:32:62", - "nodeType": "YulAssignment", - "src": "26886:32:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "26908:9:62", - "nodeType": "YulIdentifier", - "src": "26908:9:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "26895:12:62", - "nodeType": "YulIdentifier", - "src": "26895:12:62" - }, - "nativeSrc": "26895:23:62", - "nodeType": "YulFunctionCall", - "src": "26895:23:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "26886:5:62", - "nodeType": "YulIdentifier", - "src": "26886:5:62" - } - ] - }, - { - "nativeSrc": "26927:15:62", - "nodeType": "YulAssignment", - "src": "26927:15:62", - "value": { - "name": "value", - "nativeSrc": "26937:5:62", - "nodeType": "YulIdentifier", - "src": "26937:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "26927:6:62", - "nodeType": "YulIdentifier", - "src": "26927:6:62" - } - ] - }, - { - "nativeSrc": "26951:16:62", - "nodeType": "YulVariableDeclaration", - "src": "26951:16:62", - "value": { - "kind": "number", - "nativeSrc": "26966:1:62", - "nodeType": "YulLiteral", - "src": "26966:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "26955:7:62", - "nodeType": "YulTypedName", - "src": "26955:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "26976:43:62", - "nodeType": "YulAssignment", - "src": "26976:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "27004:9:62", - "nodeType": "YulIdentifier", - "src": "27004:9:62" - }, - { - "kind": "number", - "nativeSrc": "27015:2:62", - "nodeType": "YulLiteral", - "src": "27015:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "27000:3:62", - "nodeType": "YulIdentifier", - "src": "27000:3:62" - }, - "nativeSrc": "27000:18:62", - "nodeType": "YulFunctionCall", - "src": "27000:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "26987:12:62", - "nodeType": "YulIdentifier", - "src": "26987:12:62" - }, - "nativeSrc": "26987:32:62", - "nodeType": "YulFunctionCall", - "src": "26987:32:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "26976:7:62", - "nodeType": "YulIdentifier", - "src": "26976:7:62" - } - ] - }, - { - "nativeSrc": "27028:17:62", - "nodeType": "YulAssignment", - "src": "27028:17:62", - "value": { - "name": "value_1", - "nativeSrc": "27038:7:62", - "nodeType": "YulIdentifier", - "src": "27038:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "27028:6:62", - "nodeType": "YulIdentifier", - "src": "27028:6:62" - } - ] - }, - { - "nativeSrc": "27054:47:62", - "nodeType": "YulVariableDeclaration", - "src": "27054:47:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "27086:9:62", - "nodeType": "YulIdentifier", - "src": "27086:9:62" - }, - { - "kind": "number", - "nativeSrc": "27097:2:62", - "nodeType": "YulLiteral", - "src": "27097:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "27082:3:62", - "nodeType": "YulIdentifier", - "src": "27082:3:62" - }, - "nativeSrc": "27082:18:62", - "nodeType": "YulFunctionCall", - "src": "27082:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "27069:12:62", - "nodeType": "YulIdentifier", - "src": "27069:12:62" - }, - "nativeSrc": "27069:32:62", - "nodeType": "YulFunctionCall", - "src": "27069:32:62" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "27058:7:62", - "nodeType": "YulTypedName", - "src": "27058:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_2", - "nativeSrc": "27135:7:62", - "nodeType": "YulIdentifier", - "src": "27135:7:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "27110:24:62", - "nodeType": "YulIdentifier", - "src": "27110:24:62" - }, - "nativeSrc": "27110:33:62", - "nodeType": "YulFunctionCall", - "src": "27110:33:62" - }, - "nativeSrc": "27110:33:62", - "nodeType": "YulExpressionStatement", - "src": "27110:33:62" - }, - { - "nativeSrc": "27152:17:62", - "nodeType": "YulAssignment", - "src": "27152:17:62", - "value": { - "name": "value_2", - "nativeSrc": "27162:7:62", - "nodeType": "YulIdentifier", - "src": "27162:7:62" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "27152:6:62", - "nodeType": "YulIdentifier", - "src": "27152:6:62" - } - ] - }, - { - "nativeSrc": "27178:46:62", - "nodeType": "YulVariableDeclaration", - "src": "27178:46:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "27209:9:62", - "nodeType": "YulIdentifier", - "src": "27209:9:62" - }, - { - "kind": "number", - "nativeSrc": "27220:2:62", - "nodeType": "YulLiteral", - "src": "27220:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "27205:3:62", - "nodeType": "YulIdentifier", - "src": "27205:3:62" - }, - "nativeSrc": "27205:18:62", - "nodeType": "YulFunctionCall", - "src": "27205:18:62" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "27192:12:62", - "nodeType": "YulIdentifier", - "src": "27192:12:62" - }, - "nativeSrc": "27192:32:62", - "nodeType": "YulFunctionCall", - "src": "27192:32:62" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "27182:6:62", - "nodeType": "YulTypedName", - "src": "27182:6:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "27267:16:62", - "nodeType": "YulBlock", - "src": "27267:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "27276:1:62", - "nodeType": "YulLiteral", - "src": "27276:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "27279:1:62", - "nodeType": "YulLiteral", - "src": "27279:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "27269:6:62", - "nodeType": "YulIdentifier", - "src": "27269:6:62" - }, - "nativeSrc": "27269:12:62", - "nodeType": "YulFunctionCall", - "src": "27269:12:62" - }, - "nativeSrc": "27269:12:62", - "nodeType": "YulExpressionStatement", - "src": "27269:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "27239:6:62", - "nodeType": "YulIdentifier", - "src": "27239:6:62" - }, - { - "kind": "number", - "nativeSrc": "27247:18:62", - "nodeType": "YulLiteral", - "src": "27247:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "27236:2:62", - "nodeType": "YulIdentifier", - "src": "27236:2:62" - }, - "nativeSrc": "27236:30:62", - "nodeType": "YulFunctionCall", - "src": "27236:30:62" - }, - "nativeSrc": "27233:50:62", - "nodeType": "YulIf", - "src": "27233:50:62" - }, - { - "nativeSrc": "27292:60:62", - "nodeType": "YulAssignment", - "src": "27292:60:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "27324:9:62", - "nodeType": "YulIdentifier", - "src": "27324:9:62" - }, - { - "name": "offset", - "nativeSrc": "27335:6:62", - "nodeType": "YulIdentifier", - "src": "27335:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "27320:3:62", - "nodeType": "YulIdentifier", - "src": "27320:3:62" - }, - "nativeSrc": "27320:22:62", - "nodeType": "YulFunctionCall", - "src": "27320:22:62" - }, - { - "name": "dataEnd", - "nativeSrc": "27344:7:62", - "nodeType": "YulIdentifier", - "src": "27344:7:62" - } - ], - "functionName": { - "name": "abi_decode_string", - "nativeSrc": "27302:17:62", - "nodeType": "YulIdentifier", - "src": "27302:17:62" - }, - "nativeSrc": "27302:50:62", - "nodeType": "YulFunctionCall", - "src": "27302:50:62" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "27292:6:62", - "nodeType": "YulIdentifier", - "src": "27292:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_uint256t_address_payablet_bytes_memory_ptr", - "nativeSrc": "26653:705:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "26733:9:62", - "nodeType": "YulTypedName", - "src": "26733:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "26744:7:62", - "nodeType": "YulTypedName", - "src": "26744:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "26756:6:62", - "nodeType": "YulTypedName", - "src": "26756:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "26764:6:62", - "nodeType": "YulTypedName", - "src": "26764:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "26772:6:62", - "nodeType": "YulTypedName", - "src": "26772:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "26780:6:62", - "nodeType": "YulTypedName", - "src": "26780:6:62", - "type": "" - } - ], - "src": "26653:705:62" - }, - { - "body": { - "nativeSrc": "27422:77:62", - "nodeType": "YulBlock", - "src": "27422:77:62", - "statements": [ - { - "nativeSrc": "27432:22:62", - "nodeType": "YulAssignment", - "src": "27432:22:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "27447:6:62", - "nodeType": "YulIdentifier", - "src": "27447:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "27441:5:62", - "nodeType": "YulIdentifier", - "src": "27441:5:62" - }, - "nativeSrc": "27441:13:62", - "nodeType": "YulFunctionCall", - "src": "27441:13:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "27432:5:62", - "nodeType": "YulIdentifier", - "src": "27432:5:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "27487:5:62", - "nodeType": "YulIdentifier", - "src": "27487:5:62" - } - ], - "functionName": { - "name": "validator_revert_uint32", - "nativeSrc": "27463:23:62", - "nodeType": "YulIdentifier", - "src": "27463:23:62" - }, - "nativeSrc": "27463:30:62", - "nodeType": "YulFunctionCall", - "src": "27463:30:62" - }, - "nativeSrc": "27463:30:62", - "nodeType": "YulExpressionStatement", - "src": "27463:30:62" - } - ] - }, - "name": "abi_decode_uint32_fromMemory", - "nativeSrc": "27363:136:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "27401:6:62", - "nodeType": "YulTypedName", - "src": "27401:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "27412:5:62", - "nodeType": "YulTypedName", - "src": "27412:5:62", - "type": "" - } - ], - "src": "27363:136:62" - }, - { - "body": { - "nativeSrc": "27563:77:62", - "nodeType": "YulBlock", - "src": "27563:77:62", - "statements": [ - { - "nativeSrc": "27573:22:62", - "nodeType": "YulAssignment", - "src": "27573:22:62", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "27588:6:62", - "nodeType": "YulIdentifier", - "src": "27588:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "27582:5:62", - "nodeType": "YulIdentifier", - "src": "27582:5:62" - }, - "nativeSrc": "27582:13:62", - "nodeType": "YulFunctionCall", - "src": "27582:13:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "27573:5:62", - "nodeType": "YulIdentifier", - "src": "27573:5:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "27628:5:62", - "nodeType": "YulIdentifier", - "src": "27628:5:62" - } - ], - "functionName": { - "name": "validator_revert_uint64", - "nativeSrc": "27604:23:62", - "nodeType": "YulIdentifier", - "src": "27604:23:62" - }, - "nativeSrc": "27604:30:62", - "nodeType": "YulFunctionCall", - "src": "27604:30:62" - }, - "nativeSrc": "27604:30:62", - "nodeType": "YulExpressionStatement", - "src": "27604:30:62" - } - ] - }, - "name": "abi_decode_uint64_fromMemory", - "nativeSrc": "27504:136:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "27542:6:62", - "nodeType": "YulTypedName", - "src": "27542:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "27553:5:62", - "nodeType": "YulTypedName", - "src": "27553:5:62", - "type": "" - } - ], - "src": "27504:136:62" - }, - { - "body": { - "nativeSrc": "27753:1015:62", - "nodeType": "YulBlock", - "src": "27753:1015:62", - "statements": [ - { - "nativeSrc": "27763:43:62", - "nodeType": "YulVariableDeclaration", - "src": "27763:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "27781:7:62", - "nodeType": "YulIdentifier", - "src": "27781:7:62" - }, - { - "name": "headStart", - "nativeSrc": "27790:9:62", - "nodeType": "YulIdentifier", - "src": "27790:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "27777:3:62", - "nodeType": "YulIdentifier", - "src": "27777:3:62" - }, - "nativeSrc": "27777:23:62", - "nodeType": "YulFunctionCall", - "src": "27777:23:62" - }, - { - "kind": "number", - "nativeSrc": "27802:3:62", - "nodeType": "YulLiteral", - "src": "27802:3:62", - "type": "", - "value": "288" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "27773:3:62", - "nodeType": "YulIdentifier", - "src": "27773:3:62" - }, - "nativeSrc": "27773:33:62", - "nodeType": "YulFunctionCall", - "src": "27773:33:62" - }, - "variables": [ - { - "name": "_1", - "nativeSrc": "27767:2:62", - "nodeType": "YulTypedName", - "src": "27767:2:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "27821:16:62", - "nodeType": "YulBlock", - "src": "27821:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "27830:1:62", - "nodeType": "YulLiteral", - "src": "27830:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "27833:1:62", - "nodeType": "YulLiteral", - "src": "27833:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "27823:6:62", - "nodeType": "YulIdentifier", - "src": "27823:6:62" - }, - "nativeSrc": "27823:12:62", - "nodeType": "YulFunctionCall", - "src": "27823:12:62" - }, - "nativeSrc": "27823:12:62", - "nodeType": "YulExpressionStatement", - "src": "27823:12:62" - } - ] - }, - "condition": { - "name": "_1", - "nativeSrc": "27818:2:62", - "nodeType": "YulIdentifier", - "src": "27818:2:62" - }, - "nativeSrc": "27815:22:62", - "nodeType": "YulIf", - "src": "27815:22:62" - }, - { - "nativeSrc": "27846:7:62", - "nodeType": "YulAssignment", - "src": "27846:7:62", - "value": { - "kind": "number", - "nativeSrc": "27852:1:62", - "nodeType": "YulLiteral", - "src": "27852:1:62", - "type": "", - "value": "0" - }, - "variableNames": [ - { - "name": "_1", - "nativeSrc": "27846:2:62", - "nodeType": "YulIdentifier", - "src": "27846:2:62" - } - ] - }, - { - "nativeSrc": "27862:35:62", - "nodeType": "YulVariableDeclaration", - "src": "27862:35:62", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_memory_4284", - "nativeSrc": "27875:20:62", - "nodeType": "YulIdentifier", - "src": "27875:20:62" - }, - "nativeSrc": "27875:22:62", - "nodeType": "YulFunctionCall", - "src": "27875:22:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "27866:5:62", - "nodeType": "YulTypedName", - "src": "27866:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "27906:17:62", - "nodeType": "YulVariableDeclaration", - "src": "27906:17:62", - "value": { - "name": "_1", - "nativeSrc": "27921:2:62", - "nodeType": "YulIdentifier", - "src": "27921:2:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "27910:7:62", - "nodeType": "YulTypedName", - "src": "27910:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "27932:27:62", - "nodeType": "YulAssignment", - "src": "27932:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "27949:9:62", - "nodeType": "YulIdentifier", - "src": "27949:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "27943:5:62", - "nodeType": "YulIdentifier", - "src": "27943:5:62" - }, - "nativeSrc": "27943:16:62", - "nodeType": "YulFunctionCall", - "src": "27943:16:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "27932:7:62", - "nodeType": "YulIdentifier", - "src": "27932:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "27975:5:62", - "nodeType": "YulIdentifier", - "src": "27975:5:62" - }, - { - "name": "value_1", - "nativeSrc": "27982:7:62", - "nodeType": "YulIdentifier", - "src": "27982:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "27968:6:62", - "nodeType": "YulIdentifier", - "src": "27968:6:62" - }, - "nativeSrc": "27968:22:62", - "nodeType": "YulFunctionCall", - "src": "27968:22:62" - }, - "nativeSrc": "27968:22:62", - "nodeType": "YulExpressionStatement", - "src": "27968:22:62" - }, - { - "nativeSrc": "27999:17:62", - "nodeType": "YulVariableDeclaration", - "src": "27999:17:62", - "value": { - "name": "_1", - "nativeSrc": "28014:2:62", - "nodeType": "YulIdentifier", - "src": "28014:2:62" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "28003:7:62", - "nodeType": "YulTypedName", - "src": "28003:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "28025:36:62", - "nodeType": "YulAssignment", - "src": "28025:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "28046:9:62", - "nodeType": "YulIdentifier", - "src": "28046:9:62" - }, - { - "kind": "number", - "nativeSrc": "28057:2:62", - "nodeType": "YulLiteral", - "src": "28057:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28042:3:62", - "nodeType": "YulIdentifier", - "src": "28042:3:62" - }, - "nativeSrc": "28042:18:62", - "nodeType": "YulFunctionCall", - "src": "28042:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "28036:5:62", - "nodeType": "YulIdentifier", - "src": "28036:5:62" - }, - "nativeSrc": "28036:25:62", - "nodeType": "YulFunctionCall", - "src": "28036:25:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "28025:7:62", - "nodeType": "YulIdentifier", - "src": "28025:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "28081:5:62", - "nodeType": "YulIdentifier", - "src": "28081:5:62" - }, - { - "kind": "number", - "nativeSrc": "28088:2:62", - "nodeType": "YulLiteral", - "src": "28088:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28077:3:62", - "nodeType": "YulIdentifier", - "src": "28077:3:62" - }, - "nativeSrc": "28077:14:62", - "nodeType": "YulFunctionCall", - "src": "28077:14:62" - }, - { - "name": "value_2", - "nativeSrc": "28093:7:62", - "nodeType": "YulIdentifier", - "src": "28093:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "28070:6:62", - "nodeType": "YulIdentifier", - "src": "28070:6:62" - }, - "nativeSrc": "28070:31:62", - "nodeType": "YulFunctionCall", - "src": "28070:31:62" - }, - "nativeSrc": "28070:31:62", - "nodeType": "YulExpressionStatement", - "src": "28070:31:62" - }, - { - "nativeSrc": "28110:17:62", - "nodeType": "YulVariableDeclaration", - "src": "28110:17:62", - "value": { - "name": "_1", - "nativeSrc": "28125:2:62", - "nodeType": "YulIdentifier", - "src": "28125:2:62" - }, - "variables": [ - { - "name": "value_3", - "nativeSrc": "28114:7:62", - "nodeType": "YulTypedName", - "src": "28114:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "28136:36:62", - "nodeType": "YulAssignment", - "src": "28136:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "28157:9:62", - "nodeType": "YulIdentifier", - "src": "28157:9:62" - }, - { - "kind": "number", - "nativeSrc": "28168:2:62", - "nodeType": "YulLiteral", - "src": "28168:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28153:3:62", - "nodeType": "YulIdentifier", - "src": "28153:3:62" - }, - "nativeSrc": "28153:18:62", - "nodeType": "YulFunctionCall", - "src": "28153:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "28147:5:62", - "nodeType": "YulIdentifier", - "src": "28147:5:62" - }, - "nativeSrc": "28147:25:62", - "nodeType": "YulFunctionCall", - "src": "28147:25:62" - }, - "variableNames": [ - { - "name": "value_3", - "nativeSrc": "28136:7:62", - "nodeType": "YulIdentifier", - "src": "28136:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "28192:5:62", - "nodeType": "YulIdentifier", - "src": "28192:5:62" - }, - { - "kind": "number", - "nativeSrc": "28199:2:62", - "nodeType": "YulLiteral", - "src": "28199:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28188:3:62", - "nodeType": "YulIdentifier", - "src": "28188:3:62" - }, - "nativeSrc": "28188:14:62", - "nodeType": "YulFunctionCall", - "src": "28188:14:62" - }, - { - "name": "value_3", - "nativeSrc": "28204:7:62", - "nodeType": "YulIdentifier", - "src": "28204:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "28181:6:62", - "nodeType": "YulIdentifier", - "src": "28181:6:62" - }, - "nativeSrc": "28181:31:62", - "nodeType": "YulFunctionCall", - "src": "28181:31:62" - }, - "nativeSrc": "28181:31:62", - "nodeType": "YulExpressionStatement", - "src": "28181:31:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "28232:5:62", - "nodeType": "YulIdentifier", - "src": "28232:5:62" - }, - { - "kind": "number", - "nativeSrc": "28239:2:62", - "nodeType": "YulLiteral", - "src": "28239:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28228:3:62", - "nodeType": "YulIdentifier", - "src": "28228:3:62" - }, - "nativeSrc": "28228:14:62", - "nodeType": "YulFunctionCall", - "src": "28228:14:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "28277:9:62", - "nodeType": "YulIdentifier", - "src": "28277:9:62" - }, - { - "kind": "number", - "nativeSrc": "28288:2:62", - "nodeType": "YulLiteral", - "src": "28288:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28273:3:62", - "nodeType": "YulIdentifier", - "src": "28273:3:62" - }, - "nativeSrc": "28273:18:62", - "nodeType": "YulFunctionCall", - "src": "28273:18:62" - } - ], - "functionName": { - "name": "abi_decode_uint32_fromMemory", - "nativeSrc": "28244:28:62", - "nodeType": "YulIdentifier", - "src": "28244:28:62" - }, - "nativeSrc": "28244:48:62", - "nodeType": "YulFunctionCall", - "src": "28244:48:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "28221:6:62", - "nodeType": "YulIdentifier", - "src": "28221:6:62" - }, - "nativeSrc": "28221:72:62", - "nodeType": "YulFunctionCall", - "src": "28221:72:62" - }, - "nativeSrc": "28221:72:62", - "nodeType": "YulExpressionStatement", - "src": "28221:72:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "28313:5:62", - "nodeType": "YulIdentifier", - "src": "28313:5:62" - }, - { - "kind": "number", - "nativeSrc": "28320:3:62", - "nodeType": "YulLiteral", - "src": "28320:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28309:3:62", - "nodeType": "YulIdentifier", - "src": "28309:3:62" - }, - "nativeSrc": "28309:15:62", - "nodeType": "YulFunctionCall", - "src": "28309:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "28359:9:62", - "nodeType": "YulIdentifier", - "src": "28359:9:62" - }, - { - "kind": "number", - "nativeSrc": "28370:3:62", - "nodeType": "YulLiteral", - "src": "28370:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28355:3:62", - "nodeType": "YulIdentifier", - "src": "28355:3:62" - }, - "nativeSrc": "28355:19:62", - "nodeType": "YulFunctionCall", - "src": "28355:19:62" - } - ], - "functionName": { - "name": "abi_decode_uint64_fromMemory", - "nativeSrc": "28326:28:62", - "nodeType": "YulIdentifier", - "src": "28326:28:62" - }, - "nativeSrc": "28326:49:62", - "nodeType": "YulFunctionCall", - "src": "28326:49:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "28302:6:62", - "nodeType": "YulIdentifier", - "src": "28302:6:62" - }, - "nativeSrc": "28302:74:62", - "nodeType": "YulFunctionCall", - "src": "28302:74:62" - }, - "nativeSrc": "28302:74:62", - "nodeType": "YulExpressionStatement", - "src": "28302:74:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "28396:5:62", - "nodeType": "YulIdentifier", - "src": "28396:5:62" - }, - { - "kind": "number", - "nativeSrc": "28403:3:62", - "nodeType": "YulLiteral", - "src": "28403:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28392:3:62", - "nodeType": "YulIdentifier", - "src": "28392:3:62" - }, - "nativeSrc": "28392:15:62", - "nodeType": "YulFunctionCall", - "src": "28392:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "28442:9:62", - "nodeType": "YulIdentifier", - "src": "28442:9:62" - }, - { - "kind": "number", - "nativeSrc": "28453:3:62", - "nodeType": "YulLiteral", - "src": "28453:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28438:3:62", - "nodeType": "YulIdentifier", - "src": "28438:3:62" - }, - "nativeSrc": "28438:19:62", - "nodeType": "YulFunctionCall", - "src": "28438:19:62" - } - ], - "functionName": { - "name": "abi_decode_uint64_fromMemory", - "nativeSrc": "28409:28:62", - "nodeType": "YulIdentifier", - "src": "28409:28:62" - }, - "nativeSrc": "28409:49:62", - "nodeType": "YulFunctionCall", - "src": "28409:49:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "28385:6:62", - "nodeType": "YulIdentifier", - "src": "28385:6:62" - }, - "nativeSrc": "28385:74:62", - "nodeType": "YulFunctionCall", - "src": "28385:74:62" - }, - "nativeSrc": "28385:74:62", - "nodeType": "YulExpressionStatement", - "src": "28385:74:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "28479:5:62", - "nodeType": "YulIdentifier", - "src": "28479:5:62" - }, - { - "kind": "number", - "nativeSrc": "28486:3:62", - "nodeType": "YulLiteral", - "src": "28486:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28475:3:62", - "nodeType": "YulIdentifier", - "src": "28475:3:62" - }, - "nativeSrc": "28475:15:62", - "nodeType": "YulFunctionCall", - "src": "28475:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "28525:9:62", - "nodeType": "YulIdentifier", - "src": "28525:9:62" - }, - { - "kind": "number", - "nativeSrc": "28536:3:62", - "nodeType": "YulLiteral", - "src": "28536:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28521:3:62", - "nodeType": "YulIdentifier", - "src": "28521:3:62" - }, - "nativeSrc": "28521:19:62", - "nodeType": "YulFunctionCall", - "src": "28521:19:62" - } - ], - "functionName": { - "name": "abi_decode_uint32_fromMemory", - "nativeSrc": "28492:28:62", - "nodeType": "YulIdentifier", - "src": "28492:28:62" - }, - "nativeSrc": "28492:49:62", - "nodeType": "YulFunctionCall", - "src": "28492:49:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "28468:6:62", - "nodeType": "YulIdentifier", - "src": "28468:6:62" - }, - "nativeSrc": "28468:74:62", - "nodeType": "YulFunctionCall", - "src": "28468:74:62" - }, - "nativeSrc": "28468:74:62", - "nodeType": "YulExpressionStatement", - "src": "28468:74:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "28562:5:62", - "nodeType": "YulIdentifier", - "src": "28562:5:62" - }, - { - "kind": "number", - "nativeSrc": "28569:3:62", - "nodeType": "YulLiteral", - "src": "28569:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28558:3:62", - "nodeType": "YulIdentifier", - "src": "28558:3:62" - }, - "nativeSrc": "28558:15:62", - "nodeType": "YulFunctionCall", - "src": "28558:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "28608:9:62", - "nodeType": "YulIdentifier", - "src": "28608:9:62" - }, - { - "kind": "number", - "nativeSrc": "28619:3:62", - "nodeType": "YulLiteral", - "src": "28619:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28604:3:62", - "nodeType": "YulIdentifier", - "src": "28604:3:62" - }, - "nativeSrc": "28604:19:62", - "nodeType": "YulFunctionCall", - "src": "28604:19:62" - } - ], - "functionName": { - "name": "abi_decode_uint64_fromMemory", - "nativeSrc": "28575:28:62", - "nodeType": "YulIdentifier", - "src": "28575:28:62" - }, - "nativeSrc": "28575:49:62", - "nodeType": "YulFunctionCall", - "src": "28575:49:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "28551:6:62", - "nodeType": "YulIdentifier", - "src": "28551:6:62" - }, - "nativeSrc": "28551:74:62", - "nodeType": "YulFunctionCall", - "src": "28551:74:62" - }, - "nativeSrc": "28551:74:62", - "nodeType": "YulExpressionStatement", - "src": "28551:74:62" - }, - { - "nativeSrc": "28634:17:62", - "nodeType": "YulVariableDeclaration", - "src": "28634:17:62", - "value": { - "name": "_1", - "nativeSrc": "28649:2:62", - "nodeType": "YulIdentifier", - "src": "28649:2:62" - }, - "variables": [ - { - "name": "value_4", - "nativeSrc": "28638:7:62", - "nodeType": "YulTypedName", - "src": "28638:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "28660:37:62", - "nodeType": "YulAssignment", - "src": "28660:37:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "28681:9:62", - "nodeType": "YulIdentifier", - "src": "28681:9:62" - }, - { - "kind": "number", - "nativeSrc": "28692:3:62", - "nodeType": "YulLiteral", - "src": "28692:3:62", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28677:3:62", - "nodeType": "YulIdentifier", - "src": "28677:3:62" - }, - "nativeSrc": "28677:19:62", - "nodeType": "YulFunctionCall", - "src": "28677:19:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "28671:5:62", - "nodeType": "YulIdentifier", - "src": "28671:5:62" - }, - "nativeSrc": "28671:26:62", - "nodeType": "YulFunctionCall", - "src": "28671:26:62" - }, - "variableNames": [ - { - "name": "value_4", - "nativeSrc": "28660:7:62", - "nodeType": "YulIdentifier", - "src": "28660:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "28717:5:62", - "nodeType": "YulIdentifier", - "src": "28717:5:62" - }, - { - "kind": "number", - "nativeSrc": "28724:3:62", - "nodeType": "YulLiteral", - "src": "28724:3:62", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28713:3:62", - "nodeType": "YulIdentifier", - "src": "28713:3:62" - }, - "nativeSrc": "28713:15:62", - "nodeType": "YulFunctionCall", - "src": "28713:15:62" - }, - { - "name": "value_4", - "nativeSrc": "28730:7:62", - "nodeType": "YulIdentifier", - "src": "28730:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "28706:6:62", - "nodeType": "YulIdentifier", - "src": "28706:6:62" - }, - "nativeSrc": "28706:32:62", - "nodeType": "YulFunctionCall", - "src": "28706:32:62" - }, - "nativeSrc": "28706:32:62", - "nodeType": "YulExpressionStatement", - "src": "28706:32:62" - }, - { - "nativeSrc": "28747:15:62", - "nodeType": "YulAssignment", - "src": "28747:15:62", - "value": { - "name": "value", - "nativeSrc": "28757:5:62", - "nodeType": "YulIdentifier", - "src": "28757:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "28747:6:62", - "nodeType": "YulIdentifier", - "src": "28747:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_struct$_Provision_$3718_memory_ptr_fromMemory", - "nativeSrc": "27645:1123:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "27719:9:62", - "nodeType": "YulTypedName", - "src": "27719:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "27730:7:62", - "nodeType": "YulTypedName", - "src": "27730:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "27742:6:62", - "nodeType": "YulTypedName", - "src": "27742:6:62", - "type": "" - } - ], - "src": "27645:1123:62" - }, - { - "body": { - "nativeSrc": "28908:156:62", - "nodeType": "YulBlock", - "src": "28908:156:62", - "statements": [ - { - "nativeSrc": "28918:26:62", - "nodeType": "YulAssignment", - "src": "28918:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "28930:9:62", - "nodeType": "YulIdentifier", - "src": "28930:9:62" - }, - { - "kind": "number", - "nativeSrc": "28941:2:62", - "nodeType": "YulLiteral", - "src": "28941:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28926:3:62", - "nodeType": "YulIdentifier", - "src": "28926:3:62" - }, - "nativeSrc": "28926:18:62", - "nodeType": "YulFunctionCall", - "src": "28926:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "28918:4:62", - "nodeType": "YulIdentifier", - "src": "28918:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "28960:9:62", - "nodeType": "YulIdentifier", - "src": "28960:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "28975:6:62", - "nodeType": "YulIdentifier", - "src": "28975:6:62" - }, - { - "kind": "number", - "nativeSrc": "28983:4:62", - "nodeType": "YulLiteral", - "src": "28983:4:62", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "28971:3:62", - "nodeType": "YulIdentifier", - "src": "28971:3:62" - }, - "nativeSrc": "28971:17:62", - "nodeType": "YulFunctionCall", - "src": "28971:17:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "28953:6:62", - "nodeType": "YulIdentifier", - "src": "28953:6:62" - }, - "nativeSrc": "28953:36:62", - "nodeType": "YulFunctionCall", - "src": "28953:36:62" - }, - "nativeSrc": "28953:36:62", - "nodeType": "YulExpressionStatement", - "src": "28953:36:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "29009:9:62", - "nodeType": "YulIdentifier", - "src": "29009:9:62" - }, - { - "kind": "number", - "nativeSrc": "29020:2:62", - "nodeType": "YulLiteral", - "src": "29020:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "29005:3:62", - "nodeType": "YulIdentifier", - "src": "29005:3:62" - }, - "nativeSrc": "29005:18:62", - "nodeType": "YulFunctionCall", - "src": "29005:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "29029:6:62", - "nodeType": "YulIdentifier", - "src": "29029:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "29045:3:62", - "nodeType": "YulLiteral", - "src": "29045:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "29050:1:62", - "nodeType": "YulLiteral", - "src": "29050:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "29041:3:62", - "nodeType": "YulIdentifier", - "src": "29041:3:62" - }, - "nativeSrc": "29041:11:62", - "nodeType": "YulFunctionCall", - "src": "29041:11:62" - }, - { - "kind": "number", - "nativeSrc": "29054:1:62", - "nodeType": "YulLiteral", - "src": "29054:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "29037:3:62", - "nodeType": "YulIdentifier", - "src": "29037:3:62" - }, - "nativeSrc": "29037:19:62", - "nodeType": "YulFunctionCall", - "src": "29037:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "29025:3:62", - "nodeType": "YulIdentifier", - "src": "29025:3:62" - }, - "nativeSrc": "29025:32:62", - "nodeType": "YulFunctionCall", - "src": "29025:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "28998:6:62", - "nodeType": "YulIdentifier", - "src": "28998:6:62" - }, - "nativeSrc": "28998:60:62", - "nodeType": "YulFunctionCall", - "src": "28998:60:62" - }, - "nativeSrc": "28998:60:62", - "nodeType": "YulExpressionStatement", - "src": "28998:60:62" - } - ] - }, - "name": "abi_encode_tuple_t_rational_0_by_1_t_address__to_t_uint8_t_address__fromStack_reversed", - "nativeSrc": "28773:291:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "28869:9:62", - "nodeType": "YulTypedName", - "src": "28869:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "28880:6:62", - "nodeType": "YulTypedName", - "src": "28880:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "28888:6:62", - "nodeType": "YulTypedName", - "src": "28888:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "28899:4:62", - "nodeType": "YulTypedName", - "src": "28899:4:62", - "type": "" - } - ], - "src": "28773:291:62" - }, - { - "body": { - "nativeSrc": "29150:149:62", - "nodeType": "YulBlock", - "src": "29150:149:62", - "statements": [ - { - "body": { - "nativeSrc": "29196:16:62", - "nodeType": "YulBlock", - "src": "29196:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "29205:1:62", - "nodeType": "YulLiteral", - "src": "29205:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "29208:1:62", - "nodeType": "YulLiteral", - "src": "29208:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "29198:6:62", - "nodeType": "YulIdentifier", - "src": "29198:6:62" - }, - "nativeSrc": "29198:12:62", - "nodeType": "YulFunctionCall", - "src": "29198:12:62" - }, - "nativeSrc": "29198:12:62", - "nodeType": "YulExpressionStatement", - "src": "29198:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "29171:7:62", - "nodeType": "YulIdentifier", - "src": "29171:7:62" - }, - { - "name": "headStart", - "nativeSrc": "29180:9:62", - "nodeType": "YulIdentifier", - "src": "29180:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "29167:3:62", - "nodeType": "YulIdentifier", - "src": "29167:3:62" - }, - "nativeSrc": "29167:23:62", - "nodeType": "YulFunctionCall", - "src": "29167:23:62" - }, - { - "kind": "number", - "nativeSrc": "29192:2:62", - "nodeType": "YulLiteral", - "src": "29192:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "29163:3:62", - "nodeType": "YulIdentifier", - "src": "29163:3:62" - }, - "nativeSrc": "29163:32:62", - "nodeType": "YulFunctionCall", - "src": "29163:32:62" - }, - "nativeSrc": "29160:52:62", - "nodeType": "YulIf", - "src": "29160:52:62" - }, - { - "nativeSrc": "29221:14:62", - "nodeType": "YulVariableDeclaration", - "src": "29221:14:62", - "value": { - "kind": "number", - "nativeSrc": "29234:1:62", - "nodeType": "YulLiteral", - "src": "29234:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "29225:5:62", - "nodeType": "YulTypedName", - "src": "29225:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "29244:25:62", - "nodeType": "YulAssignment", - "src": "29244:25:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "29259:9:62", - "nodeType": "YulIdentifier", - "src": "29259:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "29253:5:62", - "nodeType": "YulIdentifier", - "src": "29253:5:62" - }, - "nativeSrc": "29253:16:62", - "nodeType": "YulFunctionCall", - "src": "29253:16:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "29244:5:62", - "nodeType": "YulIdentifier", - "src": "29244:5:62" - } - ] - }, - { - "nativeSrc": "29278:15:62", - "nodeType": "YulAssignment", - "src": "29278:15:62", - "value": { - "name": "value", - "nativeSrc": "29288:5:62", - "nodeType": "YulIdentifier", - "src": "29288:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "29278:6:62", - "nodeType": "YulIdentifier", - "src": "29278:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256_fromMemory", - "nativeSrc": "29069:230:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "29116:9:62", - "nodeType": "YulTypedName", - "src": "29116:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "29127:7:62", - "nodeType": "YulTypedName", - "src": "29127:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "29139:6:62", - "nodeType": "YulTypedName", - "src": "29139:6:62", - "type": "" - } - ], - "src": "29069:230:62" - }, - { - "body": { - "nativeSrc": "29384:169:62", - "nodeType": "YulBlock", - "src": "29384:169:62", - "statements": [ - { - "body": { - "nativeSrc": "29430:16:62", - "nodeType": "YulBlock", - "src": "29430:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "29439:1:62", - "nodeType": "YulLiteral", - "src": "29439:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "29442:1:62", - "nodeType": "YulLiteral", - "src": "29442:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "29432:6:62", - "nodeType": "YulIdentifier", - "src": "29432:6:62" - }, - "nativeSrc": "29432:12:62", - "nodeType": "YulFunctionCall", - "src": "29432:12:62" - }, - "nativeSrc": "29432:12:62", - "nodeType": "YulExpressionStatement", - "src": "29432:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "29405:7:62", - "nodeType": "YulIdentifier", - "src": "29405:7:62" - }, - { - "name": "headStart", - "nativeSrc": "29414:9:62", - "nodeType": "YulIdentifier", - "src": "29414:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "29401:3:62", - "nodeType": "YulIdentifier", - "src": "29401:3:62" - }, - "nativeSrc": "29401:23:62", - "nodeType": "YulFunctionCall", - "src": "29401:23:62" - }, - { - "kind": "number", - "nativeSrc": "29426:2:62", - "nodeType": "YulLiteral", - "src": "29426:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "29397:3:62", - "nodeType": "YulIdentifier", - "src": "29397:3:62" - }, - "nativeSrc": "29397:32:62", - "nodeType": "YulFunctionCall", - "src": "29397:32:62" - }, - "nativeSrc": "29394:52:62", - "nodeType": "YulIf", - "src": "29394:52:62" - }, - { - "nativeSrc": "29455:29:62", - "nodeType": "YulVariableDeclaration", - "src": "29455:29:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "29474:9:62", - "nodeType": "YulIdentifier", - "src": "29474:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "29468:5:62", - "nodeType": "YulIdentifier", - "src": "29468:5:62" - }, - "nativeSrc": "29468:16:62", - "nodeType": "YulFunctionCall", - "src": "29468:16:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "29459:5:62", - "nodeType": "YulTypedName", - "src": "29459:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "29517:5:62", - "nodeType": "YulIdentifier", - "src": "29517:5:62" - } - ], - "functionName": { - "name": "validator_revert_uint32", - "nativeSrc": "29493:23:62", - "nodeType": "YulIdentifier", - "src": "29493:23:62" - }, - "nativeSrc": "29493:30:62", - "nodeType": "YulFunctionCall", - "src": "29493:30:62" - }, - "nativeSrc": "29493:30:62", - "nodeType": "YulExpressionStatement", - "src": "29493:30:62" - }, - { - "nativeSrc": "29532:15:62", - "nodeType": "YulAssignment", - "src": "29532:15:62", - "value": { - "name": "value", - "nativeSrc": "29542:5:62", - "nodeType": "YulIdentifier", - "src": "29542:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "29532:6:62", - "nodeType": "YulIdentifier", - "src": "29532:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint32_fromMemory", - "nativeSrc": "29304:249:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "29350:9:62", - "nodeType": "YulTypedName", - "src": "29350:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "29361:7:62", - "nodeType": "YulTypedName", - "src": "29361:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "29373:6:62", - "nodeType": "YulTypedName", - "src": "29373:6:62", - "type": "" - } - ], - "src": "29304:249:62" - }, - { - "body": { - "nativeSrc": "29638:169:62", - "nodeType": "YulBlock", - "src": "29638:169:62", - "statements": [ - { - "body": { - "nativeSrc": "29684:16:62", - "nodeType": "YulBlock", - "src": "29684:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "29693:1:62", - "nodeType": "YulLiteral", - "src": "29693:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "29696:1:62", - "nodeType": "YulLiteral", - "src": "29696:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "29686:6:62", - "nodeType": "YulIdentifier", - "src": "29686:6:62" - }, - "nativeSrc": "29686:12:62", - "nodeType": "YulFunctionCall", - "src": "29686:12:62" - }, - "nativeSrc": "29686:12:62", - "nodeType": "YulExpressionStatement", - "src": "29686:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "29659:7:62", - "nodeType": "YulIdentifier", - "src": "29659:7:62" - }, - { - "name": "headStart", - "nativeSrc": "29668:9:62", - "nodeType": "YulIdentifier", - "src": "29668:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "29655:3:62", - "nodeType": "YulIdentifier", - "src": "29655:3:62" - }, - "nativeSrc": "29655:23:62", - "nodeType": "YulFunctionCall", - "src": "29655:23:62" - }, - { - "kind": "number", - "nativeSrc": "29680:2:62", - "nodeType": "YulLiteral", - "src": "29680:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "29651:3:62", - "nodeType": "YulIdentifier", - "src": "29651:3:62" - }, - "nativeSrc": "29651:32:62", - "nodeType": "YulFunctionCall", - "src": "29651:32:62" - }, - "nativeSrc": "29648:52:62", - "nodeType": "YulIf", - "src": "29648:52:62" - }, - { - "nativeSrc": "29709:29:62", - "nodeType": "YulVariableDeclaration", - "src": "29709:29:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "29728:9:62", - "nodeType": "YulIdentifier", - "src": "29728:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "29722:5:62", - "nodeType": "YulIdentifier", - "src": "29722:5:62" - }, - "nativeSrc": "29722:16:62", - "nodeType": "YulFunctionCall", - "src": "29722:16:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "29713:5:62", - "nodeType": "YulTypedName", - "src": "29713:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "29771:5:62", - "nodeType": "YulIdentifier", - "src": "29771:5:62" - } - ], - "functionName": { - "name": "validator_revert_uint64", - "nativeSrc": "29747:23:62", - "nodeType": "YulIdentifier", - "src": "29747:23:62" - }, - "nativeSrc": "29747:30:62", - "nodeType": "YulFunctionCall", - "src": "29747:30:62" - }, - "nativeSrc": "29747:30:62", - "nodeType": "YulExpressionStatement", - "src": "29747:30:62" - }, - { - "nativeSrc": "29786:15:62", - "nodeType": "YulAssignment", - "src": "29786:15:62", - "value": { - "name": "value", - "nativeSrc": "29796:5:62", - "nodeType": "YulIdentifier", - "src": "29796:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "29786:6:62", - "nodeType": "YulIdentifier", - "src": "29786:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint64_fromMemory", - "nativeSrc": "29558:249:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "29604:9:62", - "nodeType": "YulTypedName", - "src": "29604:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "29615:7:62", - "nodeType": "YulTypedName", - "src": "29615:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "29627:6:62", - "nodeType": "YulTypedName", - "src": "29627:6:62", - "type": "" - } - ], - "src": "29558:249:62" - }, - { - "body": { - "nativeSrc": "29941:145:62", - "nodeType": "YulBlock", - "src": "29941:145:62", - "statements": [ - { - "nativeSrc": "29951:26:62", - "nodeType": "YulAssignment", - "src": "29951:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "29963:9:62", - "nodeType": "YulIdentifier", - "src": "29963:9:62" - }, - { - "kind": "number", - "nativeSrc": "29974:2:62", - "nodeType": "YulLiteral", - "src": "29974:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "29959:3:62", - "nodeType": "YulIdentifier", - "src": "29959:3:62" - }, - "nativeSrc": "29959:18:62", - "nodeType": "YulFunctionCall", - "src": "29959:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "29951:4:62", - "nodeType": "YulIdentifier", - "src": "29951:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "29993:9:62", - "nodeType": "YulIdentifier", - "src": "29993:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "30008:6:62", - "nodeType": "YulIdentifier", - "src": "30008:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "30024:3:62", - "nodeType": "YulLiteral", - "src": "30024:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "30029:1:62", - "nodeType": "YulLiteral", - "src": "30029:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "30020:3:62", - "nodeType": "YulIdentifier", - "src": "30020:3:62" - }, - "nativeSrc": "30020:11:62", - "nodeType": "YulFunctionCall", - "src": "30020:11:62" - }, - { - "kind": "number", - "nativeSrc": "30033:1:62", - "nodeType": "YulLiteral", - "src": "30033:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "30016:3:62", - "nodeType": "YulIdentifier", - "src": "30016:3:62" - }, - "nativeSrc": "30016:19:62", - "nodeType": "YulFunctionCall", - "src": "30016:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "30004:3:62", - "nodeType": "YulIdentifier", - "src": "30004:3:62" - }, - "nativeSrc": "30004:32:62", - "nodeType": "YulFunctionCall", - "src": "30004:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "29986:6:62", - "nodeType": "YulIdentifier", - "src": "29986:6:62" - }, - "nativeSrc": "29986:51:62", - "nodeType": "YulFunctionCall", - "src": "29986:51:62" - }, - "nativeSrc": "29986:51:62", - "nodeType": "YulExpressionStatement", - "src": "29986:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "30057:9:62", - "nodeType": "YulIdentifier", - "src": "30057:9:62" - }, - { - "kind": "number", - "nativeSrc": "30068:2:62", - "nodeType": "YulLiteral", - "src": "30068:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30053:3:62", - "nodeType": "YulIdentifier", - "src": "30053:3:62" - }, - "nativeSrc": "30053:18:62", - "nodeType": "YulFunctionCall", - "src": "30053:18:62" - }, - { - "name": "value1", - "nativeSrc": "30073:6:62", - "nodeType": "YulIdentifier", - "src": "30073:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "30046:6:62", - "nodeType": "YulIdentifier", - "src": "30046:6:62" - }, - "nativeSrc": "30046:34:62", - "nodeType": "YulFunctionCall", - "src": "30046:34:62" - }, - "nativeSrc": "30046:34:62", - "nodeType": "YulExpressionStatement", - "src": "30046:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", - "nativeSrc": "29812:274:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "29902:9:62", - "nodeType": "YulTypedName", - "src": "29902:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "29913:6:62", - "nodeType": "YulTypedName", - "src": "29913:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "29921:6:62", - "nodeType": "YulTypedName", - "src": "29921:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "29932:4:62", - "nodeType": "YulTypedName", - "src": "29932:4:62", - "type": "" - } - ], - "src": "29812:274:62" - }, - { - "body": { - "nativeSrc": "30139:77:62", - "nodeType": "YulBlock", - "src": "30139:77:62", - "statements": [ - { - "nativeSrc": "30149:16:62", - "nodeType": "YulAssignment", - "src": "30149:16:62", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "30160:1:62", - "nodeType": "YulIdentifier", - "src": "30160:1:62" - }, - { - "name": "y", - "nativeSrc": "30163:1:62", - "nodeType": "YulIdentifier", - "src": "30163:1:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30156:3:62", - "nodeType": "YulIdentifier", - "src": "30156:3:62" - }, - "nativeSrc": "30156:9:62", - "nodeType": "YulFunctionCall", - "src": "30156:9:62" - }, - "variableNames": [ - { - "name": "sum", - "nativeSrc": "30149:3:62", - "nodeType": "YulIdentifier", - "src": "30149:3:62" - } - ] - }, - { - "body": { - "nativeSrc": "30188:22:62", - "nodeType": "YulBlock", - "src": "30188:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "30190:16:62", - "nodeType": "YulIdentifier", - "src": "30190:16:62" - }, - "nativeSrc": "30190:18:62", - "nodeType": "YulFunctionCall", - "src": "30190:18:62" - }, - "nativeSrc": "30190:18:62", - "nodeType": "YulExpressionStatement", - "src": "30190:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "x", - "nativeSrc": "30180:1:62", - "nodeType": "YulIdentifier", - "src": "30180:1:62" - }, - { - "name": "sum", - "nativeSrc": "30183:3:62", - "nodeType": "YulIdentifier", - "src": "30183:3:62" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "30177:2:62", - "nodeType": "YulIdentifier", - "src": "30177:2:62" - }, - "nativeSrc": "30177:10:62", - "nodeType": "YulFunctionCall", - "src": "30177:10:62" - }, - "nativeSrc": "30174:36:62", - "nodeType": "YulIf", - "src": "30174:36:62" - } - ] - }, - "name": "checked_add_t_uint256", - "nativeSrc": "30091:125:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "30122:1:62", - "nodeType": "YulTypedName", - "src": "30122:1:62", - "type": "" - }, - { - "name": "y", - "nativeSrc": "30125:1:62", - "nodeType": "YulTypedName", - "src": "30125:1:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "sum", - "nativeSrc": "30131:3:62", - "nodeType": "YulTypedName", - "src": "30131:3:62", - "type": "" - } - ], - "src": "30091:125:62" - }, - { - "body": { - "nativeSrc": "30358:150:62", - "nodeType": "YulBlock", - "src": "30358:150:62", - "statements": [ - { - "nativeSrc": "30368:27:62", - "nodeType": "YulVariableDeclaration", - "src": "30368:27:62", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "30388:6:62", - "nodeType": "YulIdentifier", - "src": "30388:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "30382:5:62", - "nodeType": "YulIdentifier", - "src": "30382:5:62" - }, - "nativeSrc": "30382:13:62", - "nodeType": "YulFunctionCall", - "src": "30382:13:62" - }, - "variables": [ - { - "name": "length", - "nativeSrc": "30372:6:62", - "nodeType": "YulTypedName", - "src": "30372:6:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "30443:6:62", - "nodeType": "YulIdentifier", - "src": "30443:6:62" - }, - { - "kind": "number", - "nativeSrc": "30451:4:62", - "nodeType": "YulLiteral", - "src": "30451:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30439:3:62", - "nodeType": "YulIdentifier", - "src": "30439:3:62" - }, - "nativeSrc": "30439:17:62", - "nodeType": "YulFunctionCall", - "src": "30439:17:62" - }, - { - "name": "pos", - "nativeSrc": "30458:3:62", - "nodeType": "YulIdentifier", - "src": "30458:3:62" - }, - { - "name": "length", - "nativeSrc": "30463:6:62", - "nodeType": "YulIdentifier", - "src": "30463:6:62" - } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "30404:34:62", - "nodeType": "YulIdentifier", - "src": "30404:34:62" - }, - "nativeSrc": "30404:66:62", - "nodeType": "YulFunctionCall", - "src": "30404:66:62" - }, - "nativeSrc": "30404:66:62", - "nodeType": "YulExpressionStatement", - "src": "30404:66:62" - }, - { - "nativeSrc": "30479:23:62", - "nodeType": "YulAssignment", - "src": "30479:23:62", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "30490:3:62", - "nodeType": "YulIdentifier", - "src": "30490:3:62" - }, - { - "name": "length", - "nativeSrc": "30495:6:62", - "nodeType": "YulIdentifier", - "src": "30495:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30486:3:62", - "nodeType": "YulIdentifier", - "src": "30486:3:62" - }, - "nativeSrc": "30486:16:62", - "nodeType": "YulFunctionCall", - "src": "30486:16:62" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "30479:3:62", - "nodeType": "YulIdentifier", - "src": "30479:3:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "30221:287:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "30334:3:62", - "nodeType": "YulTypedName", - "src": "30334:3:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "30339:6:62", - "nodeType": "YulTypedName", - "src": "30339:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "30350:3:62", - "nodeType": "YulTypedName", - "src": "30350:3:62", - "type": "" - } - ], - "src": "30221:287:62" - }, - { - "body": { - "nativeSrc": "30602:170:62", - "nodeType": "YulBlock", - "src": "30602:170:62", - "statements": [ - { - "body": { - "nativeSrc": "30648:16:62", - "nodeType": "YulBlock", - "src": "30648:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "30657:1:62", - "nodeType": "YulLiteral", - "src": "30657:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "30660:1:62", - "nodeType": "YulLiteral", - "src": "30660:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "30650:6:62", - "nodeType": "YulIdentifier", - "src": "30650:6:62" - }, - "nativeSrc": "30650:12:62", - "nodeType": "YulFunctionCall", - "src": "30650:12:62" - }, - "nativeSrc": "30650:12:62", - "nodeType": "YulExpressionStatement", - "src": "30650:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "30623:7:62", - "nodeType": "YulIdentifier", - "src": "30623:7:62" - }, - { - "name": "headStart", - "nativeSrc": "30632:9:62", - "nodeType": "YulIdentifier", - "src": "30632:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "30619:3:62", - "nodeType": "YulIdentifier", - "src": "30619:3:62" - }, - "nativeSrc": "30619:23:62", - "nodeType": "YulFunctionCall", - "src": "30619:23:62" - }, - { - "kind": "number", - "nativeSrc": "30644:2:62", - "nodeType": "YulLiteral", - "src": "30644:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "30615:3:62", - "nodeType": "YulIdentifier", - "src": "30615:3:62" - }, - "nativeSrc": "30615:32:62", - "nodeType": "YulFunctionCall", - "src": "30615:32:62" - }, - "nativeSrc": "30612:52:62", - "nodeType": "YulIf", - "src": "30612:52:62" - }, - { - "nativeSrc": "30673:29:62", - "nodeType": "YulVariableDeclaration", - "src": "30673:29:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "30692:9:62", - "nodeType": "YulIdentifier", - "src": "30692:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "30686:5:62", - "nodeType": "YulIdentifier", - "src": "30686:5:62" - }, - "nativeSrc": "30686:16:62", - "nodeType": "YulFunctionCall", - "src": "30686:16:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "30677:5:62", - "nodeType": "YulTypedName", - "src": "30677:5:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "30736:5:62", - "nodeType": "YulIdentifier", - "src": "30736:5:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "30711:24:62", - "nodeType": "YulIdentifier", - "src": "30711:24:62" - }, - "nativeSrc": "30711:31:62", - "nodeType": "YulFunctionCall", - "src": "30711:31:62" - }, - "nativeSrc": "30711:31:62", - "nodeType": "YulExpressionStatement", - "src": "30711:31:62" - }, - { - "nativeSrc": "30751:15:62", - "nodeType": "YulAssignment", - "src": "30751:15:62", - "value": { - "name": "value", - "nativeSrc": "30761:5:62", - "nodeType": "YulIdentifier", - "src": "30761:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "30751:6:62", - "nodeType": "YulIdentifier", - "src": "30751:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_address_payable_fromMemory", - "nativeSrc": "30513:259:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "30568:9:62", - "nodeType": "YulTypedName", - "src": "30568:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "30579:7:62", - "nodeType": "YulTypedName", - "src": "30579:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "30591:6:62", - "nodeType": "YulTypedName", - "src": "30591:6:62", - "type": "" - } - ], - "src": "30513:259:62" - }, - { - "body": { - "nativeSrc": "30960:884:62", - "nodeType": "YulBlock", - "src": "30960:884:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "30977:9:62", - "nodeType": "YulIdentifier", - "src": "30977:9:62" - }, - { - "kind": "number", - "nativeSrc": "30988:2:62", - "nodeType": "YulLiteral", - "src": "30988:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "30970:6:62", - "nodeType": "YulIdentifier", - "src": "30970:6:62" - }, - "nativeSrc": "30970:21:62", - "nodeType": "YulFunctionCall", - "src": "30970:21:62" - }, - "nativeSrc": "30970:21:62", - "nodeType": "YulExpressionStatement", - "src": "30970:21:62" - }, - { - "nativeSrc": "31000:33:62", - "nodeType": "YulVariableDeclaration", - "src": "31000:33:62", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "31026:6:62", - "nodeType": "YulIdentifier", - "src": "31026:6:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "31020:5:62", - "nodeType": "YulIdentifier", - "src": "31020:5:62" - }, - "nativeSrc": "31020:13:62", - "nodeType": "YulFunctionCall", - "src": "31020:13:62" - }, - "variables": [ - { - "name": "memberValue0", - "nativeSrc": "31004:12:62", - "nodeType": "YulTypedName", - "src": "31004:12:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "31053:9:62", - "nodeType": "YulIdentifier", - "src": "31053:9:62" - }, - { - "kind": "number", - "nativeSrc": "31064:2:62", - "nodeType": "YulLiteral", - "src": "31064:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31049:3:62", - "nodeType": "YulIdentifier", - "src": "31049:3:62" - }, - "nativeSrc": "31049:18:62", - "nodeType": "YulFunctionCall", - "src": "31049:18:62" - }, - { - "kind": "number", - "nativeSrc": "31069:2:62", - "nodeType": "YulLiteral", - "src": "31069:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "31042:6:62", - "nodeType": "YulIdentifier", - "src": "31042:6:62" - }, - "nativeSrc": "31042:30:62", - "nodeType": "YulFunctionCall", - "src": "31042:30:62" - }, - "nativeSrc": "31042:30:62", - "nodeType": "YulExpressionStatement", - "src": "31042:30:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "31092:9:62", - "nodeType": "YulIdentifier", - "src": "31092:9:62" - }, - { - "kind": "number", - "nativeSrc": "31103:3:62", - "nodeType": "YulLiteral", - "src": "31103:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31088:3:62", - "nodeType": "YulIdentifier", - "src": "31088:3:62" - }, - "nativeSrc": "31088:19:62", - "nodeType": "YulFunctionCall", - "src": "31088:19:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "memberValue0", - "nativeSrc": "31119:12:62", - "nodeType": "YulIdentifier", - "src": "31119:12:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "31113:5:62", - "nodeType": "YulIdentifier", - "src": "31113:5:62" - }, - "nativeSrc": "31113:19:62", - "nodeType": "YulFunctionCall", - "src": "31113:19:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "31142:3:62", - "nodeType": "YulLiteral", - "src": "31142:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "31147:1:62", - "nodeType": "YulLiteral", - "src": "31147:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "31138:3:62", - "nodeType": "YulIdentifier", - "src": "31138:3:62" - }, - "nativeSrc": "31138:11:62", - "nodeType": "YulFunctionCall", - "src": "31138:11:62" - }, - { - "kind": "number", - "nativeSrc": "31151:1:62", - "nodeType": "YulLiteral", - "src": "31151:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "31134:3:62", - "nodeType": "YulIdentifier", - "src": "31134:3:62" - }, - "nativeSrc": "31134:19:62", - "nodeType": "YulFunctionCall", - "src": "31134:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "31109:3:62", - "nodeType": "YulIdentifier", - "src": "31109:3:62" - }, - "nativeSrc": "31109:45:62", - "nodeType": "YulFunctionCall", - "src": "31109:45:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "31081:6:62", - "nodeType": "YulIdentifier", - "src": "31081:6:62" - }, - "nativeSrc": "31081:74:62", - "nodeType": "YulFunctionCall", - "src": "31081:74:62" - }, - "nativeSrc": "31081:74:62", - "nodeType": "YulExpressionStatement", - "src": "31081:74:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "31175:9:62", - "nodeType": "YulIdentifier", - "src": "31175:9:62" - }, - { - "kind": "number", - "nativeSrc": "31186:4:62", - "nodeType": "YulLiteral", - "src": "31186:4:62", - "type": "", - "value": "0xa0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31171:3:62", - "nodeType": "YulIdentifier", - "src": "31171:3:62" - }, - "nativeSrc": "31171:20:62", - "nodeType": "YulFunctionCall", - "src": "31171:20:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "memberValue0", - "nativeSrc": "31207:12:62", - "nodeType": "YulIdentifier", - "src": "31207:12:62" - }, - { - "kind": "number", - "nativeSrc": "31221:4:62", - "nodeType": "YulLiteral", - "src": "31221:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31203:3:62", - "nodeType": "YulIdentifier", - "src": "31203:3:62" - }, - "nativeSrc": "31203:23:62", - "nodeType": "YulFunctionCall", - "src": "31203:23:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "31197:5:62", - "nodeType": "YulIdentifier", - "src": "31197:5:62" - }, - "nativeSrc": "31197:30:62", - "nodeType": "YulFunctionCall", - "src": "31197:30:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "31237:3:62", - "nodeType": "YulLiteral", - "src": "31237:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "31242:1:62", - "nodeType": "YulLiteral", - "src": "31242:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "31233:3:62", - "nodeType": "YulIdentifier", - "src": "31233:3:62" - }, - "nativeSrc": "31233:11:62", - "nodeType": "YulFunctionCall", - "src": "31233:11:62" - }, - { - "kind": "number", - "nativeSrc": "31246:1:62", - "nodeType": "YulLiteral", - "src": "31246:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "31229:3:62", - "nodeType": "YulIdentifier", - "src": "31229:3:62" - }, - "nativeSrc": "31229:19:62", - "nodeType": "YulFunctionCall", - "src": "31229:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "31193:3:62", - "nodeType": "YulIdentifier", - "src": "31193:3:62" - }, - "nativeSrc": "31193:56:62", - "nodeType": "YulFunctionCall", - "src": "31193:56:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "31164:6:62", - "nodeType": "YulIdentifier", - "src": "31164:6:62" - }, - "nativeSrc": "31164:86:62", - "nodeType": "YulFunctionCall", - "src": "31164:86:62" - }, - "nativeSrc": "31164:86:62", - "nodeType": "YulExpressionStatement", - "src": "31164:86:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "31270:9:62", - "nodeType": "YulIdentifier", - "src": "31270:9:62" - }, - { - "kind": "number", - "nativeSrc": "31281:3:62", - "nodeType": "YulLiteral", - "src": "31281:3:62", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31266:3:62", - "nodeType": "YulIdentifier", - "src": "31266:3:62" - }, - "nativeSrc": "31266:19:62", - "nodeType": "YulFunctionCall", - "src": "31266:19:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "memberValue0", - "nativeSrc": "31301:12:62", - "nodeType": "YulIdentifier", - "src": "31301:12:62" - }, - { - "kind": "number", - "nativeSrc": "31315:2:62", - "nodeType": "YulLiteral", - "src": "31315:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31297:3:62", - "nodeType": "YulIdentifier", - "src": "31297:3:62" - }, - "nativeSrc": "31297:21:62", - "nodeType": "YulFunctionCall", - "src": "31297:21:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "31291:5:62", - "nodeType": "YulIdentifier", - "src": "31291:5:62" - }, - "nativeSrc": "31291:28:62", - "nodeType": "YulFunctionCall", - "src": "31291:28:62" - }, - { - "kind": "number", - "nativeSrc": "31321:18:62", - "nodeType": "YulLiteral", - "src": "31321:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "31287:3:62", - "nodeType": "YulIdentifier", - "src": "31287:3:62" - }, - "nativeSrc": "31287:53:62", - "nodeType": "YulFunctionCall", - "src": "31287:53:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "31259:6:62", - "nodeType": "YulIdentifier", - "src": "31259:6:62" - }, - "nativeSrc": "31259:82:62", - "nodeType": "YulFunctionCall", - "src": "31259:82:62" - }, - "nativeSrc": "31259:82:62", - "nodeType": "YulExpressionStatement", - "src": "31259:82:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "31361:9:62", - "nodeType": "YulIdentifier", - "src": "31361:9:62" - }, - { - "kind": "number", - "nativeSrc": "31372:3:62", - "nodeType": "YulLiteral", - "src": "31372:3:62", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31357:3:62", - "nodeType": "YulIdentifier", - "src": "31357:3:62" - }, - "nativeSrc": "31357:19:62", - "nodeType": "YulFunctionCall", - "src": "31357:19:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "memberValue0", - "nativeSrc": "31392:12:62", - "nodeType": "YulIdentifier", - "src": "31392:12:62" - }, - { - "kind": "number", - "nativeSrc": "31406:4:62", - "nodeType": "YulLiteral", - "src": "31406:4:62", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31388:3:62", - "nodeType": "YulIdentifier", - "src": "31388:3:62" - }, - "nativeSrc": "31388:23:62", - "nodeType": "YulFunctionCall", - "src": "31388:23:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "31382:5:62", - "nodeType": "YulIdentifier", - "src": "31382:5:62" - }, - "nativeSrc": "31382:30:62", - "nodeType": "YulFunctionCall", - "src": "31382:30:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "31422:3:62", - "nodeType": "YulLiteral", - "src": "31422:3:62", - "type": "", - "value": "128" - }, - { - "kind": "number", - "nativeSrc": "31427:1:62", - "nodeType": "YulLiteral", - "src": "31427:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "31418:3:62", - "nodeType": "YulIdentifier", - "src": "31418:3:62" - }, - "nativeSrc": "31418:11:62", - "nodeType": "YulFunctionCall", - "src": "31418:11:62" - }, - { - "kind": "number", - "nativeSrc": "31431:1:62", - "nodeType": "YulLiteral", - "src": "31431:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "31414:3:62", - "nodeType": "YulIdentifier", - "src": "31414:3:62" - }, - "nativeSrc": "31414:19:62", - "nodeType": "YulFunctionCall", - "src": "31414:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "31378:3:62", - "nodeType": "YulIdentifier", - "src": "31378:3:62" - }, - "nativeSrc": "31378:56:62", - "nodeType": "YulFunctionCall", - "src": "31378:56:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "31350:6:62", - "nodeType": "YulIdentifier", - "src": "31350:6:62" - }, - "nativeSrc": "31350:85:62", - "nodeType": "YulFunctionCall", - "src": "31350:85:62" - }, - "nativeSrc": "31350:85:62", - "nodeType": "YulExpressionStatement", - "src": "31350:85:62" - }, - { - "nativeSrc": "31444:51:62", - "nodeType": "YulVariableDeclaration", - "src": "31444:51:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "memberValue0", - "nativeSrc": "31476:12:62", - "nodeType": "YulIdentifier", - "src": "31476:12:62" - }, - { - "kind": "number", - "nativeSrc": "31490:3:62", - "nodeType": "YulLiteral", - "src": "31490:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31472:3:62", - "nodeType": "YulIdentifier", - "src": "31472:3:62" - }, - "nativeSrc": "31472:22:62", - "nodeType": "YulFunctionCall", - "src": "31472:22:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "31466:5:62", - "nodeType": "YulIdentifier", - "src": "31466:5:62" - }, - "nativeSrc": "31466:29:62", - "nodeType": "YulFunctionCall", - "src": "31466:29:62" - }, - "variables": [ - { - "name": "memberValue0_1", - "nativeSrc": "31448:14:62", - "nodeType": "YulTypedName", - "src": "31448:14:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "31515:9:62", - "nodeType": "YulIdentifier", - "src": "31515:9:62" - }, - { - "kind": "number", - "nativeSrc": "31526:3:62", - "nodeType": "YulLiteral", - "src": "31526:3:62", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31511:3:62", - "nodeType": "YulIdentifier", - "src": "31511:3:62" - }, - "nativeSrc": "31511:19:62", - "nodeType": "YulFunctionCall", - "src": "31511:19:62" - }, - { - "kind": "number", - "nativeSrc": "31532:4:62", - "nodeType": "YulLiteral", - "src": "31532:4:62", - "type": "", - "value": "0xa0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "31504:6:62", - "nodeType": "YulIdentifier", - "src": "31504:6:62" - }, - "nativeSrc": "31504:33:62", - "nodeType": "YulFunctionCall", - "src": "31504:33:62" - }, - "nativeSrc": "31504:33:62", - "nodeType": "YulExpressionStatement", - "src": "31504:33:62" - }, - { - "nativeSrc": "31546:65:62", - "nodeType": "YulVariableDeclaration", - "src": "31546:65:62", - "value": { - "arguments": [ - { - "name": "memberValue0_1", - "nativeSrc": "31575:14:62", - "nodeType": "YulIdentifier", - "src": "31575:14:62" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "31595:9:62", - "nodeType": "YulIdentifier", - "src": "31595:9:62" - }, - { - "kind": "number", - "nativeSrc": "31606:3:62", - "nodeType": "YulLiteral", - "src": "31606:3:62", - "type": "", - "value": "288" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31591:3:62", - "nodeType": "YulIdentifier", - "src": "31591:3:62" - }, - "nativeSrc": "31591:19:62", - "nodeType": "YulFunctionCall", - "src": "31591:19:62" - } - ], - "functionName": { - "name": "abi_encode_string", - "nativeSrc": "31557:17:62", - "nodeType": "YulIdentifier", - "src": "31557:17:62" - }, - "nativeSrc": "31557:54:62", - "nodeType": "YulFunctionCall", - "src": "31557:54:62" - }, - "variables": [ - { - "name": "end", - "nativeSrc": "31550:3:62", - "nodeType": "YulTypedName", - "src": "31550:3:62", - "type": "" - } - ] - }, - { - "nativeSrc": "31620:46:62", - "nodeType": "YulVariableDeclaration", - "src": "31620:46:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "31652:6:62", - "nodeType": "YulIdentifier", - "src": "31652:6:62" - }, - { - "kind": "number", - "nativeSrc": "31660:4:62", - "nodeType": "YulLiteral", - "src": "31660:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31648:3:62", - "nodeType": "YulIdentifier", - "src": "31648:3:62" - }, - "nativeSrc": "31648:17:62", - "nodeType": "YulFunctionCall", - "src": "31648:17:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "31642:5:62", - "nodeType": "YulIdentifier", - "src": "31642:5:62" - }, - "nativeSrc": "31642:24:62", - "nodeType": "YulFunctionCall", - "src": "31642:24:62" - }, - "variables": [ - { - "name": "memberValue0_2", - "nativeSrc": "31624:14:62", - "nodeType": "YulTypedName", - "src": "31624:14:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "31686:9:62", - "nodeType": "YulIdentifier", - "src": "31686:9:62" - }, - { - "kind": "number", - "nativeSrc": "31697:4:62", - "nodeType": "YulLiteral", - "src": "31697:4:62", - "type": "", - "value": "0x60" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31682:3:62", - "nodeType": "YulIdentifier", - "src": "31682:3:62" - }, - "nativeSrc": "31682:20:62", - "nodeType": "YulFunctionCall", - "src": "31682:20:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "end", - "nativeSrc": "31712:3:62", - "nodeType": "YulIdentifier", - "src": "31712:3:62" - }, - { - "name": "headStart", - "nativeSrc": "31717:9:62", - "nodeType": "YulIdentifier", - "src": "31717:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "31708:3:62", - "nodeType": "YulIdentifier", - "src": "31708:3:62" - }, - "nativeSrc": "31708:19:62", - "nodeType": "YulFunctionCall", - "src": "31708:19:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "31733:2:62", - "nodeType": "YulLiteral", - "src": "31733:2:62", - "type": "", - "value": "63" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "31729:3:62", - "nodeType": "YulIdentifier", - "src": "31729:3:62" - }, - "nativeSrc": "31729:7:62", - "nodeType": "YulFunctionCall", - "src": "31729:7:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31704:3:62", - "nodeType": "YulIdentifier", - "src": "31704:3:62" - }, - "nativeSrc": "31704:33:62", - "nodeType": "YulFunctionCall", - "src": "31704:33:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "31675:6:62", - "nodeType": "YulIdentifier", - "src": "31675:6:62" - }, - "nativeSrc": "31675:63:62", - "nodeType": "YulFunctionCall", - "src": "31675:63:62" - }, - "nativeSrc": "31675:63:62", - "nodeType": "YulExpressionStatement", - "src": "31675:63:62" - }, - { - "nativeSrc": "31747:46:62", - "nodeType": "YulAssignment", - "src": "31747:46:62", - "value": { - "arguments": [ - { - "name": "memberValue0_2", - "nativeSrc": "31773:14:62", - "nodeType": "YulIdentifier", - "src": "31773:14:62" - }, - { - "name": "end", - "nativeSrc": "31789:3:62", - "nodeType": "YulIdentifier", - "src": "31789:3:62" - } - ], - "functionName": { - "name": "abi_encode_string", - "nativeSrc": "31755:17:62", - "nodeType": "YulIdentifier", - "src": "31755:17:62" - }, - "nativeSrc": "31755:38:62", - "nodeType": "YulFunctionCall", - "src": "31755:38:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "31747:4:62", - "nodeType": "YulIdentifier", - "src": "31747:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "31813:9:62", - "nodeType": "YulIdentifier", - "src": "31813:9:62" - }, - { - "kind": "number", - "nativeSrc": "31824:4:62", - "nodeType": "YulLiteral", - "src": "31824:4:62", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31809:3:62", - "nodeType": "YulIdentifier", - "src": "31809:3:62" - }, - "nativeSrc": "31809:20:62", - "nodeType": "YulFunctionCall", - "src": "31809:20:62" - }, - { - "name": "value1", - "nativeSrc": "31831:6:62", - "nodeType": "YulIdentifier", - "src": "31831:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "31802:6:62", - "nodeType": "YulIdentifier", - "src": "31802:6:62" - }, - "nativeSrc": "31802:36:62", - "nodeType": "YulFunctionCall", - "src": "31802:36:62" - }, - "nativeSrc": "31802:36:62", - "nodeType": "YulExpressionStatement", - "src": "31802:36:62" - } - ] - }, - "name": "abi_encode_tuple_t_struct$_SignedRAV_$2546_memory_ptr_t_uint256__to_t_struct$_SignedRAV_$2546_memory_ptr_t_uint256__fromStack_reversed", - "nativeSrc": "30777:1067:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "30921:9:62", - "nodeType": "YulTypedName", - "src": "30921:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "30932:6:62", - "nodeType": "YulTypedName", - "src": "30932:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "30940:6:62", - "nodeType": "YulTypedName", - "src": "30940:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "30951:4:62", - "nodeType": "YulTypedName", - "src": "30951:4:62", - "type": "" - } - ], - "src": "30777:1067:62" - }, - { - "body": { - "nativeSrc": "32011:164:62", - "nodeType": "YulBlock", - "src": "32011:164:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "32050:6:62", - "nodeType": "YulIdentifier", - "src": "32050:6:62" - }, - { - "name": "headStart", - "nativeSrc": "32058:9:62", - "nodeType": "YulIdentifier", - "src": "32058:9:62" - } - ], - "functionName": { - "name": "abi_encode_enum_PaymentTypes", - "nativeSrc": "32021:28:62", - "nodeType": "YulIdentifier", - "src": "32021:28:62" - }, - "nativeSrc": "32021:47:62", - "nodeType": "YulFunctionCall", - "src": "32021:47:62" - }, - "nativeSrc": "32021:47:62", - "nodeType": "YulExpressionStatement", - "src": "32021:47:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "32088:9:62", - "nodeType": "YulIdentifier", - "src": "32088:9:62" - }, - { - "kind": "number", - "nativeSrc": "32099:2:62", - "nodeType": "YulLiteral", - "src": "32099:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "32084:3:62", - "nodeType": "YulIdentifier", - "src": "32084:3:62" - }, - "nativeSrc": "32084:18:62", - "nodeType": "YulFunctionCall", - "src": "32084:18:62" - }, - { - "kind": "number", - "nativeSrc": "32104:2:62", - "nodeType": "YulLiteral", - "src": "32104:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "32077:6:62", - "nodeType": "YulIdentifier", - "src": "32077:6:62" - }, - "nativeSrc": "32077:30:62", - "nodeType": "YulFunctionCall", - "src": "32077:30:62" - }, - "nativeSrc": "32077:30:62", - "nodeType": "YulExpressionStatement", - "src": "32077:30:62" - }, - { - "nativeSrc": "32116:53:62", - "nodeType": "YulAssignment", - "src": "32116:53:62", - "value": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "32142:6:62", - "nodeType": "YulIdentifier", - "src": "32142:6:62" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "32154:9:62", - "nodeType": "YulIdentifier", - "src": "32154:9:62" - }, - { - "kind": "number", - "nativeSrc": "32165:2:62", - "nodeType": "YulLiteral", - "src": "32165:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "32150:3:62", - "nodeType": "YulIdentifier", - "src": "32150:3:62" - }, - "nativeSrc": "32150:18:62", - "nodeType": "YulFunctionCall", - "src": "32150:18:62" - } - ], - "functionName": { - "name": "abi_encode_string", - "nativeSrc": "32124:17:62", - "nodeType": "YulIdentifier", - "src": "32124:17:62" - }, - "nativeSrc": "32124:45:62", - "nodeType": "YulFunctionCall", - "src": "32124:45:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "32116:4:62", - "nodeType": "YulIdentifier", - "src": "32116:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_enum$_PaymentTypes_$2166_t_bytes_memory_ptr__to_t_uint8_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "31849:326:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "31972:9:62", - "nodeType": "YulTypedName", - "src": "31972:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "31983:6:62", - "nodeType": "YulTypedName", - "src": "31983:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "31991:6:62", - "nodeType": "YulTypedName", - "src": "31991:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "32002:4:62", - "nodeType": "YulTypedName", - "src": "32002:4:62", - "type": "" - } - ], - "src": "31849:326:62" - }, - { - "body": { - "nativeSrc": "32337:162:62", - "nodeType": "YulBlock", - "src": "32337:162:62", - "statements": [ - { - "nativeSrc": "32347:26:62", - "nodeType": "YulAssignment", - "src": "32347:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "32359:9:62", - "nodeType": "YulIdentifier", - "src": "32359:9:62" - }, - { - "kind": "number", - "nativeSrc": "32370:2:62", - "nodeType": "YulLiteral", - "src": "32370:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "32355:3:62", - "nodeType": "YulIdentifier", - "src": "32355:3:62" - }, - "nativeSrc": "32355:18:62", - "nodeType": "YulFunctionCall", - "src": "32355:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "32347:4:62", - "nodeType": "YulIdentifier", - "src": "32347:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "32389:9:62", - "nodeType": "YulIdentifier", - "src": "32389:9:62" - }, - { - "name": "value0", - "nativeSrc": "32400:6:62", - "nodeType": "YulIdentifier", - "src": "32400:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "32382:6:62", - "nodeType": "YulIdentifier", - "src": "32382:6:62" - }, - "nativeSrc": "32382:25:62", - "nodeType": "YulFunctionCall", - "src": "32382:25:62" - }, - "nativeSrc": "32382:25:62", - "nodeType": "YulExpressionStatement", - "src": "32382:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "32427:9:62", - "nodeType": "YulIdentifier", - "src": "32427:9:62" - }, - { - "kind": "number", - "nativeSrc": "32438:2:62", - "nodeType": "YulLiteral", - "src": "32438:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "32423:3:62", - "nodeType": "YulIdentifier", - "src": "32423:3:62" - }, - "nativeSrc": "32423:18:62", - "nodeType": "YulFunctionCall", - "src": "32423:18:62" - }, - { - "name": "value1", - "nativeSrc": "32443:6:62", - "nodeType": "YulIdentifier", - "src": "32443:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "32416:6:62", - "nodeType": "YulIdentifier", - "src": "32416:6:62" - }, - "nativeSrc": "32416:34:62", - "nodeType": "YulFunctionCall", - "src": "32416:34:62" - }, - "nativeSrc": "32416:34:62", - "nodeType": "YulExpressionStatement", - "src": "32416:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "32470:9:62", - "nodeType": "YulIdentifier", - "src": "32470:9:62" - }, - { - "kind": "number", - "nativeSrc": "32481:2:62", - "nodeType": "YulLiteral", - "src": "32481:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "32466:3:62", - "nodeType": "YulIdentifier", - "src": "32466:3:62" - }, - "nativeSrc": "32466:18:62", - "nodeType": "YulFunctionCall", - "src": "32466:18:62" - }, - { - "name": "value2", - "nativeSrc": "32486:6:62", - "nodeType": "YulIdentifier", - "src": "32486:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "32459:6:62", - "nodeType": "YulIdentifier", - "src": "32459:6:62" - }, - "nativeSrc": "32459:34:62", - "nodeType": "YulFunctionCall", - "src": "32459:34:62" - }, - "nativeSrc": "32459:34:62", - "nodeType": "YulExpressionStatement", - "src": "32459:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "32180:319:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "32290:9:62", - "nodeType": "YulTypedName", - "src": "32290:9:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "32301:6:62", - "nodeType": "YulTypedName", - "src": "32301:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "32309:6:62", - "nodeType": "YulTypedName", - "src": "32309:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "32317:6:62", - "nodeType": "YulTypedName", - "src": "32317:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "32328:4:62", - "nodeType": "YulTypedName", - "src": "32328:4:62", - "type": "" - } - ], - "src": "32180:319:62" - }, - { - "body": { - "nativeSrc": "32556:116:62", - "nodeType": "YulBlock", - "src": "32556:116:62", - "statements": [ - { - "nativeSrc": "32566:20:62", - "nodeType": "YulAssignment", - "src": "32566:20:62", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "32581:1:62", - "nodeType": "YulIdentifier", - "src": "32581:1:62" - }, - { - "name": "y", - "nativeSrc": "32584:1:62", - "nodeType": "YulIdentifier", - "src": "32584:1:62" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "32577:3:62", - "nodeType": "YulIdentifier", - "src": "32577:3:62" - }, - "nativeSrc": "32577:9:62", - "nodeType": "YulFunctionCall", - "src": "32577:9:62" - }, - "variableNames": [ - { - "name": "product", - "nativeSrc": "32566:7:62", - "nodeType": "YulIdentifier", - "src": "32566:7:62" - } - ] - }, - { - "body": { - "nativeSrc": "32644:22:62", - "nodeType": "YulBlock", - "src": "32644:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "32646:16:62", - "nodeType": "YulIdentifier", - "src": "32646:16:62" - }, - "nativeSrc": "32646:18:62", - "nodeType": "YulFunctionCall", - "src": "32646:18:62" - }, - "nativeSrc": "32646:18:62", - "nodeType": "YulExpressionStatement", - "src": "32646:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "x", - "nativeSrc": "32615:1:62", - "nodeType": "YulIdentifier", - "src": "32615:1:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "32608:6:62", - "nodeType": "YulIdentifier", - "src": "32608:6:62" - }, - "nativeSrc": "32608:9:62", - "nodeType": "YulFunctionCall", - "src": "32608:9:62" - }, - { - "arguments": [ - { - "name": "y", - "nativeSrc": "32622:1:62", - "nodeType": "YulIdentifier", - "src": "32622:1:62" - }, - { - "arguments": [ - { - "name": "product", - "nativeSrc": "32629:7:62", - "nodeType": "YulIdentifier", - "src": "32629:7:62" - }, - { - "name": "x", - "nativeSrc": "32638:1:62", - "nodeType": "YulIdentifier", - "src": "32638:1:62" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "32625:3:62", - "nodeType": "YulIdentifier", - "src": "32625:3:62" - }, - "nativeSrc": "32625:15:62", - "nodeType": "YulFunctionCall", - "src": "32625:15:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "32619:2:62", - "nodeType": "YulIdentifier", - "src": "32619:2:62" - }, - "nativeSrc": "32619:22:62", - "nodeType": "YulFunctionCall", - "src": "32619:22:62" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "32605:2:62", - "nodeType": "YulIdentifier", - "src": "32605:2:62" - }, - "nativeSrc": "32605:37:62", - "nodeType": "YulFunctionCall", - "src": "32605:37:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "32598:6:62", - "nodeType": "YulIdentifier", - "src": "32598:6:62" - }, - "nativeSrc": "32598:45:62", - "nodeType": "YulFunctionCall", - "src": "32598:45:62" - }, - "nativeSrc": "32595:71:62", - "nodeType": "YulIf", - "src": "32595:71:62" - } - ] - }, - "name": "checked_mul_t_uint256", - "nativeSrc": "32504:168:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "32535:1:62", - "nodeType": "YulTypedName", - "src": "32535:1:62", - "type": "" - }, - { - "name": "y", - "nativeSrc": "32538:1:62", - "nodeType": "YulTypedName", - "src": "32538:1:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "product", - "nativeSrc": "32544:7:62", - "nodeType": "YulTypedName", - "src": "32544:7:62", - "type": "" - } - ], - "src": "32504:168:62" - }, - { - "body": { - "nativeSrc": "32806:119:62", - "nodeType": "YulBlock", - "src": "32806:119:62", - "statements": [ - { - "nativeSrc": "32816:26:62", - "nodeType": "YulAssignment", - "src": "32816:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "32828:9:62", - "nodeType": "YulIdentifier", - "src": "32828:9:62" - }, - { - "kind": "number", - "nativeSrc": "32839:2:62", - "nodeType": "YulLiteral", - "src": "32839:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "32824:3:62", - "nodeType": "YulIdentifier", - "src": "32824:3:62" - }, - "nativeSrc": "32824:18:62", - "nodeType": "YulFunctionCall", - "src": "32824:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "32816:4:62", - "nodeType": "YulIdentifier", - "src": "32816:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "32858:9:62", - "nodeType": "YulIdentifier", - "src": "32858:9:62" - }, - { - "name": "value0", - "nativeSrc": "32869:6:62", - "nodeType": "YulIdentifier", - "src": "32869:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "32851:6:62", - "nodeType": "YulIdentifier", - "src": "32851:6:62" - }, - "nativeSrc": "32851:25:62", - "nodeType": "YulFunctionCall", - "src": "32851:25:62" - }, - "nativeSrc": "32851:25:62", - "nodeType": "YulExpressionStatement", - "src": "32851:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "32896:9:62", - "nodeType": "YulIdentifier", - "src": "32896:9:62" - }, - { - "kind": "number", - "nativeSrc": "32907:2:62", - "nodeType": "YulLiteral", - "src": "32907:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "32892:3:62", - "nodeType": "YulIdentifier", - "src": "32892:3:62" - }, - "nativeSrc": "32892:18:62", - "nodeType": "YulFunctionCall", - "src": "32892:18:62" - }, - { - "name": "value1", - "nativeSrc": "32912:6:62", - "nodeType": "YulIdentifier", - "src": "32912:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "32885:6:62", - "nodeType": "YulIdentifier", - "src": "32885:6:62" - }, - "nativeSrc": "32885:34:62", - "nodeType": "YulFunctionCall", - "src": "32885:34:62" - }, - "nativeSrc": "32885:34:62", - "nodeType": "YulExpressionStatement", - "src": "32885:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed", - "nativeSrc": "32677:248:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "32767:9:62", - "nodeType": "YulTypedName", - "src": "32767:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "32778:6:62", - "nodeType": "YulTypedName", - "src": "32778:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "32786:6:62", - "nodeType": "YulTypedName", - "src": "32786:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "32797:4:62", - "nodeType": "YulTypedName", - "src": "32797:4:62", - "type": "" - } - ], - "src": "32677:248:62" - }, - { - "body": { - "nativeSrc": "33102:236:62", - "nodeType": "YulBlock", - "src": "33102:236:62", - "statements": [ - { - "nativeSrc": "33112:26:62", - "nodeType": "YulAssignment", - "src": "33112:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "33124:9:62", - "nodeType": "YulIdentifier", - "src": "33124:9:62" - }, - { - "kind": "number", - "nativeSrc": "33135:2:62", - "nodeType": "YulLiteral", - "src": "33135:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "33120:3:62", - "nodeType": "YulIdentifier", - "src": "33120:3:62" - }, - "nativeSrc": "33120:18:62", - "nodeType": "YulFunctionCall", - "src": "33120:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "33112:4:62", - "nodeType": "YulIdentifier", - "src": "33112:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "33154:9:62", - "nodeType": "YulIdentifier", - "src": "33154:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "33169:6:62", - "nodeType": "YulIdentifier", - "src": "33169:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "33185:3:62", - "nodeType": "YulLiteral", - "src": "33185:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "33190:1:62", - "nodeType": "YulLiteral", - "src": "33190:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "33181:3:62", - "nodeType": "YulIdentifier", - "src": "33181:3:62" - }, - "nativeSrc": "33181:11:62", - "nodeType": "YulFunctionCall", - "src": "33181:11:62" - }, - { - "kind": "number", - "nativeSrc": "33194:1:62", - "nodeType": "YulLiteral", - "src": "33194:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "33177:3:62", - "nodeType": "YulIdentifier", - "src": "33177:3:62" - }, - "nativeSrc": "33177:19:62", - "nodeType": "YulFunctionCall", - "src": "33177:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "33165:3:62", - "nodeType": "YulIdentifier", - "src": "33165:3:62" - }, - "nativeSrc": "33165:32:62", - "nodeType": "YulFunctionCall", - "src": "33165:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "33147:6:62", - "nodeType": "YulIdentifier", - "src": "33147:6:62" - }, - "nativeSrc": "33147:51:62", - "nodeType": "YulFunctionCall", - "src": "33147:51:62" - }, - "nativeSrc": "33147:51:62", - "nodeType": "YulExpressionStatement", - "src": "33147:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "33218:9:62", - "nodeType": "YulIdentifier", - "src": "33218:9:62" - }, - { - "kind": "number", - "nativeSrc": "33229:2:62", - "nodeType": "YulLiteral", - "src": "33229:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "33214:3:62", - "nodeType": "YulIdentifier", - "src": "33214:3:62" - }, - "nativeSrc": "33214:18:62", - "nodeType": "YulFunctionCall", - "src": "33214:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "33238:6:62", - "nodeType": "YulIdentifier", - "src": "33238:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "33254:3:62", - "nodeType": "YulLiteral", - "src": "33254:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "33259:1:62", - "nodeType": "YulLiteral", - "src": "33259:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "33250:3:62", - "nodeType": "YulIdentifier", - "src": "33250:3:62" - }, - "nativeSrc": "33250:11:62", - "nodeType": "YulFunctionCall", - "src": "33250:11:62" - }, - { - "kind": "number", - "nativeSrc": "33263:1:62", - "nodeType": "YulLiteral", - "src": "33263:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "33246:3:62", - "nodeType": "YulIdentifier", - "src": "33246:3:62" - }, - "nativeSrc": "33246:19:62", - "nodeType": "YulFunctionCall", - "src": "33246:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "33234:3:62", - "nodeType": "YulIdentifier", - "src": "33234:3:62" - }, - "nativeSrc": "33234:32:62", - "nodeType": "YulFunctionCall", - "src": "33234:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "33207:6:62", - "nodeType": "YulIdentifier", - "src": "33207:6:62" - }, - "nativeSrc": "33207:60:62", - "nodeType": "YulFunctionCall", - "src": "33207:60:62" - }, - "nativeSrc": "33207:60:62", - "nodeType": "YulExpressionStatement", - "src": "33207:60:62" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "33305:6:62", - "nodeType": "YulIdentifier", - "src": "33305:6:62" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "33317:9:62", - "nodeType": "YulIdentifier", - "src": "33317:9:62" - }, - { - "kind": "number", - "nativeSrc": "33328:2:62", - "nodeType": "YulLiteral", - "src": "33328:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "33313:3:62", - "nodeType": "YulIdentifier", - "src": "33313:3:62" - }, - "nativeSrc": "33313:18:62", - "nodeType": "YulFunctionCall", - "src": "33313:18:62" - } - ], - "functionName": { - "name": "abi_encode_enum_PaymentTypes", - "nativeSrc": "33276:28:62", - "nodeType": "YulIdentifier", - "src": "33276:28:62" - }, - "nativeSrc": "33276:56:62", - "nodeType": "YulFunctionCall", - "src": "33276:56:62" - }, - "nativeSrc": "33276:56:62", - "nodeType": "YulExpressionStatement", - "src": "33276:56:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address_t_enum$_PaymentTypes_$2166__to_t_address_t_address_t_uint8__fromStack_reversed", - "nativeSrc": "32930:408:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "33055:9:62", - "nodeType": "YulTypedName", - "src": "33055:9:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "33066:6:62", - "nodeType": "YulTypedName", - "src": "33066:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "33074:6:62", - "nodeType": "YulTypedName", - "src": "33074:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "33082:6:62", - "nodeType": "YulTypedName", - "src": "33082:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "33093:4:62", - "nodeType": "YulTypedName", - "src": "33093:4:62", - "type": "" - } - ], - "src": "32930:408:62" - }, - { - "body": { - "nativeSrc": "33456:708:62", - "nodeType": "YulBlock", - "src": "33456:708:62", - "statements": [ - { - "nativeSrc": "33466:43:62", - "nodeType": "YulVariableDeclaration", - "src": "33466:43:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "33484:7:62", - "nodeType": "YulIdentifier", - "src": "33484:7:62" - }, - { - "name": "headStart", - "nativeSrc": "33493:9:62", - "nodeType": "YulIdentifier", - "src": "33493:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "33480:3:62", - "nodeType": "YulIdentifier", - "src": "33480:3:62" - }, - "nativeSrc": "33480:23:62", - "nodeType": "YulFunctionCall", - "src": "33480:23:62" - }, - { - "kind": "number", - "nativeSrc": "33505:3:62", - "nodeType": "YulLiteral", - "src": "33505:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "33476:3:62", - "nodeType": "YulIdentifier", - "src": "33476:3:62" - }, - "nativeSrc": "33476:33:62", - "nodeType": "YulFunctionCall", - "src": "33476:33:62" - }, - "variables": [ - { - "name": "_1", - "nativeSrc": "33470:2:62", - "nodeType": "YulTypedName", - "src": "33470:2:62", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "33524:16:62", - "nodeType": "YulBlock", - "src": "33524:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "33533:1:62", - "nodeType": "YulLiteral", - "src": "33533:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "33536:1:62", - "nodeType": "YulLiteral", - "src": "33536:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "33526:6:62", - "nodeType": "YulIdentifier", - "src": "33526:6:62" - }, - "nativeSrc": "33526:12:62", - "nodeType": "YulFunctionCall", - "src": "33526:12:62" - }, - "nativeSrc": "33526:12:62", - "nodeType": "YulExpressionStatement", - "src": "33526:12:62" - } - ] - }, - "condition": { - "name": "_1", - "nativeSrc": "33521:2:62", - "nodeType": "YulIdentifier", - "src": "33521:2:62" - }, - "nativeSrc": "33518:22:62", - "nodeType": "YulIf", - "src": "33518:22:62" - }, - { - "nativeSrc": "33549:7:62", - "nodeType": "YulAssignment", - "src": "33549:7:62", - "value": { - "kind": "number", - "nativeSrc": "33555:1:62", - "nodeType": "YulLiteral", - "src": "33555:1:62", - "type": "", - "value": "0" - }, - "variableNames": [ - { - "name": "_1", - "nativeSrc": "33549:2:62", - "nodeType": "YulIdentifier", - "src": "33549:2:62" - } - ] - }, - { - "nativeSrc": "33565:30:62", - "nodeType": "YulVariableDeclaration", - "src": "33565:30:62", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "33578:15:62", - "nodeType": "YulIdentifier", - "src": "33578:15:62" - }, - "nativeSrc": "33578:17:62", - "nodeType": "YulFunctionCall", - "src": "33578:17:62" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "33569:5:62", - "nodeType": "YulTypedName", - "src": "33569:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "33604:17:62", - "nodeType": "YulVariableDeclaration", - "src": "33604:17:62", - "value": { - "name": "_1", - "nativeSrc": "33619:2:62", - "nodeType": "YulIdentifier", - "src": "33619:2:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "33608:7:62", - "nodeType": "YulTypedName", - "src": "33608:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "33630:27:62", - "nodeType": "YulAssignment", - "src": "33630:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "33647:9:62", - "nodeType": "YulIdentifier", - "src": "33647:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "33641:5:62", - "nodeType": "YulIdentifier", - "src": "33641:5:62" - }, - "nativeSrc": "33641:16:62", - "nodeType": "YulFunctionCall", - "src": "33641:16:62" - }, - "variableNames": [ - { - "name": "value_1", - "nativeSrc": "33630:7:62", - "nodeType": "YulIdentifier", - "src": "33630:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "33673:5:62", - "nodeType": "YulIdentifier", - "src": "33673:5:62" - }, - { - "name": "value_1", - "nativeSrc": "33680:7:62", - "nodeType": "YulIdentifier", - "src": "33680:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "33666:6:62", - "nodeType": "YulIdentifier", - "src": "33666:6:62" - }, - "nativeSrc": "33666:22:62", - "nodeType": "YulFunctionCall", - "src": "33666:22:62" - }, - "nativeSrc": "33666:22:62", - "nodeType": "YulExpressionStatement", - "src": "33666:22:62" - }, - { - "nativeSrc": "33697:17:62", - "nodeType": "YulVariableDeclaration", - "src": "33697:17:62", - "value": { - "name": "_1", - "nativeSrc": "33712:2:62", - "nodeType": "YulIdentifier", - "src": "33712:2:62" - }, - "variables": [ - { - "name": "value_2", - "nativeSrc": "33701:7:62", - "nodeType": "YulTypedName", - "src": "33701:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "33723:36:62", - "nodeType": "YulAssignment", - "src": "33723:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "33744:9:62", - "nodeType": "YulIdentifier", - "src": "33744:9:62" - }, - { - "kind": "number", - "nativeSrc": "33755:2:62", - "nodeType": "YulLiteral", - "src": "33755:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "33740:3:62", - "nodeType": "YulIdentifier", - "src": "33740:3:62" - }, - "nativeSrc": "33740:18:62", - "nodeType": "YulFunctionCall", - "src": "33740:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "33734:5:62", - "nodeType": "YulIdentifier", - "src": "33734:5:62" - }, - "nativeSrc": "33734:25:62", - "nodeType": "YulFunctionCall", - "src": "33734:25:62" - }, - "variableNames": [ - { - "name": "value_2", - "nativeSrc": "33723:7:62", - "nodeType": "YulIdentifier", - "src": "33723:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "33779:5:62", - "nodeType": "YulIdentifier", - "src": "33779:5:62" - }, - { - "kind": "number", - "nativeSrc": "33786:2:62", - "nodeType": "YulLiteral", - "src": "33786:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "33775:3:62", - "nodeType": "YulIdentifier", - "src": "33775:3:62" - }, - "nativeSrc": "33775:14:62", - "nodeType": "YulFunctionCall", - "src": "33775:14:62" - }, - { - "name": "value_2", - "nativeSrc": "33791:7:62", - "nodeType": "YulIdentifier", - "src": "33791:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "33768:6:62", - "nodeType": "YulIdentifier", - "src": "33768:6:62" - }, - "nativeSrc": "33768:31:62", - "nodeType": "YulFunctionCall", - "src": "33768:31:62" - }, - "nativeSrc": "33768:31:62", - "nodeType": "YulExpressionStatement", - "src": "33768:31:62" - }, - { - "nativeSrc": "33808:17:62", - "nodeType": "YulVariableDeclaration", - "src": "33808:17:62", - "value": { - "name": "_1", - "nativeSrc": "33823:2:62", - "nodeType": "YulIdentifier", - "src": "33823:2:62" - }, - "variables": [ - { - "name": "value_3", - "nativeSrc": "33812:7:62", - "nodeType": "YulTypedName", - "src": "33812:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "33834:36:62", - "nodeType": "YulAssignment", - "src": "33834:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "33855:9:62", - "nodeType": "YulIdentifier", - "src": "33855:9:62" - }, - { - "kind": "number", - "nativeSrc": "33866:2:62", - "nodeType": "YulLiteral", - "src": "33866:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "33851:3:62", - "nodeType": "YulIdentifier", - "src": "33851:3:62" - }, - "nativeSrc": "33851:18:62", - "nodeType": "YulFunctionCall", - "src": "33851:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "33845:5:62", - "nodeType": "YulIdentifier", - "src": "33845:5:62" - }, - "nativeSrc": "33845:25:62", - "nodeType": "YulFunctionCall", - "src": "33845:25:62" - }, - "variableNames": [ - { - "name": "value_3", - "nativeSrc": "33834:7:62", - "nodeType": "YulIdentifier", - "src": "33834:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "33890:5:62", - "nodeType": "YulIdentifier", - "src": "33890:5:62" - }, - { - "kind": "number", - "nativeSrc": "33897:2:62", - "nodeType": "YulLiteral", - "src": "33897:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "33886:3:62", - "nodeType": "YulIdentifier", - "src": "33886:3:62" - }, - "nativeSrc": "33886:14:62", - "nodeType": "YulFunctionCall", - "src": "33886:14:62" - }, - { - "name": "value_3", - "nativeSrc": "33902:7:62", - "nodeType": "YulIdentifier", - "src": "33902:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "33879:6:62", - "nodeType": "YulIdentifier", - "src": "33879:6:62" - }, - "nativeSrc": "33879:31:62", - "nodeType": "YulFunctionCall", - "src": "33879:31:62" - }, - "nativeSrc": "33879:31:62", - "nodeType": "YulExpressionStatement", - "src": "33879:31:62" - }, - { - "nativeSrc": "33919:17:62", - "nodeType": "YulVariableDeclaration", - "src": "33919:17:62", - "value": { - "name": "_1", - "nativeSrc": "33934:2:62", - "nodeType": "YulIdentifier", - "src": "33934:2:62" - }, - "variables": [ - { - "name": "value_4", - "nativeSrc": "33923:7:62", - "nodeType": "YulTypedName", - "src": "33923:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "33945:36:62", - "nodeType": "YulAssignment", - "src": "33945:36:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "33966:9:62", - "nodeType": "YulIdentifier", - "src": "33966:9:62" - }, - { - "kind": "number", - "nativeSrc": "33977:2:62", - "nodeType": "YulLiteral", - "src": "33977:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "33962:3:62", - "nodeType": "YulIdentifier", - "src": "33962:3:62" - }, - "nativeSrc": "33962:18:62", - "nodeType": "YulFunctionCall", - "src": "33962:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "33956:5:62", - "nodeType": "YulIdentifier", - "src": "33956:5:62" - }, - "nativeSrc": "33956:25:62", - "nodeType": "YulFunctionCall", - "src": "33956:25:62" - }, - "variableNames": [ - { - "name": "value_4", - "nativeSrc": "33945:7:62", - "nodeType": "YulIdentifier", - "src": "33945:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "34001:5:62", - "nodeType": "YulIdentifier", - "src": "34001:5:62" - }, - { - "kind": "number", - "nativeSrc": "34008:2:62", - "nodeType": "YulLiteral", - "src": "34008:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "33997:3:62", - "nodeType": "YulIdentifier", - "src": "33997:3:62" - }, - "nativeSrc": "33997:14:62", - "nodeType": "YulFunctionCall", - "src": "33997:14:62" - }, - { - "name": "value_4", - "nativeSrc": "34013:7:62", - "nodeType": "YulIdentifier", - "src": "34013:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "33990:6:62", - "nodeType": "YulIdentifier", - "src": "33990:6:62" - }, - "nativeSrc": "33990:31:62", - "nodeType": "YulFunctionCall", - "src": "33990:31:62" - }, - "nativeSrc": "33990:31:62", - "nodeType": "YulExpressionStatement", - "src": "33990:31:62" - }, - { - "nativeSrc": "34030:17:62", - "nodeType": "YulVariableDeclaration", - "src": "34030:17:62", - "value": { - "name": "_1", - "nativeSrc": "34045:2:62", - "nodeType": "YulIdentifier", - "src": "34045:2:62" - }, - "variables": [ - { - "name": "value_5", - "nativeSrc": "34034:7:62", - "nodeType": "YulTypedName", - "src": "34034:7:62", - "type": "" - } - ] - }, - { - "nativeSrc": "34056:37:62", - "nodeType": "YulAssignment", - "src": "34056:37:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "34077:9:62", - "nodeType": "YulIdentifier", - "src": "34077:9:62" - }, - { - "kind": "number", - "nativeSrc": "34088:3:62", - "nodeType": "YulLiteral", - "src": "34088:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34073:3:62", - "nodeType": "YulIdentifier", - "src": "34073:3:62" - }, - "nativeSrc": "34073:19:62", - "nodeType": "YulFunctionCall", - "src": "34073:19:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "34067:5:62", - "nodeType": "YulIdentifier", - "src": "34067:5:62" - }, - "nativeSrc": "34067:26:62", - "nodeType": "YulFunctionCall", - "src": "34067:26:62" - }, - "variableNames": [ - { - "name": "value_5", - "nativeSrc": "34056:7:62", - "nodeType": "YulIdentifier", - "src": "34056:7:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "34113:5:62", - "nodeType": "YulIdentifier", - "src": "34113:5:62" - }, - { - "kind": "number", - "nativeSrc": "34120:3:62", - "nodeType": "YulLiteral", - "src": "34120:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34109:3:62", - "nodeType": "YulIdentifier", - "src": "34109:3:62" - }, - "nativeSrc": "34109:15:62", - "nodeType": "YulFunctionCall", - "src": "34109:15:62" - }, - { - "name": "value_5", - "nativeSrc": "34126:7:62", - "nodeType": "YulIdentifier", - "src": "34126:7:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "34102:6:62", - "nodeType": "YulIdentifier", - "src": "34102:6:62" - }, - "nativeSrc": "34102:32:62", - "nodeType": "YulFunctionCall", - "src": "34102:32:62" - }, - "nativeSrc": "34102:32:62", - "nodeType": "YulExpressionStatement", - "src": "34102:32:62" - }, - { - "nativeSrc": "34143:15:62", - "nodeType": "YulAssignment", - "src": "34143:15:62", - "value": { - "name": "value", - "nativeSrc": "34153:5:62", - "nodeType": "YulIdentifier", - "src": "34153:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "34143:6:62", - "nodeType": "YulIdentifier", - "src": "34143:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_struct$_DelegationPool_$3748_memory_ptr_fromMemory", - "nativeSrc": "33343:821:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "33422:9:62", - "nodeType": "YulTypedName", - "src": "33422:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "33433:7:62", - "nodeType": "YulTypedName", - "src": "33433:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "33445:6:62", - "nodeType": "YulTypedName", - "src": "33445:6:62", - "type": "" - } - ], - "src": "33343:821:62" - }, - { - "body": { - "nativeSrc": "34326:214:62", - "nodeType": "YulBlock", - "src": "34326:214:62", - "statements": [ - { - "nativeSrc": "34336:26:62", - "nodeType": "YulAssignment", - "src": "34336:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "34348:9:62", - "nodeType": "YulIdentifier", - "src": "34348:9:62" - }, - { - "kind": "number", - "nativeSrc": "34359:2:62", - "nodeType": "YulLiteral", - "src": "34359:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34344:3:62", - "nodeType": "YulIdentifier", - "src": "34344:3:62" - }, - "nativeSrc": "34344:18:62", - "nodeType": "YulFunctionCall", - "src": "34344:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "34336:4:62", - "nodeType": "YulIdentifier", - "src": "34336:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "34378:9:62", - "nodeType": "YulIdentifier", - "src": "34378:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "34393:6:62", - "nodeType": "YulIdentifier", - "src": "34393:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "34409:3:62", - "nodeType": "YulLiteral", - "src": "34409:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "34414:1:62", - "nodeType": "YulLiteral", - "src": "34414:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "34405:3:62", - "nodeType": "YulIdentifier", - "src": "34405:3:62" - }, - "nativeSrc": "34405:11:62", - "nodeType": "YulFunctionCall", - "src": "34405:11:62" - }, - { - "kind": "number", - "nativeSrc": "34418:1:62", - "nodeType": "YulLiteral", - "src": "34418:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "34401:3:62", - "nodeType": "YulIdentifier", - "src": "34401:3:62" - }, - "nativeSrc": "34401:19:62", - "nodeType": "YulFunctionCall", - "src": "34401:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "34389:3:62", - "nodeType": "YulIdentifier", - "src": "34389:3:62" - }, - "nativeSrc": "34389:32:62", - "nodeType": "YulFunctionCall", - "src": "34389:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "34371:6:62", - "nodeType": "YulIdentifier", - "src": "34371:6:62" - }, - "nativeSrc": "34371:51:62", - "nodeType": "YulFunctionCall", - "src": "34371:51:62" - }, - "nativeSrc": "34371:51:62", - "nodeType": "YulExpressionStatement", - "src": "34371:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "34442:9:62", - "nodeType": "YulIdentifier", - "src": "34442:9:62" - }, - { - "kind": "number", - "nativeSrc": "34453:2:62", - "nodeType": "YulLiteral", - "src": "34453:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34438:3:62", - "nodeType": "YulIdentifier", - "src": "34438:3:62" - }, - "nativeSrc": "34438:18:62", - "nodeType": "YulFunctionCall", - "src": "34438:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "34462:6:62", - "nodeType": "YulIdentifier", - "src": "34462:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "34478:3:62", - "nodeType": "YulLiteral", - "src": "34478:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "34483:1:62", - "nodeType": "YulLiteral", - "src": "34483:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "34474:3:62", - "nodeType": "YulIdentifier", - "src": "34474:3:62" - }, - "nativeSrc": "34474:11:62", - "nodeType": "YulFunctionCall", - "src": "34474:11:62" - }, - { - "kind": "number", - "nativeSrc": "34487:1:62", - "nodeType": "YulLiteral", - "src": "34487:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "34470:3:62", - "nodeType": "YulIdentifier", - "src": "34470:3:62" - }, - "nativeSrc": "34470:19:62", - "nodeType": "YulFunctionCall", - "src": "34470:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "34458:3:62", - "nodeType": "YulIdentifier", - "src": "34458:3:62" - }, - "nativeSrc": "34458:32:62", - "nodeType": "YulFunctionCall", - "src": "34458:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "34431:6:62", - "nodeType": "YulIdentifier", - "src": "34431:6:62" - }, - "nativeSrc": "34431:60:62", - "nodeType": "YulFunctionCall", - "src": "34431:60:62" - }, - "nativeSrc": "34431:60:62", - "nodeType": "YulExpressionStatement", - "src": "34431:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "34511:9:62", - "nodeType": "YulIdentifier", - "src": "34511:9:62" - }, - { - "kind": "number", - "nativeSrc": "34522:2:62", - "nodeType": "YulLiteral", - "src": "34522:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34507:3:62", - "nodeType": "YulIdentifier", - "src": "34507:3:62" - }, - "nativeSrc": "34507:18:62", - "nodeType": "YulFunctionCall", - "src": "34507:18:62" - }, - { - "name": "value2", - "nativeSrc": "34527:6:62", - "nodeType": "YulIdentifier", - "src": "34527:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "34500:6:62", - "nodeType": "YulIdentifier", - "src": "34500:6:62" - }, - "nativeSrc": "34500:34:62", - "nodeType": "YulFunctionCall", - "src": "34500:34:62" - }, - "nativeSrc": "34500:34:62", - "nodeType": "YulExpressionStatement", - "src": "34500:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", - "nativeSrc": "34169:371:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "34279:9:62", - "nodeType": "YulTypedName", - "src": "34279:9:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "34290:6:62", - "nodeType": "YulTypedName", - "src": "34290:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "34298:6:62", - "nodeType": "YulTypedName", - "src": "34298:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "34306:6:62", - "nodeType": "YulTypedName", - "src": "34306:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "34317:4:62", - "nodeType": "YulTypedName", - "src": "34317:4:62", - "type": "" - } - ], - "src": "34169:371:62" - }, - { - "body": { - "nativeSrc": "34758:250:62", - "nodeType": "YulBlock", - "src": "34758:250:62", - "statements": [ - { - "nativeSrc": "34768:27:62", - "nodeType": "YulAssignment", - "src": "34768:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "34780:9:62", - "nodeType": "YulIdentifier", - "src": "34780:9:62" - }, - { - "kind": "number", - "nativeSrc": "34791:3:62", - "nodeType": "YulLiteral", - "src": "34791:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34776:3:62", - "nodeType": "YulIdentifier", - "src": "34776:3:62" - }, - "nativeSrc": "34776:19:62", - "nodeType": "YulFunctionCall", - "src": "34776:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "34768:4:62", - "nodeType": "YulIdentifier", - "src": "34768:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "34811:9:62", - "nodeType": "YulIdentifier", - "src": "34811:9:62" - }, - { - "name": "value0", - "nativeSrc": "34822:6:62", - "nodeType": "YulIdentifier", - "src": "34822:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "34804:6:62", - "nodeType": "YulIdentifier", - "src": "34804:6:62" - }, - "nativeSrc": "34804:25:62", - "nodeType": "YulFunctionCall", - "src": "34804:25:62" - }, - "nativeSrc": "34804:25:62", - "nodeType": "YulExpressionStatement", - "src": "34804:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "34849:9:62", - "nodeType": "YulIdentifier", - "src": "34849:9:62" - }, - { - "kind": "number", - "nativeSrc": "34860:2:62", - "nodeType": "YulLiteral", - "src": "34860:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34845:3:62", - "nodeType": "YulIdentifier", - "src": "34845:3:62" - }, - "nativeSrc": "34845:18:62", - "nodeType": "YulFunctionCall", - "src": "34845:18:62" - }, - { - "name": "value1", - "nativeSrc": "34865:6:62", - "nodeType": "YulIdentifier", - "src": "34865:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "34838:6:62", - "nodeType": "YulIdentifier", - "src": "34838:6:62" - }, - "nativeSrc": "34838:34:62", - "nodeType": "YulFunctionCall", - "src": "34838:34:62" - }, - "nativeSrc": "34838:34:62", - "nodeType": "YulExpressionStatement", - "src": "34838:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "34892:9:62", - "nodeType": "YulIdentifier", - "src": "34892:9:62" - }, - { - "kind": "number", - "nativeSrc": "34903:2:62", - "nodeType": "YulLiteral", - "src": "34903:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34888:3:62", - "nodeType": "YulIdentifier", - "src": "34888:3:62" - }, - "nativeSrc": "34888:18:62", - "nodeType": "YulFunctionCall", - "src": "34888:18:62" - }, - { - "name": "value2", - "nativeSrc": "34908:6:62", - "nodeType": "YulIdentifier", - "src": "34908:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "34881:6:62", - "nodeType": "YulIdentifier", - "src": "34881:6:62" - }, - "nativeSrc": "34881:34:62", - "nodeType": "YulFunctionCall", - "src": "34881:34:62" - }, - "nativeSrc": "34881:34:62", - "nodeType": "YulExpressionStatement", - "src": "34881:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "34935:9:62", - "nodeType": "YulIdentifier", - "src": "34935:9:62" - }, - { - "kind": "number", - "nativeSrc": "34946:2:62", - "nodeType": "YulLiteral", - "src": "34946:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34931:3:62", - "nodeType": "YulIdentifier", - "src": "34931:3:62" - }, - "nativeSrc": "34931:18:62", - "nodeType": "YulFunctionCall", - "src": "34931:18:62" - }, - { - "name": "value3", - "nativeSrc": "34951:6:62", - "nodeType": "YulIdentifier", - "src": "34951:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "34924:6:62", - "nodeType": "YulIdentifier", - "src": "34924:6:62" - }, - "nativeSrc": "34924:34:62", - "nodeType": "YulFunctionCall", - "src": "34924:34:62" - }, - "nativeSrc": "34924:34:62", - "nodeType": "YulExpressionStatement", - "src": "34924:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "34978:9:62", - "nodeType": "YulIdentifier", - "src": "34978:9:62" - }, - { - "kind": "number", - "nativeSrc": "34989:3:62", - "nodeType": "YulLiteral", - "src": "34989:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34974:3:62", - "nodeType": "YulIdentifier", - "src": "34974:3:62" - }, - "nativeSrc": "34974:19:62", - "nodeType": "YulFunctionCall", - "src": "34974:19:62" - }, - { - "name": "value4", - "nativeSrc": "34995:6:62", - "nodeType": "YulIdentifier", - "src": "34995:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "34967:6:62", - "nodeType": "YulIdentifier", - "src": "34967:6:62" - }, - "nativeSrc": "34967:35:62", - "nodeType": "YulFunctionCall", - "src": "34967:35:62" - }, - "nativeSrc": "34967:35:62", - "nodeType": "YulExpressionStatement", - "src": "34967:35:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_uint256_t_uint256_t_bytes32_t_uint256__fromStack_reversed", - "nativeSrc": "34545:463:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "34695:9:62", - "nodeType": "YulTypedName", - "src": "34695:9:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "34706:6:62", - "nodeType": "YulTypedName", - "src": "34706:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "34714:6:62", - "nodeType": "YulTypedName", - "src": "34714:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "34722:6:62", - "nodeType": "YulTypedName", - "src": "34722:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "34730:6:62", - "nodeType": "YulTypedName", - "src": "34730:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "34738:6:62", - "nodeType": "YulTypedName", - "src": "34738:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "34749:4:62", - "nodeType": "YulTypedName", - "src": "34749:4:62", - "type": "" - } - ], - "src": "34545:463:62" - }, - { - "body": { - "nativeSrc": "35170:214:62", - "nodeType": "YulBlock", - "src": "35170:214:62", - "statements": [ - { - "nativeSrc": "35180:26:62", - "nodeType": "YulAssignment", - "src": "35180:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "35192:9:62", - "nodeType": "YulIdentifier", - "src": "35192:9:62" - }, - { - "kind": "number", - "nativeSrc": "35203:2:62", - "nodeType": "YulLiteral", - "src": "35203:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "35188:3:62", - "nodeType": "YulIdentifier", - "src": "35188:3:62" - }, - "nativeSrc": "35188:18:62", - "nodeType": "YulFunctionCall", - "src": "35188:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "35180:4:62", - "nodeType": "YulIdentifier", - "src": "35180:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "35222:9:62", - "nodeType": "YulIdentifier", - "src": "35222:9:62" - }, - { - "name": "value0", - "nativeSrc": "35233:6:62", - "nodeType": "YulIdentifier", - "src": "35233:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "35215:6:62", - "nodeType": "YulIdentifier", - "src": "35215:6:62" - }, - "nativeSrc": "35215:25:62", - "nodeType": "YulFunctionCall", - "src": "35215:25:62" - }, - "nativeSrc": "35215:25:62", - "nodeType": "YulExpressionStatement", - "src": "35215:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "35260:9:62", - "nodeType": "YulIdentifier", - "src": "35260:9:62" - }, - { - "kind": "number", - "nativeSrc": "35271:2:62", - "nodeType": "YulLiteral", - "src": "35271:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "35256:3:62", - "nodeType": "YulIdentifier", - "src": "35256:3:62" - }, - "nativeSrc": "35256:18:62", - "nodeType": "YulFunctionCall", - "src": "35256:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "35280:6:62", - "nodeType": "YulIdentifier", - "src": "35280:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "35296:3:62", - "nodeType": "YulLiteral", - "src": "35296:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "35301:1:62", - "nodeType": "YulLiteral", - "src": "35301:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "35292:3:62", - "nodeType": "YulIdentifier", - "src": "35292:3:62" - }, - "nativeSrc": "35292:11:62", - "nodeType": "YulFunctionCall", - "src": "35292:11:62" - }, - { - "kind": "number", - "nativeSrc": "35305:1:62", - "nodeType": "YulLiteral", - "src": "35305:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "35288:3:62", - "nodeType": "YulIdentifier", - "src": "35288:3:62" - }, - "nativeSrc": "35288:19:62", - "nodeType": "YulFunctionCall", - "src": "35288:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "35276:3:62", - "nodeType": "YulIdentifier", - "src": "35276:3:62" - }, - "nativeSrc": "35276:32:62", - "nodeType": "YulFunctionCall", - "src": "35276:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "35249:6:62", - "nodeType": "YulIdentifier", - "src": "35249:6:62" - }, - "nativeSrc": "35249:60:62", - "nodeType": "YulFunctionCall", - "src": "35249:60:62" - }, - "nativeSrc": "35249:60:62", - "nodeType": "YulExpressionStatement", - "src": "35249:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "35329:9:62", - "nodeType": "YulIdentifier", - "src": "35329:9:62" - }, - { - "kind": "number", - "nativeSrc": "35340:2:62", - "nodeType": "YulLiteral", - "src": "35340:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "35325:3:62", - "nodeType": "YulIdentifier", - "src": "35325:3:62" - }, - "nativeSrc": "35325:18:62", - "nodeType": "YulFunctionCall", - "src": "35325:18:62" - }, - { - "arguments": [ - { - "name": "value2", - "nativeSrc": "35349:6:62", - "nodeType": "YulIdentifier", - "src": "35349:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "35365:3:62", - "nodeType": "YulLiteral", - "src": "35365:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "35370:1:62", - "nodeType": "YulLiteral", - "src": "35370:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "35361:3:62", - "nodeType": "YulIdentifier", - "src": "35361:3:62" - }, - "nativeSrc": "35361:11:62", - "nodeType": "YulFunctionCall", - "src": "35361:11:62" - }, - { - "kind": "number", - "nativeSrc": "35374:1:62", - "nodeType": "YulLiteral", - "src": "35374:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "35357:3:62", - "nodeType": "YulIdentifier", - "src": "35357:3:62" - }, - "nativeSrc": "35357:19:62", - "nodeType": "YulFunctionCall", - "src": "35357:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "35345:3:62", - "nodeType": "YulIdentifier", - "src": "35345:3:62" - }, - "nativeSrc": "35345:32:62", - "nodeType": "YulFunctionCall", - "src": "35345:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "35318:6:62", - "nodeType": "YulIdentifier", - "src": "35318:6:62" - }, - "nativeSrc": "35318:60:62", - "nodeType": "YulFunctionCall", - "src": "35318:60:62" - }, - "nativeSrc": "35318:60:62", - "nodeType": "YulExpressionStatement", - "src": "35318:60:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__fromStack_reversed", - "nativeSrc": "35013:371:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "35123:9:62", - "nodeType": "YulTypedName", - "src": "35123:9:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "35134:6:62", - "nodeType": "YulTypedName", - "src": "35134:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "35142:6:62", - "nodeType": "YulTypedName", - "src": "35142:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "35150:6:62", - "nodeType": "YulTypedName", - "src": "35150:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "35161:4:62", - "nodeType": "YulTypedName", - "src": "35161:4:62", - "type": "" - } - ], - "src": "35013:371:62" - }, - { - "body": { - "nativeSrc": "35592:230:62", - "nodeType": "YulBlock", - "src": "35592:230:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "35609:9:62", - "nodeType": "YulIdentifier", - "src": "35609:9:62" - }, - { - "kind": "number", - "nativeSrc": "35620:3:62", - "nodeType": "YulLiteral", - "src": "35620:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "35602:6:62", - "nodeType": "YulIdentifier", - "src": "35602:6:62" - }, - "nativeSrc": "35602:22:62", - "nodeType": "YulFunctionCall", - "src": "35602:22:62" - }, - "nativeSrc": "35602:22:62", - "nodeType": "YulExpressionStatement", - "src": "35602:22:62" - }, - { - "nativeSrc": "35633:54:62", - "nodeType": "YulAssignment", - "src": "35633:54:62", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "35659:6:62", - "nodeType": "YulIdentifier", - "src": "35659:6:62" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "35671:9:62", - "nodeType": "YulIdentifier", - "src": "35671:9:62" - }, - { - "kind": "number", - "nativeSrc": "35682:3:62", - "nodeType": "YulLiteral", - "src": "35682:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "35667:3:62", - "nodeType": "YulIdentifier", - "src": "35667:3:62" - }, - "nativeSrc": "35667:19:62", - "nodeType": "YulFunctionCall", - "src": "35667:19:62" - } - ], - "functionName": { - "name": "abi_encode_string", - "nativeSrc": "35641:17:62", - "nodeType": "YulIdentifier", - "src": "35641:17:62" - }, - "nativeSrc": "35641:46:62", - "nodeType": "YulFunctionCall", - "src": "35641:46:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "35633:4:62", - "nodeType": "YulIdentifier", - "src": "35633:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "35707:9:62", - "nodeType": "YulIdentifier", - "src": "35707:9:62" - }, - { - "kind": "number", - "nativeSrc": "35718:2:62", - "nodeType": "YulLiteral", - "src": "35718:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "35703:3:62", - "nodeType": "YulIdentifier", - "src": "35703:3:62" - }, - "nativeSrc": "35703:18:62", - "nodeType": "YulFunctionCall", - "src": "35703:18:62" - }, - { - "name": "value1", - "nativeSrc": "35723:6:62", - "nodeType": "YulIdentifier", - "src": "35723:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "35696:6:62", - "nodeType": "YulIdentifier", - "src": "35696:6:62" - }, - "nativeSrc": "35696:34:62", - "nodeType": "YulFunctionCall", - "src": "35696:34:62" - }, - "nativeSrc": "35696:34:62", - "nodeType": "YulExpressionStatement", - "src": "35696:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "35750:9:62", - "nodeType": "YulIdentifier", - "src": "35750:9:62" - }, - { - "kind": "number", - "nativeSrc": "35761:2:62", - "nodeType": "YulLiteral", - "src": "35761:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "35746:3:62", - "nodeType": "YulIdentifier", - "src": "35746:3:62" - }, - "nativeSrc": "35746:18:62", - "nodeType": "YulFunctionCall", - "src": "35746:18:62" - }, - { - "name": "value2", - "nativeSrc": "35766:6:62", - "nodeType": "YulIdentifier", - "src": "35766:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "35739:6:62", - "nodeType": "YulIdentifier", - "src": "35739:6:62" - }, - "nativeSrc": "35739:34:62", - "nodeType": "YulFunctionCall", - "src": "35739:34:62" - }, - "nativeSrc": "35739:34:62", - "nodeType": "YulExpressionStatement", - "src": "35739:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "35793:9:62", - "nodeType": "YulIdentifier", - "src": "35793:9:62" - }, - { - "kind": "number", - "nativeSrc": "35804:2:62", - "nodeType": "YulLiteral", - "src": "35804:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "35789:3:62", - "nodeType": "YulIdentifier", - "src": "35789:3:62" - }, - "nativeSrc": "35789:18:62", - "nodeType": "YulFunctionCall", - "src": "35789:18:62" - }, - { - "name": "value3", - "nativeSrc": "35809:6:62", - "nodeType": "YulIdentifier", - "src": "35809:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "35782:6:62", - "nodeType": "YulIdentifier", - "src": "35782:6:62" - }, - "nativeSrc": "35782:34:62", - "nodeType": "YulFunctionCall", - "src": "35782:34:62" - }, - "nativeSrc": "35782:34:62", - "nodeType": "YulExpressionStatement", - "src": "35782:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256__to_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "35389:433:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "35537:9:62", - "nodeType": "YulTypedName", - "src": "35537:9:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "35548:6:62", - "nodeType": "YulTypedName", - "src": "35548:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "35556:6:62", - "nodeType": "YulTypedName", - "src": "35556:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "35564:6:62", - "nodeType": "YulTypedName", - "src": "35564:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "35572:6:62", - "nodeType": "YulTypedName", - "src": "35572:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "35583:4:62", - "nodeType": "YulTypedName", - "src": "35583:4:62", - "type": "" - } - ], - "src": "35389:433:62" - }, - { - "body": { - "nativeSrc": "35933:266:62", - "nodeType": "YulBlock", - "src": "35933:266:62", - "statements": [ - { - "body": { - "nativeSrc": "35979:16:62", - "nodeType": "YulBlock", - "src": "35979:16:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "35988:1:62", - "nodeType": "YulLiteral", - "src": "35988:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "35991:1:62", - "nodeType": "YulLiteral", - "src": "35991:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "35981:6:62", - "nodeType": "YulIdentifier", - "src": "35981:6:62" - }, - "nativeSrc": "35981:12:62", - "nodeType": "YulFunctionCall", - "src": "35981:12:62" - }, - "nativeSrc": "35981:12:62", - "nodeType": "YulExpressionStatement", - "src": "35981:12:62" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "35954:7:62", - "nodeType": "YulIdentifier", - "src": "35954:7:62" - }, - { - "name": "headStart", - "nativeSrc": "35963:9:62", - "nodeType": "YulIdentifier", - "src": "35963:9:62" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "35950:3:62", - "nodeType": "YulIdentifier", - "src": "35950:3:62" - }, - "nativeSrc": "35950:23:62", - "nodeType": "YulFunctionCall", - "src": "35950:23:62" - }, - { - "kind": "number", - "nativeSrc": "35975:2:62", - "nodeType": "YulLiteral", - "src": "35975:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "35946:3:62", - "nodeType": "YulIdentifier", - "src": "35946:3:62" - }, - "nativeSrc": "35946:32:62", - "nodeType": "YulFunctionCall", - "src": "35946:32:62" - }, - "nativeSrc": "35943:52:62", - "nodeType": "YulIf", - "src": "35943:52:62" - }, - { - "nativeSrc": "36004:14:62", - "nodeType": "YulVariableDeclaration", - "src": "36004:14:62", - "value": { - "kind": "number", - "nativeSrc": "36017:1:62", - "nodeType": "YulLiteral", - "src": "36017:1:62", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "36008:5:62", - "nodeType": "YulTypedName", - "src": "36008:5:62", - "type": "" - } - ] - }, - { - "nativeSrc": "36027:25:62", - "nodeType": "YulAssignment", - "src": "36027:25:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "36042:9:62", - "nodeType": "YulIdentifier", - "src": "36042:9:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "36036:5:62", - "nodeType": "YulIdentifier", - "src": "36036:5:62" - }, - "nativeSrc": "36036:16:62", - "nodeType": "YulFunctionCall", - "src": "36036:16:62" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "36027:5:62", - "nodeType": "YulIdentifier", - "src": "36027:5:62" - } - ] - }, - { - "nativeSrc": "36061:15:62", - "nodeType": "YulAssignment", - "src": "36061:15:62", - "value": { - "name": "value", - "nativeSrc": "36071:5:62", - "nodeType": "YulIdentifier", - "src": "36071:5:62" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "36061:6:62", - "nodeType": "YulIdentifier", - "src": "36061:6:62" - } - ] - }, - { - "nativeSrc": "36085:40:62", - "nodeType": "YulVariableDeclaration", - "src": "36085:40:62", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "36110:9:62", - "nodeType": "YulIdentifier", - "src": "36110:9:62" - }, - { - "kind": "number", - "nativeSrc": "36121:2:62", - "nodeType": "YulLiteral", - "src": "36121:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "36106:3:62", - "nodeType": "YulIdentifier", - "src": "36106:3:62" - }, - "nativeSrc": "36106:18:62", - "nodeType": "YulFunctionCall", - "src": "36106:18:62" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "36100:5:62", - "nodeType": "YulIdentifier", - "src": "36100:5:62" - }, - "nativeSrc": "36100:25:62", - "nodeType": "YulFunctionCall", - "src": "36100:25:62" - }, - "variables": [ - { - "name": "value_1", - "nativeSrc": "36089:7:62", - "nodeType": "YulTypedName", - "src": "36089:7:62", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value_1", - "nativeSrc": "36159:7:62", - "nodeType": "YulIdentifier", - "src": "36159:7:62" - } - ], - "functionName": { - "name": "validator_revert_address", - "nativeSrc": "36134:24:62", - "nodeType": "YulIdentifier", - "src": "36134:24:62" - }, - "nativeSrc": "36134:33:62", - "nodeType": "YulFunctionCall", - "src": "36134:33:62" - }, - "nativeSrc": "36134:33:62", - "nodeType": "YulExpressionStatement", - "src": "36134:33:62" - }, - { - "nativeSrc": "36176:17:62", - "nodeType": "YulAssignment", - "src": "36176:17:62", - "value": { - "name": "value_1", - "nativeSrc": "36186:7:62", - "nodeType": "YulIdentifier", - "src": "36186:7:62" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "36176:6:62", - "nodeType": "YulIdentifier", - "src": "36176:6:62" - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256t_address_payable_fromMemory", - "nativeSrc": "35827:372:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "35891:9:62", - "nodeType": "YulTypedName", - "src": "35891:9:62", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "35902:7:62", - "nodeType": "YulTypedName", - "src": "35902:7:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "35914:6:62", - "nodeType": "YulTypedName", - "src": "35914:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "35922:6:62", - "nodeType": "YulTypedName", - "src": "35922:6:62", - "type": "" - } - ], - "src": "35827:372:62" - }, - { - "body": { - "nativeSrc": "36333:145:62", - "nodeType": "YulBlock", - "src": "36333:145:62", - "statements": [ - { - "nativeSrc": "36343:26:62", - "nodeType": "YulAssignment", - "src": "36343:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "36355:9:62", - "nodeType": "YulIdentifier", - "src": "36355:9:62" - }, - { - "kind": "number", - "nativeSrc": "36366:2:62", - "nodeType": "YulLiteral", - "src": "36366:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "36351:3:62", - "nodeType": "YulIdentifier", - "src": "36351:3:62" - }, - "nativeSrc": "36351:18:62", - "nodeType": "YulFunctionCall", - "src": "36351:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "36343:4:62", - "nodeType": "YulIdentifier", - "src": "36343:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "36385:9:62", - "nodeType": "YulIdentifier", - "src": "36385:9:62" - }, - { - "name": "value0", - "nativeSrc": "36396:6:62", - "nodeType": "YulIdentifier", - "src": "36396:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "36378:6:62", - "nodeType": "YulIdentifier", - "src": "36378:6:62" - }, - "nativeSrc": "36378:25:62", - "nodeType": "YulFunctionCall", - "src": "36378:25:62" - }, - "nativeSrc": "36378:25:62", - "nodeType": "YulExpressionStatement", - "src": "36378:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "36423:9:62", - "nodeType": "YulIdentifier", - "src": "36423:9:62" - }, - { - "kind": "number", - "nativeSrc": "36434:2:62", - "nodeType": "YulLiteral", - "src": "36434:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "36419:3:62", - "nodeType": "YulIdentifier", - "src": "36419:3:62" - }, - "nativeSrc": "36419:18:62", - "nodeType": "YulFunctionCall", - "src": "36419:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "36443:6:62", - "nodeType": "YulIdentifier", - "src": "36443:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "36459:3:62", - "nodeType": "YulLiteral", - "src": "36459:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "36464:1:62", - "nodeType": "YulLiteral", - "src": "36464:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "36455:3:62", - "nodeType": "YulIdentifier", - "src": "36455:3:62" - }, - "nativeSrc": "36455:11:62", - "nodeType": "YulFunctionCall", - "src": "36455:11:62" - }, - { - "kind": "number", - "nativeSrc": "36468:1:62", - "nodeType": "YulLiteral", - "src": "36468:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "36451:3:62", - "nodeType": "YulIdentifier", - "src": "36451:3:62" - }, - "nativeSrc": "36451:19:62", - "nodeType": "YulFunctionCall", - "src": "36451:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "36439:3:62", - "nodeType": "YulIdentifier", - "src": "36439:3:62" - }, - "nativeSrc": "36439:32:62", - "nodeType": "YulFunctionCall", - "src": "36439:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "36412:6:62", - "nodeType": "YulIdentifier", - "src": "36412:6:62" - }, - "nativeSrc": "36412:60:62", - "nodeType": "YulFunctionCall", - "src": "36412:60:62" - }, - "nativeSrc": "36412:60:62", - "nodeType": "YulExpressionStatement", - "src": "36412:60:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed", - "nativeSrc": "36204:274:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "36294:9:62", - "nodeType": "YulTypedName", - "src": "36294:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "36305:6:62", - "nodeType": "YulTypedName", - "src": "36305:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "36313:6:62", - "nodeType": "YulTypedName", - "src": "36313:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "36324:4:62", - "nodeType": "YulTypedName", - "src": "36324:4:62", - "type": "" - } - ], - "src": "36204:274:62" - }, - { - "body": { - "nativeSrc": "36530:89:62", - "nodeType": "YulBlock", - "src": "36530:89:62", - "statements": [ - { - "body": { - "nativeSrc": "36557:22:62", - "nodeType": "YulBlock", - "src": "36557:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "36559:16:62", - "nodeType": "YulIdentifier", - "src": "36559:16:62" - }, - "nativeSrc": "36559:18:62", - "nodeType": "YulFunctionCall", - "src": "36559:18:62" - }, - "nativeSrc": "36559:18:62", - "nodeType": "YulExpressionStatement", - "src": "36559:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nativeSrc": "36550:5:62", - "nodeType": "YulIdentifier", - "src": "36550:5:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "36543:6:62", - "nodeType": "YulIdentifier", - "src": "36543:6:62" - }, - "nativeSrc": "36543:13:62", - "nodeType": "YulFunctionCall", - "src": "36543:13:62" - }, - "nativeSrc": "36540:39:62", - "nodeType": "YulIf", - "src": "36540:39:62" - }, - { - "nativeSrc": "36588:25:62", - "nodeType": "YulAssignment", - "src": "36588:25:62", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "36599:5:62", - "nodeType": "YulIdentifier", - "src": "36599:5:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "36610:1:62", - "nodeType": "YulLiteral", - "src": "36610:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "36606:3:62", - "nodeType": "YulIdentifier", - "src": "36606:3:62" - }, - "nativeSrc": "36606:6:62", - "nodeType": "YulFunctionCall", - "src": "36606:6:62" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "36595:3:62", - "nodeType": "YulIdentifier", - "src": "36595:3:62" - }, - "nativeSrc": "36595:18:62", - "nodeType": "YulFunctionCall", - "src": "36595:18:62" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "36588:3:62", - "nodeType": "YulIdentifier", - "src": "36588:3:62" - } - ] - } - ] - }, - "name": "decrement_t_uint256", - "nativeSrc": "36483:136:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "36512:5:62", - "nodeType": "YulTypedName", - "src": "36512:5:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "36522:3:62", - "nodeType": "YulTypedName", - "src": "36522:3:62", - "type": "" - } - ], - "src": "36483:136:62" - }, - { - "body": { - "nativeSrc": "36671:88:62", - "nodeType": "YulBlock", - "src": "36671:88:62", - "statements": [ - { - "body": { - "nativeSrc": "36702:22:62", - "nodeType": "YulBlock", - "src": "36702:22:62", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "36704:16:62", - "nodeType": "YulIdentifier", - "src": "36704:16:62" - }, - "nativeSrc": "36704:18:62", - "nodeType": "YulFunctionCall", - "src": "36704:18:62" - }, - "nativeSrc": "36704:18:62", - "nodeType": "YulExpressionStatement", - "src": "36704:18:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nativeSrc": "36687:5:62", - "nodeType": "YulIdentifier", - "src": "36687:5:62" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "36698:1:62", - "nodeType": "YulLiteral", - "src": "36698:1:62", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "36694:3:62", - "nodeType": "YulIdentifier", - "src": "36694:3:62" - }, - "nativeSrc": "36694:6:62", - "nodeType": "YulFunctionCall", - "src": "36694:6:62" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "36684:2:62", - "nodeType": "YulIdentifier", - "src": "36684:2:62" - }, - "nativeSrc": "36684:17:62", - "nodeType": "YulFunctionCall", - "src": "36684:17:62" - }, - "nativeSrc": "36681:43:62", - "nodeType": "YulIf", - "src": "36681:43:62" - }, - { - "nativeSrc": "36733:20:62", - "nodeType": "YulAssignment", - "src": "36733:20:62", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "36744:5:62", - "nodeType": "YulIdentifier", - "src": "36744:5:62" - }, - { - "kind": "number", - "nativeSrc": "36751:1:62", - "nodeType": "YulLiteral", - "src": "36751:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "36740:3:62", - "nodeType": "YulIdentifier", - "src": "36740:3:62" - }, - "nativeSrc": "36740:13:62", - "nodeType": "YulFunctionCall", - "src": "36740:13:62" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "36733:3:62", - "nodeType": "YulIdentifier", - "src": "36733:3:62" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nativeSrc": "36624:135:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "36653:5:62", - "nodeType": "YulTypedName", - "src": "36653:5:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "36663:3:62", - "nodeType": "YulTypedName", - "src": "36663:3:62", - "type": "" - } - ], - "src": "36624:135:62" - }, - { - "body": { - "nativeSrc": "36919:231:62", - "nodeType": "YulBlock", - "src": "36919:231:62", - "statements": [ - { - "nativeSrc": "36929:26:62", - "nodeType": "YulAssignment", - "src": "36929:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "36941:9:62", - "nodeType": "YulIdentifier", - "src": "36941:9:62" - }, - { - "kind": "number", - "nativeSrc": "36952:2:62", - "nodeType": "YulLiteral", - "src": "36952:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "36937:3:62", - "nodeType": "YulIdentifier", - "src": "36937:3:62" - }, - "nativeSrc": "36937:18:62", - "nodeType": "YulFunctionCall", - "src": "36937:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "36929:4:62", - "nodeType": "YulIdentifier", - "src": "36929:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "36971:9:62", - "nodeType": "YulIdentifier", - "src": "36971:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "36986:6:62", - "nodeType": "YulIdentifier", - "src": "36986:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "37002:3:62", - "nodeType": "YulLiteral", - "src": "37002:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "37007:1:62", - "nodeType": "YulLiteral", - "src": "37007:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "36998:3:62", - "nodeType": "YulIdentifier", - "src": "36998:3:62" - }, - "nativeSrc": "36998:11:62", - "nodeType": "YulFunctionCall", - "src": "36998:11:62" - }, - { - "kind": "number", - "nativeSrc": "37011:1:62", - "nodeType": "YulLiteral", - "src": "37011:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "36994:3:62", - "nodeType": "YulIdentifier", - "src": "36994:3:62" - }, - "nativeSrc": "36994:19:62", - "nodeType": "YulFunctionCall", - "src": "36994:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "36982:3:62", - "nodeType": "YulIdentifier", - "src": "36982:3:62" - }, - "nativeSrc": "36982:32:62", - "nodeType": "YulFunctionCall", - "src": "36982:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "36964:6:62", - "nodeType": "YulIdentifier", - "src": "36964:6:62" - }, - "nativeSrc": "36964:51:62", - "nodeType": "YulFunctionCall", - "src": "36964:51:62" - }, - "nativeSrc": "36964:51:62", - "nodeType": "YulExpressionStatement", - "src": "36964:51:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37035:9:62", - "nodeType": "YulIdentifier", - "src": "37035:9:62" - }, - { - "kind": "number", - "nativeSrc": "37046:2:62", - "nodeType": "YulLiteral", - "src": "37046:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37031:3:62", - "nodeType": "YulIdentifier", - "src": "37031:3:62" - }, - "nativeSrc": "37031:18:62", - "nodeType": "YulFunctionCall", - "src": "37031:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "37055:6:62", - "nodeType": "YulIdentifier", - "src": "37055:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "37071:3:62", - "nodeType": "YulLiteral", - "src": "37071:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "37076:1:62", - "nodeType": "YulLiteral", - "src": "37076:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "37067:3:62", - "nodeType": "YulIdentifier", - "src": "37067:3:62" - }, - "nativeSrc": "37067:11:62", - "nodeType": "YulFunctionCall", - "src": "37067:11:62" - }, - { - "kind": "number", - "nativeSrc": "37080:1:62", - "nodeType": "YulLiteral", - "src": "37080:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "37063:3:62", - "nodeType": "YulIdentifier", - "src": "37063:3:62" - }, - "nativeSrc": "37063:19:62", - "nodeType": "YulFunctionCall", - "src": "37063:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "37051:3:62", - "nodeType": "YulIdentifier", - "src": "37051:3:62" - }, - "nativeSrc": "37051:32:62", - "nodeType": "YulFunctionCall", - "src": "37051:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "37024:6:62", - "nodeType": "YulIdentifier", - "src": "37024:6:62" - }, - "nativeSrc": "37024:60:62", - "nodeType": "YulFunctionCall", - "src": "37024:60:62" - }, - "nativeSrc": "37024:60:62", - "nodeType": "YulExpressionStatement", - "src": "37024:60:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37104:9:62", - "nodeType": "YulIdentifier", - "src": "37104:9:62" - }, - { - "kind": "number", - "nativeSrc": "37115:2:62", - "nodeType": "YulLiteral", - "src": "37115:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37100:3:62", - "nodeType": "YulIdentifier", - "src": "37100:3:62" - }, - "nativeSrc": "37100:18:62", - "nodeType": "YulFunctionCall", - "src": "37100:18:62" - }, - { - "arguments": [ - { - "name": "value2", - "nativeSrc": "37124:6:62", - "nodeType": "YulIdentifier", - "src": "37124:6:62" - }, - { - "kind": "number", - "nativeSrc": "37132:10:62", - "nodeType": "YulLiteral", - "src": "37132:10:62", - "type": "", - "value": "0xffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "37120:3:62", - "nodeType": "YulIdentifier", - "src": "37120:3:62" - }, - "nativeSrc": "37120:23:62", - "nodeType": "YulFunctionCall", - "src": "37120:23:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "37093:6:62", - "nodeType": "YulIdentifier", - "src": "37093:6:62" - }, - "nativeSrc": "37093:51:62", - "nodeType": "YulFunctionCall", - "src": "37093:51:62" - }, - "nativeSrc": "37093:51:62", - "nodeType": "YulExpressionStatement", - "src": "37093:51:62" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address_t_uint32__to_t_address_t_address_t_uint32__fromStack_reversed", - "nativeSrc": "36764:386:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "36872:9:62", - "nodeType": "YulTypedName", - "src": "36872:9:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "36883:6:62", - "nodeType": "YulTypedName", - "src": "36883:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "36891:6:62", - "nodeType": "YulTypedName", - "src": "36891:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "36899:6:62", - "nodeType": "YulTypedName", - "src": "36899:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "36910:4:62", - "nodeType": "YulTypedName", - "src": "36910:4:62", - "type": "" - } - ], - "src": "36764:386:62" - }, - { - "body": { - "nativeSrc": "37201:171:62", - "nodeType": "YulBlock", - "src": "37201:171:62", - "statements": [ - { - "body": { - "nativeSrc": "37232:111:62", - "nodeType": "YulBlock", - "src": "37232:111:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "37253:1:62", - "nodeType": "YulLiteral", - "src": "37253:1:62", - "type": "", - "value": "0" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "37260:3:62", - "nodeType": "YulLiteral", - "src": "37260:3:62", - "type": "", - "value": "224" - }, - { - "kind": "number", - "nativeSrc": "37265:10:62", - "nodeType": "YulLiteral", - "src": "37265:10:62", - "type": "", - "value": "0x4e487b71" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "37256:3:62", - "nodeType": "YulIdentifier", - "src": "37256:3:62" - }, - "nativeSrc": "37256:20:62", - "nodeType": "YulFunctionCall", - "src": "37256:20:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "37246:6:62", - "nodeType": "YulIdentifier", - "src": "37246:6:62" - }, - "nativeSrc": "37246:31:62", - "nodeType": "YulFunctionCall", - "src": "37246:31:62" - }, - "nativeSrc": "37246:31:62", - "nodeType": "YulExpressionStatement", - "src": "37246:31:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "37297:1:62", - "nodeType": "YulLiteral", - "src": "37297:1:62", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "37300:4:62", - "nodeType": "YulLiteral", - "src": "37300:4:62", - "type": "", - "value": "0x12" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "37290:6:62", - "nodeType": "YulIdentifier", - "src": "37290:6:62" - }, - "nativeSrc": "37290:15:62", - "nodeType": "YulFunctionCall", - "src": "37290:15:62" - }, - "nativeSrc": "37290:15:62", - "nodeType": "YulExpressionStatement", - "src": "37290:15:62" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "37325:1:62", - "nodeType": "YulLiteral", - "src": "37325:1:62", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "37328:4:62", - "nodeType": "YulLiteral", - "src": "37328:4:62", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "37318:6:62", - "nodeType": "YulIdentifier", - "src": "37318:6:62" - }, - "nativeSrc": "37318:15:62", - "nodeType": "YulFunctionCall", - "src": "37318:15:62" - }, - "nativeSrc": "37318:15:62", - "nodeType": "YulExpressionStatement", - "src": "37318:15:62" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "y", - "nativeSrc": "37221:1:62", - "nodeType": "YulIdentifier", - "src": "37221:1:62" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "37214:6:62", - "nodeType": "YulIdentifier", - "src": "37214:6:62" - }, - "nativeSrc": "37214:9:62", - "nodeType": "YulFunctionCall", - "src": "37214:9:62" - }, - "nativeSrc": "37211:132:62", - "nodeType": "YulIf", - "src": "37211:132:62" - }, - { - "nativeSrc": "37352:14:62", - "nodeType": "YulAssignment", - "src": "37352:14:62", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "37361:1:62", - "nodeType": "YulIdentifier", - "src": "37361:1:62" - }, - { - "name": "y", - "nativeSrc": "37364:1:62", - "nodeType": "YulIdentifier", - "src": "37364:1:62" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "37357:3:62", - "nodeType": "YulIdentifier", - "src": "37357:3:62" - }, - "nativeSrc": "37357:9:62", - "nodeType": "YulFunctionCall", - "src": "37357:9:62" - }, - "variableNames": [ - { - "name": "r", - "nativeSrc": "37352:1:62", - "nodeType": "YulIdentifier", - "src": "37352:1:62" - } - ] - } - ] - }, - "name": "checked_div_t_uint256", - "nativeSrc": "37155:217:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "x", - "nativeSrc": "37186:1:62", - "nodeType": "YulTypedName", - "src": "37186:1:62", - "type": "" - }, - { - "name": "y", - "nativeSrc": "37189:1:62", - "nodeType": "YulTypedName", - "src": "37189:1:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "r", - "nativeSrc": "37195:1:62", - "nodeType": "YulTypedName", - "src": "37195:1:62", - "type": "" - } - ], - "src": "37155:217:62" - }, - { - "body": { - "nativeSrc": "37551:158:62", - "nodeType": "YulBlock", - "src": "37551:158:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37568:9:62", - "nodeType": "YulIdentifier", - "src": "37568:9:62" - }, - { - "kind": "number", - "nativeSrc": "37579:2:62", - "nodeType": "YulLiteral", - "src": "37579:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "37561:6:62", - "nodeType": "YulIdentifier", - "src": "37561:6:62" - }, - "nativeSrc": "37561:21:62", - "nodeType": "YulFunctionCall", - "src": "37561:21:62" - }, - "nativeSrc": "37561:21:62", - "nodeType": "YulExpressionStatement", - "src": "37561:21:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37602:9:62", - "nodeType": "YulIdentifier", - "src": "37602:9:62" - }, - { - "kind": "number", - "nativeSrc": "37613:2:62", - "nodeType": "YulLiteral", - "src": "37613:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37598:3:62", - "nodeType": "YulIdentifier", - "src": "37598:3:62" - }, - "nativeSrc": "37598:18:62", - "nodeType": "YulFunctionCall", - "src": "37598:18:62" - }, - { - "kind": "number", - "nativeSrc": "37618:1:62", - "nodeType": "YulLiteral", - "src": "37618:1:62", - "type": "", - "value": "9" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "37591:6:62", - "nodeType": "YulIdentifier", - "src": "37591:6:62" - }, - "nativeSrc": "37591:29:62", - "nodeType": "YulFunctionCall", - "src": "37591:29:62" - }, - "nativeSrc": "37591:29:62", - "nodeType": "YulExpressionStatement", - "src": "37591:29:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37640:9:62", - "nodeType": "YulIdentifier", - "src": "37640:9:62" - }, - { - "kind": "number", - "nativeSrc": "37651:2:62", - "nodeType": "YulLiteral", - "src": "37651:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37636:3:62", - "nodeType": "YulIdentifier", - "src": "37636:3:62" - }, - "nativeSrc": "37636:18:62", - "nodeType": "YulFunctionCall", - "src": "37636:18:62" - }, - { - "hexValue": "217472616e73666572", - "kind": "string", - "nativeSrc": "37656:11:62", - "nodeType": "YulLiteral", - "src": "37656:11:62", - "type": "", - "value": "!transfer" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "37629:6:62", - "nodeType": "YulIdentifier", - "src": "37629:6:62" - }, - "nativeSrc": "37629:39:62", - "nodeType": "YulFunctionCall", - "src": "37629:39:62" - }, - "nativeSrc": "37629:39:62", - "nodeType": "YulExpressionStatement", - "src": "37629:39:62" - }, - { - "nativeSrc": "37677:26:62", - "nodeType": "YulAssignment", - "src": "37677:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37689:9:62", - "nodeType": "YulIdentifier", - "src": "37689:9:62" - }, - { - "kind": "number", - "nativeSrc": "37700:2:62", - "nodeType": "YulLiteral", - "src": "37700:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37685:3:62", - "nodeType": "YulIdentifier", - "src": "37685:3:62" - }, - "nativeSrc": "37685:18:62", - "nodeType": "YulFunctionCall", - "src": "37685:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "37677:4:62", - "nodeType": "YulIdentifier", - "src": "37677:4:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "37377:332:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "37528:9:62", - "nodeType": "YulTypedName", - "src": "37528:9:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "37542:4:62", - "nodeType": "YulTypedName", - "src": "37542:4:62", - "type": "" - } - ], - "src": "37377:332:62" - }, - { - "body": { - "nativeSrc": "37841:153:62", - "nodeType": "YulBlock", - "src": "37841:153:62", - "statements": [ - { - "nativeSrc": "37851:26:62", - "nodeType": "YulAssignment", - "src": "37851:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37863:9:62", - "nodeType": "YulIdentifier", - "src": "37863:9:62" - }, - { - "kind": "number", - "nativeSrc": "37874:2:62", - "nodeType": "YulLiteral", - "src": "37874:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37859:3:62", - "nodeType": "YulIdentifier", - "src": "37859:3:62" - }, - "nativeSrc": "37859:18:62", - "nodeType": "YulFunctionCall", - "src": "37859:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "37851:4:62", - "nodeType": "YulIdentifier", - "src": "37851:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37893:9:62", - "nodeType": "YulIdentifier", - "src": "37893:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "37908:6:62", - "nodeType": "YulIdentifier", - "src": "37908:6:62" - }, - { - "kind": "number", - "nativeSrc": "37916:10:62", - "nodeType": "YulLiteral", - "src": "37916:10:62", - "type": "", - "value": "0xffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "37904:3:62", - "nodeType": "YulIdentifier", - "src": "37904:3:62" - }, - "nativeSrc": "37904:23:62", - "nodeType": "YulFunctionCall", - "src": "37904:23:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "37886:6:62", - "nodeType": "YulIdentifier", - "src": "37886:6:62" - }, - "nativeSrc": "37886:42:62", - "nodeType": "YulFunctionCall", - "src": "37886:42:62" - }, - "nativeSrc": "37886:42:62", - "nodeType": "YulExpressionStatement", - "src": "37886:42:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37948:9:62", - "nodeType": "YulIdentifier", - "src": "37948:9:62" - }, - { - "kind": "number", - "nativeSrc": "37959:2:62", - "nodeType": "YulLiteral", - "src": "37959:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37944:3:62", - "nodeType": "YulIdentifier", - "src": "37944:3:62" - }, - "nativeSrc": "37944:18:62", - "nodeType": "YulFunctionCall", - "src": "37944:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "37968:6:62", - "nodeType": "YulIdentifier", - "src": "37968:6:62" - }, - { - "kind": "number", - "nativeSrc": "37976:10:62", - "nodeType": "YulLiteral", - "src": "37976:10:62", - "type": "", - "value": "0xffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "37964:3:62", - "nodeType": "YulIdentifier", - "src": "37964:3:62" - }, - "nativeSrc": "37964:23:62", - "nodeType": "YulFunctionCall", - "src": "37964:23:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "37937:6:62", - "nodeType": "YulIdentifier", - "src": "37937:6:62" - }, - "nativeSrc": "37937:51:62", - "nodeType": "YulFunctionCall", - "src": "37937:51:62" - }, - "nativeSrc": "37937:51:62", - "nodeType": "YulExpressionStatement", - "src": "37937:51:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint32_t_uint32__to_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "37714:280:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "37802:9:62", - "nodeType": "YulTypedName", - "src": "37802:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "37813:6:62", - "nodeType": "YulTypedName", - "src": "37813:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "37821:6:62", - "nodeType": "YulTypedName", - "src": "37821:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "37832:4:62", - "nodeType": "YulTypedName", - "src": "37832:4:62", - "type": "" - } - ], - "src": "37714:280:62" - }, - { - "body": { - "nativeSrc": "38126:169:62", - "nodeType": "YulBlock", - "src": "38126:169:62", - "statements": [ - { - "nativeSrc": "38136:26:62", - "nodeType": "YulAssignment", - "src": "38136:26:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "38148:9:62", - "nodeType": "YulIdentifier", - "src": "38148:9:62" - }, - { - "kind": "number", - "nativeSrc": "38159:2:62", - "nodeType": "YulLiteral", - "src": "38159:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "38144:3:62", - "nodeType": "YulIdentifier", - "src": "38144:3:62" - }, - "nativeSrc": "38144:18:62", - "nodeType": "YulFunctionCall", - "src": "38144:18:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "38136:4:62", - "nodeType": "YulIdentifier", - "src": "38136:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "38178:9:62", - "nodeType": "YulIdentifier", - "src": "38178:9:62" - }, - { - "arguments": [ - { - "name": "value0", - "nativeSrc": "38193:6:62", - "nodeType": "YulIdentifier", - "src": "38193:6:62" - }, - { - "kind": "number", - "nativeSrc": "38201:18:62", - "nodeType": "YulLiteral", - "src": "38201:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "38189:3:62", - "nodeType": "YulIdentifier", - "src": "38189:3:62" - }, - "nativeSrc": "38189:31:62", - "nodeType": "YulFunctionCall", - "src": "38189:31:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "38171:6:62", - "nodeType": "YulIdentifier", - "src": "38171:6:62" - }, - "nativeSrc": "38171:50:62", - "nodeType": "YulFunctionCall", - "src": "38171:50:62" - }, - "nativeSrc": "38171:50:62", - "nodeType": "YulExpressionStatement", - "src": "38171:50:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "38241:9:62", - "nodeType": "YulIdentifier", - "src": "38241:9:62" - }, - { - "kind": "number", - "nativeSrc": "38252:2:62", - "nodeType": "YulLiteral", - "src": "38252:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "38237:3:62", - "nodeType": "YulIdentifier", - "src": "38237:3:62" - }, - "nativeSrc": "38237:18:62", - "nodeType": "YulFunctionCall", - "src": "38237:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "38261:6:62", - "nodeType": "YulIdentifier", - "src": "38261:6:62" - }, - { - "kind": "number", - "nativeSrc": "38269:18:62", - "nodeType": "YulLiteral", - "src": "38269:18:62", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "38257:3:62", - "nodeType": "YulIdentifier", - "src": "38257:3:62" - }, - "nativeSrc": "38257:31:62", - "nodeType": "YulFunctionCall", - "src": "38257:31:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "38230:6:62", - "nodeType": "YulIdentifier", - "src": "38230:6:62" - }, - "nativeSrc": "38230:59:62", - "nodeType": "YulFunctionCall", - "src": "38230:59:62" - }, - "nativeSrc": "38230:59:62", - "nodeType": "YulExpressionStatement", - "src": "38230:59:62" - } - ] - }, - "name": "abi_encode_tuple_t_uint64_t_uint64__to_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "37999:296:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "38087:9:62", - "nodeType": "YulTypedName", - "src": "38087:9:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "38098:6:62", - "nodeType": "YulTypedName", - "src": "38098:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "38106:6:62", - "nodeType": "YulTypedName", - "src": "38106:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "38117:4:62", - "nodeType": "YulTypedName", - "src": "38117:4:62", - "type": "" - } - ], - "src": "37999:296:62" - }, - { - "body": { - "nativeSrc": "38475:215:62", - "nodeType": "YulBlock", - "src": "38475:215:62", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "38492:3:62", - "nodeType": "YulIdentifier", - "src": "38492:3:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "38505:2:62", - "nodeType": "YulLiteral", - "src": "38505:2:62", - "type": "", - "value": "96" - }, - { - "name": "value0", - "nativeSrc": "38509:6:62", - "nodeType": "YulIdentifier", - "src": "38509:6:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "38501:3:62", - "nodeType": "YulIdentifier", - "src": "38501:3:62" - }, - "nativeSrc": "38501:15:62", - "nodeType": "YulFunctionCall", - "src": "38501:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "38530:2:62", - "nodeType": "YulLiteral", - "src": "38530:2:62", - "type": "", - "value": "96" - }, - { - "kind": "number", - "nativeSrc": "38534:1:62", - "nodeType": "YulLiteral", - "src": "38534:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "38526:3:62", - "nodeType": "YulIdentifier", - "src": "38526:3:62" - }, - "nativeSrc": "38526:10:62", - "nodeType": "YulFunctionCall", - "src": "38526:10:62" - }, - { - "kind": "number", - "nativeSrc": "38538:1:62", - "nodeType": "YulLiteral", - "src": "38538:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "38522:3:62", - "nodeType": "YulIdentifier", - "src": "38522:3:62" - }, - "nativeSrc": "38522:18:62", - "nodeType": "YulFunctionCall", - "src": "38522:18:62" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "38518:3:62", - "nodeType": "YulIdentifier", - "src": "38518:3:62" - }, - "nativeSrc": "38518:23:62", - "nodeType": "YulFunctionCall", - "src": "38518:23:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "38497:3:62", - "nodeType": "YulIdentifier", - "src": "38497:3:62" - }, - "nativeSrc": "38497:45:62", - "nodeType": "YulFunctionCall", - "src": "38497:45:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "38485:6:62", - "nodeType": "YulIdentifier", - "src": "38485:6:62" - }, - "nativeSrc": "38485:58:62", - "nodeType": "YulFunctionCall", - "src": "38485:58:62" - }, - "nativeSrc": "38485:58:62", - "nodeType": "YulExpressionStatement", - "src": "38485:58:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "38563:3:62", - "nodeType": "YulIdentifier", - "src": "38563:3:62" - }, - { - "kind": "number", - "nativeSrc": "38568:2:62", - "nodeType": "YulLiteral", - "src": "38568:2:62", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "38559:3:62", - "nodeType": "YulIdentifier", - "src": "38559:3:62" - }, - "nativeSrc": "38559:12:62", - "nodeType": "YulFunctionCall", - "src": "38559:12:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "38581:2:62", - "nodeType": "YulLiteral", - "src": "38581:2:62", - "type": "", - "value": "96" - }, - { - "name": "value1", - "nativeSrc": "38585:6:62", - "nodeType": "YulIdentifier", - "src": "38585:6:62" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "38577:3:62", - "nodeType": "YulIdentifier", - "src": "38577:3:62" - }, - "nativeSrc": "38577:15:62", - "nodeType": "YulFunctionCall", - "src": "38577:15:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "38606:2:62", - "nodeType": "YulLiteral", - "src": "38606:2:62", - "type": "", - "value": "96" - }, - { - "kind": "number", - "nativeSrc": "38610:1:62", - "nodeType": "YulLiteral", - "src": "38610:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "38602:3:62", - "nodeType": "YulIdentifier", - "src": "38602:3:62" - }, - "nativeSrc": "38602:10:62", - "nodeType": "YulFunctionCall", - "src": "38602:10:62" - }, - { - "kind": "number", - "nativeSrc": "38614:1:62", - "nodeType": "YulLiteral", - "src": "38614:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "38598:3:62", - "nodeType": "YulIdentifier", - "src": "38598:3:62" - }, - "nativeSrc": "38598:18:62", - "nodeType": "YulFunctionCall", - "src": "38598:18:62" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "38594:3:62", - "nodeType": "YulIdentifier", - "src": "38594:3:62" - }, - "nativeSrc": "38594:23:62", - "nodeType": "YulFunctionCall", - "src": "38594:23:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "38573:3:62", - "nodeType": "YulIdentifier", - "src": "38573:3:62" - }, - "nativeSrc": "38573:45:62", - "nodeType": "YulFunctionCall", - "src": "38573:45:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "38552:6:62", - "nodeType": "YulIdentifier", - "src": "38552:6:62" - }, - "nativeSrc": "38552:67:62", - "nodeType": "YulFunctionCall", - "src": "38552:67:62" - }, - "nativeSrc": "38552:67:62", - "nodeType": "YulExpressionStatement", - "src": "38552:67:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "38639:3:62", - "nodeType": "YulIdentifier", - "src": "38639:3:62" - }, - { - "kind": "number", - "nativeSrc": "38644:2:62", - "nodeType": "YulLiteral", - "src": "38644:2:62", - "type": "", - "value": "40" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "38635:3:62", - "nodeType": "YulIdentifier", - "src": "38635:3:62" - }, - "nativeSrc": "38635:12:62", - "nodeType": "YulFunctionCall", - "src": "38635:12:62" - }, - { - "name": "value2", - "nativeSrc": "38649:6:62", - "nodeType": "YulIdentifier", - "src": "38649:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "38628:6:62", - "nodeType": "YulIdentifier", - "src": "38628:6:62" - }, - "nativeSrc": "38628:28:62", - "nodeType": "YulFunctionCall", - "src": "38628:28:62" - }, - "nativeSrc": "38628:28:62", - "nodeType": "YulExpressionStatement", - "src": "38628:28:62" - }, - { - "nativeSrc": "38665:19:62", - "nodeType": "YulAssignment", - "src": "38665:19:62", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "38676:3:62", - "nodeType": "YulIdentifier", - "src": "38676:3:62" - }, - { - "kind": "number", - "nativeSrc": "38681:2:62", - "nodeType": "YulLiteral", - "src": "38681:2:62", - "type": "", - "value": "72" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "38672:3:62", - "nodeType": "YulIdentifier", - "src": "38672:3:62" - }, - "nativeSrc": "38672:12:62", - "nodeType": "YulFunctionCall", - "src": "38672:12:62" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "38665:3:62", - "nodeType": "YulIdentifier", - "src": "38665:3:62" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "38300:390:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "38435:3:62", - "nodeType": "YulTypedName", - "src": "38435:3:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "38440:6:62", - "nodeType": "YulTypedName", - "src": "38440:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "38448:6:62", - "nodeType": "YulTypedName", - "src": "38448:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "38456:6:62", - "nodeType": "YulTypedName", - "src": "38456:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "38467:3:62", - "nodeType": "YulTypedName", - "src": "38467:3:62", - "type": "" - } - ], - "src": "38300:390:62" - }, - { - "body": { - "nativeSrc": "38908:276:62", - "nodeType": "YulBlock", - "src": "38908:276:62", - "statements": [ - { - "nativeSrc": "38918:27:62", - "nodeType": "YulAssignment", - "src": "38918:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "38930:9:62", - "nodeType": "YulIdentifier", - "src": "38930:9:62" - }, - { - "kind": "number", - "nativeSrc": "38941:3:62", - "nodeType": "YulLiteral", - "src": "38941:3:62", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "38926:3:62", - "nodeType": "YulIdentifier", - "src": "38926:3:62" - }, - "nativeSrc": "38926:19:62", - "nodeType": "YulFunctionCall", - "src": "38926:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "38918:4:62", - "nodeType": "YulIdentifier", - "src": "38918:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "38961:9:62", - "nodeType": "YulIdentifier", - "src": "38961:9:62" - }, - { - "name": "value0", - "nativeSrc": "38972:6:62", - "nodeType": "YulIdentifier", - "src": "38972:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "38954:6:62", - "nodeType": "YulIdentifier", - "src": "38954:6:62" - }, - "nativeSrc": "38954:25:62", - "nodeType": "YulFunctionCall", - "src": "38954:25:62" - }, - "nativeSrc": "38954:25:62", - "nodeType": "YulExpressionStatement", - "src": "38954:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "38999:9:62", - "nodeType": "YulIdentifier", - "src": "38999:9:62" - }, - { - "kind": "number", - "nativeSrc": "39010:2:62", - "nodeType": "YulLiteral", - "src": "39010:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "38995:3:62", - "nodeType": "YulIdentifier", - "src": "38995:3:62" - }, - "nativeSrc": "38995:18:62", - "nodeType": "YulFunctionCall", - "src": "38995:18:62" - }, - { - "name": "value1", - "nativeSrc": "39015:6:62", - "nodeType": "YulIdentifier", - "src": "39015:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "38988:6:62", - "nodeType": "YulIdentifier", - "src": "38988:6:62" - }, - "nativeSrc": "38988:34:62", - "nodeType": "YulFunctionCall", - "src": "38988:34:62" - }, - "nativeSrc": "38988:34:62", - "nodeType": "YulExpressionStatement", - "src": "38988:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "39042:9:62", - "nodeType": "YulIdentifier", - "src": "39042:9:62" - }, - { - "kind": "number", - "nativeSrc": "39053:2:62", - "nodeType": "YulLiteral", - "src": "39053:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "39038:3:62", - "nodeType": "YulIdentifier", - "src": "39038:3:62" - }, - "nativeSrc": "39038:18:62", - "nodeType": "YulFunctionCall", - "src": "39038:18:62" - }, - { - "name": "value2", - "nativeSrc": "39058:6:62", - "nodeType": "YulIdentifier", - "src": "39058:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "39031:6:62", - "nodeType": "YulIdentifier", - "src": "39031:6:62" - }, - "nativeSrc": "39031:34:62", - "nodeType": "YulFunctionCall", - "src": "39031:34:62" - }, - "nativeSrc": "39031:34:62", - "nodeType": "YulExpressionStatement", - "src": "39031:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "39085:9:62", - "nodeType": "YulIdentifier", - "src": "39085:9:62" - }, - { - "kind": "number", - "nativeSrc": "39096:2:62", - "nodeType": "YulLiteral", - "src": "39096:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "39081:3:62", - "nodeType": "YulIdentifier", - "src": "39081:3:62" - }, - "nativeSrc": "39081:18:62", - "nodeType": "YulFunctionCall", - "src": "39081:18:62" - }, - { - "name": "value3", - "nativeSrc": "39101:6:62", - "nodeType": "YulIdentifier", - "src": "39101:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "39074:6:62", - "nodeType": "YulIdentifier", - "src": "39074:6:62" - }, - "nativeSrc": "39074:34:62", - "nodeType": "YulFunctionCall", - "src": "39074:34:62" - }, - "nativeSrc": "39074:34:62", - "nodeType": "YulExpressionStatement", - "src": "39074:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "39128:9:62", - "nodeType": "YulIdentifier", - "src": "39128:9:62" - }, - { - "kind": "number", - "nativeSrc": "39139:3:62", - "nodeType": "YulLiteral", - "src": "39139:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "39124:3:62", - "nodeType": "YulIdentifier", - "src": "39124:3:62" - }, - "nativeSrc": "39124:19:62", - "nodeType": "YulFunctionCall", - "src": "39124:19:62" - }, - { - "arguments": [ - { - "name": "value4", - "nativeSrc": "39149:6:62", - "nodeType": "YulIdentifier", - "src": "39149:6:62" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "39165:3:62", - "nodeType": "YulLiteral", - "src": "39165:3:62", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nativeSrc": "39170:1:62", - "nodeType": "YulLiteral", - "src": "39170:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "39161:3:62", - "nodeType": "YulIdentifier", - "src": "39161:3:62" - }, - "nativeSrc": "39161:11:62", - "nodeType": "YulFunctionCall", - "src": "39161:11:62" - }, - { - "kind": "number", - "nativeSrc": "39174:1:62", - "nodeType": "YulLiteral", - "src": "39174:1:62", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "39157:3:62", - "nodeType": "YulIdentifier", - "src": "39157:3:62" - }, - "nativeSrc": "39157:19:62", - "nodeType": "YulFunctionCall", - "src": "39157:19:62" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "39145:3:62", - "nodeType": "YulIdentifier", - "src": "39145:3:62" - }, - "nativeSrc": "39145:32:62", - "nodeType": "YulFunctionCall", - "src": "39145:32:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "39117:6:62", - "nodeType": "YulIdentifier", - "src": "39117:6:62" - }, - "nativeSrc": "39117:61:62", - "nodeType": "YulFunctionCall", - "src": "39117:61:62" - }, - "nativeSrc": "39117:61:62", - "nodeType": "YulExpressionStatement", - "src": "39117:61:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed", - "nativeSrc": "38695:489:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "38845:9:62", - "nodeType": "YulTypedName", - "src": "38845:9:62", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "38856:6:62", - "nodeType": "YulTypedName", - "src": "38856:6:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "38864:6:62", - "nodeType": "YulTypedName", - "src": "38864:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "38872:6:62", - "nodeType": "YulTypedName", - "src": "38872:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "38880:6:62", - "nodeType": "YulTypedName", - "src": "38880:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "38888:6:62", - "nodeType": "YulTypedName", - "src": "38888:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "38899:4:62", - "nodeType": "YulTypedName", - "src": "38899:4:62", - "type": "" - } - ], - "src": "38695:489:62" - }, - { - "body": { - "nativeSrc": "39370:217:62", - "nodeType": "YulBlock", - "src": "39370:217:62", - "statements": [ - { - "nativeSrc": "39380:27:62", - "nodeType": "YulAssignment", - "src": "39380:27:62", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "39392:9:62", - "nodeType": "YulIdentifier", - "src": "39392:9:62" - }, - { - "kind": "number", - "nativeSrc": "39403:3:62", - "nodeType": "YulLiteral", - "src": "39403:3:62", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "39388:3:62", - "nodeType": "YulIdentifier", - "src": "39388:3:62" - }, - "nativeSrc": "39388:19:62", - "nodeType": "YulFunctionCall", - "src": "39388:19:62" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "39380:4:62", - "nodeType": "YulIdentifier", - "src": "39380:4:62" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "39423:9:62", - "nodeType": "YulIdentifier", - "src": "39423:9:62" - }, - { - "name": "value0", - "nativeSrc": "39434:6:62", - "nodeType": "YulIdentifier", - "src": "39434:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "39416:6:62", - "nodeType": "YulIdentifier", - "src": "39416:6:62" - }, - "nativeSrc": "39416:25:62", - "nodeType": "YulFunctionCall", - "src": "39416:25:62" - }, - "nativeSrc": "39416:25:62", - "nodeType": "YulExpressionStatement", - "src": "39416:25:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "39461:9:62", - "nodeType": "YulIdentifier", - "src": "39461:9:62" - }, - { - "kind": "number", - "nativeSrc": "39472:2:62", - "nodeType": "YulLiteral", - "src": "39472:2:62", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "39457:3:62", - "nodeType": "YulIdentifier", - "src": "39457:3:62" - }, - "nativeSrc": "39457:18:62", - "nodeType": "YulFunctionCall", - "src": "39457:18:62" - }, - { - "arguments": [ - { - "name": "value1", - "nativeSrc": "39481:6:62", - "nodeType": "YulIdentifier", - "src": "39481:6:62" - }, - { - "kind": "number", - "nativeSrc": "39489:4:62", - "nodeType": "YulLiteral", - "src": "39489:4:62", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "39477:3:62", - "nodeType": "YulIdentifier", - "src": "39477:3:62" - }, - "nativeSrc": "39477:17:62", - "nodeType": "YulFunctionCall", - "src": "39477:17:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "39450:6:62", - "nodeType": "YulIdentifier", - "src": "39450:6:62" - }, - "nativeSrc": "39450:45:62", - "nodeType": "YulFunctionCall", - "src": "39450:45:62" - }, - "nativeSrc": "39450:45:62", - "nodeType": "YulExpressionStatement", - "src": "39450:45:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "39515:9:62", - "nodeType": "YulIdentifier", - "src": "39515:9:62" - }, - { - "kind": "number", - "nativeSrc": "39526:2:62", - "nodeType": "YulLiteral", - "src": "39526:2:62", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "39511:3:62", - "nodeType": "YulIdentifier", - "src": "39511:3:62" - }, - "nativeSrc": "39511:18:62", - "nodeType": "YulFunctionCall", - "src": "39511:18:62" - }, - { - "name": "value2", - "nativeSrc": "39531:6:62", - "nodeType": "YulIdentifier", - "src": "39531:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "39504:6:62", - "nodeType": "YulIdentifier", - "src": "39504:6:62" - }, - "nativeSrc": "39504:34:62", - "nodeType": "YulFunctionCall", - "src": "39504:34:62" - }, - "nativeSrc": "39504:34:62", - "nodeType": "YulExpressionStatement", - "src": "39504:34:62" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "39558:9:62", - "nodeType": "YulIdentifier", - "src": "39558:9:62" - }, - { - "kind": "number", - "nativeSrc": "39569:2:62", - "nodeType": "YulLiteral", - "src": "39569:2:62", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "39554:3:62", - "nodeType": "YulIdentifier", - "src": "39554:3:62" - }, - "nativeSrc": "39554:18:62", - "nodeType": "YulFunctionCall", - "src": "39554:18:62" - }, - { - "name": "value3", - "nativeSrc": "39574:6:62", - "nodeType": "YulIdentifier", - "src": "39574:6:62" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "39547:6:62", - "nodeType": "YulIdentifier", - "src": "39547:6:62" - }, - "nativeSrc": "39547:34:62", - "nodeType": "YulFunctionCall", - "src": "39547:34:62" - }, - "nativeSrc": "39547:34:62", - "nodeType": "YulExpressionStatement", - "src": "39547:34:62" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed", - "nativeSrc": "39189:398:62", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "39315:9:62", - "nodeType": "YulTypedName", - "src": "39315:9:62", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "39326:6:62", - "nodeType": "YulTypedName", - "src": "39326:6:62", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "39334:6:62", - "nodeType": "YulTypedName", - "src": "39334:6:62", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "39342:6:62", - "nodeType": "YulTypedName", - "src": "39342:6:62", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "39350:6:62", - "nodeType": "YulTypedName", - "src": "39350:6:62", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "39361:4:62", - "nodeType": "YulTypedName", - "src": "39361:4:62", - "type": "" - } - ], - "src": "39189:398:62" - } - ] - }, - "contents": "{\n { }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_struct$_State_$11307_memory_ptr__to_t_struct$_State_$11307_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 256)\n mstore(headStart, and(mload(value0), sub(shl(160, 1), 1)))\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function validator_revert_uint32(value)\n {\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint256t_uint32t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_uint32(value_1)\n value1 := value_1\n let value_2 := 0\n value_2 := calldataload(add(headStart, 64))\n value2 := value_2\n }\n function abi_decode_tuple_t_uint32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_uint32(value)\n value0 := value\n }\n function abi_encode_tuple_t_uint32__to_t_uint32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffff))\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_bool(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n }\n function abi_encode_tuple_t_uint32_t_uint32__to_t_uint32_t_uint32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xffffffff))\n mstore(add(headStart, 32), and(value1, 0xffffffff))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 96)\n let tail_1 := abi_encode_string(value1, add(headStart, 96))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_string(value2, tail_1)\n }\n function abi_encode_tuple_t_address_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_address_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 256)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), value7)\n }\n function abi_encode_tuple_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__to_t_address_t_bytes32_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_struct$_State_$11933_memory_ptr__to_t_struct$_State_$11933_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(mload(value0), sub(shl(160, 1), 1)))\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n }\n function abi_encode_tuple_t_uint64_t_uint64__to_t_uint64_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_addresst_bytes32(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let value_2 := 0\n value_2 := calldataload(add(headStart, 64))\n value2 := value_2\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let value_2 := 0\n value_2 := calldataload(add(headStart, 64))\n value2 := value_2\n }\n function abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, shl(248, 255)))\n mstore(add(headStart, 32), 224)\n let tail_1 := abi_encode_string(value1, add(headStart, 224))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n let tail_2 := abi_encode_string(value2, tail_1)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), sub(tail_2, headStart))\n let pos := tail_2\n let length := mload(value6)\n mstore(tail_2, length)\n pos := add(tail_2, 32)\n let srcPtr := add(value6, 32)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, 32)\n srcPtr := add(srcPtr, 32)\n }\n tail := pos\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_decode_tuple_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n if gt(add(add(_1, shl(5, length)), 32), dataEnd) { revert(0, 0) }\n value0 := add(_1, 32)\n value1 := length\n }\n function abi_encode_tuple_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let tail_1 := add(headStart, 32)\n mstore(headStart, 32)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let tail_2 := add(add(headStart, shl(5, length)), 64)\n let srcPtr := add(value0, 32)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, add(sub(tail_2, headStart), not(63)))\n tail_2 := abi_encode_string(mload(srcPtr), tail_2)\n srcPtr := add(srcPtr, 32)\n pos := add(pos, 32)\n }\n tail := tail_2\n }\n function abi_decode_tuple_t_addresst_enum$_PaymentTypes_$2166t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n if iszero(lt(value_1, 3)) { revert(0, 0) }\n value1 := value_1\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes32__to_t_uint256_t_uint256_t_uint256_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory_4281() -> memPtr\n {\n memPtr := mload(0x40)\n let newFreePtr := add(memPtr, 0x40)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(0x40, newFreePtr)\n }\n function allocate_memory() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0xa0)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory_4284() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 288)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n let src := add(offset, 0x20)\n let array_1 := 0\n let size := 0\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n let result := and(add(length, 31), not(31))\n size := add(result, 0x20)\n let memPtr := 0\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(result, 63), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n array_1 := memPtr\n mstore(memPtr, length)\n if gt(add(src, length), end) { revert(0, 0) }\n calldatacopy(add(memPtr, 0x20), src, length)\n mstore(add(add(memPtr, length), 0x20), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address_payable(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n mstore(0, array)\n let data := keccak256(0, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _1 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _1) { start := add(start, 1) }\n { sstore(start, 0) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n srcOffset := 0x20\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 0x20)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), value1)\n calldatacopy(add(headStart, 64), value0, value1)\n mstore(add(add(headStart, value1), 64), 0)\n tail := add(add(headStart, and(add(value1, 31), not(31))), 64)\n }\n function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 21)\n mstore(add(headStart, 64), \"EIP712: Uninitialized\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n {\n if gt(startIndex, endIndex) { revert(0, 0) }\n if gt(endIndex, length) { revert(0, 0) }\n offsetOut := add(offset, startIndex)\n lengthOut := sub(endIndex, startIndex)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function access_calldata_tail_t_bytes_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n let length := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), _1, length)\n end := add(_1, length)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function validator_revert_uint64(value)\n {\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_SignedRAV_$2546_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if slt(sub(dataEnd, _1), 0x40) { revert(0, 0) }\n let value := allocate_memory_4281()\n let offset_1 := calldataload(_1)\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n let _2 := add(_1, offset_1)\n if slt(sub(dataEnd, _2), 0xa0) { revert(0, 0) }\n let value_1 := allocate_memory()\n let value_2 := calldataload(_2)\n validator_revert_address(value_2)\n mstore(value_1, value_2)\n let value_3 := calldataload(add(_2, 32))\n validator_revert_address(value_3)\n mstore(add(value_1, 32), value_3)\n let value_4 := calldataload(add(_2, 0x40))\n validator_revert_uint64(value_4)\n mstore(add(value_1, 0x40), value_4)\n let value_5 := calldataload(add(_2, 96))\n if iszero(eq(value_5, and(value_5, sub(shl(128, 1), 1)))) { revert(0, 0) }\n mstore(add(value_1, 96), value_5)\n let offset_2 := calldataload(add(_2, 128))\n if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value_1, 128), abi_decode_string(add(_2, offset_2), dataEnd))\n mstore(value, value_1)\n let offset_3 := calldataload(add(_1, 32))\n if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value, 32), abi_decode_string(add(_1, offset_3), dataEnd))\n value0 := value\n }\n function abi_decode_tuple_t_address_payablet_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n }\n function abi_encode_enum_PaymentTypes(value, pos)\n {\n if iszero(lt(value, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_t_enum$_PaymentTypes_$2166__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_PaymentTypes(value0, headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_address__to_t_address_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_address_payablet_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n let value_2 := calldataload(add(headStart, 64))\n validator_revert_address(value_2)\n value2 := value_2\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value3 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function abi_decode_uint32_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_uint32(value)\n }\n function abi_decode_uint64_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_uint64(value)\n }\n function abi_decode_tuple_t_struct$_Provision_$3718_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 288)\n if _1 { revert(0, 0) }\n _1 := 0\n let value := allocate_memory_4284()\n let value_1 := _1\n value_1 := mload(headStart)\n mstore(value, value_1)\n let value_2 := _1\n value_2 := mload(add(headStart, 32))\n mstore(add(value, 32), value_2)\n let value_3 := _1\n value_3 := mload(add(headStart, 64))\n mstore(add(value, 64), value_3)\n mstore(add(value, 96), abi_decode_uint32_fromMemory(add(headStart, 96)))\n mstore(add(value, 128), abi_decode_uint64_fromMemory(add(headStart, 128)))\n mstore(add(value, 160), abi_decode_uint64_fromMemory(add(headStart, 160)))\n mstore(add(value, 192), abi_decode_uint32_fromMemory(add(headStart, 192)))\n mstore(add(value, 224), abi_decode_uint64_fromMemory(add(headStart, 224)))\n let value_4 := _1\n value_4 := mload(add(headStart, 256))\n mstore(add(value, 256), value_4)\n value0 := value\n }\n function abi_encode_tuple_t_rational_0_by_1_t_address__to_t_uint8_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xff))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := mload(headStart)\n value0 := value\n }\n function abi_decode_tuple_t_uint32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_uint32(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint64_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_uint64(value)\n value0 := value\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_decode_tuple_t_address_payable_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_struct$_SignedRAV_$2546_memory_ptr_t_uint256__to_t_struct$_SignedRAV_$2546_memory_ptr_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n let memberValue0 := mload(value0)\n mstore(add(headStart, 64), 64)\n mstore(add(headStart, 128), and(mload(memberValue0), sub(shl(160, 1), 1)))\n mstore(add(headStart, 0xa0), and(mload(add(memberValue0, 0x20)), sub(shl(160, 1), 1)))\n mstore(add(headStart, 192), and(mload(add(memberValue0, 64)), 0xffffffffffffffff))\n mstore(add(headStart, 224), and(mload(add(memberValue0, 0x60)), sub(shl(128, 1), 1)))\n let memberValue0_1 := mload(add(memberValue0, 128))\n mstore(add(headStart, 256), 0xa0)\n let end := abi_encode_string(memberValue0_1, add(headStart, 288))\n let memberValue0_2 := mload(add(value0, 0x20))\n mstore(add(headStart, 0x60), add(sub(end, headStart), not(63)))\n tail := abi_encode_string(memberValue0_2, end)\n mstore(add(headStart, 0x20), value1)\n }\n function abi_encode_tuple_t_enum$_PaymentTypes_$2166_t_bytes_memory_ptr__to_t_uint8_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n abi_encode_enum_PaymentTypes(value0, headStart)\n mstore(add(headStart, 32), 64)\n tail := abi_encode_string(value1, add(headStart, 64))\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_address_t_enum$_PaymentTypes_$2166__to_t_address_t_address_t_uint8__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n abi_encode_enum_PaymentTypes(value2, add(headStart, 64))\n }\n function abi_decode_tuple_t_struct$_DelegationPool_$3748_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 160)\n if _1 { revert(0, 0) }\n _1 := 0\n let value := allocate_memory()\n let value_1 := _1\n value_1 := mload(headStart)\n mstore(value, value_1)\n let value_2 := _1\n value_2 := mload(add(headStart, 32))\n mstore(add(value, 32), value_2)\n let value_3 := _1\n value_3 := mload(add(headStart, 64))\n mstore(add(value, 64), value_3)\n let value_4 := _1\n value_4 := mload(add(headStart, 96))\n mstore(add(value, 96), value_4)\n let value_5 := _1\n value_5 := mload(add(headStart, 128))\n mstore(add(value, 128), value_5)\n value0 := value\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_uint256_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_bytes32_t_address_t_address__to_t_bytes32_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256__to_t_bytes_memory_ptr_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 128)\n tail := abi_encode_string(value0, add(headStart, 128))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_decode_tuple_t_uint256t_address_payable_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := mload(headStart)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function decrement_t_uint256(value) -> ret\n {\n if iszero(value) { panic_error_0x11() }\n ret := add(value, not(0))\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_address_t_address_t_uint32__to_t_address_t_address_t_uint32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, 0xffffffff))\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n r := div(x, y)\n }\n function abi_encode_tuple_t_stringliteral_aaf3daf27360df170a52f29a0edeebb3d20b8e3dc84a13c5eaf056803b549f50__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 9)\n mstore(add(headStart, 64), \"!transfer\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint32_t_uint32__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xffffffff))\n mstore(add(headStart, 32), and(value1, 0xffffffff))\n }\n function abi_encode_tuple_t_uint64_t_uint64__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n }\n function abi_encode_tuple_packed_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(sub(shl(96, 1), 1))))\n mstore(add(pos, 20), and(shl(96, value1), not(sub(shl(96, 1), 1))))\n mstore(add(pos, 40), value2)\n end := add(pos, 72)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n}", - "id": 62, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": { - "4317": [ - { - "length": 32, - "start": 17364 - } - ], - "4321": [ - { - "length": 32, - "start": 8261 - } - ], - "4337": [ - { - "length": 32, - "start": 14333 - } - ], - "4341": [ - { - "length": 32, - "start": 16358 - } - ], - "13256": [ - { - "length": 32, - "start": 6680 - }, - { - "length": 32, - "start": 14544 - } - ], - "13260": [ - { - "length": 32, - "start": 12201 - } - ], - "13264": [ - { - "length": 32, - "start": 17400 - } - ] - }, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106102ce5760003560e01c80638180083b1161017e578063a827a90c116100df578063a827a90c146108f6578063ac9650d814610909578063b15d2a2c14610929578063ba38f67d1461093c578063bfdfa7af1461094f578063cb8347fe14610966578063cbe5f3f214610979578063ce0fc0cc14610999578063ce56c98b146109ac578063d07a7a84146109bf578063dedf6726146109c8578063e2e1e8e9146109db578063e6f50054146109fb578063eff0f59214610a0e578063f2fde38b14610a4357600080fd5b80638180083b14610795578063819ba366146107a857806381e777a7146107c5578063832bc923146107d85780638456cb59146107eb57806384b0196e146107f357806385e82baf1461080e57806388812583146108175780638d2f29481461082e5780638da5cb5b146108595780639249c5c1146108615780639384e0781461087857806393d4e7cb1461089b5780639aafa5d1146108dc57600080fd5b80634f793cdc116102335780634f793cdc146104b157806352a9039c146104d357806355c85269146105735780635c975abb146106365780636234e2161461063e5780636a3ca3831461065e5780636d9a395114610671578063715018a6146106ec57806371ce020a146106f45780637203ca781461070a5780637337182314610740578063772495c3146107495780637aa31bce1461075c5780637dfe6d281461076f5780637e89bac31461078257600080fd5b80630e022923146102d3578063138dea081461035457806313c474c91461036b5780631cafa218146103c05780631dd42f60146103d55780631ebb7c30146103e857806324b8fbf61461040e578063355779621461042157806336fdd28a146104345780633afd23fe1461043d5780633f0ed79d1461045d5780633f4ba83a1461048057806345f5448514610488578063482468b71461049b575b600080fd5b6102e66102e1366004615151565b610a56565b60405161034b919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0828101519082015260c0808301519082015260e091820151918101919091526101000190565b60405180910390f35b61035d60d75481565b60405190815260200161034b565b6103a0610379366004615151565b606a6020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b6103d36103ce366004615180565b610ad8565b005b6103d36103e33660046151b8565b610c56565b600254600160c01b900463ffffffff165b60405163ffffffff909116815260200161034b565b6103d361041c366004615216565b610c6f565b6103d361042f366004615278565b610e9a565b61035d60005481565b61035d61044b3660046152b1565b60a26020526000908152604090205481565b61047061046b366004615151565b610eb0565b604051901515815260200161034b565b6103d3610ed1565b6103d36104963660046152b1565b610f15565b6104a3610f1f565b60405161034b9291906152ca565b6104c46104bf366004615151565b610f32565b60405161034b93929190615331565b61052e6104e1366004615151565b609d60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b03909616969495939492939192909188565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e08201526101000161034b565b610604610581366004615151565b6001600160a01b039081166000908152609d60209081526040918290208251610100810184528154909416808552600182015492850183905260028201549385018490526003820154606086015260048201546080860152600582015460a0860152600682015460c0860181905260079092015460e09095018590529491939091565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a00161034b565b610470611065565b61035d61064c366004615151565b609f6020526000908152604090205481565b61047061066c366004615151565b61107a565b6106c861067f366004615151565b604080518082018252600080825260209182018190526001600160a01b039384168152609e82528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b03168152602092830151928101929092520161034b565b6103d36110f6565b6106fc611108565b60405161034b929190615366565b610733610718366004615151565b60a1602052600090815260409020546001600160a01b031681565b60405161034b9190615380565b61035d60015481565b6103d3610757366004615151565b611113565b6103d361076a3660046152b1565b61111d565b6103d361077d366004615394565b61112e565b6103d36107903660046152b1565b611146565b6103d36107a3366004615216565b6111ba565b6107b0611345565b6040805192835260208301919091520161034b565b6103d36107d3366004615394565b611355565b6103d36107e63660046152b1565b6114bb565b6103d36114cf565b6107fb611511565b60405161034b97969594939291906153c4565b61035d60a05481565b6002546103f990600160801b900463ffffffff1681565b600254610841906001600160401b031681565b6040516001600160401b03909116815260200161034b565b6107336115ba565b6002546103f990600160a01b900463ffffffff1681565b610470610886366004615151565b60676020526000908152604090205460ff1681565b6108ce6108a9366004615151565b609e60205260009081526040902080546001909101546001600160a01b039091169082565b60405161034b92919061545c565b60025461084190600160401b90046001600160401b031681565b6103d3610904366004615151565b6115d5565b61091c610917366004615475565b611682565b60405161034b91906154ea565b61035d61093736600461554f565b611769565b61047061094a366004615151565b6119f7565b6002546103f990600160c01b900463ffffffff1681565b6103d3610974366004615216565b611a15565b61035d610987366004615151565b60686020526000908152604090205481565b6103d36109a7366004615216565b611b54565b61035d6109ba3660046155b7565b611c83565b61035d60d65481565b6103d36109d6366004615216565b611c96565b61035d6109e93660046152b1565b600090815260a2602052604090205490565b6103d3610a093660046152b1565b611e24565b6103a0610a1c3660046152b1565b60696020526000908152604090208054600182015460028301546003909301549192909184565b6103d3610a51366004615151565b611e35565b610a5e6150eb565b506001600160a01b039081166000908152609d6020908152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015290565b6000610ae2611e70565b805490915060ff600160401b82041615906001600160401b0316600081158015610b095750825b90506000826001600160401b03166001148015610b255750303b155b905081158015610b33575080155b15610b515760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7b57845460ff60401b1916600160401b1785555b610b8433611e94565b610b8c611ea5565b610b94611ead565b610b9c611ec5565b610be86040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250611ed5565b610bf488600019611ef1565b610bfd87611f67565b610c0686611fbb565b8315610c4c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610c5e612011565b610c6781611f67565b50565b905090565b82610c78612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610ca7939291906155e5565b602060405180830381865afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190615608565b81339091610d145760405163cc5d3c8b60e01b8152600401610d0b929190615625565b60405180910390fd5b5050836000610d2282612067565b9050610d2d81612162565b610d38816000612194565b610d40612274565b60008080610d5087890189615756565b9250925092506000835111610d7857604051630783843960e51b815260040160405180910390fd5b6000825111610d9a57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b038916600090815260d5602052604090205415610dd157604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815260d59092529290208151815591519091906001820190610e1b9082615852565b5060408201516002820190610e309082615852565b5050506001600160a01b03811615610e4c57610e4c898261229a565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610e87929190615910565b60405180910390a2505050505050505050565b610ea2612011565b610eac82826122f1565b5050565b60a054600090610ecb90610ec5609d85612358565b906123d2565b92915050565b3360008181526067602052604090205460ff16610f02576040516372e3ef9760e01b8152600401610d0b9190615380565b50610f0b61240f565b610f13612434565b565b610c673382612480565b600080610f2a61252d565b915091509091565b60d56020526000908152604090208054600182018054919291610f54906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f80906157d1565b8015610fcd5780601f10610fa257610100808354040283529160200191610fcd565b820191906000526020600020905b815481529060010190602001808311610fb057829003601f168201915b505050505090806002018054610fe2906157d1565b80601f016020809104026020016040519081016040528092919081815260200182805461100e906157d1565b801561105b5780601f106110305761010080835404028352916020019161105b565b820191906000526020600020905b81548152906001019060200180831161103e57829003601f168201915b5050505050905083565b6000806110706125a4565b5460ff1692915050565b6001600160a01b038082166000908152609d60209081526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007015460e083015290610ecb906125c8565b6110fe612011565b610f1360006125e7565b600080610f2a612643565b610c67338261229a565b611125612011565b610c67816126be565b611136612011565b6111418383836126f3565b505050565b61114e612011565b61115b81620f4240101590565b819061117d57604051631c9c717b60e01b8152600401610d0b91815260200190565b5060d78190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b826111c3612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016111f2939291906155e5565b602060405180830381865afa15801561120f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112339190615608565b813390916112565760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d56020526040902054849081906112935760405163ee27189960e01b8152600401610d0b9190615380565b5061129c612274565b60006112aa84860186615151565b90506001600160a01b0386166112c1609d83612358565b51879183916001600160a01b0316146112ef5760405163c0bbff1360e01b8152600401610d0b929190615625565b50506112fa81612746565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051611335929190615910565b60405180910390a2505050505050565b600080610f2a6000546001549091565b8261135e612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b815260040161138d939291906155e5565b602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190615608565b813390916113f15760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50508360006113ff82612067565b905061140a81612162565b611415816000612194565b6001600160a01b038616600090815260d56020526040902054869081906114505760405163ee27189960e01b8152600401610d0b9190615380565b50611459612274565b6001600160a01b03871661146e609d88612358565b51889188916001600160a01b03161461149c5760405163c0bbff1360e01b8152600401610d0b929190615625565b5050610c4c8686600260189054906101000a900463ffffffff1661289c565b6114c3612011565b610c6781600019611ef1565b3360008181526067602052604090205460ff16611500576040516372e3ef9760e01b8152600401610d0b9190615380565b50611509612274565b610f13612c28565b6000606080600080600060606000611527612c6f565b805490915015801561153b57506001810154155b61157f5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610d0b565b611587612c93565b61158f612d34565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806115c5612d51565b546001600160a01b031692915050565b60006115e2609d83612358565b905060006115fb60a054836123d290919063ffffffff16565b825160025491925060009161161d9190600160c01b900463ffffffff16612d75565b905081806116285750805b849061164757604051623477b560e51b8152600401610d0b9190615380565b5061165183612d94565b158490611672576040516317c7b35d60e31b8152600401610d0b9190615380565b5061167c84612746565b50505050565b604080516000815260208101909152606090826001600160401b038111156116ac576116ac61563f565b6040519080825280602002602001820160405280156116df57816020015b60608152602001906001900390816116ca5790505b50915060005b838110156117615761173c3086868481811061170357611703615968565b9050602002810190611715919061597e565b85604051602001611728939291906159c4565b604051602081830303815290604052612db3565b83828151811061174e5761174e615968565b60209081029190910101526001016116e5565b505092915050565b600084611774612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117a3939291906155e5565b602060405180830381865afa1580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e49190615608565b813390916118075760405163cc5d3c8b60e01b8152600401610d0b929190615625565b505085600061181582612067565b905061182081612162565b61182b816000612194565b6001600160a01b038816600090815260d56020526040902054889081906118665760405163ee27189960e01b8152600401610d0b9190615380565b5061186f612274565b600080896002811115611884576118846159eb565b036118e2576000611897888a018a615a16565b8051602001519091508b6001600160a01b03828116908216146118cf57604051631a071d0760e01b8152600401610d0b929190615625565b50506118da81612e29565b915050611995565b60028960028111156118f6576118f66159eb565b0361197a5760008061190a898b018b615b3b565b90925090506001600160a01b038c16611924609d84612358565b518d9184916001600160a01b0316146119525760405163c0bbff1360e01b8152600401610d0b929190615625565b50506119718282600260189054906101000a900463ffffffff1661332e565b92505050611995565b8860405163047031cf60e41b8152600401610d0b9190615b89565b8860028111156119a7576119a76159eb565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff5836040516119e291815260200190565b60405180910390a39998505050505050505050565b6000610ecb82600260189054906101000a900463ffffffff16612d75565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381168214611a625760405163cdc0567f60e01b8152600401610d0b929190615625565b506000905080611a7483850185615b97565b91509150611a80612043565b6001600160a01b031663e76fede6868484611a996138ce565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c5883604051611b4591815260200190565b60405180910390a25050505050565b82611b5d612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611b8c939291906155e5565b602060405180830381865afa158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190615608565b81339091611bf05760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d5602052604090205484908190611c2d5760405163ee27189960e01b8152600401610d0b9190615380565b50611c36612274565b611c3f856138f2565b611c4885613908565b6040516001600160a01b038616907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a25050505050565b6000611c8f838361397b565b9392505050565b82611c9f612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611cce939291906155e5565b602060405180830381865afa158015611ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0f9190615608565b81339091611d325760405163cc5d3c8b60e01b8152600401610d0b929190615625565b5050836000611d4082612067565b9050611d4b81612162565b611d56816000612194565b6001600160a01b038616600090815260d5602052604090205486908190611d915760405163ee27189960e01b8152600401610d0b9190615380565b50611d9a612274565b6000808080611dab898b018b615bb9565b9350935093509350611dd38b83868685600260189054906101000a900463ffffffff166139ea565b508a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b604051611e0f929190615910565b60405180910390a25050505050505050505050565b611e2c612011565b610c6781611fbb565b611e3d612011565b6001600160a01b038116611e67576000604051631e4fbdf760e01b8152600401610d0b9190615380565b610c67816125e7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611e9c613b73565b610c6781613b98565b610f13613b73565b611eb5613b73565b611ebd613ba0565b610f13611ea5565b611ecd613b73565b611ebd613bd5565b611edd613b73565b611ee78282613bf2565b610eac8282613c04565b818180821115611f1d5760405163ccccdafb60e01b815260048101929092526024820152604401610d0b565b50506000829055600181905560408051838152602081018390527f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f56884991015b60405180910390a15050565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f906020016111af565b80600003611fdc5760405163bc71a04360e01b815260040160405180910390fd5b60d68190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23906020016111af565b3361201a6115ba565b6001600160a01b031614610f13573360405163118cdaa760e01b8152600401610d0b9190615380565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052906120b8612043565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b81526004016120e5929190615625565b61012060405180830381865afa158015612103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121279190615c36565b90508060a001516001600160401b031660001415839061215b57604051637b3c09bf60e01b8152600401610d0b9190615380565b5092915050565b610c67816000015160005460015460405180604001604052806006815260200165746f6b656e7360d01b815250613c0c565b60008061219f612643565b915091506000836121b45784608001516121ba565b8460e001515b9050612208816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b815250613c0c565b60008061221361252d565b9150915060008661222857876060015161222e565b8760c001515b9050610c4c8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b815250613c0c565b61227c611065565b15610f135760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b03828116600081815260a1602052604080822080546001600160a01b0319169486169485179055517f3349d2e561f8c23a3ff42257745c8fb53e4bf3cbd4046672a3c4a0c7ee8a7b319190a35050565b6122f9612274565b6001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b6123606150eb565b61236a8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e08201529392505050565b6000806123e784606001518560a00151613ce8565b6123f19042615955565b90506123fc846125c8565b801561240757508281115b949350505050565b612417611065565b610f1357604051638dfc202b60e01b815260040160405180910390fd5b61243c61240f565b60006124466125a4565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516111af9190615380565b6001600160a01b0382166000818152606a602090815260408083208151928301849052828201949094528051808303820181526060909201905281906124d4908490613cfe90613d6990613e629089613e87565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb83838060200190518101906125189190615cd8565b60408051928352602083019190915201611b45565b6000806125386138ce565b6001600160a01b031663846337136040518163ffffffff1660e01b8152600401602060405180830381865afa158015612575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125999190615cf1565b92620f424092509050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006125d78260600151151590565b8015610ecb575050608001511590565b60006125f1612d51565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60008061264e6138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561268b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126af9190615d0e565b926001600160401b0392509050565b60a08190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba906020016111af565b612700609e848484613f41565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6000612753609d83612358565b90506127de82612761613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161279291815260200190565b6020604051808303816000875af11580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d59190615cd8565b609d9190614008565b6127e9609d836140b0565b805160408201516127fc91609f9161415b565b806040015160a2600083602001518152602001908152602001600020546128239190615955565b60a2600083602001518152602001908152602001600020819055508060200151826001600160a01b031682600001516001600160a01b03167f663a6f978de61dc3e2441026c082be709377b083ab642a8ce71386f8b91c710b846040015160405161289091815260200190565b60405180910390a45050565b6128a46150eb565b60006128b1609d86612358565b90506128bc816125c8565b85906128dc57604051631eb5ff9560e01b8152600401610d0b9190615380565b508060400151841415858590916129085760405163f32518cd60e01b8152600401610d0b92919061545c565b505060408101518085111561293e57612939612922612043565b835161292e8489615955565b609f929190886141e0565b612957565b81516129579061294e8784615955565b609f919061415b565b6000612961613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161299291815260200190565b6020604051808303816000875af11580156129b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d59190615cd8565b905060006129e284612d94565b156129ee5760006129fd565b60c08401516129fd9083615955565b6001600160a01b0389166000908152609d60205260409020600281018990556006018390559050612a2c613fe4565b604051636452fc0f60e11b815260048101859052602481018390526001600160a01b03919091169063c8a5f81e90604401602060405180830381865afa158015612a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9e9190615cd8565b6001600160a01b0389166000908152609d602052604081206007018054909190612ac9908490615d2b565b909155505082871115612b1157612ae08388615955565b60a26000866020015181526020019081526020016000206000828254612b069190615d2b565b90915550612b479050565b612b1b8784615955565b60a26000866020015181526020019081526020016000206000828254612b419190615955565b90915550505b8360200151886001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f8a87604051612b9e929190918252602082015260400190565b60405180910390a4505050506001600160a01b039384166000908152609d6020908152604091829020825161010081018452815490971687526001810154918701919091526002810154918601919091526003810154606086015260048101546080860152600581015460a0860152600681015460c08601526007015460e0850152509192915050565b612c30612274565b6000612c3a6125a4565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124733390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b60606000612c9f612c6f565b9050806002018054612cb0906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054612cdc906157d1565b8015612d295780601f10612cfe57610100808354040283529160200191612d29565b820191906000526020600020905b815481529060010190602001808311612d0c57829003601f168201915b505050505091505090565b60606000612d40612c6f565b9050806003018054612cb0906157d1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000612d8c612d82612043565b609f9085856142e5565b159392505050565b6000612da38260600151151590565b8015610ecb575050604001511590565b6060600080846001600160a01b031684604051612dd09190615d3e565b600060405180830381855af49150503d8060008114612e0b576040519150601f19603f3d011682016040523d82523d6000602084013e612e10565b606091505b5091509150612e2085838361437f565b95945050505050565b80516020808201516080909201518051600093928492612e4e92810182019101615d5a565b90506000612e5d609d83612358565b805190915083906001600160a01b0381811690831614612e9257604051634508fbf760e11b8152600401610d0b929190615625565b50506020810151612ea4846000612480565b6000612eae6143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612ed99190615380565b602060405180830381865afa158015612ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1a9190615cd8565b90506000612f266143f6565b6001600160a01b0316634c4ea0ed846040518263ffffffff1660e01b8152600401612f5391815260200190565b602060405180830381865afa158015612f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f949190615608565b612f9f576000612fa3565b60d7545b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637f07d28360008b85604051602001612feb929190615d77565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401613017929190615e16565b6020604051808303816000875af1158015613036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305a9190615cd8565b90506000613068828461441a565b905060006130746143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161309f9190615380565b602060405180830381865afa1580156130bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e09190615cd8565b9050806130ed8387615d2b565b1485828490919261312257604051631b0d791f60e11b8152600481019390935260248301919091526044820152606401610d0b565b5050831590506132db57600060d6548461313c9190615e36565b905060006131486138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a99190615d0e565b6131bc906001600160401b031642615d2b565b90506131c98b8383614481565b83156132d8576131d7613fe4565b6001600160a01b0316631d1c2fec896040518263ffffffff1660e01b815260040161320491815260200190565b6020604051808303816000875af1158015613223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132479190615cd8565b5061326c6132536143f6565b8561325c6143d2565b6001600160a01b031691906145f3565b6132746143f6565b60405163102ae65160e31b8152600481018a9052602481018690526001600160a01b039190911690638157328890604401600060405180830381600087803b1580156132bf57600080fd5b505af11580156132d3573d6000803e3d6000fd5b505050505b50505b60408051848152602081018490526001600160a01b038b16917f60a56d4d503735b4848feb6f491f14d7415262346b820d3b5a3d2733201bda36910160405180910390a250909998505050505050505050565b60008061333c609d86612358565b9050613347816125c8565b859061336757604051631eb5ff9560e01b8152600401610d0b9190615380565b50600061337f60a054836123d290919063ffffffff16565b158015613392575061339082612d94565b155b801561339d57508415155b6133a857600061341e565b6133b0613fe4565b6001600160a01b031663db750926876040518263ffffffff1660e01b81526004016133db9190615380565b6020604051808303816000875af11580156133fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341e9190615cd8565b905061345d8661342c613fe4565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b815260040161279291815260200190565b613468609d876146a2565b613473609d8761474d565b60008082156137c2576000613486612043565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f916134b9913090600290600401615e4d565b602060405180830381865afa1580156134d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134fa9190615cd8565b90506000613506612043565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613536913090600401615625565b60a060405180830381865afa158015613553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135779190615e72565b9050600081602001511161358c576000613596565b613596858361441a565b9250821561368b576135a66143d2565b6001600160a01b031663095ea7b36135bc612043565b856040518363ffffffff1660e01b81526004016135da92919061545c565b6020604051808303816000875af11580156135f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361d9190615608565b50613626612043565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e9916136589130908890600401615ec7565b600060405180830381600087803b15801561367257600080fd5b505af1158015613686573d6000803e3d6000fd5b505050505b6136958386615955565b935083156137bf5785516001600160a01b03908116600090815260a1602052604090205416806137b0576136c76143d2565b6001600160a01b031663095ea7b36136dd612043565b876040518363ffffffff1660e01b81526004016136fb92919061545c565b6020604051808303816000875af115801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190615608565b50613747612043565b8751604051633a30904960e11b81526001600160a01b0392909216916374612092916137799130908a90600401615ec7565b600060405180830381600087803b15801561379357600080fd5b505af11580156137a7573d6000803e3d6000fd5b505050506137bd565b6137bd818661325c6143d2565b505b50505b602084015184516001600160a01b038a811691167f7df4dbb3b3c999ca3e143d3fe67abfa22078fd572d49d411278648c773912e318686868d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387d9190615cd8565b604080519586526020860194909452928401919091526060830152608082015260a00160405180910390a483516138b49087612d75565b156138c2576138c288612746565b50909695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006138fd82612067565b9050610eac81612162565b6139138160016147f9565b61391b612043565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016139469190615380565b600060405180830381600087803b15801561396057600080fd5b505af1158015613974573d6000803e3d6000fd5b5050505050565b6000611c8f7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016139cf939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614810565b6139f26150eb565b6001600160a01b038616613a1957604051634ffdf5ef60e11b815260040160405180910390fd5b613a2487878561483d565b613a2f609e8761488c565b6000613abc88888888613a40613fe4565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b8152600401613a6d91815260200190565b6020604051808303816000875af1158015613a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ab09190615cd8565b609d94939291906148e1565b9050613ad4613ac9612043565b609f908a88876141e0565b806040015160a260008360200151815260200190815260200160002054613afb9190615d2b565b60a26000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167f3bd4419f8defec88dd042e31b8e8743f00803aed288fe7c31c9cf0689d295cf28460400151604051613b6091815260200190565b60405180910390a4979650505050505050565b613b7b614a2e565b610f1357604051631afcd79f60e31b815260040160405180910390fd5b611e3d613b73565b613ba8613b73565b613bb56000600019611ef1565b613bc36000620f4240614a48565b610f1360006001600160401b03614b1a565b613bdd613b73565b6000613be76125a4565b805460ff1916905550565b613bfa613b73565b610eac8282614ba7565b610eac613b73565b613c17848484614be8565b8185858590919293610c4c57604051630871e13d60e01b8152600401610d0b9493929190615eeb565b6001600160a01b03808216600090815260208481526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401529091613cc09060600151151590565b8390613ce0576040516342daadaf60e01b8152600401610d0b9190615380565b509392505050565b6000818311613cf75781611c8f565b5090919050565b60008181526069602090815260408083208151608081018352815481526001820154938101849052600282015492810192909252600301546060820152908390613d5e5760405163107349a960e21b8152600401610d0b91815260200190565b506060015192915050565b600060606000613d7885614bff565b90504281604001511115613da057505060408051602081019091526000815260019150613e5b565b60008085806020019051810190613db79190615f1a565b84519193509150613dcc90606890839061415b565b82516040808501518151928352602083015288916001600160a01b038416917f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f44910160405180910390a38251613e229083615d2b565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152606960205260408120818155600181018290556002810182905560030155565b600060608760030154831115613eb057604051634a411b9d60e11b815260040160405180910390fd5b60008315613ebe5783613ec4565b88600301545b89549094505b8015801590613ed95750600085115b15613f3257600080613eef83898c63ffffffff16565b915091508115613f00575050613f32565b965086613f0e8c8c8b614c8d565b925086613f1a81615f40565b9750508380613f2890615f57565b9450505050613eca565b50989397509295505050505050565b6001600160a01b038281166000908152602086815260409182902082518084019093528054909316808352600190930154910152829015613f9657604051632d3e5fb960e01b8152600401610d0b9190615380565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006140148484613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614080906125c8565b600482015484916140a6576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050600601555050565b60006140bc8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614128906125c8565b6004820154839161414e576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426004909101555050565b8060000361416857505050565b6001600160a01b03821660009081526020849052604090205481808210156141ac57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038216600090815260208490526040812080548392906141d6908490615955565b9091555050505050565b8115613974576001600160a01b03831660009081526020869052604081205461420a908490615d2b565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161423e93929190615f70565b602060405180830381865afa15801561425b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061427f9190615cd8565b90508082818111156142ad57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038516600090815260208890526040812080548692906142d7908490615d2b565b909155505050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161431893929190615f70565b602060405180830381865afa158015614335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143599190615cd8565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b6060826143945761438f82614d14565b611c8f565b81511580156143ab57506001600160a01b0384163b155b156143cb5783604051639996b31560e01b8152600401610d0b9190615380565b5080611c8f565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b600061442983620f4240101590565b8061443c575061443c82620f4240101590565b838390916144665760405163768bf0eb60e11b815260048101929092526024820152604401610d0b565b50620f424090506144778385615e36565b611c8f9190615f99565b816000036144a257604051638f4c63d960e01b815260040160405180910390fd5b6144ce6144ad612043565b600254606891908690869063ffffffff600160c01b9091048116906141e016565b6001600160a01b0383166000908152606a6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52606990985295909720915182559351600182015592519083015591516003918201558101549091901561459c57600182015460009081526069602052604090206003018190555b6145a68282614d3d565b604080518581526020810185905282916001600160a01b038816917f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f910160405180910390a35050505050565b80156111415760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90614627908590859060040161545c565b6020604051808303816000875af1158015614646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061466a9190615608565b6111415760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610d0b565b60006146ae8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015290915061471a906125c8565b60048201548391614740576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426005909101555050565b60006147598383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201529091506147c5906125c8565b600482015483916147eb576040516361b66e0d60e01b8152600401610d0b92919061545c565b505060006007909101555050565b600061480483612067565b90506111418183612194565b6000610ecb61481d614dd0565b8360405161190160f01b8152600281019290925260228201526042902090565b600061485261484c858561397b565b83614dda565b905080836001600160a01b038083169082161461488457604051638c5b935d60e01b8152600401610d0b929190615625565b505050505050565b6001600160a01b03818116600090815260208481526040918290208251808401909352805490931680835260019093015491015281901561114157604051638173627160e01b8152600401610d0b9190615380565b6148e96150eb565b6001600160a01b0380861660009081526020898152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015261496a9060600151151590565b15859061498b57604051630bc4def560e01b8152600401610d0b9190615380565b505060408051610100810182526001600160a01b0396871681526020808201958652818301948552426060830190815260006080840181815260a0850182815260c0860197885260e086018381529a8c1683529b90935293909320825181546001600160a01b0319169916989098178855945160018801559251600287015551600386015591516004850155935160058401555160068301555160079091015590565b6000614a38611e70565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614a765760405163ccccdafb60e01b8152600401610d0b9291906152ca565b508290508163ffffffff8116620f42401015614aa75760405163ccccdafb60e01b8152600401610d0b9291906152ca565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b029190911667ffffffffffffffff60801b19909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a3690611f5b90849084906152ca565b81816001600160401b038082169083161115614b4b5760405163ccccdafb60e01b8152600401610d0b929190615366565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d190611f5b9084908490615366565b614baf613b73565b6000614bb9612c6f565b905060028101614bc98482615852565b5060038101614bd88382615852565b5060008082556001909101555050565b600082841015801561240757505090911115919050565b614c2d6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152606960209081526040918290208251608081018452815481526001820154928101839052600282015493810193909352600301546060830152839061215b5760405163107349a960e21b8152600401610d0b91815260200190565b600080846003015411614cb35760405163ddaf8f2160e01b815260040160405180910390fd5b6000614cc685600001548563ffffffff16565b9050614cd985600001548463ffffffff16565b6001856003016000828254614cee9190615955565b90915550508085556003850154600003614d0a57600060018601555b5050915492915050565b805115614d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b612710826003015410614d63576040516303a8c56b60e61b815260040160405180910390fd5b80614d8157604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d9d908490615d2b565b90915550506003820154600003614db2578082555b6001826003016000828254614dc79190615d2b565b90915550505050565b6000610c6a614e04565b600080600080614dea8686614e78565b925092509250614dfa8282614ec5565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614e2f614f7e565b614e37614fe5565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614eb25760208401516040850151606086015160001a614ea488828585615026565b955095509550505050614ebe565b50508151600091506002905b9250925092565b6000826003811115614ed957614ed96159eb565b03614ee2575050565b6001826003811115614ef657614ef66159eb565b03614f145760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614f2857614f286159eb565b03614f495760405163fce698f760e01b815260048101829052602401610d0b565b6003826003811115614f5d57614f5d6159eb565b03610eac576040516335e2f38360e21b815260048101829052602401610d0b565b600080614f89612c6f565b90506000614f95612c93565b805190915015614fad57805160209091012092915050565b81548015614fbc579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614ff0612c6f565b90506000614ffc612d34565b80519091501561501457805160209091012092915050565b60018201548015614fbc579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0384111561505757506000915060039050826150e1565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156150ab573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166150d7575060009250600191508290506150e1565b9250600091508190505b9450945094915050565b60405180610100016040528060006001600160a01b03168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0381168114610c6757600080fd5b60006020828403121561516357600080fd5b8135611c8f8161513c565b63ffffffff81168114610c6757600080fd5b60008060006060848603121561519557600080fd5b8335925060208401356151a78161516e565b929592945050506040919091013590565b6000602082840312156151ca57600080fd5b8135611c8f8161516e565b60008083601f8401126151e757600080fd5b5081356001600160401b038111156151fe57600080fd5b602083019150836020828501011115613e5b57600080fd5b60008060006040848603121561522b57600080fd5b83356152368161513c565b925060208401356001600160401b0381111561525157600080fd5b61525d868287016151d5565b9497909650939450505050565b8015158114610c6757600080fd5b6000806040838503121561528b57600080fd5b82356152968161513c565b915060208301356152a68161526a565b809150509250929050565b6000602082840312156152c357600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156152fc5781810151838201526020016152e4565b50506000910152565b6000815180845261531d8160208601602086016152e1565b601f01601f19169290920160200192915050565b83815260606020820152600061534a6060830185615305565b828103604084015261535c8185615305565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b6001600160a01b0391909116815260200190565b6000806000606084860312156153a957600080fd5b83356153b48161513c565b925060208401356151a78161513c565b60ff60f81b8816815260e0602082015260006153e360e0830189615305565b82810360408401526153f58189615305565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561544b57835183526020938401939092019160010161542d565b50909b9a5050505050505050505050565b6001600160a01b03929092168252602082015260400190565b6000806020838503121561548857600080fd5b82356001600160401b0381111561549e57600080fd5b8301601f810185136154af57600080fd5b80356001600160401b038111156154c557600080fd5b8560208260051b84010111156154da57600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561554357603f1987860301845261552e858351615305565b94506020938401939190910190600101615512565b50929695505050505050565b6000806000806060858703121561556557600080fd5b84356155708161513c565b935060208501356003811061558457600080fd5b925060408501356001600160401b0381111561559f57600080fd5b6155ab878288016151d5565b95989497509550505050565b600080604083850312156155ca57600080fd5b82356155d58161513c565b915060208301356152a68161513c565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561561a57600080fd5b8151611c8f8161526a565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156156775761567761563f565b60405290565b60405160a081016001600160401b03811182821017156156775761567761563f565b60405161012081016001600160401b03811182821017156156775761567761563f565b600082601f8301126156d357600080fd5b8135602083016000806001600160401b038411156156f3576156f361563f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156157215761572161563f565b60405283815290508082840187101561573957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561576b57600080fd5b83356001600160401b0381111561578157600080fd5b61578d868287016156c2565b93505060208401356001600160401b038111156157a957600080fd5b6157b5868287016156c2565b92505060408401356157c68161513c565b809150509250925092565b600181811c908216806157e557607f821691505b60208210810361580557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561114157806000526020600020601f840160051c810160208510156158325750805b601f840160051c820191505b81811015613974576000815560010161583e565b81516001600160401b0381111561586b5761586b61563f565b61587f8161587984546157d1565b8461580b565b6020601f8211600181146158b3576000831561589b5750848201515b600019600385901b1c1916600184901b178455613974565b600084815260208120601f198516915b828110156158e357878501518255602094850194600190920191016158c3565b50848210156159015786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ecb57610ecb61593f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261599557600080fd5b8301803591506001600160401b038211156159af57600080fd5b602001915036819003821315613e5b57600080fd5b8284823760008382016000815283516159e18183602088016152e1565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6001600160401b0381168114610c6757600080fd5b600060208284031215615a2857600080fd5b81356001600160401b03811115615a3e57600080fd5b820160408185031215615a5057600080fd5b615a58615655565b81356001600160401b03811115615a6e57600080fd5b820160a08187031215615a8057600080fd5b615a8861567d565b8135615a938161513c565b81526020820135615aa38161513c565b60208201526040820135615ab681615a01565b604082015260608201356001600160801b0381168114615ad557600080fd5b606082015260808201356001600160401b03811115615af357600080fd5b615aff888285016156c2565b60808301525082525060208201356001600160401b03811115615b2157600080fd5b615b2d868285016156c2565b602083015250949350505050565b60008060408385031215615b4e57600080fd5b8235615b598161513c565b946020939093013593505050565b60038110615b8557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610ecb8284615b67565b60008060408385031215615baa57600080fd5b50508035926020909101359150565b60008060008060808587031215615bcf57600080fd5b84359350602085013592506040850135615be88161513c565b915060608501356001600160401b03811115615c0357600080fd5b615c0f878288016156c2565b91505092959194509250565b8051615c268161516e565b919050565b8051615c2681615a01565b6000610120828403128015615c4a57600080fd5b506000615c5561569f565b835181526020808501519082015260408085015190820152615c7960608501615c1b565b6060820152615c8a60808501615c2b565b6080820152615c9b60a08501615c2b565b60a0820152615cac60c08501615c1b565b60c0820152615cbd60e08501615c2b565b60e08201526101009384015193810193909352509092915050565b600060208284031215615cea57600080fd5b5051919050565b600060208284031215615d0357600080fd5b8151611c8f8161516e565b600060208284031215615d2057600080fd5b8151611c8f81615a01565b80820180821115610ecb57610ecb61593f565b60008251615d508184602087016152e1565b9190910192915050565b600060208284031215615d6c57600080fd5b8151611c8f8161513c565b604081526000835160408084015260018060a01b03815116608084015260018060a01b0360208201511660a08401526001600160401b0360408201511660c084015260018060801b0360608201511660e08401526080810151905060a0610100840152615de8610120840182615305565b90506020850151603f19848303016060850152615e058282615305565b925050508260208301529392505050565b615e208184615b67565b6040602082015260006124076040830184615305565b8082028115828204841417610ecb57610ecb61593f565b6001600160a01b03848116825283166020820152606081016124076040830184615b67565b600060a0828403128015615e8557600080fd5b506000615e9061567d565b8351815260208085015190820152604080850151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b608081526000615efe6080830187615305565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615f2d57600080fd5b825160208401519092506152a68161513c565b600081615f4f57615f4f61593f565b506000190190565b600060018201615f6957615f6961593f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b600082615fb657634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209c05e49a7d3d7f3015873a2c41e2f68419180f16cef8fd91645f14bc8e8b733264736f6c634300081b0033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2CE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8180083B GT PUSH2 0x17E JUMPI DUP1 PUSH4 0xA827A90C GT PUSH2 0xDF JUMPI DUP1 PUSH4 0xA827A90C EQ PUSH2 0x8F6 JUMPI DUP1 PUSH4 0xAC9650D8 EQ PUSH2 0x909 JUMPI DUP1 PUSH4 0xB15D2A2C EQ PUSH2 0x929 JUMPI DUP1 PUSH4 0xBA38F67D EQ PUSH2 0x93C JUMPI DUP1 PUSH4 0xBFDFA7AF EQ PUSH2 0x94F JUMPI DUP1 PUSH4 0xCB8347FE EQ PUSH2 0x966 JUMPI DUP1 PUSH4 0xCBE5F3F2 EQ PUSH2 0x979 JUMPI DUP1 PUSH4 0xCE0FC0CC EQ PUSH2 0x999 JUMPI DUP1 PUSH4 0xCE56C98B EQ PUSH2 0x9AC JUMPI DUP1 PUSH4 0xD07A7A84 EQ PUSH2 0x9BF JUMPI DUP1 PUSH4 0xDEDF6726 EQ PUSH2 0x9C8 JUMPI DUP1 PUSH4 0xE2E1E8E9 EQ PUSH2 0x9DB JUMPI DUP1 PUSH4 0xE6F50054 EQ PUSH2 0x9FB JUMPI DUP1 PUSH4 0xEFF0F592 EQ PUSH2 0xA0E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xA43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8180083B EQ PUSH2 0x795 JUMPI DUP1 PUSH4 0x819BA366 EQ PUSH2 0x7A8 JUMPI DUP1 PUSH4 0x81E777A7 EQ PUSH2 0x7C5 JUMPI DUP1 PUSH4 0x832BC923 EQ PUSH2 0x7D8 JUMPI DUP1 PUSH4 0x8456CB59 EQ PUSH2 0x7EB JUMPI DUP1 PUSH4 0x84B0196E EQ PUSH2 0x7F3 JUMPI DUP1 PUSH4 0x85E82BAF EQ PUSH2 0x80E JUMPI DUP1 PUSH4 0x88812583 EQ PUSH2 0x817 JUMPI DUP1 PUSH4 0x8D2F2948 EQ PUSH2 0x82E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x859 JUMPI DUP1 PUSH4 0x9249C5C1 EQ PUSH2 0x861 JUMPI DUP1 PUSH4 0x9384E078 EQ PUSH2 0x878 JUMPI DUP1 PUSH4 0x93D4E7CB EQ PUSH2 0x89B JUMPI DUP1 PUSH4 0x9AAFA5D1 EQ PUSH2 0x8DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x4F793CDC GT PUSH2 0x233 JUMPI DUP1 PUSH4 0x4F793CDC EQ PUSH2 0x4B1 JUMPI DUP1 PUSH4 0x52A9039C EQ PUSH2 0x4D3 JUMPI DUP1 PUSH4 0x55C85269 EQ PUSH2 0x573 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x636 JUMPI DUP1 PUSH4 0x6234E216 EQ PUSH2 0x63E JUMPI DUP1 PUSH4 0x6A3CA383 EQ PUSH2 0x65E JUMPI DUP1 PUSH4 0x6D9A3951 EQ PUSH2 0x671 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x6EC JUMPI DUP1 PUSH4 0x71CE020A EQ PUSH2 0x6F4 JUMPI DUP1 PUSH4 0x7203CA78 EQ PUSH2 0x70A JUMPI DUP1 PUSH4 0x73371823 EQ PUSH2 0x740 JUMPI DUP1 PUSH4 0x772495C3 EQ PUSH2 0x749 JUMPI DUP1 PUSH4 0x7AA31BCE EQ PUSH2 0x75C JUMPI DUP1 PUSH4 0x7DFE6D28 EQ PUSH2 0x76F JUMPI DUP1 PUSH4 0x7E89BAC3 EQ PUSH2 0x782 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE022923 EQ PUSH2 0x2D3 JUMPI DUP1 PUSH4 0x138DEA08 EQ PUSH2 0x354 JUMPI DUP1 PUSH4 0x13C474C9 EQ PUSH2 0x36B JUMPI DUP1 PUSH4 0x1CAFA218 EQ PUSH2 0x3C0 JUMPI DUP1 PUSH4 0x1DD42F60 EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0x1EBB7C30 EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0x24B8FBF6 EQ PUSH2 0x40E JUMPI DUP1 PUSH4 0x35577962 EQ PUSH2 0x421 JUMPI DUP1 PUSH4 0x36FDD28A EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0x3AFD23FE EQ PUSH2 0x43D JUMPI DUP1 PUSH4 0x3F0ED79D EQ PUSH2 0x45D JUMPI DUP1 PUSH4 0x3F4BA83A EQ PUSH2 0x480 JUMPI DUP1 PUSH4 0x45F54485 EQ PUSH2 0x488 JUMPI DUP1 PUSH4 0x482468B7 EQ PUSH2 0x49B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E6 PUSH2 0x2E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0xA56 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP2 SWAP1 DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 SWAP2 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH2 0x100 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x35D PUSH1 0xD7 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3A0 PUSH2 0x379 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x6A PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP5 DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE SWAP2 DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x3CE CALLDATASIZE PUSH1 0x4 PUSH2 0x5180 JUMP JUMPDEST PUSH2 0xAD8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3D3 PUSH2 0x3E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x51B8 JUMP JUMPDEST PUSH2 0xC56 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x41C CALLDATASIZE PUSH1 0x4 PUSH2 0x5216 JUMP JUMPDEST PUSH2 0xC6F JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x42F CALLDATASIZE PUSH1 0x4 PUSH2 0x5278 JUMP JUMPDEST PUSH2 0xE9A JUMP JUMPDEST PUSH2 0x35D PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x35D PUSH2 0x44B CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH1 0xA2 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x470 PUSH2 0x46B CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0xEB0 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0xED1 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x496 CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH2 0xF15 JUMP JUMPDEST PUSH2 0x4A3 PUSH2 0xF1F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP3 SWAP2 SWAP1 PUSH2 0x52CA JUMP JUMPDEST PUSH2 0x4C4 PUSH2 0x4BF CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5331 JUMP JUMPDEST PUSH2 0x52E PUSH2 0x4E1 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x9D PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD PUSH1 0x4 DUP6 ADD SLOAD PUSH1 0x5 DUP7 ADD SLOAD PUSH1 0x6 DUP8 ADD SLOAD PUSH1 0x7 SWAP1 SWAP8 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND SWAP7 SWAP5 SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 DUP9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP10 AND DUP10 MSTORE PUSH1 0x20 DUP10 ADD SWAP8 SWAP1 SWAP8 MSTORE SWAP6 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x604 PUSH2 0x581 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x100 DUP2 ADD DUP5 MSTORE DUP2 SLOAD SWAP1 SWAP5 AND DUP1 DUP6 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP6 ADD DUP4 SWAP1 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP4 DUP6 ADD DUP5 SWAP1 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP7 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP7 ADD DUP2 SWAP1 MSTORE PUSH1 0x7 SWAP1 SWAP3 ADD SLOAD PUSH1 0xE0 SWAP1 SWAP6 ADD DUP6 SWAP1 MSTORE SWAP5 SWAP2 SWAP4 SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP3 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x470 PUSH2 0x1065 JUMP JUMPDEST PUSH2 0x35D PUSH2 0x64C CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x9F PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x470 PUSH2 0x66C CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0x107A JUMP JUMPDEST PUSH2 0x6C8 PUSH2 0x67F CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 SWAP2 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE PUSH1 0x9E DUP3 MSTORE DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD SWAP1 SWAP4 AND DUP3 MSTORE PUSH1 0x1 SWAP1 SWAP3 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x10F6 JUMP JUMPDEST PUSH2 0x6FC PUSH2 0x1108 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP3 SWAP2 SWAP1 PUSH2 0x5366 JUMP JUMPDEST PUSH2 0x733 PUSH2 0x718 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0xA1 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH2 0x35D PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x757 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0x1113 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x76A CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH2 0x111D JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x77D CALLDATASIZE PUSH1 0x4 PUSH2 0x5394 JUMP JUMPDEST PUSH2 0x112E JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x790 CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH2 0x1146 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x7A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x5216 JUMP JUMPDEST PUSH2 0x11BA JUMP JUMPDEST PUSH2 0x7B0 PUSH2 0x1345 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x7D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x5394 JUMP JUMPDEST PUSH2 0x1355 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x7E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH2 0x14BB JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x14CF JUMP JUMPDEST PUSH2 0x7FB PUSH2 0x1511 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x53C4 JUMP JUMPDEST PUSH2 0x35D PUSH1 0xA0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x3F9 SWAP1 PUSH1 0x1 PUSH1 0x80 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x841 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x34B JUMP JUMPDEST PUSH2 0x733 PUSH2 0x15BA JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x3F9 SWAP1 PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x470 PUSH2 0x886 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x8CE PUSH2 0x8A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x9E PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x841 SWAP1 PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x904 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0x15D5 JUMP JUMPDEST PUSH2 0x91C PUSH2 0x917 CALLDATASIZE PUSH1 0x4 PUSH2 0x5475 JUMP JUMPDEST PUSH2 0x1682 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x34B SWAP2 SWAP1 PUSH2 0x54EA JUMP JUMPDEST PUSH2 0x35D PUSH2 0x937 CALLDATASIZE PUSH1 0x4 PUSH2 0x554F JUMP JUMPDEST PUSH2 0x1769 JUMP JUMPDEST PUSH2 0x470 PUSH2 0x94A CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0x19F7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x3F9 SWAP1 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x974 CALLDATASIZE PUSH1 0x4 PUSH2 0x5216 JUMP JUMPDEST PUSH2 0x1A15 JUMP JUMPDEST PUSH2 0x35D PUSH2 0x987 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH1 0x68 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x9A7 CALLDATASIZE PUSH1 0x4 PUSH2 0x5216 JUMP JUMPDEST PUSH2 0x1B54 JUMP JUMPDEST PUSH2 0x35D PUSH2 0x9BA CALLDATASIZE PUSH1 0x4 PUSH2 0x55B7 JUMP JUMPDEST PUSH2 0x1C83 JUMP JUMPDEST PUSH2 0x35D PUSH1 0xD6 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0x9D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x5216 JUMP JUMPDEST PUSH2 0x1C96 JUMP JUMPDEST PUSH2 0x35D PUSH2 0x9E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0xA09 CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH2 0x1E24 JUMP JUMPDEST PUSH2 0x3A0 PUSH2 0xA1C CALLDATASIZE PUSH1 0x4 PUSH2 0x52B1 JUMP JUMPDEST PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 SWAP1 SWAP4 ADD SLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP5 JUMP JUMPDEST PUSH2 0x3D3 PUSH2 0xA51 CALLDATASIZE PUSH1 0x4 PUSH2 0x5151 JUMP JUMPDEST PUSH2 0x1E35 JUMP JUMPDEST PUSH2 0xA5E PUSH2 0x50EB JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x100 DUP2 ADD DUP5 MSTORE DUP2 SLOAD SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x7 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE2 PUSH2 0x1E70 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0xB09 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0xB25 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0xB33 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xB51 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xB7B JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0xB84 CALLER PUSH2 0x1E94 JUMP JUMPDEST PUSH2 0xB8C PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0xB94 PUSH2 0x1EAD JUMP JUMPDEST PUSH2 0xB9C PUSH2 0x1EC5 JUMP JUMPDEST PUSH2 0xBE8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH15 0x537562677261706853657276696365 PUSH1 0x88 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x312E3 PUSH1 0xEC SHL DUP2 MSTORE POP PUSH2 0x1ED5 JUMP JUMPDEST PUSH2 0xBF4 DUP9 PUSH1 0x0 NOT PUSH2 0x1EF1 JUMP JUMPDEST PUSH2 0xBFD DUP8 PUSH2 0x1F67 JUMP JUMPDEST PUSH2 0xC06 DUP7 PUSH2 0x1FBB JUMP JUMPDEST DUP4 ISZERO PUSH2 0xC4C JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC5E PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH2 0x1F67 JUMP JUMPDEST POP JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0xC78 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCA7 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCC4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCE8 SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0xD14 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0xD22 DUP3 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0xD2D DUP2 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0xD38 DUP2 PUSH1 0x0 PUSH2 0x2194 JUMP JUMPDEST PUSH2 0xD40 PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0xD50 DUP8 DUP10 ADD DUP10 PUSH2 0x5756 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH1 0x0 DUP4 MLOAD GT PUSH2 0xD78 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7838439 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 MLOAD GT PUSH2 0xD9A JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E63BD95 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xDD1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD06866D PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE TIMESTAMP DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP7 DUP2 MSTORE DUP3 DUP5 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP14 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 SWAP1 SWAP3 MSTORE SWAP3 SWAP1 KECCAK256 DUP2 MLOAD DUP2 SSTORE SWAP2 MLOAD SWAP1 SWAP2 SWAP1 PUSH1 0x1 DUP3 ADD SWAP1 PUSH2 0xE1B SWAP1 DUP3 PUSH2 0x5852 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SWAP1 PUSH2 0xE30 SWAP1 DUP3 PUSH2 0x5852 JUMP JUMPDEST POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO PUSH2 0xE4C JUMPI PUSH2 0xE4C DUP10 DUP3 PUSH2 0x229A JUMP JUMPDEST DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x159567BEA25499A91F60E1FBB349FF2A1F8C1B2883198F25C1E12C99EDDB44FA DUP10 DUP10 PUSH1 0x40 MLOAD PUSH2 0xE87 SWAP3 SWAP2 SWAP1 PUSH2 0x5910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xEA2 PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xEAC DUP3 DUP3 PUSH2 0x22F1 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xA0 SLOAD PUSH1 0x0 SWAP1 PUSH2 0xECB SWAP1 PUSH2 0xEC5 PUSH1 0x9D DUP6 PUSH2 0x2358 JUMP JUMPDEST SWAP1 PUSH2 0x23D2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xF02 JUMPI PUSH1 0x40 MLOAD PUSH4 0x72E3EF97 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0xF0B PUSH2 0x240F JUMP JUMPDEST PUSH2 0xF13 PUSH2 0x2434 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xC67 CALLER DUP3 PUSH2 0x2480 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF2A PUSH2 0x252D JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD DUP1 SLOAD SWAP2 SWAP3 SWAP2 PUSH2 0xF54 SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xF80 SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xFCD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xFA2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xFCD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xFB0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0xFE2 SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x100E SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x105B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1030 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x105B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x103E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1070 PUSH2 0x25A4 JUMP JUMPDEST SLOAD PUSH1 0xFF AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH2 0x100 DUP2 ADD DUP4 MSTORE DUP2 SLOAD SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP1 DUP5 ADD MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x7 ADD SLOAD PUSH1 0xE0 DUP4 ADD MSTORE SWAP1 PUSH2 0xECB SWAP1 PUSH2 0x25C8 JUMP JUMPDEST PUSH2 0x10FE PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xF13 PUSH1 0x0 PUSH2 0x25E7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF2A PUSH2 0x2643 JUMP JUMPDEST PUSH2 0xC67 CALLER DUP3 PUSH2 0x229A JUMP JUMPDEST PUSH2 0x1125 PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH2 0x26BE JUMP JUMPDEST PUSH2 0x1136 PUSH2 0x2011 JUMP JUMPDEST PUSH2 0x1141 DUP4 DUP4 DUP4 PUSH2 0x26F3 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x114E PUSH2 0x2011 JUMP JUMPDEST PUSH2 0x115B DUP2 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP2 SWAP1 PUSH2 0x117D JUMPI PUSH1 0x40 MLOAD PUSH4 0x1C9C717B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0xD7 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x6DEEF78FFE3DF79AE5CD8E40B842C36AC6077E13746B9B68A9F327537B01E4E9 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST DUP3 PUSH2 0x11C3 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11F2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x120F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1233 SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1256 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP5 SWAP1 DUP2 SWAP1 PUSH2 0x1293 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x129C PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12AA DUP5 DUP7 ADD DUP7 PUSH2 0x5151 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x12C1 PUSH1 0x9D DUP4 PUSH2 0x2358 JUMP JUMPDEST MLOAD DUP8 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x12EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH2 0x12FA DUP2 PUSH2 0x2746 JUMP JUMPDEST DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x73330C218A680717E9EEE625C262DF66EDDFDF99ECB388D25F6B32D66B9A318A DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1335 SWAP3 SWAP2 SWAP1 PUSH2 0x5910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xF2A PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD SWAP1 SWAP2 JUMP JUMPDEST DUP3 PUSH2 0x135E PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x138D SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13CE SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x13F1 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0x13FF DUP3 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0x140A DUP2 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0x1415 DUP2 PUSH1 0x0 PUSH2 0x2194 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP7 SWAP1 DUP2 SWAP1 PUSH2 0x1450 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x1459 PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH2 0x146E PUSH1 0x9D DUP9 PUSH2 0x2358 JUMP JUMPDEST MLOAD DUP9 SWAP2 DUP9 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x149C JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH2 0xC4C DUP7 DUP7 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x289C JUMP JUMPDEST PUSH2 0x14C3 PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH1 0x0 NOT PUSH2 0x1EF1 JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1500 JUMPI PUSH1 0x40 MLOAD PUSH4 0x72E3EF97 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x1509 PUSH2 0x2274 JUMP JUMPDEST PUSH2 0xF13 PUSH2 0x2C28 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x1527 PUSH2 0x2C6F JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP ISZERO DUP1 ISZERO PUSH2 0x153B JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD ISZERO JUMPDEST PUSH2 0x157F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0x24 DUP3 ADD MSTORE PUSH21 0x1152540DCC4C8E88155B9A5B9A5D1A585B1A5E9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD0B JUMP JUMPDEST PUSH2 0x1587 PUSH2 0x2C93 JUMP JUMPDEST PUSH2 0x158F PUSH2 0x2D34 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0xF PUSH1 0xF8 SHL SWAP13 SWAP4 SWAP12 POP SWAP2 SWAP10 POP CHAINID SWAP9 POP ADDRESS SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x15C5 PUSH2 0x2D51 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15E2 PUSH1 0x9D DUP4 PUSH2 0x2358 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x15FB PUSH1 0xA0 SLOAD DUP4 PUSH2 0x23D2 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST DUP3 MLOAD PUSH1 0x2 SLOAD SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH2 0x161D SWAP2 SWAP1 PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2D75 JUMP JUMPDEST SWAP1 POP DUP2 DUP1 PUSH2 0x1628 JUMPI POP DUP1 JUMPDEST DUP5 SWAP1 PUSH2 0x1647 JUMPI PUSH1 0x40 MLOAD PUSH3 0x3477B5 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x1651 DUP4 PUSH2 0x2D94 JUMP JUMPDEST ISZERO DUP5 SWAP1 PUSH2 0x1672 JUMPI PUSH1 0x40 MLOAD PUSH4 0x17C7B35D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x167C DUP5 PUSH2 0x2746 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 SWAP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x16AC JUMPI PUSH2 0x16AC PUSH2 0x563F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x16DF JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x16CA JUMPI SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1761 JUMPI PUSH2 0x173C ADDRESS DUP7 DUP7 DUP5 DUP2 DUP2 LT PUSH2 0x1703 JUMPI PUSH2 0x1703 PUSH2 0x5968 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1715 SWAP2 SWAP1 PUSH2 0x597E JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1728 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x59C4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x2DB3 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x174E JUMPI PUSH2 0x174E PUSH2 0x5968 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x16E5 JUMP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH2 0x1774 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17A3 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17E4 SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1807 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP DUP6 PUSH1 0x0 PUSH2 0x1815 DUP3 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0x1820 DUP2 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0x182B DUP2 PUSH1 0x0 PUSH2 0x2194 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP9 SWAP1 DUP2 SWAP1 PUSH2 0x1866 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x186F PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP10 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1884 JUMPI PUSH2 0x1884 PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0x18E2 JUMPI PUSH1 0x0 PUSH2 0x1897 DUP9 DUP11 ADD DUP11 PUSH2 0x5A16 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 ADD MLOAD SWAP1 SWAP2 POP DUP12 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND SWAP1 DUP3 AND EQ PUSH2 0x18CF JUMPI PUSH1 0x40 MLOAD PUSH4 0x1A071D07 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH2 0x18DA DUP2 PUSH2 0x2E29 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1995 JUMP JUMPDEST PUSH1 0x2 DUP10 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x18F6 JUMPI PUSH2 0x18F6 PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0x197A JUMPI PUSH1 0x0 DUP1 PUSH2 0x190A DUP10 DUP12 ADD DUP12 PUSH2 0x5B3B JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH2 0x1924 PUSH1 0x9D DUP5 PUSH2 0x2358 JUMP JUMPDEST MLOAD DUP14 SWAP2 DUP5 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1952 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC0BBFF13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH2 0x1971 DUP3 DUP3 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x332E JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x1995 JUMP JUMPDEST DUP9 PUSH1 0x40 MLOAD PUSH4 0x47031CF PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5B89 JUMP JUMPDEST DUP9 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x19A7 JUMPI PUSH2 0x19A7 PUSH2 0x59EB JUMP JUMPDEST DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x54FE682BFB66381A9382E13E4B95A3DD4F960EAFBAE063FDEA3539D144FF3FF5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x19E2 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xECB DUP3 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x2D75 JUMP JUMPDEST CALLER PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP3 EQ PUSH2 0x1A62 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCDC0567F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 POP DUP1 PUSH2 0x1A74 DUP4 DUP6 ADD DUP6 PUSH2 0x5B97 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1A80 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE76FEDE6 DUP7 DUP5 DUP5 PUSH2 0x1A99 PUSH2 0x38CE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xE0 DUP7 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x44 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP2 AND PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B06 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x2F2E74A11116E05B39159372CCEB6739257B08D72F7171D208FF27BB6466C58 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1B45 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x1B5D PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B8C SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BA9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BCD SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1BF0 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP5 SWAP1 DUP2 SWAP1 PUSH2 0x1C2D JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x1C36 PUSH2 0x2274 JUMP JUMPDEST PUSH2 0x1C3F DUP6 PUSH2 0x38F2 JUMP JUMPDEST PUSH2 0x1C48 DUP6 PUSH2 0x3908 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH32 0xF53CF6521A1B5FC0C04BFFA70374A4DC2E3474F2B2AC1643C3BCC54E2DB4A939 SWAP1 PUSH1 0x0 SWAP1 LOG2 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C8F DUP4 DUP4 PUSH2 0x397B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST DUP3 PUSH2 0x1C9F PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7C145CC7 DUP3 ADDRESS CALLER PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CCE SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x55E5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CEB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D0F SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST DUP2 CALLER SWAP1 SWAP2 PUSH2 0x1D32 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCC5D3C8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP DUP4 PUSH1 0x0 PUSH2 0x1D40 DUP3 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0x1D4B DUP2 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0x1D56 DUP2 PUSH1 0x0 PUSH2 0x2194 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP7 SWAP1 DUP2 SWAP1 PUSH2 0x1D91 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEE271899 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH2 0x1D9A PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1DAB DUP10 DUP12 ADD DUP12 PUSH2 0x5BB9 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH2 0x1DD3 DUP12 DUP4 DUP7 DUP7 DUP6 PUSH1 0x2 PUSH1 0x18 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH4 0xFFFFFFFF AND PUSH2 0x39EA JUMP JUMPDEST POP DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xD3803EB82EF5B4CDFF8646734EBBAF5B37441E96314B27FFD3D0940F12A038E7 DUP12 DUP12 PUSH1 0x40 MLOAD PUSH2 0x1E0F SWAP3 SWAP2 SWAP1 PUSH2 0x5910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E2C PUSH2 0x2011 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH2 0x1FBB JUMP JUMPDEST PUSH2 0x1E3D PUSH2 0x2011 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1E67 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH2 0x25E7 JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 SWAP1 JUMP JUMPDEST PUSH2 0x1E9C PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH2 0x3B98 JUMP JUMPDEST PUSH2 0xF13 PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x1EB5 PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x1EBD PUSH2 0x3BA0 JUMP JUMPDEST PUSH2 0xF13 PUSH2 0x1EA5 JUMP JUMPDEST PUSH2 0x1ECD PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x1EBD PUSH2 0x3BD5 JUMP JUMPDEST PUSH2 0x1EDD PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x1EE7 DUP3 DUP3 PUSH2 0x3BF2 JUMP JUMPDEST PUSH2 0xEAC DUP3 DUP3 PUSH2 0x3C04 JUMP JUMPDEST DUP2 DUP2 DUP1 DUP3 GT ISZERO PUSH2 0x1F1D JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0xD0B JUMP JUMPDEST POP POP PUSH1 0x0 DUP3 SWAP1 SSTORE PUSH1 0x1 DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x90699B8B4BF48918FEA1129C85F9BC7B51285DF7ECC982910813C7805F568849 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF PUSH1 0xC0 SHL NOT AND PUSH1 0x1 PUSH1 0xC0 SHL PUSH4 0xFFFFFFFF DUP5 AND SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x472ABA493F9FD1D136EC54986F619F3AA5CAFF964F0E731A9909FB9A1270211F SWAP1 PUSH1 0x20 ADD PUSH2 0x11AF JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x1FDC JUMPI PUSH1 0x40 MLOAD PUSH4 0xBC71A043 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xD6 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x2AAAF20B08565EEBC0C962CD7C568E54C3C0C2B85A1F942B82CD1BD730FDCD23 SWAP1 PUSH1 0x20 ADD PUSH2 0x11AF JUMP JUMPDEST CALLER PUSH2 0x201A PUSH2 0x15BA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF13 JUMPI CALLER PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xE0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH2 0x100 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 PUSH2 0x20B8 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x25D9897E DUP5 ADDRESS PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20E5 SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2103 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2127 SWAP2 SWAP1 PUSH2 0x5C36 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xA0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 EQ ISZERO DUP4 SWAP1 PUSH2 0x215B JUMPI PUSH1 0x40 MLOAD PUSH4 0x7B3C09BF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC67 DUP2 PUSH1 0x0 ADD MLOAD PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x746F6B656E73 PUSH1 0xD0 SHL DUP2 MSTORE POP PUSH2 0x3C0C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x219F PUSH2 0x2643 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP4 PUSH2 0x21B4 JUMPI DUP5 PUSH1 0x80 ADD MLOAD PUSH2 0x21BA JUMP JUMPDEST DUP5 PUSH1 0xE0 ADD MLOAD JUMPDEST SWAP1 POP PUSH2 0x2208 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH13 0x1D1A185DDA5B99D4195C9A5BD9 PUSH1 0x9A SHL DUP2 MSTORE POP PUSH2 0x3C0C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2213 PUSH2 0x252D JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP7 PUSH2 0x2228 JUMPI DUP8 PUSH1 0x60 ADD MLOAD PUSH2 0x222E JUMP JUMPDEST DUP8 PUSH1 0xC0 ADD MLOAD JUMPDEST SWAP1 POP PUSH2 0xC4C DUP2 PUSH4 0xFFFFFFFF AND DUP5 PUSH4 0xFFFFFFFF AND DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x1B585E15995C9A599A595C90DD5D PUSH1 0x92 SHL DUP2 MSTORE POP PUSH2 0x3C0C JUMP JUMPDEST PUSH2 0x227C PUSH2 0x1065 JUMP JUMPDEST ISZERO PUSH2 0xF13 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD93C0665 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xA1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP5 DUP7 AND SWAP5 DUP6 OR SWAP1 SSTORE MLOAD PUSH32 0x3349D2E561F8C23A3FF42257745C8FB53E4BF3CBD4046672A3C4A0C7EE8A7B31 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x22F9 PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x67 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP6 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0xA95BAC2F3DF0D40E8278281C1D39D53C60E4F2BF3550CA5665738D0916E89789 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH2 0x2360 PUSH2 0x50EB JUMP JUMPDEST PUSH2 0x236A DUP4 DUP4 PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 SWAP1 SWAP2 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x23E7 DUP5 PUSH1 0x60 ADD MLOAD DUP6 PUSH1 0xA0 ADD MLOAD PUSH2 0x3CE8 JUMP JUMPDEST PUSH2 0x23F1 SWAP1 TIMESTAMP PUSH2 0x5955 JUMP JUMPDEST SWAP1 POP PUSH2 0x23FC DUP5 PUSH2 0x25C8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2407 JUMPI POP DUP3 DUP2 GT JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x2417 PUSH2 0x1065 JUMP JUMPDEST PUSH2 0xF13 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8DFC202B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x243C PUSH2 0x240F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2446 PUSH2 0x25A4 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE SWAP1 POP PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11AF SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD SWAP3 DUP4 ADD DUP5 SWAP1 MSTORE DUP3 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP1 MLOAD DUP1 DUP4 SUB DUP3 ADD DUP2 MSTORE PUSH1 0x60 SWAP1 SWAP3 ADD SWAP1 MSTORE DUP2 SWAP1 PUSH2 0x24D4 SWAP1 DUP5 SWAP1 PUSH2 0x3CFE SWAP1 PUSH2 0x3D69 SWAP1 PUSH2 0x3E62 SWAP1 DUP10 PUSH2 0x3E87 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x13F3FA9F0E54AF1AF76D8B5D11C3973D7C2AED6312B61EFFF2F7B49D73AD67EB DUP4 DUP4 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2518 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x1B45 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2538 PUSH2 0x38CE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x84633713 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2575 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2599 SWAP2 SWAP1 PUSH2 0x5CF1 JUMP JUMPDEST SWAP3 PUSH3 0xF4240 SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH32 0xCD5ED15C6E187E77E9AEE88184C21F4F2182AB5827CB3B7E07FBEDCD63F03300 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25D7 DUP3 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xECB JUMPI POP POP PUSH1 0x80 ADD MLOAD ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25F1 PUSH2 0x2D51 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP4 SWAP5 POP SWAP2 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x264E PUSH2 0x38CE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5AEA0EC4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x268B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26AF SWAP2 SWAP1 PUSH2 0x5D0E JUMP JUMPDEST SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0xA0 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x21774046E2611DDB52C8C46E1AD97524EEB2E3FDA7DCD9428867868B4C4D06BA SWAP1 PUSH1 0x20 ADD PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x2700 PUSH1 0x9E DUP5 DUP5 DUP5 PUSH2 0x3F41 JUMP JUMPDEST DUP1 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xD54C7ABC930F6D506DA2D08AA7AEAD4F2443E1DB6D5F560384A2F652FF893E19 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2753 PUSH1 0x9D DUP4 PUSH2 0x2358 JUMP JUMPDEST SWAP1 POP PUSH2 0x27DE DUP3 PUSH2 0x2761 PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEEAC3E0E DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2792 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27D5 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x9D SWAP2 SWAP1 PUSH2 0x4008 JUMP JUMPDEST PUSH2 0x27E9 PUSH1 0x9D DUP4 PUSH2 0x40B0 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x27FC SWAP2 PUSH1 0x9F SWAP2 PUSH2 0x415B JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0xA2 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x2823 SWAP2 SWAP1 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0xA2 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x20 ADD MLOAD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x663A6F978DE61DC3E2441026C082BE709377B083AB642A8CE71386F8B91C710B DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x2890 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH2 0x28A4 PUSH2 0x50EB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28B1 PUSH1 0x9D DUP7 PUSH2 0x2358 JUMP JUMPDEST SWAP1 POP PUSH2 0x28BC DUP2 PUSH2 0x25C8 JUMP JUMPDEST DUP6 SWAP1 PUSH2 0x28DC JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB5FF95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP DUP1 PUSH1 0x40 ADD MLOAD DUP5 EQ ISZERO DUP6 DUP6 SWAP1 SWAP2 PUSH2 0x2908 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF32518CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST POP POP PUSH1 0x40 DUP2 ADD MLOAD DUP1 DUP6 GT ISZERO PUSH2 0x293E JUMPI PUSH2 0x2939 PUSH2 0x2922 PUSH2 0x2043 JUMP JUMPDEST DUP4 MLOAD PUSH2 0x292E DUP5 DUP10 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0x9F SWAP3 SWAP2 SWAP1 DUP9 PUSH2 0x41E0 JUMP JUMPDEST PUSH2 0x2957 JUMP JUMPDEST DUP2 MLOAD PUSH2 0x2957 SWAP1 PUSH2 0x294E DUP8 DUP5 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0x9F SWAP2 SWAP1 PUSH2 0x415B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2961 PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEEAC3E0E DUP5 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2992 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x29B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x29D5 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x29E2 DUP5 PUSH2 0x2D94 JUMP JUMPDEST ISZERO PUSH2 0x29EE JUMPI PUSH1 0x0 PUSH2 0x29FD JUMP JUMPDEST PUSH1 0xC0 DUP5 ADD MLOAD PUSH2 0x29FD SWAP1 DUP4 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 DUP2 ADD DUP10 SWAP1 SSTORE PUSH1 0x6 ADD DUP4 SWAP1 SSTORE SWAP1 POP PUSH2 0x2A2C PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6452FC0F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0xC8A5F81E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A9E SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x7 ADD DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x2AC9 SWAP1 DUP5 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP3 DUP8 GT ISZERO PUSH2 0x2B11 JUMPI PUSH2 0x2AE0 DUP4 DUP9 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0xA2 PUSH1 0x0 DUP7 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2B06 SWAP2 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x2B47 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B1B DUP8 DUP5 PUSH2 0x5955 JUMP JUMPDEST PUSH1 0xA2 PUSH1 0x0 DUP7 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2B41 SWAP2 SWAP1 PUSH2 0x5955 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP JUMPDEST DUP4 PUSH1 0x20 ADD MLOAD DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x6DB4A6F9BE2D5E72EB2A2AF2374AC487971BF342A261BA0BC1CF471BF2A2C31F DUP11 DUP8 PUSH1 0x40 MLOAD PUSH2 0x2B9E SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x9D PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x100 DUP2 ADD DUP5 MSTORE DUP2 SLOAD SWAP1 SWAP8 AND DUP8 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP8 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP7 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP7 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP7 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP7 ADD MSTORE PUSH1 0x7 ADD SLOAD PUSH1 0xE0 DUP6 ADD MSTORE POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2C30 PUSH2 0x2274 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C3A PUSH2 0x25A4 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR DUP2 SSTORE SWAP1 POP PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x2473 CALLER SWAP1 JUMP JUMPDEST PUSH32 0xA16A46D94261C7517CC8FF89F61C0CE93598E3C849801011DEE649A6A557D100 SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2C9F PUSH2 0x2C6F JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x2 ADD DUP1 SLOAD PUSH2 0x2CB0 SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2CDC SWAP1 PUSH2 0x57D1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2D29 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2CFE JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2D29 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2D0C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2D40 PUSH2 0x2C6F JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x3 ADD DUP1 SLOAD PUSH2 0x2CB0 SWAP1 PUSH2 0x57D1 JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D8C PUSH2 0x2D82 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x9F SWAP1 DUP6 DUP6 PUSH2 0x42E5 JUMP JUMPDEST ISZERO SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DA3 DUP3 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xECB JUMPI POP POP PUSH1 0x40 ADD MLOAD ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x2DD0 SWAP2 SWAP1 PUSH2 0x5D3E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2E0B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2E10 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x2E20 DUP6 DUP4 DUP4 PUSH2 0x437F JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x80 SWAP1 SWAP3 ADD MLOAD DUP1 MLOAD PUSH1 0x0 SWAP4 SWAP3 DUP5 SWAP3 PUSH2 0x2E4E SWAP3 DUP2 ADD DUP3 ADD SWAP2 ADD PUSH2 0x5D5A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2E5D PUSH1 0x9D DUP4 PUSH2 0x2358 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 DUP2 AND SWAP1 DUP4 AND EQ PUSH2 0x2E92 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4508FBF7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP PUSH1 0x20 DUP2 ADD MLOAD PUSH2 0x2EA4 DUP5 PUSH1 0x0 PUSH2 0x2480 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EAE PUSH2 0x43D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2ED9 SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EF6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F1A SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2F26 PUSH2 0x43F6 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x4C4EA0ED DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2F53 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F70 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2F94 SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST PUSH2 0x2F9F JUMPI PUSH1 0x0 PUSH2 0x2FA3 JUMP JUMPDEST PUSH1 0xD7 SLOAD JUMPDEST SWAP1 POP PUSH1 0x0 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x7F07D283 PUSH1 0x0 DUP12 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2FEB SWAP3 SWAP2 SWAP1 PUSH2 0x5D77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3017 SWAP3 SWAP2 SWAP1 PUSH2 0x5E16 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3036 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x305A SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3068 DUP3 DUP5 PUSH2 0x441A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3074 PUSH2 0x43D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x309F SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30E0 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x30ED DUP4 DUP8 PUSH2 0x5D2B JUMP JUMPDEST EQ DUP6 DUP3 DUP5 SWAP1 SWAP2 SWAP3 PUSH2 0x3122 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B0D791F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x24 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD0B JUMP JUMPDEST POP POP DUP4 ISZERO SWAP1 POP PUSH2 0x32DB JUMPI PUSH1 0x0 PUSH1 0xD6 SLOAD DUP5 PUSH2 0x313C SWAP2 SWAP1 PUSH2 0x5E36 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3148 PUSH2 0x38CE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5AEA0EC4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3185 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31A9 SWAP2 SWAP1 PUSH2 0x5D0E JUMP JUMPDEST PUSH2 0x31BC SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND TIMESTAMP PUSH2 0x5D2B JUMP JUMPDEST SWAP1 POP PUSH2 0x31C9 DUP12 DUP4 DUP4 PUSH2 0x4481 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x32D8 JUMPI PUSH2 0x31D7 PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1D1C2FEC DUP10 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3204 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3223 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3247 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST POP PUSH2 0x326C PUSH2 0x3253 PUSH2 0x43F6 JUMP JUMPDEST DUP6 PUSH2 0x325C PUSH2 0x43D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 SWAP1 PUSH2 0x45F3 JUMP JUMPDEST PUSH2 0x3274 PUSH2 0x43F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x102AE651 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x81573288 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32BF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x32D3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST POP POP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP12 AND SWAP2 PUSH32 0x60A56D4D503735B4848FEB6F491F14D7415262346B820D3B5A3D2733201BDA36 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP SWAP1 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x333C PUSH1 0x9D DUP7 PUSH2 0x2358 JUMP JUMPDEST SWAP1 POP PUSH2 0x3347 DUP2 PUSH2 0x25C8 JUMP JUMPDEST DUP6 SWAP1 PUSH2 0x3367 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB5FF95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x337F PUSH1 0xA0 SLOAD DUP4 PUSH2 0x23D2 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x3392 JUMPI POP PUSH2 0x3390 DUP3 PUSH2 0x2D94 JUMP JUMPDEST ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x339D JUMPI POP DUP5 ISZERO ISZERO JUMPDEST PUSH2 0x33A8 JUMPI PUSH1 0x0 PUSH2 0x341E JUMP JUMPDEST PUSH2 0x33B0 PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDB750926 DUP8 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33DB SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x341E SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP PUSH2 0x345D DUP7 PUSH2 0x342C PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEEAC3E0E DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2792 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH2 0x3468 PUSH1 0x9D DUP8 PUSH2 0x46A2 JUMP JUMPDEST PUSH2 0x3473 PUSH1 0x9D DUP8 PUSH2 0x474D JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 ISZERO PUSH2 0x37C2 JUMPI PUSH1 0x0 PUSH2 0x3486 PUSH2 0x2043 JUMP JUMPDEST DUP6 MLOAD PUSH1 0x40 MLOAD PUSH4 0x7573EF4F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x7573EF4F SWAP2 PUSH2 0x34B9 SWAP2 ADDRESS SWAP1 PUSH1 0x2 SWAP1 PUSH1 0x4 ADD PUSH2 0x5E4D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x34D6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x34FA SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3506 PUSH2 0x2043 JUMP JUMPDEST DUP7 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1584A179 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x561285E4 SWAP2 PUSH2 0x3536 SWAP2 ADDRESS SWAP1 PUSH1 0x4 ADD PUSH2 0x5625 JUMP JUMPDEST PUSH1 0xA0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3553 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3577 SWAP2 SWAP1 PUSH2 0x5E72 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD MLOAD GT PUSH2 0x358C JUMPI PUSH1 0x0 PUSH2 0x3596 JUMP JUMPDEST PUSH2 0x3596 DUP6 DUP4 PUSH2 0x441A JUMP JUMPDEST SWAP3 POP DUP3 ISZERO PUSH2 0x368B JUMPI PUSH2 0x35A6 PUSH2 0x43D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x35BC PUSH2 0x2043 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35DA SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x35F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x361D SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST POP PUSH2 0x3626 PUSH2 0x2043 JUMP JUMPDEST DUP7 MLOAD PUSH1 0x40 MLOAD PUSH4 0xCA94B0E9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0xCA94B0E9 SWAP2 PUSH2 0x3658 SWAP2 ADDRESS SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x5EC7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3686 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH2 0x3695 DUP4 DUP7 PUSH2 0x5955 JUMP JUMPDEST SWAP4 POP DUP4 ISZERO PUSH2 0x37BF JUMPI DUP6 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xA1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND DUP1 PUSH2 0x37B0 JUMPI PUSH2 0x36C7 PUSH2 0x43D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x95EA7B3 PUSH2 0x36DD PUSH2 0x2043 JUMP JUMPDEST DUP8 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x36FB SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x371A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x373E SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST POP PUSH2 0x3747 PUSH2 0x2043 JUMP JUMPDEST DUP8 MLOAD PUSH1 0x40 MLOAD PUSH4 0x3A309049 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 PUSH4 0x74612092 SWAP2 PUSH2 0x3779 SWAP2 ADDRESS SWAP1 DUP11 SWAP1 PUSH1 0x4 ADD PUSH2 0x5EC7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3793 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x37A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x37BD JUMP JUMPDEST PUSH2 0x37BD DUP2 DUP7 PUSH2 0x325C PUSH2 0x43D2 JUMP JUMPDEST POP JUMPDEST POP POP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND SWAP2 AND PUSH32 0x7DF4DBB3B3C999CA3E143D3FE67ABFA22078FD572D49D411278648C773912E31 DUP7 DUP7 DUP7 DUP14 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x76671808 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3859 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x387D SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP3 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 DUP4 MLOAD PUSH2 0x38B4 SWAP1 DUP8 PUSH2 0x2D75 JUMP JUMPDEST ISZERO PUSH2 0x38C2 JUMPI PUSH2 0x38C2 DUP9 PUSH2 0x2746 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x38FD DUP3 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0xEAC DUP2 PUSH2 0x2162 JUMP JUMPDEST PUSH2 0x3913 DUP2 PUSH1 0x1 PUSH2 0x47F9 JUMP JUMPDEST PUSH2 0x391B PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3A78B732 DUP3 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3946 SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3960 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3974 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C8F PUSH32 0x4BDEE85C4B4A268F4895D1096D553C3E57BB2433C380E7B7EC8CB56CC4F74673 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x39CF SWAP4 SWAP3 SWAP2 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x20 DUP5 ADD MSTORE AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x4810 JUMP JUMPDEST PUSH2 0x39F2 PUSH2 0x50EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x3A19 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4FFDF5EF PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3A24 DUP8 DUP8 DUP6 PUSH2 0x483D JUMP JUMPDEST PUSH2 0x3A2F PUSH1 0x9E DUP8 PUSH2 0x488C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3ABC DUP9 DUP9 DUP9 DUP9 PUSH2 0x3A40 PUSH2 0x3FE4 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEEAC3E0E DUP13 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A6D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3A8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3AB0 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x9D SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x48E1 JUMP JUMPDEST SWAP1 POP PUSH2 0x3AD4 PUSH2 0x3AC9 PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x9F SWAP1 DUP11 DUP9 DUP8 PUSH2 0x41E0 JUMP JUMPDEST DUP1 PUSH1 0x40 ADD MLOAD PUSH1 0xA2 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x3AFB SWAP2 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST PUSH1 0xA2 PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP6 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x3BD4419F8DEFEC88DD042E31B8E8743F00803AED288FE7C31C9CF0689D295CF2 DUP5 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x3B60 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x3B7B PUSH2 0x4A2E JUMP JUMPDEST PUSH2 0xF13 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1E3D PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x3BA8 PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x3BB5 PUSH1 0x0 PUSH1 0x0 NOT PUSH2 0x1EF1 JUMP JUMPDEST PUSH2 0x3BC3 PUSH1 0x0 PUSH3 0xF4240 PUSH2 0x4A48 JUMP JUMPDEST PUSH2 0xF13 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH2 0x4B1A JUMP JUMPDEST PUSH2 0x3BDD PUSH2 0x3B73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BE7 PUSH2 0x25A4 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x3BFA PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0xEAC DUP3 DUP3 PUSH2 0x4BA7 JUMP JUMPDEST PUSH2 0xEAC PUSH2 0x3B73 JUMP JUMPDEST PUSH2 0x3C17 DUP5 DUP5 DUP5 PUSH2 0x4BE8 JUMP JUMPDEST DUP2 DUP6 DUP6 DUP6 SWAP1 SWAP2 SWAP3 SWAP4 PUSH2 0xC4C JUMPI PUSH1 0x40 MLOAD PUSH4 0x871E13D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5EEB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH2 0x100 DUP2 ADD DUP4 MSTORE DUP2 SLOAD SWAP1 SWAP6 AND DUP6 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP1 DUP5 ADD MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x7 DUP2 ADD SLOAD PUSH1 0xE0 DUP5 ADD MSTORE SWAP1 SWAP2 PUSH2 0x3CC0 SWAP1 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP4 SWAP1 PUSH2 0x3CE0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x42DAADAF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT PUSH2 0x3CF7 JUMPI DUP2 PUSH2 0x1C8F JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0x80 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 DUP4 SWAP1 PUSH2 0x3D5E JUMPI PUSH1 0x40 MLOAD PUSH4 0x107349A9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP PUSH1 0x60 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 PUSH2 0x3D78 DUP6 PUSH2 0x4BFF JUMP JUMPDEST SWAP1 POP TIMESTAMP DUP2 PUSH1 0x40 ADD MLOAD GT ISZERO PUSH2 0x3DA0 JUMPI POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH1 0x1 SWAP2 POP PUSH2 0x3E5B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3DB7 SWAP2 SWAP1 PUSH2 0x5F1A JUMP JUMPDEST DUP5 MLOAD SWAP2 SWAP4 POP SWAP2 POP PUSH2 0x3DCC SWAP1 PUSH1 0x68 SWAP1 DUP4 SWAP1 PUSH2 0x415B JUMP JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP1 DUP6 ADD MLOAD DUP2 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD MSTORE DUP9 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 PUSH32 0x4C06B68820628A39C787D2DB1FAA0EEACD7B9474847B198B1E871FE6E5B93F44 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP3 MLOAD PUSH2 0x3E22 SWAP1 DUP4 PUSH2 0x5D2B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP6 POP PUSH1 0x0 DUP7 SWAP5 POP SWAP5 POP POP POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x3 ADD SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP8 PUSH1 0x3 ADD SLOAD DUP4 GT ISZERO PUSH2 0x3EB0 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A411B9D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 ISZERO PUSH2 0x3EBE JUMPI DUP4 PUSH2 0x3EC4 JUMP JUMPDEST DUP9 PUSH1 0x3 ADD SLOAD JUMPDEST DUP10 SLOAD SWAP1 SWAP5 POP JUMPDEST DUP1 ISZERO DUP1 ISZERO SWAP1 PUSH2 0x3ED9 JUMPI POP PUSH1 0x0 DUP6 GT JUMPDEST ISZERO PUSH2 0x3F32 JUMPI PUSH1 0x0 DUP1 PUSH2 0x3EEF DUP4 DUP10 DUP13 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 ISZERO PUSH2 0x3F00 JUMPI POP POP PUSH2 0x3F32 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x3F0E DUP13 DUP13 DUP12 PUSH2 0x4C8D JUMP JUMPDEST SWAP3 POP DUP7 PUSH2 0x3F1A DUP2 PUSH2 0x5F40 JUMP JUMPDEST SWAP8 POP POP DUP4 DUP1 PUSH2 0x3F28 SWAP1 PUSH2 0x5F57 JUMP JUMPDEST SWAP5 POP POP POP POP PUSH2 0x3ECA JUMP JUMPDEST POP SWAP9 SWAP4 SWAP8 POP SWAP3 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP7 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD SWAP1 SWAP4 AND DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP4 ADD SLOAD SWAP2 ADD MSTORE DUP3 SWAP1 ISZERO PUSH2 0x3F96 JUMPI PUSH1 0x40 MLOAD PUSH4 0x2D3E5FB9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD SWAP4 DUP5 MSTORE SWAP4 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP6 SWAP1 SWAP4 MSTORE SWAP1 SWAP4 KECCAK256 SWAP1 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR DUP2 SSTORE SWAP1 MLOAD PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4014 DUP5 DUP5 PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x4080 SWAP1 PUSH2 0x25C8 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP5 SWAP2 PUSH2 0x40A6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST POP POP PUSH1 0x6 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x40BC DUP4 DUP4 PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x4128 SWAP1 PUSH2 0x25C8 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x414E JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST POP POP TIMESTAMP PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 SUB PUSH2 0x4168 JUMPI POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP1 DUP3 LT ISZERO PUSH2 0x41AC JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F8EC709 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0xD0B JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x41D6 SWAP1 DUP5 SWAP1 PUSH2 0x5955 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP JUMP JUMPDEST DUP2 ISZERO PUSH2 0x3974 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x420A SWAP1 DUP5 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x872D0489 DUP7 ADDRESS DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x423E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5F70 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x425B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x427F SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP2 DUP2 GT ISZERO PUSH2 0x42AD JUMPI PUSH1 0x40 MLOAD PUSH4 0x5F8EC709 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0xD0B JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP9 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP7 SWAP3 SWAP1 PUSH2 0x42D7 SWAP1 DUP5 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x872D0489 DUP6 ADDRESS DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4318 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x5F70 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4335 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4359 SWAP2 SWAP1 PUSH2 0x5CD8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP9 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD GT ISZERO SWAP2 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x4394 JUMPI PUSH2 0x438F DUP3 PUSH2 0x4D14 JUMP JUMPDEST PUSH2 0x1C8F JUMP JUMPDEST DUP2 MLOAD ISZERO DUP1 ISZERO PUSH2 0x43AB JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO JUMPDEST ISZERO PUSH2 0x43CB JUMPI DUP4 PUSH1 0x40 MLOAD PUSH4 0x9996B315 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP DUP1 PUSH2 0x1C8F JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH32 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4429 DUP4 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP1 PUSH2 0x443C JUMPI POP PUSH2 0x443C DUP3 PUSH3 0xF4240 LT ISZERO SWAP1 JUMP JUMPDEST DUP4 DUP4 SWAP1 SWAP2 PUSH2 0x4466 JUMPI PUSH1 0x40 MLOAD PUSH4 0x768BF0EB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0xD0B JUMP JUMPDEST POP PUSH3 0xF4240 SWAP1 POP PUSH2 0x4477 DUP4 DUP6 PUSH2 0x5E36 JUMP JUMPDEST PUSH2 0x1C8F SWAP2 SWAP1 PUSH2 0x5F99 JUMP JUMPDEST DUP2 PUSH1 0x0 SUB PUSH2 0x44A2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8F4C63D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x44CE PUSH2 0x44AD PUSH2 0x2043 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x68 SWAP2 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF PUSH1 0x1 PUSH1 0xC0 SHL SWAP1 SWAP2 DIV DUP2 AND SWAP1 PUSH2 0x41E0 AND JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6A PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x2 DUP1 DUP3 ADD SLOAD DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT ADDRESS PUSH1 0x60 SWAP1 DUP2 SHL DUP3 AND DUP4 DUP10 ADD MSTORE DUP12 SWAP1 SHL AND PUSH1 0x34 DUP3 ADD MSTORE PUSH1 0x48 DUP1 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP5 MLOAD DUP1 DUP3 SUB SWAP1 SWAP3 ADD DUP3 MSTORE PUSH1 0x68 DUP2 ADD DUP1 DUP7 MSTORE DUP3 MLOAD SWAP3 DUP8 ADD SWAP3 SWAP1 SWAP3 KECCAK256 PUSH1 0xE8 DUP3 ADD DUP7 MSTORE DUP10 DUP4 MSTORE TIMESTAMP PUSH1 0x88 DUP4 ADD SWAP1 DUP2 MSTORE PUSH1 0xA8 DUP4 ADD DUP11 DUP2 MSTORE PUSH1 0xC8 SWAP1 SWAP4 ADD DUP10 DUP2 MSTORE DUP3 DUP11 MSTORE PUSH1 0x69 SWAP1 SWAP9 MSTORE SWAP6 SWAP1 SWAP8 KECCAK256 SWAP2 MLOAD DUP3 SSTORE SWAP4 MLOAD PUSH1 0x1 DUP3 ADD SSTORE SWAP3 MLOAD SWAP1 DUP4 ADD SSTORE SWAP2 MLOAD PUSH1 0x3 SWAP2 DUP3 ADD SSTORE DUP2 ADD SLOAD SWAP1 SWAP2 SWAP1 ISZERO PUSH2 0x459C JUMPI PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH2 0x45A6 DUP3 DUP3 PUSH2 0x4D3D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP2 PUSH32 0x5D9E2C5278E41138269F5F980CFBEA016D8C59816754502ABC4D2F87AAEA987F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1141 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA9059CBB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH4 0xA9059CBB SWAP1 PUSH2 0x4627 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x545C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x4646 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x466A SWAP2 SWAP1 PUSH2 0x5608 JUMP JUMPDEST PUSH2 0x1141 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x10BA3930B739B332B9 PUSH1 0xB9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xD0B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46AE DUP4 DUP4 PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x471A SWAP1 PUSH2 0x25C8 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x4740 JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST POP POP TIMESTAMP PUSH1 0x5 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4759 DUP4 DUP4 PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP4 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH2 0x47C5 SWAP1 PUSH2 0x25C8 JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD DUP4 SWAP2 PUSH2 0x47EB JUMPI PUSH1 0x40 MLOAD PUSH4 0x61B66E0D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x545C JUMP JUMPDEST POP POP PUSH1 0x0 PUSH1 0x7 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4804 DUP4 PUSH2 0x2067 JUMP JUMPDEST SWAP1 POP PUSH2 0x1141 DUP2 DUP4 PUSH2 0x2194 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xECB PUSH2 0x481D PUSH2 0x4DD0 JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4852 PUSH2 0x484C DUP6 DUP6 PUSH2 0x397B JUMP JUMPDEST DUP4 PUSH2 0x4DDA JUMP JUMPDEST SWAP1 POP DUP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND SWAP1 DUP3 AND EQ PUSH2 0x4884 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8C5B935D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5625 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP5 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD DUP1 DUP5 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD SWAP1 SWAP4 AND DUP1 DUP4 MSTORE PUSH1 0x1 SWAP1 SWAP4 ADD SLOAD SWAP2 ADD MSTORE DUP2 SWAP1 ISZERO PUSH2 0x1141 JUMPI PUSH1 0x40 MLOAD PUSH4 0x81736271 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST PUSH2 0x48E9 PUSH2 0x50EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP10 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x100 DUP2 ADD DUP5 MSTORE DUP2 SLOAD SWAP1 SWAP5 AND DUP5 MSTORE PUSH1 0x1 DUP2 ADD SLOAD SWAP2 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0x7 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x496A SWAP1 PUSH1 0x60 ADD MLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST ISZERO DUP6 SWAP1 PUSH2 0x498B JUMPI PUSH1 0x40 MLOAD PUSH4 0xBC4DEF5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x5380 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD SWAP6 DUP7 MSTORE DUP2 DUP4 ADD SWAP5 DUP6 MSTORE TIMESTAMP PUSH1 0x60 DUP4 ADD SWAP1 DUP2 MSTORE PUSH1 0x0 PUSH1 0x80 DUP5 ADD DUP2 DUP2 MSTORE PUSH1 0xA0 DUP6 ADD DUP3 DUP2 MSTORE PUSH1 0xC0 DUP7 ADD SWAP8 DUP9 MSTORE PUSH1 0xE0 DUP7 ADD DUP4 DUP2 MSTORE SWAP11 DUP13 AND DUP4 MSTORE SWAP12 SWAP1 SWAP4 MSTORE SWAP4 SWAP1 SWAP4 KECCAK256 DUP3 MLOAD DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP10 AND SWAP9 SWAP1 SWAP9 OR DUP9 SSTORE SWAP5 MLOAD PUSH1 0x1 DUP9 ADD SSTORE SWAP3 MLOAD PUSH1 0x2 DUP8 ADD SSTORE MLOAD PUSH1 0x3 DUP7 ADD SSTORE SWAP2 MLOAD PUSH1 0x4 DUP6 ADD SSTORE SWAP4 MLOAD PUSH1 0x5 DUP5 ADD SSTORE MLOAD PUSH1 0x6 DUP4 ADD SSTORE MLOAD PUSH1 0x7 SWAP1 SWAP2 ADD SSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A38 PUSH2 0x1E70 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 PUSH4 0xFFFFFFFF DUP1 DUP3 AND SWAP1 DUP4 AND GT ISZERO PUSH2 0x4A76 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x52CA JUMP JUMPDEST POP DUP3 SWAP1 POP DUP2 PUSH4 0xFFFFFFFF DUP2 AND PUSH3 0xF4240 LT ISZERO PUSH2 0x4AA7 JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x52CA JUMP JUMPDEST POP POP PUSH1 0x2 DUP1 SLOAD PUSH4 0xFFFFFFFF DUP4 DUP2 AND PUSH1 0x1 PUSH1 0xA0 SHL MUL PUSH4 0xFFFFFFFF PUSH1 0xA0 SHL NOT SWAP2 DUP7 AND PUSH1 0x1 PUSH1 0x80 SHL MUL SWAP2 SWAP1 SWAP2 AND PUSH8 0xFFFFFFFFFFFFFFFF PUSH1 0x80 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2FE5A7039987697813605CC0B9D6DB7AAB575408E3FC59E8A457BEF8D7BC0A36 SWAP1 PUSH2 0x1F5B SWAP1 DUP5 SWAP1 DUP5 SWAP1 PUSH2 0x52CA JUMP JUMPDEST DUP2 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 AND SWAP1 DUP4 AND GT ISZERO PUSH2 0x4B4B JUMPI PUSH1 0x40 MLOAD PUSH4 0xCCCCDAFB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP3 SWAP2 SWAP1 PUSH2 0x5366 JUMP JUMPDEST POP POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x40 SHL MUL PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB NOT SWAP1 SWAP3 AND SWAP1 DUP6 AND OR OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH32 0x2867E04C500E438761486B78021D4F9EB97C77FF45D10C1183F5583BA4CBF7D1 SWAP1 PUSH2 0x1F5B SWAP1 DUP5 SWAP1 DUP5 SWAP1 PUSH2 0x5366 JUMP JUMPDEST PUSH2 0x4BAF PUSH2 0x3B73 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4BB9 PUSH2 0x2C6F JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 ADD PUSH2 0x4BC9 DUP5 DUP3 PUSH2 0x5852 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD PUSH2 0x4BD8 DUP4 DUP3 PUSH2 0x5852 JUMP JUMPDEST POP PUSH1 0x0 DUP1 DUP3 SSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 LT ISZERO DUP1 ISZERO PUSH2 0x2407 JUMPI POP POP SWAP1 SWAP2 GT ISZERO SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4C2D PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x69 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x80 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 ADD SLOAD PUSH1 0x60 DUP4 ADD MSTORE DUP4 SWAP1 PUSH2 0x215B JUMPI PUSH1 0x40 MLOAD PUSH4 0x107349A9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD0B SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 PUSH1 0x3 ADD SLOAD GT PUSH2 0x4CB3 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDDAF8F21 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4CC6 DUP6 PUSH1 0x0 ADD SLOAD DUP6 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x4CD9 DUP6 PUSH1 0x0 ADD SLOAD DUP5 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH1 0x1 DUP6 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4CEE SWAP2 SWAP1 PUSH2 0x5955 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP1 DUP6 SSTORE PUSH1 0x3 DUP6 ADD SLOAD PUSH1 0x0 SUB PUSH2 0x4D0A JUMPI PUSH1 0x0 PUSH1 0x1 DUP7 ADD SSTORE JUMPDEST POP POP SWAP2 SLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD ISZERO PUSH2 0x4D24 JUMPI DUP1 MLOAD DUP1 DUP3 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA12F521 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2710 DUP3 PUSH1 0x3 ADD SLOAD LT PUSH2 0x4D63 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3A8C56B PUSH1 0xE6 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x4D81 JUMPI PUSH1 0x40 MLOAD PUSH4 0x8F4A893D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 DUP4 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP4 ADD DUP1 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x4D9D SWAP1 DUP5 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x0 SUB PUSH2 0x4DB2 JUMPI DUP1 DUP3 SSTORE JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4DC7 SWAP2 SWAP1 PUSH2 0x5D2B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC6A PUSH2 0x4E04 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x4DEA DUP7 DUP7 PUSH2 0x4E78 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x4DFA DUP3 DUP3 PUSH2 0x4EC5 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH2 0x4E2F PUSH2 0x4F7E JUMP JUMPDEST PUSH2 0x4E37 PUSH2 0x4FE5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x4EB2 JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x4EA4 DUP9 DUP3 DUP6 DUP6 PUSH2 0x5026 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x4EBE JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4ED9 JUMPI PUSH2 0x4ED9 PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0x4EE2 JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4EF6 JUMPI PUSH2 0x4EF6 PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0x4F14 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4F28 JUMPI PUSH2 0x4F28 PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0x4F49 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xD0B JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4F5D JUMPI PUSH2 0x4F5D PUSH2 0x59EB JUMP JUMPDEST SUB PUSH2 0xEAC JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xD0B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4F89 PUSH2 0x2C6F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4F95 PUSH2 0x2C93 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x4FAD JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 SLOAD DUP1 ISZERO PUSH2 0x4FBC JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A470 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4FF0 PUSH2 0x2C6F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4FFC PUSH2 0x2D34 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x5014 JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD DUP1 ISZERO PUSH2 0x4FBC JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH16 0xA2A8918CA85BAFE22016D0B997E4DF60 PUSH1 0x1 PUSH1 0xFF SHL SUB DUP5 GT ISZERO PUSH2 0x5057 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x50E1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x50AB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x50D7 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x50E1 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1C8F DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0xC67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x5195 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x51A7 DUP2 PUSH2 0x516E JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1C8F DUP2 PUSH2 0x516E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x51E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x51FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x522B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x5236 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x525D DUP7 DUP3 DUP8 ADD PUSH2 0x51D5 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xC67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x528B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x5296 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x52A6 DUP2 PUSH2 0x526A JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x52C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x52FC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x52E4 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x531D DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x52E1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x534A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x5305 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x535C DUP2 DUP6 PUSH2 0x5305 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x53A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x53B4 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x51A7 DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH1 0xFF PUSH1 0xF8 SHL DUP9 AND DUP2 MSTORE PUSH1 0xE0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x53E3 PUSH1 0xE0 DUP4 ADD DUP10 PUSH2 0x5305 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x53F5 DUP2 DUP10 PUSH2 0x5305 JUMP JUMPDEST PUSH1 0x60 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP5 ADD DUP7 SWAP1 MSTORE DUP4 DUP2 SUB PUSH1 0xC0 DUP6 ADD MSTORE DUP5 MLOAD DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP8 ADD SWAP4 POP SWAP1 SWAP2 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x544B JUMPI DUP4 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x542D JUMP JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x549E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x54AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x54C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD GT ISZERO PUSH2 0x54DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD PUSH1 0x20 DUP4 MSTORE DUP1 DUP5 MLOAD DUP1 DUP4 MSTORE PUSH1 0x40 DUP6 ADD SWAP2 POP PUSH1 0x40 DUP2 PUSH1 0x5 SHL DUP7 ADD ADD SWAP3 POP PUSH1 0x20 DUP7 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5543 JUMPI PUSH1 0x3F NOT DUP8 DUP7 SUB ADD DUP5 MSTORE PUSH2 0x552E DUP6 DUP4 MLOAD PUSH2 0x5305 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x5512 JUMP JUMPDEST POP SWAP3 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5565 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x5570 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x3 DUP2 LT PUSH2 0x5584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x559F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55AB DUP8 DUP3 DUP9 ADD PUSH2 0x51D5 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x55CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x55D5 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x52A6 DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 DUP4 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x561A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1C8F DUP2 PUSH2 0x526A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP1 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5677 JUMPI PUSH2 0x5677 PUSH2 0x563F JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0xA0 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5677 JUMPI PUSH2 0x5677 PUSH2 0x563F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x120 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x5677 JUMPI PUSH2 0x5677 PUSH2 0x563F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x56D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x56F3 JUMPI PUSH2 0x56F3 PUSH2 0x563F JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD DUP2 DUP2 LT PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT OR ISZERO PUSH2 0x5721 JUMPI PUSH2 0x5721 PUSH2 0x563F JUMP JUMPDEST PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE SWAP1 POP DUP1 DUP3 DUP5 ADD DUP8 LT ISZERO PUSH2 0x5739 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP6 DUP4 ADD ADD MSTORE DUP1 SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x576B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x578D DUP7 DUP3 DUP8 ADD PUSH2 0x56C2 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x57A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x57B5 DUP7 DUP3 DUP8 ADD PUSH2 0x56C2 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x57C6 DUP2 PUSH2 0x513C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x57E5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x5805 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x1141 JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5832 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3974 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x583E JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x586B JUMPI PUSH2 0x586B PUSH2 0x563F JUMP JUMPDEST PUSH2 0x587F DUP2 PUSH2 0x5879 DUP5 SLOAD PUSH2 0x57D1 JUMP JUMPDEST DUP5 PUSH2 0x580B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x58B3 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x589B JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x3974 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x58E3 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x58C3 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x5901 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE DUP2 PUSH1 0x20 DUP3 ADD MSTORE DUP2 DUP4 PUSH1 0x40 DUP4 ADD CALLDATACOPY PUSH1 0x0 DUP2 DUP4 ADD PUSH1 0x40 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0xECB JUMPI PUSH2 0xECB PUSH2 0x593F JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x5995 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x59AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x3E5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP5 DUP3 CALLDATACOPY PUSH1 0x0 DUP4 DUP3 ADD PUSH1 0x0 DUP2 MSTORE DUP4 MLOAD PUSH2 0x59E1 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x52E1 JUMP JUMPDEST ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xC67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A28 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5A3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x40 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x5A50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5A58 PUSH2 0x5655 JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5A6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0xA0 DUP2 DUP8 SUB SLT ISZERO PUSH2 0x5A80 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5A88 PUSH2 0x567D JUMP JUMPDEST DUP2 CALLDATALOAD PUSH2 0x5A93 DUP2 PUSH2 0x513C JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH2 0x5AA3 DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH2 0x5AB6 DUP2 PUSH2 0x5A01 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x80 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5AD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5AF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5AFF DUP9 DUP3 DUP6 ADD PUSH2 0x56C2 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5B21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5B2D DUP7 DUP3 DUP6 ADD PUSH2 0x56C2 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5B4E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x5B59 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x5B85 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0xECB DUP3 DUP5 PUSH2 0x5B67 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x5BCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x5BE8 DUP2 PUSH2 0x513C JUMP JUMPDEST SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x5C03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5C0F DUP8 DUP3 DUP9 ADD PUSH2 0x56C2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x5C26 DUP2 PUSH2 0x516E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x5C26 DUP2 PUSH2 0x5A01 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x5C4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x5C55 PUSH2 0x569F JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x5C79 PUSH1 0x60 DUP6 ADD PUSH2 0x5C1B JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH2 0x5C8A PUSH1 0x80 DUP6 ADD PUSH2 0x5C2B JUMP JUMPDEST PUSH1 0x80 DUP3 ADD MSTORE PUSH2 0x5C9B PUSH1 0xA0 DUP6 ADD PUSH2 0x5C2B JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x5CAC PUSH1 0xC0 DUP6 ADD PUSH2 0x5C1B JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x5CBD PUSH1 0xE0 DUP6 ADD PUSH2 0x5C2B JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5CEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1C8F DUP2 PUSH2 0x516E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1C8F DUP2 PUSH2 0x5A01 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xECB JUMPI PUSH2 0xECB PUSH2 0x593F JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x5D50 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x52E1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5D6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1C8F DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH1 0x40 DUP1 DUP5 ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP2 MLOAD AND PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB PUSH1 0x20 DUP3 ADD MLOAD AND PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB PUSH1 0x40 DUP3 ADD MLOAD AND PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x1 DUP1 PUSH1 0x80 SHL SUB PUSH1 0x60 DUP3 ADD MLOAD AND PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD SWAP1 POP PUSH1 0xA0 PUSH2 0x100 DUP5 ADD MSTORE PUSH2 0x5DE8 PUSH2 0x120 DUP5 ADD DUP3 PUSH2 0x5305 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x3F NOT DUP5 DUP4 SUB ADD PUSH1 0x60 DUP6 ADD MSTORE PUSH2 0x5E05 DUP3 DUP3 PUSH2 0x5305 JUMP JUMPDEST SWAP3 POP POP POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x5E20 DUP2 DUP5 PUSH2 0x5B67 JUMP JUMPDEST PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x2407 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x5305 JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0xECB JUMPI PUSH2 0xECB PUSH2 0x593F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND DUP3 MSTORE DUP4 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x2407 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x5B67 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x5E85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x5E90 PUSH2 0x567D JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x40 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x80 DUP2 MSTORE PUSH1 0x0 PUSH2 0x5EFE PUSH1 0x80 DUP4 ADD DUP8 PUSH2 0x5305 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP6 SWAP1 SWAP6 MSTORE POP PUSH1 0x40 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x5F2D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH2 0x52A6 DUP2 PUSH2 0x513C JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x5F4F JUMPI PUSH2 0x5F4F PUSH2 0x593F JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x5F69 JUMPI PUSH2 0x5F69 PUSH2 0x593F JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP2 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x5FB6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 SDIV 0xE4 SWAP11 PUSH30 0x3D7F3015873A2C41E2F68419180F16CEF8FD91645F14BC8E8B733264736F PUSH13 0x634300081B0033000000000000 ", - "sourceMap": "1852:23230:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17047:151;;;;;;:::i;:::-;;:::i;:::-;;;;;;619:13:62;;-1:-1:-1;;;;;615:39:62;597:58;;711:4;699:17;;;693:24;671:20;;;664:54;774:4;762:17;;;756:24;734:20;;;727:54;837:4;825:17;;;819:24;797:20;;;790:54;900:4;888:17;;;882:24;860:20;;;853:54;642:3;951:17;;;945:24;923:20;;;916:54;1026:4;1014:17;;;1008:24;986:20;;;979:54;1089:4;1077:17;;;1071:24;1049:20;;;1042:54;;;;584:3;569:19;;402:700;17047:151:50;;;;;;;;510:30:51;;;;;;;;;1253:25:62;;;1241:2;1226:18;510:30:51;1107:177:62;648:75:11;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1520:25:62;;;1576:2;1561:18;;1554:34;;;;1604:18;;;1597:34;1662:2;1647:18;;1640:34;1507:3;1492:19;648:75:11;1289:391:62;3866:538:50;;;;;;:::i;:::-;;:::i;:::-;;16073:133;;;;;;:::i;:::-;;:::i;3052:106:8:-;10192:15:17;;-1:-1:-1;;;10192:15:17;;;;3052:106:8;;;2725:10:62;2713:23;;;2695:42;;2683:2;2668:18;3052:106:8;2551:192:62;5139:893:50;;;;;;:::i;:::-;;:::i;15339:149::-;;;;;;:::i;:::-;;:::i;295:37:18:-;;;;;;1052:86:58;;;;;;:::i;:::-;;;;;;;;;;;;;;19796:165:50;;;;;;:::i;:::-;;:::i;:::-;;;4555:14:62;;4548:22;4530:41;;4518:2;4503:18;19796:165:50;4390:187:62;1194:93:12;;;:::i;930:138:10:-;;;;;;:::i;:::-;;:::i;2653:116:8:-;;;:::i;:::-;;;;;;;;:::i;255:76:51:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;285:79:58:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;285:79:58;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6447:32:62;;;6429:51;;6511:2;6496:18;;6489:34;;;;6539:18;;;6532:34;;;;6597:2;6582:18;;6575:34;;;;6640:3;6625:19;;6618:35;6467:3;6669:19;;6662:35;6728:3;6713:19;;6706:35;6772:3;6757:19;;6750:35;6416:3;6401:19;285:79:58;6086:705:62;17867:412:50;;;;;;:::i;:::-;-1:-1:-1;;;;;18048:25:50;;;17962:7;18048:25;;;:11;:25;;;;;;;;;18017:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17867:412;;;;;-1:-1:-1;;;;;7073:32:62;;;7055:51;;7137:2;7122:18;;7115:34;;;;7165:18;;;7158:34;;;;7223:2;7208:18;;7201:34;7266:3;7251:19;;7244:35;7042:3;7027:19;17867:412:50;6796:489:62;2692:145:38;;;:::i;563:76:58:-;;;;;;:::i;:::-;;;;;;;;;;;;;;19061:146:50;;;;;;:::i;:::-;;:::i;19287:169::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;19418:31:50;;;;;:17;:31;;;;;19411:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;19287:169;;;;;7506:13:62;;-1:-1:-1;;;;;7502:39:62;7484:58;;7598:4;7586:17;;;7580:24;7558:20;;;7551:54;;;;7457:18;19287:169:50;7290:321:62;3155:101:34;;;:::i;2456:120:8:-;;;:::i;:::-;;;;;;;;:::i;855:73:58:-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;855:73:58;;;;;;;;;;:::i;436:37:18:-;;;;;;15570:148:50;;;;;;:::i;:::-;;:::i;16505:134::-;;;;;;:::i;:::-;;:::i;15016:246::-;;;;;;:::i;:::-;;:::i;16714:259::-;;;;;;:::i;:::-;;:::i;9782:495::-;;;;;;:::i;:::-;;:::i;2850:126:8:-;;;:::i;:::-;;;;8810:25:62;;;8866:2;8851:18;;8844:34;;;;8783:18;2850:126:8;8636:248:62;14422:510:50;;;;;;:::i;:::-;;:::i;15804:190::-;;;;;;:::i;:::-;;:::i;1032:92:12:-;;;:::i;5173:903:39:-;;;:::i;:::-;;;;;;;;;;;;;:::i;762:30:58:-;;;;;;856:32:18;;;;;-1:-1:-1;;;856:32:18;;;;;;576:34;;;;;-1:-1:-1;;;;;576:34:18;;;;;;-1:-1:-1;;;;;10807:31:62;;;10789:50;;10777:2;10762:18;576:34:18;10645:200:62;2441:144:34;;;:::i;997:32:18:-;;;;;-1:-1:-1;;;997:32:18;;;;;;673:68:12;;;;;;:::i;:::-;;;;;;;;;;;;;;;;413:91:58;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;413:91:58;;;;;;;;;;;;;;:::i;712:34:18:-;;;;;-1:-1:-1;;;712:34:18;;-1:-1:-1;;;;;712:34:18;;;13804:541:50;;;;;;:::i;:::-;;:::i;1502:484:37:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11451:1433:50:-;;;;;;:::i;:::-;;:::i;20037:146::-;;;;;;:::i;:::-;;:::i;1187:29:18:-;;;;;-1:-1:-1;;;1187:29:18;;;;;;13407:316:50;;;;;;:::i;:::-;;:::i;332:78:11:-;;;;;;:::i;:::-;;;;;;;;;;;;;;6619:346:50;;;;;;:::i;:::-;;:::i;19538:180::-;;;;;;:::i;:::-;;:::i;410:31:51:-;;;;;;8129:615:50;;;;;;:::i;:::-;;:::i;18604:176::-;;;;;;:::i;:::-;18702:7;18728:45;;;:23;:45;;;;;;;18604:176;16286:140;;;;;;:::i;:::-;;:::i;501:75:11:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3405:215:34;;;;;;:::i;:::-;;:::i;17047:151:50:-;17124:23;;:::i;:::-;-1:-1:-1;;;;;;17166:25:50;;;;;;;:11;:25;;;;;;;;;17159:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17047:151::o;3866:538::-;4158:30:35;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:35;-1:-1:-1;;;4302:15:35;;;4301:16;;-1:-1:-1;;;;;4348:14:35;4279:19;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;-1:-1:-1;;;;;4790:16:35;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:35;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:35;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:35;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:35;-1:-1:-1;;;5013:22:35;;;4979:67;4036:26:50::1;4051:10;4036:14;:26::i;:::-;4072:18;:16;:18::i;:::-;4100:20;:18;:20::i;:::-;4130:28;:26;:28::i;:::-;4168:50;;;;;;;;;;;;;;-1:-1:-1::0;;;4168:50:50::1;;::::0;::::1;;;;;;;;;;;;;-1:-1:-1::0;;;4168:50:50::1;;::::0;:24:::1;:50::i;:::-;4229:67;4254:22;-1:-1:-1::0;;4229:24:50::1;:67::i;:::-;4306:43;4326:22;4306:19;:43::i;:::-;4359:38;4380:16;4359:20;:38::i;:::-;5070:14:35::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:35;;;5142:14;;-1:-1:-1;10789:50:62;;5142:14:35;;10777:2:62;10762:18;5142:14:35;;;;;;;5066:101;4092:1081;;;;;3866:538:50;;;:::o;16073:133::-;2334:13:34;:11;:13::i;:::-;16163:36:50::1;16183:15;16163:19;:36::i;:::-;16073:133:::0;:::o;3130:21:8:-;3123:28;;3052:106;:::o;5139:893:50:-;5262:7;3902:15:17;:13;:15::i;:::-;-1:-1:-1;;;;;3902:28:17;;3931:15;3956:4;3963:10;3902:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4018:15;4035:10;3881:175;;;;;;-1:-1:-1;;;3881:175:17;;;;;;;;;:::i;:::-;;;;;;;;;;;5290:7:50::1;4289:42:17;4334:30;4348:15;4334:13;:30::i;:::-;4289:75;;4374:32;4396:9;4374:21;:32::i;:::-;4416:43;4442:9;4453:5;4416:25;:43::i;:::-;2316:19:38::2;:17;:19::i;:::-;5324:17:50::3;::::0;;5396:77:::3;::::0;;::::3;5420:4:::0;5396:77:::3;:::i;:::-;5323:150;;;;;;5512:1;5498:3;5492:17;:21;5484:57;;;;-1:-1:-1::0;;;5484:57:50::3;;;;;;;;;;;;5583:1;5565:7;5559:21;:25;5551:65;;;;-1:-1:-1::0;;;5551:65:50::3;;;;;;;;;;;;-1:-1:-1::0;;;;;5634:17:50;::::3;;::::0;;;:8:::3;:17;::::0;;;;:30;:35;5626:87:::3;;;;-1:-1:-1::0;;;5626:87:50::3;;;;;;;;;;;;5776:70;::::0;;::::3;::::0;::::3;::::0;;5800:15:::3;5776:70:::0;;::::3;::::0;;::::3;::::0;;;;;;;;;-1:-1:-1;;;;;5756:17:50;::::3;-1:-1:-1::0;5756:17:50;;;:8:::3;:17:::0;;;;;;:90;;;;;;5776:70;;5756:17;:90:::3;::::0;::::3;::::0;::::3;::::0;;::::3;:::i;:::-;-1:-1:-1::0;5756:90:50::3;::::0;::::3;::::0;::::3;::::0;::::3;::::0;::::3;::::0;;::::3;:::i;:::-;-1:-1:-1::0;;;;;;;;5860:32:50;::::3;::::0;5856:114:::3;;5908:51;5931:7;5940:18;5908:22;:51::i;:::-;6011:7;-1:-1:-1::0;;;;;5985:40:50::3;;6020:4;;5985:40;;;;;;;:::i;:::-;;;;;;;;5313:719;;;4279:198:17::1;4066:1;5139:893:50::0;;;;:::o;15339:149::-;2334:13:34;:11;:13::i;:::-;15440:41:50::1;15458:13;15473:7;15440:17;:41::i;:::-;15339:149:::0;;:::o;19796:165::-;19938:15;;19877:4;;19900:54;;:29;:11;19916:12;19900:15;:29::i;:::-;:37;;:54::i;:::-;19893:61;19796:165;-1:-1:-1;;19796:165:50:o;1194:93:12:-;883:10;868:26;;;;:14;:26;;;;;;;;860:84;;;;-1:-1:-1;;;860:84:12;;;;;;;;:::i;:::-;;2563:16:38::1;:14;:16::i;:::-;1270:10:12::2;:8;:10::i;:::-;1194:93::o:0;930:138:10:-;1016:45;1030:10;1042:18;1016:13;:45::i;2653:116:8:-;2707:6;2715;2740:22;:20;:22::i;:::-;2733:29;;;;2653:116;;:::o;255:76:51:-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2692:145:38:-;2739:4;2755:25;2783:21;:19;:21::i;:::-;2821:9;;;;2692:145;-1:-1:-1;;2692:145:38:o;19061:146:50:-;-1:-1:-1;;;;;19166:25:50;;;19143:4;19166:25;;;:11;:25;;;;;;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19143:4;19166:34;;:32;:34::i;3155:101:34:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;2456:120:8:-:0;2512:6;2520;2545:24;:22;:24::i;15570:148:50:-;15657:54;15680:10;15692:18;15657:22;:54::i;16505:134::-;2334:13:34;:11;:13::i;:::-;16596:36:50::1;16616:15;16596:19;:36::i;15016:246::-:0;2334:13:34;:11;:13::i;:::-;15186:69:50::1;15211:7;15220:12;15234:20;15186:24;:69::i;:::-;15016:246:::0;;;:::o;16714:259::-;2334:13:34;:11;:13::i;:::-;16805:31:50::1;16824:11;312:9:31::0;-1:-1:-1;1823:16:31;;1742:104;16805:31:50::1;16872:11;16797:88;;;;;-1:-1:-1::0;;;16797:88:50::1;;;;;;1253:25:62::0;;1241:2;1226:18;;1107:177;16797:88:50::1;-1:-1:-1::0;16895:15:50::1;:29:::0;;;16939:27:::1;::::0;1253:25:62;;;16939:27:50::1;::::0;1241:2:62;1226:18;16939:27:50::1;;;;;;;;16714:259:::0;:::o;9782:495::-;9908:7;3902:15:17;:13;:15::i;:::-;-1:-1:-1;;;;;3902:28:17;;3931:15;3956:4;3963:10;3902:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4018:15;4035:10;3881:175;;;;;;-1:-1:-1;;;3881:175:17;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;2497:17:50;::::1;;::::0;;;:8:::1;:17;::::0;;;;:30;9939:7;;;;2489:90:::1;;;;-1:-1:-1::0;;;2489:90:50::1;;;;;;;;:::i;:::-;;2316:19:38::2;:17;:19::i;:::-;9972:20:50::3;9995:27;::::0;;::::3;10006:4:::0;9995:27:::3;:::i;:::-;9972:50:::0;-1:-1:-1;;;;;;10053:48:50;::::3;:29;:11;9972:50:::0;10053:15:::3;:29::i;:::-;:37:::0;10154:7;;10163:12;;-1:-1:-1;;;;;10053:48:50::3;;10032:154;;;;-1:-1:-1::0;;;10032:154:50::3;;;;;;;;;:::i;:::-;;;10196:30;10213:12;10196:16;:30::i;:::-;10256:7;-1:-1:-1::0;;;;;10241:29:50::3;;10265:4;;10241:29;;;;;;;:::i;:::-;;;;;;;;9962:315;4066:1:17::1;9782:495:50::0;;;;:::o;2850:126:8:-;2908:7;2917;2943:26;10501:11:17;10545:22;10569;;10545;;10434:165;14422:510:50;14585:7;3902:15:17;:13;:15::i;:::-;-1:-1:-1;;;;;3902:28:17;;3931:15;3956:4;3963:10;3902:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4018:15;4035:10;3881:175;;;;;;-1:-1:-1;;;3881:175:17;;;;;;;;;:::i;:::-;;;14621:7:50::1;4289:42:17;4334:30;4348:15;4334:13;:30::i;:::-;4289:75;;4374:32;4396:9;4374:21;:32::i;:::-;4416:43;4442:9;4453:5;4416:25;:43::i;:::-;-1:-1:-1::0;;;;;2497:17:50;::::2;;::::0;;;:8:::2;:17;::::0;;;;:30;14660:7;;;;2489:90:::2;;;;-1:-1:-1::0;;;2489:90:50::2;;;;;;;;:::i;:::-;;2316:19:38::3;:17;:19::i;:::-;-1:-1:-1::0;;;;;14726:48:50;::::4;:29;:11;14742:12:::0;14726:15:::4;:29::i;:::-;:37:::0;14827:7;;14836:12;;-1:-1:-1;;;;;14726:48:50::4;;14705:154;;;;-1:-1:-1::0;;;14705:154:50::4;;;;;;;;;:::i;:::-;;;14869:56;14887:12;14901:6;14909:15;;;;;;;;;;;14869:17;:56::i;15804:190::-:0;2334:13:34;:11;:13::i;:::-;15909:78:50::1;15934:22;-1:-1:-1::0;;15909:24:50::1;:78::i;1032:92:12:-:0;883:10;868:26;;;;:14;:26;;;;;;;;860:84;;;;-1:-1:-1;;;860:84:12;;;;;;;;:::i;:::-;;2316:19:38::1;:17;:19::i;:::-;1109:8:12::2;:6;:8::i;5173:903:39:-:0;5271:13;5298:18;5330:21;5365:15;5394:25;5433:12;5459:27;5511:23;5537:19;:17;:19::i;:::-;5777:13;;5511:45;;-1:-1:-1;5777:18:39;:43;;;;-1:-1:-1;5799:16:39;;;;:21;5777:43;5769:77;;;;-1:-1:-1;;;5769:77:39;;21246:2:62;5769:77:39;;;21228:21:62;21285:2;21265:18;;;21258:30;-1:-1:-1;;;21304:18:62;;;21297:51;21365:18;;5769:77:39;21044:345:62;5769:77:39;5908:13;:11;:13::i;:::-;5935:16;:14;:16::i;:::-;6043;;;6027:1;6043:16;;;;;;;;;-1:-1:-1;;;5857:212:39;;;-1:-1:-1;5857:212:39;;-1:-1:-1;5965:13:39;;-1:-1:-1;6000:4:39;;-1:-1:-1;6027:1:39;-1:-1:-1;6043:16:39;-1:-1:-1;5857:212:39;-1:-1:-1;;5173:903:39:o;2441:144:34:-;2487:7;2506:24;2533:20;:18;:20::i;:::-;2570:8;-1:-1:-1;;;;;2570:8:34;;2441:144;-1:-1:-1;;2441:144:34:o;13804:541:50:-;13884:34;13921:29;:11;13937:12;13921:15;:29::i;:::-;13884:66;;13960:12;13975:35;13994:15;;13975:10;:18;;:35;;;;:::i;:::-;14061:18;;14081:15;;13960:50;;-1:-1:-1;14020:21:50;;14044:53;;14061:18;-1:-1:-1;;;14081:15:50;;;;14044:16;:53::i;:::-;14020:77;;14115:7;:27;;;;14126:16;14115:27;14186:12;14107:93;;;;;-1:-1:-1;;;14107:93:50;;;;;;;;:::i;:::-;;14219:25;:10;:23;:25::i;:::-;14218:26;14284:12;14210:88;;;;;-1:-1:-1;;;14210:88:50;;;;;;;;:::i;:::-;;14308:30;14325:12;14308:16;:30::i;:::-;13874:471;;;13804:541;:::o;1502:484:37:-;1668:12;;;1604:20;1668:12;;;;;;;;1570:22;;1779:4;-1:-1:-1;;;;;1767:24:37;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1757:34;;1806:9;1801:155;1821:15;;;1801:155;;;1870:75;1907:4;1927;;1932:1;1927:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1936;1914:30;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1870:28;:75::i;:::-;1857:7;1865:1;1857:10;;;;;;;;:::i;:::-;;;;;;;;;;:88;1838:3;;1801:155;;;;1965:14;1502:484;;;;:::o;11451:1433:50:-;11769:7;11646;3902:15:17;:13;:15::i;:::-;-1:-1:-1;;;;;3902:28:17;;3931:15;3956:4;3963:10;3902:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4018:15;4035:10;3881:175;;;;;;-1:-1:-1;;;3881:175:17;;;;;;;;;:::i;:::-;;;11682:7:50::1;4289:42:17;4334:30;4348:15;4334:13;:30::i;:::-;4289:75;;4374:32;4396:9;4374:21;:32::i;:::-;4416:43;4442:9;4453:5;4416:25;:43::i;:::-;-1:-1:-1::0;;;;;2497:17:50;::::2;;::::0;;;:8:::2;:17;::::0;;;;:30;11721:7;;;;2489:90:::2;;;;-1:-1:-1::0;;;2489:90:50::2;;;;;;;;:::i;:::-;;2316:19:38::3;:17;:19::i;:::-;11792:24:50::4;::::0;11835:11:::4;:51;;;;;;;;:::i;:::-;::::0;11831:935:::4;;11902:40;11945:43;::::0;;::::4;11956:4:::0;11945:43:::4;:::i;:::-;12027:13:::0;;:29:::4;;::::0;11902:86;;-1:-1:-1;12060:7:50;-1:-1:-1;;;;;12027:40:50;;::::4;::::0;;::::4;;12002:167;;;;-1:-1:-1::0;;;12002:167:50::4;;;;;;;;;:::i;:::-;;;12202:28;12220:9;12202:17;:28::i;:::-;12183:47;;11888:353;11831:935;;;12266:43;12251:11;:58;;;;;;;;:::i;:::-;::::0;12247:519:::4;;12326:20;::::0;12363:36:::4;::::0;;::::4;12374:4:::0;12363:36:::4;:::i;:::-;12325:74:::0;;-1:-1:-1;12325:74:50;-1:-1:-1;;;;;;12438:48:50;::::4;:29;:11;12325:74:::0;12438:15:::4;:29::i;:::-;:37:::0;12543:7;;12552:12;;-1:-1:-1;;;;;12438:48:50::4;;12413:166;;;;-1:-1:-1::0;;;12413:166:50::4;;;;;;;;;:::i;:::-;;;12612:59;12636:12;12650:3;12655:15;;;;;;;;;;;12612:23;:59::i;:::-;12593:78;;12311:371;;12247:519;;;12743:11;12709:46;;-1:-1:-1::0;;;12709:46:50::4;;;;;;;;:::i;12247:519::-;12814:11;12781:63;;;;;;;;:::i;:::-;12805:7;-1:-1:-1::0;;;;;12781:63:50::4;;12827:16;12781:63;;;;1253:25:62::0;;1241:2;1226:18;;1107:177;12781:63:50::4;;;;;;;;12861:16:::0;11451:1433;-1:-1:-1;;;;;;;;;11451:1433:50:o;20037:146::-;20111:4;20134:42;20151:7;20160:15;;;;;;;;;;;20134:16;:42::i;13407:316::-;2112:10:61;2134:15;-1:-1:-1;;;;;2112:38:61;;;;2091:147;;;;-1:-1:-1;;;2091:147:61;;;;;;;;;:::i;:::-;-1:-1:-1;13508:14:50::1;::::0;-1:-1:-1;13508:14:50;13542:36:::1;::::0;;::::1;13553:4:::0;13542:36:::1;:::i;:::-;13507:71;;;;13588:15;:13;:15::i;:::-;-1:-1:-1::0;;;;;13588:21:50::1;;13610:7;13619:6;13627;13643:17;:15;:17::i;:::-;13588:74;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13588:74:50;;;-1:-1:-1;;;;;26454:32:62;;;13588:74:50::1;::::0;::::1;26436:51:62::0;26503:18;;;26496:34;;;;26546:18;;;26539:34;;;;26609:32;;;26589:18;;;26582:60;26408:19;;13588:74:50::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13700:7;-1:-1:-1::0;;;;;13677:39:50::1;;13709:6;13677:39;;;;1253:25:62::0;;1241:2;1226:18;;1107:177;13677:39:50::1;;;;;;;;13497:226;;13407:316:::0;;;:::o;6619:346::-;6761:7;3902:15:17;:13;:15::i;:::-;-1:-1:-1;;;;;3902:28:17;;3931:15;3956:4;3963:10;3902:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4018:15;4035:10;3881:175;;;;;;-1:-1:-1;;;3881:175:17;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;2497:17:50;::::1;;::::0;;;:8:::1;:17;::::0;;;;:30;6792:7;;;;2489:90:::1;;;;-1:-1:-1::0;;;2489:90:50::1;;;;;;;;:::i;:::-;;2316:19:38::2;:17;:19::i;:::-;6825:30:50::3;6847:7;6825:21;:30::i;:::-;6865:35;6892:7;6865:26;:35::i;:::-;6915:43;::::0;-1:-1:-1;;;;;6915:43:50;::::3;::::0;::::3;::::0;;;::::3;4066:1:17::1;6619:346:50::0;;;;:::o;19538:180::-;19640:7;19666:45;19689:7;19698:12;19666:22;:45::i;:::-;19659:52;19538:180;-1:-1:-1;;;19538:180:50:o;8129:615::-;8280:7;3902:15:17;:13;:15::i;:::-;-1:-1:-1;;;;;3902:28:17;;3931:15;3956:4;3963:10;3902:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4018:15;4035:10;3881:175;;;;;;-1:-1:-1;;;3881:175:17;;;;;;;;;:::i;:::-;;;8316:7:50::1;4289:42:17;4334:30;4348:15;4334:13;:30::i;:::-;4289:75;;4374:32;4396:9;4374:21;:32::i;:::-;4416:43;4442:9;4453:5;4416:25;:43::i;:::-;-1:-1:-1::0;;;;;2497:17:50;::::2;;::::0;;;:8:::2;:17;::::0;;;;:30;8355:7;;;;2489:90:::2;;;;-1:-1:-1::0;;;2489:90:50::2;;;;;;;;:::i;:::-;;2316:19:38::3;:17;:19::i;:::-;8401:28:50::4;::::0;;;8501:86:::4;::::0;;::::4;8525:4:::0;8501:86:::4;:::i;:::-;8400:187;;;;;;;;8597:96;8607:7;8616:12;8630:20;8652:6;8660:15;8677;;;;;;;;;;;8597:9;:96::i;:::-;;8723:7;-1:-1:-1::0;;;;;8708:29:50::4;;8732:4;;8708:29;;;;;;;:::i;:::-;;;;;;;;8390:354;;;;4469:1:17::2;4279:198:::1;4066:1;8129:615:50::0;;;;:::o;16286:140::-;2334:13:34;:11;:13::i;:::-;16380:39:50::1;16401:17;16380:20;:39::i;3405:215:34:-:0;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:34;::::1;3485:91;;3562:1;3534:31;;-1:-1:-1::0;;;3534:31:34::1;;;;;;;;:::i;3485:91::-;3585:28;3604:8;3585:18;:28::i;8737:170:35:-:0;8870:21;;8737:170::o;1847:127:34:-;6931:20:35;:18;:20::i;:::-;1929:38:34::1;1954:12;1929:24;:38::i;1202:61:37:-:0;6931:20:35;:18;:20::i;2045:148:8:-;6931:20:35;:18;:20::i;:::-;2111:35:8::1;:33;:35::i;:::-;2156:30;:28;:30::i;1423:156:12:-:0;6931:20:35;:18;:20::i;:::-;1497:27:12::1;:25;:27::i;6521:213:57:-:0;6931:20:35;:18;:20::i;:::-;6636:30:57::1;6650:5;6657:8;6636:13;:30::i;:::-;6676:51;6711:5;6718:8;6676:34;:51::i;6312:279:17:-:0;6401:4;6409;6401:12;;;;6393:63;;;;-1:-1:-1;;;6393:63:17;;;;;8810:25:62;;;;8851:18;;;8844:34;8783:18;;6393:63:17;8636:248:62;6393:63:17;-1:-1:-1;;6466:22:17;:29;;;6505:22;:29;;;6549:35;;;8810:25:62;;;8866:2;8851:18;;8844:34;;;6549:35:17;;8783:18:62;6549:35:17;;;;;;;;6312:279;;:::o;5957:135::-;6020:15;:24;;-1:-1:-1;;;;6020:24:17;-1:-1:-1;;;6020:24:17;;;;;;;;;;;;;6059:26;;2695:42:62;;;6059:26:17;;2683:2:62;2668:18;6059:26:17;2551:192:62;24822:258:50;24905:17;24926:1;24905:22;24897:77;;;;-1:-1:-1;;;24897:77:50;;;;;;;;;;;;24984:16;:36;;;25035:38;;1253:25:62;;;25035:38:50;;1241:2:62;1226:18;25035:38:50;1107:177:62;2658:162:34;966:10:36;2717:7:34;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:34;;2713:101;;966:10:36;2763:40:34;;-1:-1:-1;;;2763:40:34;;;;;;;;:::i;5889:102:33:-;5971:13;;5889:102::o;11557:351:17:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11718:15:17;:13;:15::i;:::-;-1:-1:-1;;;;;11718:28:17;;11747:16;11773:4;11718:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11673:106;;11797:9;:19;;;-1:-1:-1;;;;;11797:24:17;11820:1;11797:24;;11857:16;11789:86;;;;;-1:-1:-1;;;11789:86:17;;;;;;;;:::i;:::-;-1:-1:-1;11892:9:17;11557:351;-1:-1:-1;;11557:351:17:o;8224:210::-;8332:95;8351:10;:17;;;8370:22;;8394;;8332:95;;;;;;;;;;;;;-1:-1:-1;;;8332:95:17;;;:18;:95::i;9236:755::-;9391:23;9416;9443:24;:22;:24::i;:::-;9390:77;;;;9477:27;9507:13;:74;;9557:10;:24;;;9507:74;;;9523:10;:31;;;9507:74;9477:104;;9591:93;9610:20;-1:-1:-1;;;;;9591:93:17;9632:16;-1:-1:-1;;;;;9591:93:17;9650:16;-1:-1:-1;;;;;9591:93:17;;;;;;;;;;;;;;-1:-1:-1;;;9591:93:17;;;:18;:93::i;:::-;9696:21;9719;9744:22;:20;:22::i;:::-;9695:71;;;;9776:28;9807:13;:76;;9858:10;:25;;;9807:76;;;9823:10;:32;;;9807:76;9776:107;;9893:91;9912:21;9893:91;;9935:14;9893:91;;9951:14;9893:91;;;;;;;;;;;;;;;-1:-1:-1;;;9893:91:17;;;:18;:91::i;2905:128:38:-;2970:8;:6;:8::i;:::-;2966:61;;;3001:15;;-1:-1:-1;;;3001:15:38;;;;;;;;;;;18843:222:57;-1:-1:-1;;;;;18941:28:57;;;;;;;:18;:28;;;;;;:50;;-1:-1:-1;;;;;;18941:50:57;;;;;;;;;19006:52;;;18941:28;19006:52;18843:222;;:::o;2101:204:12:-;2316:19:38;:17;:19::i;:::-;-1:-1:-1;;;;;2200:30:12;::::1;;::::0;;;:14:::1;:30;::::0;;;;;;;;:41;;-1:-1:-1;;2200:41:12::1;::::0;::::1;;::::0;;::::1;::::0;;;2256:42;;4530:41:62;;;2256:42:12::1;::::0;4503:18:62;2256:42:12::1;;;;;;;2101:204:::0;;:::o;5580:160:54:-;5678:12;;:::i;:::-;5709:24;5714:4;5720:12;5709:4;:24::i;:::-;5702:31;;;;;;;;;;-1:-1:-1;;;;;5702:31:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5580:160;-1:-1:-1;;;5580:160:54:o;5924:267::-;6007:4;6023:24;6068:49;6077:4;:14;;;6093:4;:23;;;6068:8;:49::i;:::-;6050:67;;:15;:67;:::i;:::-;6023:94;;6134:13;:4;:11;:13::i;:::-;:50;;;;;6170:14;6151:16;:33;6134:50;6127:57;5924:267;-1:-1:-1;;;;5924:267:54:o;3105:126:38:-;3168:8;:6;:8::i;:::-;3163:62;;3199:15;;-1:-1:-1;;;3199:15:38;;;;;;;;;;;3674:178;2563:16;:14;:16::i;:::-;3732:25:::1;3760:21;:19;:21::i;:::-;3791:17:::0;;-1:-1:-1;;3791:17:38::1;::::0;;;-1:-1:-1;3823:22:38::1;966:10:36::0;3832:12:38::1;3823:22;;;;;;:::i;2551:526:10:-:0;-1:-1:-1;;;;;2685:29:10;;2648:34;2685:29;;;:11;:29;;;;;;;;2898:31;;;;;28953:36:62;;;29005:18;;;28998:60;;;;2898:31:10;;;;;;;;;28926:18:62;;;;2898:31:10;;2648:34;;2770:202;;2685:29;;2803:18;;2835;;2867:17;;2943:19;2770;:202::i;:::-;2724:248;;;;3008:16;-1:-1:-1;;;;;2988:82:10;;3026:14;3053:4;3042:27;;;;;;;;;;;;:::i;:::-;2988:82;;;8810:25:62;;;8866:2;8851:18;;8844:34;;;;8783:18;2988:82:10;8636:248:62;20988:174:50;21052:10;21064;21094:17;:15;:17::i;:::-;-1:-1:-1;;;;;21094:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21086:69;312:9:31;;-1:-1:-1;20988:174:50;-1:-1:-1;20988:174:50:o;1147:162:38:-;1270:23;;1147:162::o;6503:123:54:-;6561:4;6584:13;:4;6374:14;;;:19;;;6293:107;6584:13;:35;;;;-1:-1:-1;;6601:13:54;;;:18;;6503:123::o;3774:248:34:-;3847:24;3874:20;:18;:20::i;:::-;3923:8;;-1:-1:-1;;;;;3941:19:34;;;-1:-1:-1;;;;;;3941:19:34;;;;;;3975:40;;3847:47;;-1:-1:-1;3923:8:34;;;;;3975:40;;3904:16;;3975:40;3837:185;;3774:248;:::o;20571:180:50:-;20637:10;20649;20679:17;:15;:17::i;:::-;-1:-1:-1;;;;;20679:34:50;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20671:73;-1:-1:-1;;;;;1406:16:17;-1:-1:-1;20571:180:50;-1:-1:-1;20571:180:50:o;19322:166:57:-;19396:15;:34;;;19445:36;;1253:25:62;;;19445:36:57;;1241:2:62;1226:18;19445:36:57;1107:177:62;7497:292:57;7622:73;:17;7648:8;7658:13;7673:21;7622:25;:73::i;:::-;7760:21;7745:13;-1:-1:-1;;;;;7710:72:57;7735:8;-1:-1:-1;;;;;7710:72:57;;;;;;;;;;;7497:292;;;:::o;17711:889::-;17779:34;17816:30;:11;17832:13;17816:15;:30::i;:::-;17779:67;;17949:160;17990:13;18017:22;:20;:22::i;:::-;-1:-1:-1;;;;;18017:49:57;;18067:10;:31;;;18017:82;;;;;;;;;;;;;1253:25:62;;1241:2;1226:18;;1107:177;18017:82:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17949:11;;:160;:27;:160::i;:::-;18120:32;:11;18138:13;18120:17;:32::i;:::-;18197:18;;18217:17;;;;18162:73;;:26;;:34;:73::i;:::-;18457:10;:17;;;18386:23;:56;18410:10;:31;;;18386:56;;;;;;;;;;;;:88;;;;:::i;:::-;18315:23;:56;18339:10;:31;;;18315:56;;;;;;;;;;;:159;;;;18542:10;:31;;;18527:13;-1:-1:-1;;;;;18490:103:57;18507:10;:18;;;-1:-1:-1;;;;;18490:103:57;;18575:10;:17;;;18490:103;;;;1253:25:62;;1241:2;1226:18;;1107:177;18490:103:57;;;;;;;;17769:831;17711:889;:::o;15057:2069::-;15197:23;;:::i;:::-;15232:34;15269:30;:11;15285:13;15269:15;:30::i;:::-;15232:67;;15317:19;:10;:17;:19::i;:::-;15372:13;15309:78;;;;;-1:-1:-1;;;15309:78:57;;;;;;;;:::i;:::-;;15416:10;:17;;;15405:7;:28;;15471:13;15486:7;15397:98;;;;;;-1:-1:-1;;;15397:98:57;;;;;;;;;:::i;:::-;-1:-1:-1;;15562:17:57;;;;15593:19;;;15589:263;;;15628:107;15660:15;:13;:15::i;:::-;15677:18;;15697:19;15707:9;15697:7;:19;:::i;:::-;15628:26;;:107;;15718:16;15628:31;:107::i;:::-;15589:263;;;15801:18;;15766:75;;15821:19;15833:7;15821:9;:19;:::i;:::-;15766:26;;:75;:34;:75::i;:::-;15957:35;15995:22;:20;:22::i;:::-;-1:-1:-1;;;;;15995:49:57;;16058:10;:31;;;15995:104;;;;;;;;;;;;;1253:25:62;;1241:2;1226:18;;1107:177;15995:104:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15957:142;;16109:42;16155:25;:10;:23;:25::i;:::-;16154:26;:125;;16278:1;16154:125;;;16225:38;;;;16195:68;;:27;:68;:::i;:::-;-1:-1:-1;;;;;16323:26:57;;;;;;:11;:26;;;;;:33;;;:43;;;16376:54;;:84;;;16109:170;-1:-1:-1;16518:22:57;:20;:22::i;:::-;:115;;-1:-1:-1;;;16518:115:57;;;;;8810:25:62;;;8851:18;;;8844:34;;;-1:-1:-1;;;;;16518:34:57;;;;;;;8783:18:62;;16518:115:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16470:26:57;;;;;;:11;:26;;;;;:44;;:163;;:44;;:26;:163;;;;;:::i;:::-;;;;-1:-1:-1;;16717:19:57;;;16713:243;;;16813:19;16823:9;16813:7;:19;:::i;:::-;16752:23;:56;16776:10;:31;;;16752:56;;;;;;;;;;;;:81;;;;;;;:::i;:::-;;;;-1:-1:-1;16713:243:57;;-1:-1:-1;16713:243:57;;16925:19;16937:7;16925:9;:19;:::i;:::-;16864:23;:56;16888:10;:31;;;16864:56;;;;;;;;;;;;:81;;;;;;;:::i;:::-;;;;-1:-1:-1;;16713:243:57;17024:10;:31;;;17009:13;-1:-1:-1;;;;;16971:105:57;16989:10;:18;;;-1:-1:-1;;;;;16971:105:57;;17057:7;17066:9;16971:105;;;;;;8810:25:62;;;8866:2;8851:18;;8844:34;8798:2;8783:18;;8636:248;16971:105:57;;;;;;;;-1:-1:-1;;;;;;;;;17093:26:57;;;;;;;:11;:26;;;;;;;;;17086:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17086:33:57;;15057:2069;-1:-1:-1;;15057:2069:57:o;3366:176:38:-;2316:19;:17;:19::i;:::-;3425:25:::1;3453:21;:19;:21::i;:::-;3484:16:::0;;-1:-1:-1;;3484:16:38::1;3496:4;3484:16;::::0;;3425:49;-1:-1:-1;3515:20:38::1;3522:12;966:10:36::0;;887:96;2720:156:39;2839:21;;2720:156::o;6300:155::-;6354:13;6379:23;6405:19;:17;:19::i;:::-;6379:45;;6441:1;:7;;6434:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6300:155;:::o;6682:161::-;6739:13;6764:23;6790:19;:17;:19::i;:::-;6764:45;;6826:1;:10;;6819:17;;;;;:::i;1192:159:34:-;1313:22;;1192:159::o;20766:200:57:-;20858:4;20882:77;20915:15;:13;:15::i;:::-;20882:26;;20932:8;20942:16;20882:32;:77::i;:::-;20881:78;;20766:200;-1:-1:-1;;;20766:200:57:o;6735:127:54:-;6799:4;6822:13;:4;6374:14;;;:19;;;6293:107;6822:13;:33;;;;-1:-1:-1;;6839:11:54;;;:16;;6735:127::o;4106:253:42:-;4189:12;4214;4228:23;4255:6;-1:-1:-1;;;;;4255:19:42;4275:4;4255:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4213:67;;;;4297:55;4324:6;4332:7;4341:10;4297:26;:55::i;:::-;4290:62;4106:253;-1:-1:-1;;;;;4106:253:42:o;22503:2313:50:-;22641:14;;:30;;;;;22715:23;;;;;22704:46;;22590:21;;22641:30;22590:21;;22704:46;;;;;;;;;:::i;:::-;22681:69;-1:-1:-1;22760:34:50;22797:29;:11;22681:69;22797:15;:29::i;:::-;22930:18;;22760:66;;-1:-1:-1;22952:7:50;;-1:-1:-1;;;;;22930:29:50;;;;;;;22922:94;;;;-1:-1:-1;;;22922:94:50;;;;;;;;;:::i;:::-;-1:-1:-1;;23057:31:50;;;;23139:25;23153:7;23026:28;23139:13;:25::i;:::-;23270:21;23294:13;:11;:13::i;:::-;-1:-1:-1;;;;;23294:23:50;;23326:4;23294:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23270:62;;23343:19;23365:11;:9;:11::i;:::-;-1:-1:-1;;;;;23365:21:50;;23387:20;23365:43;;;;;;;;;;;;;1253:25:62;;1241:2;1226:18;;1107:177;23365:43:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;23429:1;23365:65;;;23411:15;;23365:65;23343:87;-1:-1:-1;23440:23:50;3551:13:61;-1:-1:-1;;;;;23466:23:50;;23503:36;23564:10;23576:11;23553:35;;;;;;;;;:::i;:::-;;;;;;;;;;;;;23466:132;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23440:158;-1:-1:-1;23608:22:50;23633:35;23440:158;23656:11;23633:22;:35::i;:::-;23608:60;;23679:20;23702:13;:11;:13::i;:::-;-1:-1:-1;;;;;23702:23:50;;23734:4;23702:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23679:61;-1:-1:-1;23679:61:50;23771:30;23787:14;23771:13;:30;:::i;:::-;:46;23869:13;23884:12;23898:14;23750:173;;;;;;;-1:-1:-1;;;23750:173:50;;;;;32382:25:62;;;;32423:18;;;32416:34;;;;32466:18;;;32459:34;32355:18;;23750:173:50;32180:319:62;23750:173:50;-1:-1:-1;;23938:19:50;;;-1:-1:-1;23934:768:50;;24029:20;24070:16;;24052:15;:34;;;;:::i;:::-;24029:57;;24100:23;24144:17;:15;:17::i;:::-;-1:-1:-1;;;;;24144:34:50;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24126:54;;-1:-1:-1;;;;;24126:54:50;:15;:54;:::i;:::-;24100:80;;24194:50;24205:7;24214:12;24228:15;24194:10;:50::i;:::-;24263:18;;24259:433;;24392:22;:20;:22::i;:::-;-1:-1:-1;;;;;24392:45:50;;24438:20;24392:67;;;;;;;;;;;;;1253:25:62;;1241:2;1226:18;;1107:177;24392:67:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24540:62;24573:11;:9;:11::i;:::-;24587:14;24540:13;:11;:13::i;:::-;-1:-1:-1;;;;;24540:24:50;;:62;:24;:62::i;:::-;24620:11;:9;:11::i;:::-;:57;;-1:-1:-1;;;24620:57:50;;;;;8810:25:62;;;8851:18;;;8844:34;;;-1:-1:-1;;;;;24620:19:50;;;;;;;8783:18:62;;24620:57:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24259:433;23959:743;;23934:768;24717:60;;;8810:25:62;;;8866:2;8851:18;;8844:34;;;-1:-1:-1;;;;;24717:60:50;;;;;8783:18:62;24717:60:50;;;;;;;-1:-1:-1;24794:15:50;;22503:2313;-1:-1:-1;;;;;;;;;22503:2313:50:o;10951:3331:57:-;11094:7;;11150:30;:11;11166:13;11150:15;:30::i;:::-;11113:67;;11198:19;:10;:17;:19::i;:::-;11253:13;11190:78;;;;;-1:-1:-1;;;11190:78:57;;;;;;;;:::i;:::-;;11338:21;11364:35;11383:15;;11364:10;:18;;:35;;;;:::i;:::-;11363:36;:78;;;;;11416:25;:10;:23;:25::i;:::-;11415:26;11363:78;:112;;;;-1:-1:-1;11457:18:57;;;11363:112;11362:194;;11555:1;11362:194;;;11491:22;:20;:22::i;:::-;-1:-1:-1;;;;;11491:34:57;;11526:13;11491:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11338:218;;11676:160;11717:13;11744:22;:20;:22::i;:::-;-1:-1:-1;;;;;11744:49:57;;11794:10;:31;;;11744:82;;;;;;;;;;;;;1253:25:62;;1241:2;1226:18;;1107:177;11676:160:57;11846:37;:11;11869:13;11846:22;:37::i;:::-;11956:46;:11;11988:13;11956:31;:46::i;:::-;12013:28;;12104:18;;12100:1612;;12186:20;12209:15;:13;:15::i;:::-;12262:18;;12209:177;;-1:-1:-1;;;12209:177:57;;-1:-1:-1;;;;;12209:35:57;;;;;;;:177;;12306:4;;12329:43;;12209:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12186:200;;12400:57;12460:15;:13;:15::i;:::-;12511:18;;12460:114;;-1:-1:-1;;;12460:114:57;;-1:-1:-1;;;;;12460:33:57;;;;;;;:114;;12555:4;;12460:114;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12400:174;;12741:1;12717:14;:21;;;:25;:66;;12782:1;12717:66;;;12745:34;:13;12766:12;12745:20;:34::i;:::-;12691:92;-1:-1:-1;12801:27:57;;12797:251;;12848:13;:11;:13::i;:::-;-1:-1:-1;;;;;12848:21:57;;12878:15;:13;:15::i;:::-;12896:23;12848:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12938:15;:13;:15::i;:::-;12974:18;;12938:95;;-1:-1:-1;;;12938:95:57;;-1:-1:-1;;;;;12938:35:57;;;;;;;:95;;13002:4;;13009:23;;12938:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12797:251;13130:39;13146:23;13130:13;:39;:::i;:::-;13107:62;-1:-1:-1;13187:24:57;;13183:519;;13279:18;;-1:-1:-1;;;;;13260:38:57;;;13231:26;13260:38;;;:18;:38;;;;;;;;13316:372;;13376:13;:11;:13::i;:::-;-1:-1:-1;;;;;13376:21:57;;13406:15;:13;:15::i;:::-;13424:20;13376:69;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13467:15;:13;:15::i;:::-;13500:18;;13467:89;;-1:-1:-1;;;13467:89:57;;-1:-1:-1;;;;;13467:32:57;;;;;;;:89;;13528:4;;13535:20;;13467:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13316:372;;;13603:66;13628:18;13648:20;13603:13;:11;:13::i;:66::-;13213:489;13183:519;12124:1588;;12100:1612;13824:31;;;;13765:18;;-1:-1:-1;;;;;13727:303:57;;;;;;13869:13;13896:20;13930:23;13967:4;6678:19:33;-1:-1:-1;;;;;13985:33:57;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13727:303;;;34804:25:62;;;34860:2;34845:18;;34838:34;;;;34888:18;;;34881:34;;;;34946:2;34931:18;;34924:34;34989:3;34974:19;;34967:35;34791:3;34776:19;13727:303:57;;;;;;;14150:18;;14133:54;;14170:16;14133;:54::i;:::-;14129:116;;;14203:31;14220:13;14203:16;:31::i;:::-;-1:-1:-1;14262:13:57;;10951:3331;-1:-1:-1;;;;;;10951:3331:57:o;3285:106:61:-;3369:15;;3285:106::o;7843:214:17:-;7932:42;7977:31;7991:16;7977:13;:31::i;:::-;7932:76;;8018:32;8040:9;8018:21;:32::i;5614:206::-;5695:49;5721:16;5739:4;5695:25;:49::i;:::-;5754:15;:13;:15::i;:::-;-1:-1:-1;;;;;5754:41:17;;5796:16;5754:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5614:206;:::o;20253:227:57:-;20349:7;20375:98;1942:68;20447:8;20457:13;20402:69;;;;;;;;;35215:25:62;;;-1:-1:-1;;;;;35276:32:62;;;35271:2;35256:18;;35249:60;35345:32;35340:2;35325:18;;35318:60;35203:2;35188:18;;35013:371;20402:69:57;;;;;;;;;;;;;20392:80;;;;;;20375:16;:98::i;8499:1504::-;8735:23;;:::i;:::-;-1:-1:-1;;;;;8778:27:57;;8770:80;;;;-1:-1:-1;;;8770:80:57;;;;;;;;;;;;8861:65;8884:8;8894:13;8909:16;8861:22;:65::i;:::-;9079:47;:17;9112:13;9079:32;:47::i;:::-;9136:34;9173:219;9205:8;9227:13;9254:21;9289:7;9310:22;:20;:22::i;:::-;-1:-1:-1;;;;;9310:49:57;;9360:21;9310:72;;;;;;;;;;;;;1253:25:62;;1241:2;1226:18;;1107:177;9310:72:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9173:11;;:219;;;;:18;:219::i;:::-;9136:256;;9545:85;9577:15;:13;:15::i;:::-;9545:26;;9594:8;9604:7;9613:16;9545:31;:85::i;:::-;9852:10;:17;;;9781:23;:56;9805:10;:31;;;9781:56;;;;;;;;;;;;:88;;;;:::i;:::-;9710:23;:56;9734:10;:31;;;9710:56;;;;;;;;;;;:159;;;;9928:21;9913:13;-1:-1:-1;;;;;9885:84:57;9903:8;-1:-1:-1;;;;;9885:84:57;;9951:10;:17;;;9885:84;;;;1253:25:62;;1241:2;1226:18;;1107:177;9885:84:57;;;;;;;;9986:10;8499:1504;-1:-1:-1;;;;;;;8499:1504:57:o;7084:141:35:-;7151:17;:15;:17::i;:::-;7146:73;;7191:17;;-1:-1:-1;;;7191:17:35;;;;;;;;;;;1980:235:34;6931:20:35;:18;:20::i;4910:342:17:-;6931:20:35;:18;:20::i;:::-;4991:84:17::1;1485:17;-1:-1:-1::0;;4991:24:17::1;:84::i;:::-;5085:72;1173:16;312:9:31;5085:20:17;:72::i;:::-;5167:78;1330:16;-1:-1:-1::0;;;;;5167:22:17::1;:78::i;1939:156:38:-:0;6931:20:35;:18;:20::i;:::-;2012:25:38::1;2040:21;:19;:21::i;:::-;2071:17:::0;;-1:-1:-1;;2071:17:38::1;::::0;;-1:-1:-1;1939:156:38:o;3446:147:39:-;6931:20:35;:18;:20::i;:::-;3548:38:39::1;3572:4;3578:7;3548:23;:38::i;6849:139:57:-:0;6931:20:35;:18;:20::i;12210:234:17:-;12342:28;:6;12359:4;12365;12342:16;:28::i;:::-;12401:14;12417:6;12425:4;12431;12334:103;;;;;;;;-1:-1:-1;;;12334:103:17;;;;;;;;;;;:::i;7084:278:54:-;-1:-1:-1;;;;;7234:18:54;;;7182:13;7234:18;;;;;;;;;;;7270:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7182:13;;7270:19;;6374:14;;;:19;;;6293:107;7270:19;7314:12;7262:66;;;;;-1:-1:-1;;;7262:66:54;;;;;;;;:::i;:::-;-1:-1:-1;7345:10:54;7084:278;-1:-1:-1;;;7084:278:54:o;2382:104:46:-;2440:7;2470:1;2466;:5;:13;;2478:1;2466:13;;;-1:-1:-1;2474:1:46;;2382:104;-1:-1:-1;2382:104:46:o;5166:247:10:-;5234:7;5279:16;;;:6;:16;;;;;;;;5253:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5286:8;;5305:69;;;;-1:-1:-1;;;5305:69:10;;;;;;1253:25:62;;1241:2;1226:18;;1107:177;5305:69:10;-1:-1:-1;5391:15:10;;;;5166:247;-1:-1:-1;;5166:247:10:o;3552:726::-;3634:4;3640:12;3664:23;3690:24;3705:8;3690:14;:24::i;:::-;3664:50;;3772:15;3751:5;:18;;;:36;3747:103;;;-1:-1:-1;;1112:9:29;;;;;;;;;-1:-1:-1;1112:9:29;;3811:4:10;;-1:-1:-1;3803:36:10;;3747:103;3879:21;3902:23;3940:4;3929:36;;;;;;;;;;;;:::i;:::-;4041:12;;3878:87;;-1:-1:-1;3878:87:10;-1:-1:-1;3995:59:10;;:20;;3878:87;;3995:28;:59::i;:::-;4115:12;;4129:18;;;;;4069:79;;8810:25:62;;;8866:2;8851:18;;8844:34;4105:8:10;;-1:-1:-1;;;;;4069:79:10;;;;;8783:18:62;4069:79:10;;;;;;;4211:12;;4195:28;;:13;:28;:::i;:::-;4184:57;;;;;;36378:25:62;;;;-1:-1:-1;;;;;36439:32:62;;36419:18;;;36412:60;36351:18;;4184:57:10;;;;;;;;;;;;4177:64;;4259:5;4266:4;4251:20;;;;;;;3552:726;;;;;;:::o;4488:93::-;4558:16;;;;:6;:16;;;;;4551:23;;;;;;;;;;;;;;;;;;4488:93::o;4479:945:29:-;4795:7;4804:12;4850:4;:10;;;4836;:24;;4828:64;;;;-1:-1:-1;;;4828:64:29;;;;;;;;;;;;4903:17;4948:15;;4947:43;;4980:10;4947:43;;;4967:4;:10;;;4947:43;5018:9;;4934:56;;-1:-1:-1;5038:335:29;5045:20;;;;;:38;;;5082:1;5069:10;:14;5045:38;5038:335;;;5100:16;5118:17;5139:35;5151:6;5159:14;5139:11;:35;;:::i;:::-;5099:75;;;;5193:11;5189:22;;;5206:5;;;;5189:22;5243:4;-1:-1:-1;5243:4:29;5270:40;:4;5286:11;5299:10;5270:15;:40::i;:::-;5261:49;-1:-1:-1;5325:12:29;;;;:::i;:::-;;;;5351:11;;;;;:::i;:::-;;;;5085:288;;5038:335;;;-1:-1:-1;5391:9:29;5402:14;;-1:-1:-1;4479:945:29;;-1:-1:-1;;;;;;4479:945:29:o;1731:423:56:-;-1:-1:-1;;;;;1923:18:56;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;:18;;3034:26;1914:84;;;;-1:-1:-1;;;1914:84:56;;;;;;;;:::i;:::-;-1:-1:-1;2035:71:56;;;;;;;;-1:-1:-1;;;;;2035:71:56;;;;;;;;;;;;2116:18;;;-1:-1:-1;2116:18:56;;;;;;;;;;:31;;;;-1:-1:-1;;;;;;2116:31:56;;;;;;;;;;;-1:-1:-1;2116:31:56;;;;1731:423::o;6774:117:33:-;6863:21;;6774:117::o;3965:400:54:-;4138:24;4165;4170:4;4176:12;4165:4;:24::i;:::-;4207:17;;;;;;;;;;-1:-1:-1;;;;;4207:17:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4138:51;;-1:-1:-1;4207:19:54;;:17;:19::i;:::-;4259;;;;4245:12;;4199:81;;;;-1:-1:-1;;;4199:81:54;;;;;;;;;:::i;:::-;-1:-1:-1;;4290:38:54;;:68;-1:-1:-1;;3965:400:54:o;5141:292::-;5237:24;5264;5269:4;5275:12;5264:4;:24::i;:::-;5306:17;;;;;;;;;;-1:-1:-1;;;;;5306:17:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5237:51;;-1:-1:-1;5306:19:54;;:17;:19::i;:::-;5358;;;;5344:12;;5298:81;;;;-1:-1:-1;;;5298:81:54;;;;;;;;;:::i;:::-;-1:-1:-1;;5411:15:54;5389:19;;;;:37;-1:-1:-1;;5141:292:54:o;2331:307:16:-;2454:6;2464:1;2454:11;2450:24;;2331:307;;;:::o;2450:24::-;-1:-1:-1;;;;;2491:21:16;;;;;;;;;;;;;;2516:6;2491:31;;;;2483:107;;;;-1:-1:-1;;;2483:107:16;;;;;8810:25:62;;;;8851:18;;;8844:34;8783:18;;2483:107:16;8636:248:62;2483:107:16;-1:-1:-1;;;;;;;2600:21:16;;;;;;;;;;;;;:31;;2625:6;;2600:21;:31;;2625:6;;2600:31;:::i;:::-;;;;-1:-1:-1;;;;;2331:307:16:o;1377:590::-;1593:24;;1610:7;1593:24;-1:-1:-1;;;;;1652:21:16;;1627:22;1652:21;;;;;;;;;;;:30;;1676:6;;1652:30;:::i;:::-;1627:55;;1692:23;1718:12;-1:-1:-1;;;;;1718:31:16;;1750:15;1775:4;1782:15;1718:80;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1692:106;-1:-1:-1;1692:106:16;1816:14;:33;;;;1808:111;;;;-1:-1:-1;;;1808:111:16;;;;;8810:25:62;;;;8851:18;;;8844:34;8783:18;;1808:111:16;8636:248:62;1808:111:16;-1:-1:-1;;;;;;;1929:21:16;;;;;;;;;;;;;:31;;1954:6;;1929:21;:31;;1954:6;;1929:31;:::i;:::-;;;;-1:-1:-1;;;;1377:590:16;;;;;:::o;3000:383::-;3197:4;3213:23;3239:12;-1:-1:-1;;;;;3239:31:16;;3271:15;3296:4;3303:15;3239:80;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3336:21:16;;;;;;;;;;;;;;:40;;;-1:-1:-1;;3000:383:16;;;;;;:::o;4625:582:42:-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:42;;;:23;5045:49;5041:119;;;5138:6;5121:24;;-1:-1:-1;;;5121:24:42;;;;;;;;:::i;5041:119::-;-1:-1:-1;5180:10:42;5173:17;;5725:94:33;5801:11;;5725:94::o;3646:87:61:-;3718:8;;3646:87::o;959:188:31:-;1020:7;1047:13;1058:1;312:9;-1:-1:-1;1823:16:31;;1742:104;1047:13;:30;;;;1064:13;1075:1;312:9;-1:-1:-1;1823:16:31;;1742:104;1064:13;1100:1;1103;1039:67;;;;;;-1:-1:-1;;;1039:67:31;;;;;8810:25:62;;;;8851:18;;;8844:34;8783:18;;1039:67:31;8636:248:62;1039:67:31;-1:-1:-1;312:9:31;;-1:-1:-1;1124:5:31;1128:1;1124;:5;:::i;:::-;1123:17;;;;:::i;1619:859:10:-;1735:7;1746:1;1735:12;1727:50;;;;-1:-1:-1;;;1727:50:10;;;;;;;;;;;;1787:86;1813:15;:13;:15::i;:::-;1857;;1787:20;;:86;1830:16;;1848:7;;1857:15;-1:-1:-1;;;1857:15:10;;;;;;1787:25;:86;:::i;:::-;-1:-1:-1;;;;;1921:29:10;;1884:34;1921:29;;;:11;:29;;;;;;;;2053:16;;;;;5717:57;;-1:-1:-1;;;;;;5742:4:10;38530:2:62;38501:15;;;38497:45;;5717:57:10;;;38485:58:62;38577:15;;;38573:45;38559:12;;;38552:67;38635:12;;;;38628:28;;;;5717:57:10;;;;;;;;;;38672:12:62;;;5717:57:10;;;5707:68;;;;;;;;;2098:170;;;;;;;;2163:15;2098:170;;;;;;;;;;;;;;;;;;;2080:15;;;:6;:15;;;;;;;:188;;;;;;;;;;;;;;;;;;;;;;;2282:16;;;1921:29;;5707:68;2282:21;2278:70;;2312:15;;;;2305:23;;;;:6;:23;;;;;:33;;:43;;;2278:70;2358:27;:10;2377:7;2358:18;:27::i;:::-;2401:70;;;8810:25:62;;;8866:2;8851:18;;8844:34;;;2436:7:10;;-1:-1:-1;;;;;2401:70:10;;;;;8783:18:62;2401:70:10;;;;;;;1717:761;;1619:859;;;:::o;1050:198:7:-;1148:11;;1144:98;;1183:34;;-1:-1:-1;;;1183:34:7;;-1:-1:-1;;;;;1183:20:7;;;;;:34;;1204:3;;1209:7;;1183:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1175:56;;;;-1:-1:-1;;;1175:56:7;;37579:2:62;1175:56:7;;;37561:21:62;37618:1;37598:18;;;37591:29;-1:-1:-1;;;37636:18:62;;;37629:39;37685:18;;1175:56:7;37377:332:62;3307:307:54;3408:24;3435;3440:4;3446:12;3435:4;:24::i;:::-;3477:17;;;;;;;;;;-1:-1:-1;;;;;3477:17:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3408:51;;-1:-1:-1;3477:19:54;;:17;:19::i;:::-;3529;;;;3515:12;;3469:81;;;;-1:-1:-1;;;3469:81:54;;;;;;;;;:::i;:::-;-1:-1:-1;;3592:15:54;3560:29;;;;:47;-1:-1:-1;;3307:307:54:o;4628:301::-;4738:24;4765;4770:4;4776:12;4765:4;:24::i;:::-;4807:17;;;;;;;;;;-1:-1:-1;;;;;4807:17:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4738:51;;-1:-1:-1;4807:19:54;;:17;:19::i;:::-;4859;;;;4845:12;;4799:81;;;;-1:-1:-1;;;4799:81:54;;;;;;;;;:::i;:::-;-1:-1:-1;;4921:1:54;4890:28;;;;:32;-1:-1:-1;;4628:301:54:o;8702:257:17:-;8815:42;8860:31;8874:16;8860:13;:31::i;:::-;8815:76;;8901:51;8927:9;8938:13;8901:25;:51::i;4946:176:39:-;5023:7;5049:66;5082:20;:18;:20::i;:::-;5104:10;3555:4:45;3549:11;-1:-1:-1;;;3573:23:45;;3625:4;3616:14;;3609:39;;;;3677:4;3668:14;;3661:34;3733:4;3718:20;;;3353:401;21351:317:57;21468:14;21485:70;21499:47;21522:8;21532:13;21499:22;:47::i;:::-;21548:6;21485:13;:70::i;:::-;21468:87;-1:-1:-1;21468:87:57;21583:13;-1:-1:-1;;;;;21573:23:57;;;;;;;21565:96;;;;-1:-1:-1;;;21565:96:57;;;;;;;;;:::i;:::-;;;21458:210;21351:317;;;:::o;2647:192:56:-;-1:-1:-1;;;;;2766:18:56;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;:18;;3034:26;2757:75;;;;-1:-1:-1;;;2757:75:56;;;;;;;;:::i;2227:799:54:-;2477:12;;:::i;:::-;-1:-1:-1;;;;;2510:18:54;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;;6374:14;;;:19;;;6293:107;2510:27;2509:28;2563:12;2501:76;;;;;-1:-1:-1;;;2501:76:54;;;;;;;;:::i;:::-;-1:-1:-1;;2614:335:54;;;;;;;;-1:-1:-1;;;;;2614:335:54;;;;;;;;;;;;;;;;;;2759:15;2614:335;;;;;;-1:-1:-1;2614:335:54;;;;;;;;;;;;;;;;;;;;;;;;2960:18;;;;;;;;;;;;;:31;;;;-1:-1:-1;;;;;;2960:31:54;;;;;;;;;;;-1:-1:-1;2960:31:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2614:335;2227:799::o;8487:120:35:-;8537:4;8560:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8560:40:35;;;;;;-1:-1:-1;8487:120:35:o;6807:346:17:-;6890:4;6898;6890:12;;;;;;;;;6882:63;;;;-1:-1:-1;;;6882:63:17;;;;;;;;;:::i;:::-;-1:-1:-1;7018:4:17;;-1:-1:-1;6963:24:17;;;;312:9:31;-1:-1:-1;1823:16:31;6955:75:17;;;;-1:-1:-1;;;6955:75:17;;;;;;;;;:::i;:::-;-1:-1:-1;;7040:18:17;:25;;;7075;;;-1:-1:-1;;;7075:25:17;-1:-1:-1;;;;7040:25:17;;;-1:-1:-1;;;7040:25:17;7075;;;;-1:-1:-1;;;;7075:25:17;;;;;;;;;;7115:31;;;;;;7061:4;;7096;;7115:31;:::i;7367:269::-;7452:4;7460;-1:-1:-1;;;;;7452:12:17;;;;;;;;7444:63;;;;-1:-1:-1;;;7444:63:17;;;;;;;;;:::i;:::-;-1:-1:-1;;7517:20:17;:27;;-1:-1:-1;;;;;7554:27:17;;;-1:-1:-1;;;7554:27:17;-1:-1:-1;;;;;;7554:27:17;;;7517;;;7554;;;;7596:33;;;;;;7540:4;;7577;;7596:33;:::i;3599:330:39:-;6931:20:35;:18;:20::i;:::-;3711:23:39::1;3737:19;:17;:19::i;:::-;3711:45:::0;-1:-1:-1;3766:7:39::1;::::0;::::1;:14;3776:4:::0;3766:7;:14:::1;:::i;:::-;-1:-1:-1::0;3790:10:39::1;::::0;::::1;:20;3803:7:::0;3790:10;:20:::1;:::i;:::-;-1:-1:-1::0;3891:1:39::1;3875:17:::0;;;3902:16:::1;::::0;;::::1;:20:::0;-1:-1:-1;;3599:330:39:o;451:141:32:-;534:4;566:3;557:5;:12;;:28;;;;-1:-1:-1;;573:12:32;;;;;550:35;-1:-1:-1;451:141:32:o;4701:243:10:-;4765:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4765:17:10;4794:23;4820:16;;;:6;:16;;;;;;;;;4794:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4827:8;;4846:69;;;;-1:-1:-1;;;4846:69:10;;;;;;1253:25:62;;1241:2;1226:18;;1107:177;3052:459:29;3223:7;3263:1;3250:4;:10;;;:14;3242:46;;;;-1:-1:-1;;;3242:46:29;;;;;;;;;;;;3298:16;3317:22;3329:4;:9;;;3317:11;:22;;:::i;:::-;3298:41;;3349:21;3360:4;:9;;;3349:10;:21;;:::i;:::-;3394:1;3380:4;:10;;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;3405:20:29;;;3439:10;;;;3405:9;3439:15;3435:43;;3476:1;3456:9;;;:22;3435:43;-1:-1:-1;;3495:9:29;;;3052:459;-1:-1:-1;;3052:459:29:o;5743:516:42:-;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:42;;;;;;;;;;;2257:319:29;1226:6;2332:4;:10;;;:22;2324:64;;;;-1:-1:-1;;;2324:64:29;;;;;;;;;;;;2406:2;2398:52;;;;-1:-1:-1;;;2398:52:29;;;;;;;;;;;;2460:9;;;;:14;;;2484:10;;;:15;;:10;;:15;;2460:9;;2484:15;:::i;:::-;;;;-1:-1:-1;;2513:10:29;;;;2527:1;2513:15;2509:35;;2530:14;;;2509:35;2568:1;2554:4;:10;;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;2257:319:29:o;4015:109:39:-;4068:7;4094:23;:21;:23::i;3702:255:44:-;3780:7;3800:17;3819:18;3839:16;3859:27;3870:4;3876:9;3859:10;:27::i;:::-;3799:87;;;;;;3896:28;3908:5;3915:8;3896:11;:28::i;:::-;-1:-1:-1;3941:9:44;;3702:255;-1:-1:-1;;;;3702:255:44:o;4130:191:39:-;4185:7;2073:95;4243:17;:15;:17::i;:::-;4262:20;:18;:20::i;:::-;4221:92;;;;;;38954:25:62;;;;38995:18;;38988:34;;;;39038:18;;;39031:34;4284:13:39;39081:18:62;;;39074:34;4307:4:39;39124:19:62;;;39117:61;38926:19;;4221:92:39;;;;;;;;;;;;4211:103;;;;;;4204:110;;4130:191;:::o;2129:766:44:-;2210:7;2219:12;2233:7;2256:9;:16;2276:2;2256:22;2252:637;;2592:4;2577:20;;2571:27;2641:4;2626:20;;2620:27;2698:4;2683:20;;2677:27;2294:9;2669:36;2739:25;2750:4;2669:36;2571:27;2620;2739:10;:25::i;:::-;2732:32;;;;;;;;;;;2252:637;-1:-1:-1;;2860:16:44;;2811:1;;-1:-1:-1;2815:35:44;;2252:637;2129:766;;;;;:::o;7196:532::-;7291:20;7282:5;:29;;;;;;;;:::i;:::-;;7278:444;;7196:532;;:::o;7278:444::-;7387:29;7378:5;:38;;;;;;;;:::i;:::-;;7374:348;;7439:23;;-1:-1:-1;;;7439:23:44;;;;;;;;;;;7374:348;7492:35;7483:5;:44;;;;;;;;:::i;:::-;;7479:243;;7550:46;;-1:-1:-1;;;7550:46:44;;;;;1253:25:62;;;1226:18;;7550:46:44;1107:177:62;7479:243:44;7626:30;7617:5;:39;;;;;;;;:::i;:::-;;7613:109;;7679:32;;-1:-1:-1;;;7679:32:44;;;;;1253:25:62;;;1226:18;;7679:32:44;1107:177:62;7058:687:39;7108:7;7127:23;7153:19;:17;:19::i;:::-;7127:45;;7182:18;7203:13;:11;:13::i;:::-;7230:18;;7182:34;;-1:-1:-1;7230:22:39;7226:513;;7275:22;;;;;;;;7058:687;-1:-1:-1;;7058:687:39:o;7226:513::-;7572:13;;7603:15;;7599:130;;7645:10;7058:687;-1:-1:-1;;;7058:687:39:o;7599:130::-;7701:13;7694:20;;;;;7058:687;:::o;7966:723::-;8019:7;8038:23;8064:19;:17;:19::i;:::-;8038:45;;8093:21;8117:16;:14;:16::i;:::-;8147:21;;8093:40;;-1:-1:-1;8147:25:39;8143:540;;8195:25;;;;;;;;7966:723;-1:-1:-1;;7966:723:39:o;8143:540::-;8507:16;;;;8541:18;;8537:136;;8586:13;7966:723;-1:-1:-1;;;7966:723:39:o;5140:1530:44:-;5266:7;;;-1:-1:-1;;;;;6186:79:44;;6182:164;;;-1:-1:-1;6297:1:44;;-1:-1:-1;6301:30:44;;-1:-1:-1;6333:1:44;6281:54;;6182:164;6457:24;;;6440:14;6457:24;;;;;;;;;39416:25:62;;;39489:4;39477:17;;39457:18;;;39450:45;;;;39511:18;;;39504:34;;;39554:18;;;39547:34;;;6457:24:44;;39388:19:62;;6457:24:44;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6457:24:44;;-1:-1:-1;;6457:24:44;;;-1:-1:-1;;;;;;;6495:20:44;;6491:113;;-1:-1:-1;6547:1:44;;-1:-1:-1;6551:29:44;;-1:-1:-1;6547:1:44;;-1:-1:-1;6531:62:44;;6491:113;6622:6;-1:-1:-1;6630:20:44;;-1:-1:-1;6630:20:44;;-1:-1:-1;5140:1530:44;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:62:-;-1:-1:-1;;;;;89:31:62;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;1685:121::-;1770:10;1763:5;1759:22;1752:5;1749:33;1739:61;;1796:1;1793;1786:12;1811:485;1887:6;1895;1903;1956:2;1944:9;1935:7;1931:23;1927:32;1924:52;;;1972:1;1969;1962:12;1924:52;2017:23;;;-1:-1:-1;2116:2:62;2101:18;;2088:32;2129;2088;2129;:::i;:::-;1811:485;;2180:7;;-1:-1:-1;;;2260:2:62;2245:18;;;;2232:32;;1811:485::o;2301:245::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;2467:9;2454:23;2486:30;2510:5;2486:30;:::i;2748:347::-;2799:8;2809:6;2863:3;2856:4;2848:6;2844:17;2840:27;2830:55;;2881:1;2878;2871:12;2830:55;-1:-1:-1;2904:20:62;;-1:-1:-1;;;;;2936:30:62;;2933:50;;;2979:1;2976;2969:12;2933:50;3016:4;3008:6;3004:17;2992:29;;3068:3;3061:4;3052:6;3044;3040:19;3036:30;3033:39;3030:59;;;3085:1;3082;3075:12;3100:544;3179:6;3187;3195;3248:2;3236:9;3227:7;3223:23;3219:32;3216:52;;;3264:1;3261;3254:12;3216:52;3303:9;3290:23;3322:31;3347:5;3322:31;:::i;:::-;3372:5;-1:-1:-1;3428:2:62;3413:18;;3400:32;-1:-1:-1;;;;;3444:30:62;;3441:50;;;3487:1;3484;3477:12;3441:50;3526:58;3576:7;3567:6;3556:9;3552:22;3526:58;:::i;:::-;3100:544;;3603:8;;-1:-1:-1;3500:84:62;;-1:-1:-1;;;;3100:544:62:o;3649:118::-;3735:5;3728:13;3721:21;3714:5;3711:32;3701:60;;3757:1;3754;3747:12;3772:382;3837:6;3845;3898:2;3886:9;3877:7;3873:23;3869:32;3866:52;;;3914:1;3911;3904:12;3866:52;3953:9;3940:23;3972:31;3997:5;3972:31;:::i;:::-;4022:5;-1:-1:-1;4079:2:62;4064:18;;4051:32;4092:30;4051:32;4092:30;:::i;:::-;4141:7;4131:17;;;3772:382;;;;;:::o;4159:226::-;4218:6;4271:2;4259:9;4250:7;4246:23;4242:32;4239:52;;;4287:1;4284;4277:12;4239:52;-1:-1:-1;4332:23:62;;4159:226;-1:-1:-1;4159:226:62:o;4813:278::-;5013:10;5001:23;;;4983:42;;5061:23;;5056:2;5041:18;;5034:51;4971:2;4956:18;;4813:278::o;5096:250::-;5181:1;5191:113;5205:6;5202:1;5199:13;5191:113;;;5281:11;;;5275:18;5262:11;;;5255:39;5227:2;5220:10;5191:113;;;-1:-1:-1;;5338:1:62;5320:16;;5313:27;5096:250::o;5351:271::-;5393:3;5431:5;5425:12;5458:6;5453:3;5446:19;5474:76;5543:6;5536:4;5531:3;5527:14;5520:4;5513:5;5509:16;5474:76;:::i;:::-;5604:2;5583:15;-1:-1:-1;;5579:29:62;5570:39;;;;5611:4;5566:50;;5351:271;-1:-1:-1;;5351:271:62:o;5627:454::-;5852:6;5841:9;5834:25;5895:2;5890;5879:9;5875:18;5868:30;5815:4;5921:45;5962:2;5951:9;5947:18;5939:6;5921:45;:::i;:::-;6014:9;6006:6;6002:22;5997:2;5986:9;5982:18;5975:50;6042:33;6068:6;6060;6042:33;:::i;:::-;6034:41;5627:454;-1:-1:-1;;;;;;5627:454:62:o;7616:294::-;-1:-1:-1;;;;;7804:31:62;;;7786:50;;7872:31;;7867:2;7852:18;;7845:59;7774:2;7759:18;;7616:294::o;7915:203::-;-1:-1:-1;;;;;8079:32:62;;;;8061:51;;8049:2;8034:18;;7915:203::o;8123:508::-;8200:6;8208;8216;8269:2;8257:9;8248:7;8244:23;8240:32;8237:52;;;8285:1;8282;8275:12;8237:52;8324:9;8311:23;8343:31;8368:5;8343:31;:::i;:::-;8393:5;-1:-1:-1;8450:2:62;8435:18;;8422:32;8463:33;8422:32;8463:33;:::i;9402:1238::-;9808:3;9803;9799:13;9791:6;9787:26;9776:9;9769:45;9850:3;9845:2;9834:9;9830:18;9823:31;9750:4;9877:46;9918:3;9907:9;9903:19;9895:6;9877:46;:::i;:::-;9971:9;9963:6;9959:22;9954:2;9943:9;9939:18;9932:50;10005:33;10031:6;10023;10005:33;:::i;:::-;10069:2;10054:18;;10047:34;;;-1:-1:-1;;;;;10118:32:62;;10112:3;10097:19;;10090:61;10138:3;10167:19;;10160:35;;;10232:22;;;10226:3;10211:19;;10204:51;10304:13;;10326:22;;;10376:2;10402:15;;;;-1:-1:-1;10364:15:62;;;;-1:-1:-1;10445:169:62;10459:6;10456:1;10453:13;10445:169;;;10520:13;;10508:26;;10563:2;10589:15;;;;10554:12;;;;10481:1;10474:9;10445:169;;;-1:-1:-1;10631:3:62;;9402:1238;-1:-1:-1;;;;;;;;;;;9402:1238:62:o;10850:274::-;-1:-1:-1;;;;;11042:32:62;;;;11024:51;;11106:2;11091:18;;11084:34;11012:2;10997:18;;10850:274::o;11129:621::-;11226:6;11234;11287:2;11275:9;11266:7;11262:23;11258:32;11255:52;;;11303:1;11300;11293:12;11255:52;11343:9;11330:23;-1:-1:-1;;;;;11368:6:62;11365:30;11362:50;;;11408:1;11405;11398:12;11362:50;11431:22;;11484:4;11476:13;;11472:27;-1:-1:-1;11462:55:62;;11513:1;11510;11503:12;11462:55;11553:2;11540:16;-1:-1:-1;;;;;11571:6:62;11568:30;11565:50;;;11611:1;11608;11601:12;11565:50;11664:7;11659:2;11649:6;11646:1;11642:14;11638:2;11634:23;11630:32;11627:45;11624:65;;;11685:1;11682;11675:12;11624:65;11716:2;11708:11;;;;;11738:6;;-1:-1:-1;11129:621:62;-1:-1:-1;;;11129:621:62:o;11755:780::-;11915:4;11963:2;11952:9;11948:18;11993:2;11982:9;11975:21;12016:6;12051;12045:13;12082:6;12074;12067:22;12120:2;12109:9;12105:18;12098:25;;12182:2;12172:6;12169:1;12165:14;12154:9;12150:30;12146:39;12132:53;;12220:2;12212:6;12208:15;12241:1;12251:255;12265:6;12262:1;12259:13;12251:255;;;12358:2;12354:7;12342:9;12334:6;12330:22;12326:36;12321:3;12314:49;12386:40;12419:6;12410;12404:13;12386:40;:::i;:::-;12376:50;-1:-1:-1;12461:2:62;12484:12;;;;12449:15;;;;;12287:1;12280:9;12251:255;;;-1:-1:-1;12523:6:62;;11755:780;-1:-1:-1;;;;;;11755:780:62:o;12540:711::-;12645:6;12653;12661;12669;12722:2;12710:9;12701:7;12697:23;12693:32;12690:52;;;12738:1;12735;12728:12;12690:52;12777:9;12764:23;12796:31;12821:5;12796:31;:::i;:::-;12846:5;-1:-1:-1;12903:2:62;12888:18;;12875:32;12938:1;12926:14;;12916:42;;12954:1;12951;12944:12;12916:42;12977:7;-1:-1:-1;13035:2:62;13020:18;;13007:32;-1:-1:-1;;;;;13051:30:62;;13048:50;;;13094:1;13091;13084:12;13048:50;13133:58;13183:7;13174:6;13163:9;13159:22;13133:58;:::i;:::-;12540:711;;;;-1:-1:-1;13210:8:62;-1:-1:-1;;;;12540:711:62:o;13256:388::-;13324:6;13332;13385:2;13373:9;13364:7;13360:23;13356:32;13353:52;;;13401:1;13398;13391:12;13353:52;13440:9;13427:23;13459:31;13484:5;13459:31;:::i;:::-;13509:5;-1:-1:-1;13566:2:62;13551:18;;13538:32;13579:33;13538:32;13579:33;:::i;14441:397::-;-1:-1:-1;;;;;14661:32:62;;;14643:51;;14730:32;;;14725:2;14710:18;;14703:60;14799:32;;;14794:2;14779:18;;14772:60;14631:2;14616:18;;14441:397::o;14843:245::-;14910:6;14963:2;14951:9;14942:7;14938:23;14934:32;14931:52;;;14979:1;14976;14969:12;14931:52;15011:9;15005:16;15030:28;15052:5;15030:28;:::i;15093:300::-;-1:-1:-1;;;;;15285:32:62;;;15267:51;;15354:32;;15349:2;15334:18;;15327:60;15255:2;15240:18;;15093:300::o;15398:127::-;15459:10;15454:3;15450:20;15447:1;15440:31;15490:4;15487:1;15480:15;15514:4;15511:1;15504:15;15530:257;15602:4;15596:11;;;15634:17;;-1:-1:-1;;;;;15666:34:62;;15702:22;;;15663:62;15660:88;;;15728:18;;:::i;:::-;15764:4;15757:24;15530:257;:::o;15792:248::-;15859:2;15853:9;15901:4;15889:17;;-1:-1:-1;;;;;15921:34:62;;15957:22;;;15918:62;15915:88;;;15983:18;;:::i;16045:252::-;16117:2;16111:9;16159:3;16147:16;;-1:-1:-1;;;;;16178:34:62;;16214:22;;;16175:62;16172:88;;;16240:18;;:::i;16302:889::-;16345:5;16398:3;16391:4;16383:6;16379:17;16375:27;16365:55;;16416:1;16413;16406:12;16365:55;16456:6;16443:20;16495:4;16487:6;16483:17;16524:1;16546;-1:-1:-1;;;;;16562:6:62;16559:30;16556:56;;;16592:18;;:::i;:::-;-1:-1:-1;16747:2:62;16741:9;-1:-1:-1;;16660:2:62;16639:15;;16635:29;;16805:2;16793:15;16789:29;16777:42;;16870:22;;;-1:-1:-1;;;;;16834:34:62;;16831:62;16828:88;;;16896:18;;:::i;:::-;16932:2;16925:22;16982;;;16967:6;-1:-1:-1;16967:6:62;17019:16;;;17016:25;-1:-1:-1;17013:45:62;;;17054:1;17051;17044:12;17013:45;17104:6;17099:3;17092:4;17084:6;17080:17;17067:44;17159:1;17152:4;17143:6;17135;17131:19;17127:30;17120:41;17179:6;17170:15;;;;;;16302:889;;;;:::o;17196:681::-;17301:6;17309;17317;17370:2;17358:9;17349:7;17345:23;17341:32;17338:52;;;17386:1;17383;17376:12;17338:52;17426:9;17413:23;-1:-1:-1;;;;;17451:6:62;17448:30;17445:50;;;17491:1;17488;17481:12;17445:50;17514;17556:7;17547:6;17536:9;17532:22;17514:50;:::i;:::-;17504:60;;;17617:2;17606:9;17602:18;17589:32;-1:-1:-1;;;;;17636:8:62;17633:32;17630:52;;;17678:1;17675;17668:12;17630:52;17701;17745:7;17734:8;17723:9;17719:24;17701:52;:::i;:::-;17691:62;;;17803:2;17792:9;17788:18;17775:32;17816:31;17841:5;17816:31;:::i;:::-;17866:5;17856:15;;;17196:681;;;;;:::o;17882:380::-;17961:1;17957:12;;;;18004;;;18025:61;;18079:4;18071:6;18067:17;18057:27;;18025:61;18132:2;18124:6;18121:14;18101:18;18098:38;18095:161;;18178:10;18173:3;18169:20;18166:1;18159:31;18213:4;18210:1;18203:15;18241:4;18238:1;18231:15;18095:161;;17882:380;;;:::o;18393:518::-;18495:2;18490:3;18487:11;18484:421;;;18531:5;18528:1;18521:16;18575:4;18572:1;18562:18;18645:2;18633:10;18629:19;18626:1;18622:27;18616:4;18612:38;18681:4;18669:10;18666:20;18663:47;;;-1:-1:-1;18704:4:62;18663:47;18759:2;18754:3;18750:12;18747:1;18743:20;18737:4;18733:31;18723:41;;18814:81;18832:2;18825:5;18822:13;18814:81;;;18891:1;18877:16;;18858:1;18847:13;18814:81;;19087:1299;19213:3;19207:10;-1:-1:-1;;;;;19232:6:62;19229:30;19226:56;;;19262:18;;:::i;:::-;19291:97;19381:6;19341:38;19373:4;19367:11;19341:38;:::i;:::-;19335:4;19291:97;:::i;:::-;19437:4;19468:2;19457:14;;19485:1;19480:649;;;;20173:1;20190:6;20187:89;;;-1:-1:-1;20242:19:62;;;20236:26;20187:89;-1:-1:-1;;19044:1:62;19040:11;;;19036:24;19032:29;19022:40;19068:1;19064:11;;;19019:57;20289:81;;19450:930;;19480:649;18340:1;18333:14;;;18377:4;18364:18;;-1:-1:-1;;19516:20:62;;;19634:222;19648:7;19645:1;19642:14;19634:222;;;19730:19;;;19724:26;19709:42;;19837:4;19822:20;;;;19790:1;19778:14;;;;19664:12;19634:222;;;19638:3;19884:6;19875:7;19872:19;19869:201;;;19945:19;;;19939:26;-1:-1:-1;;20028:1:62;20024:14;;;20040:3;20020:24;20016:37;20012:42;19997:58;19982:74;;19869:201;-1:-1:-1;;;;20116:1:62;20100:14;;;20096:22;20083:36;;-1:-1:-1;19087:1299:62:o;20391:388::-;20548:2;20537:9;20530:21;20587:6;20582:2;20571:9;20567:18;20560:34;20644:6;20636;20631:2;20620:9;20616:18;20603:48;20700:1;20671:22;;;20695:2;20667:31;;;20660:42;;;;20763:2;20742:15;;;-1:-1:-1;;20738:29:62;20723:45;20719:54;;20391:388;-1:-1:-1;20391:388:62:o;21394:127::-;21455:10;21450:3;21446:20;21443:1;21436:31;21486:4;21483:1;21476:15;21510:4;21507:1;21500:15;21526:128;21593:9;;;21614:11;;;21611:37;;;21628:18;;:::i;21995:127::-;22056:10;22051:3;22047:20;22044:1;22037:31;22087:4;22084:1;22077:15;22111:4;22108:1;22101:15;22127:521;22204:4;22210:6;22270:11;22257:25;22364:2;22360:7;22349:8;22333:14;22329:29;22325:43;22305:18;22301:68;22291:96;;22383:1;22380;22373:12;22291:96;22410:33;;22462:20;;;-1:-1:-1;;;;;;22494:30:62;;22491:50;;;22537:1;22534;22527:12;22491:50;22570:4;22558:17;;-1:-1:-1;22601:14:62;22597:27;;;22587:38;;22584:58;;;22638:1;22635;22628:12;22653:440;22882:6;22874;22869:3;22856:33;22838:3;22917:6;22912:3;22908:16;22944:1;22940:2;22933:13;22975:6;22969:13;22991:65;23049:6;23045:2;23038:4;23030:6;23026:17;22991:65;:::i;:::-;23072:15;;22653:440;-1:-1:-1;;;;;22653:440:62:o;23098:127::-;23159:10;23154:3;23150:20;23147:1;23140:31;23190:4;23187:1;23180:15;23214:4;23211:1;23204:15;23230:129;-1:-1:-1;;;;;23308:5:62;23304:30;23297:5;23294:41;23284:69;;23349:1;23346;23339:12;23364:1641;23450:6;23503:2;23491:9;23482:7;23478:23;23474:32;23471:52;;;23519:1;23516;23509:12;23471:52;23559:9;23546:23;-1:-1:-1;;;;;23584:6:62;23581:30;23578:50;;;23624:1;23621;23614:12;23578:50;23647:22;;23703:4;23685:16;;;23681:27;23678:47;;;23721:1;23718;23711:12;23678:47;23747:22;;:::i;:::-;23807:2;23794:16;-1:-1:-1;;;;;23825:8:62;23822:32;23819:52;;;23867:1;23864;23857:12;23819:52;23890:17;;23941:4;23923:16;;;23919:27;23916:47;;;23959:1;23956;23949:12;23916:47;23987:17;;:::i;:::-;24041:2;24028:16;24053:33;24078:7;24053:33;:::i;:::-;24095:24;;24164:2;24156:11;;24143:25;24177:33;24143:25;24177:33;:::i;:::-;24239:2;24226:16;;24219:33;24297:4;24289:13;;24276:27;24312:32;24276:27;24312:32;:::i;:::-;24373:4;24360:18;;24353:35;24433:2;24425:11;;24412:25;-1:-1:-1;;;;;24468:33:62;;24456:46;;24446:74;;24516:1;24513;24506:12;24446:74;24549:2;24536:16;;24529:33;24608:3;24600:12;;24587:26;-1:-1:-1;;;;;24625:32:62;;24622:52;;;24670:1;24667;24660:12;24622:52;24709:45;24746:7;24735:8;24731:2;24727:17;24709:45;:::i;:::-;24703:3;24690:17;;24683:72;-1:-1:-1;24764:22:62;;-1:-1:-1;24832:2:62;24824:11;;24811:25;-1:-1:-1;;;;;24848:32:62;;24845:52;;;24893:1;24890;24883:12;24845:52;24929:45;24966:7;24955:8;24951:2;24947:17;24929:45;:::i;:::-;24924:2;24913:14;;24906:69;-1:-1:-1;24917:5:62;23364:1641;-1:-1:-1;;;;23364:1641:62:o;25010:375::-;25086:6;25094;25147:2;25135:9;25126:7;25122:23;25118:32;25115:52;;;25163:1;25160;25153:12;25115:52;25202:9;25189:23;25221:31;25246:5;25221:31;:::i;:::-;25271:5;25349:2;25334:18;;;;25321:32;;-1:-1:-1;;;25010:375:62:o;25390:240::-;25474:1;25467:5;25464:12;25454:143;;25519:10;25514:3;25510:20;25507:1;25500:31;25554:4;25551:1;25544:15;25582:4;25579:1;25572:15;25454:143;25606:18;;25390:240::o;25635:214::-;25784:2;25769:18;;25796:47;25773:9;25825:6;25796:47;:::i;25854:346::-;25922:6;25930;25983:2;25971:9;25962:7;25958:23;25954:32;25951:52;;;25999:1;25996;25989:12;25951:52;-1:-1:-1;;26044:23:62;;;26164:2;26149:18;;;26136:32;;-1:-1:-1;25854:346:62:o;26653:705::-;26756:6;26764;26772;26780;26833:3;26821:9;26812:7;26808:23;26804:33;26801:53;;;26850:1;26847;26840:12;26801:53;26895:23;;;-1:-1:-1;27015:2:62;27000:18;;26987:32;;-1:-1:-1;27097:2:62;27082:18;;27069:32;27110:33;27069:32;27110:33;:::i;:::-;27162:7;-1:-1:-1;27220:2:62;27205:18;;27192:32;-1:-1:-1;;;;;27236:30:62;;27233:50;;;27279:1;27276;27269:12;27233:50;27302;27344:7;27335:6;27324:9;27320:22;27302:50;:::i;:::-;27292:60;;;26653:705;;;;;;;:::o;27363:136::-;27441:13;;27463:30;27441:13;27463:30;:::i;:::-;27363:136;;;:::o;27504:::-;27582:13;;27604:30;27582:13;27604:30;:::i;27645:1123::-;27742:6;27802:3;27790:9;27781:7;27777:23;27773:33;27818:2;27815:22;;;27833:1;27830;27823:12;27815:22;-1:-1:-1;27852:1:62;27875:22;;:::i;:::-;27943:16;;27968:22;;28057:2;28042:18;;;28036:25;28077:14;;;28070:31;28168:2;28153:18;;;28147:25;28188:14;;;28181:31;28244:48;28288:2;28273:18;;28244:48;:::i;:::-;28239:2;28232:5;28228:14;28221:72;28326:49;28370:3;28359:9;28355:19;28326:49;:::i;:::-;28320:3;28313:5;28309:15;28302:74;28409:49;28453:3;28442:9;28438:19;28409:49;:::i;:::-;28403:3;28396:5;28392:15;28385:74;28492:49;28536:3;28525:9;28521:19;28492:49;:::i;:::-;28486:3;28479:5;28475:15;28468:74;28575:49;28619:3;28608:9;28604:19;28575:49;:::i;:::-;28569:3;28558:15;;28551:74;28692:3;28677:19;;;28671:26;28713:15;;;28706:32;;;;-1:-1:-1;28562:5:62;;27645:1123;-1:-1:-1;;27645:1123:62:o;29069:230::-;29139:6;29192:2;29180:9;29171:7;29167:23;29163:32;29160:52;;;29208:1;29205;29198:12;29160:52;-1:-1:-1;29253:16:62;;29069:230;-1:-1:-1;29069:230:62:o;29304:249::-;29373:6;29426:2;29414:9;29405:7;29401:23;29397:32;29394:52;;;29442:1;29439;29432:12;29394:52;29474:9;29468:16;29493:30;29517:5;29493:30;:::i;29558:249::-;29627:6;29680:2;29668:9;29659:7;29655:23;29651:32;29648:52;;;29696:1;29693;29686:12;29648:52;29728:9;29722:16;29747:30;29771:5;29747:30;:::i;30091:125::-;30156:9;;;30177:10;;;30174:36;;;30190:18;;:::i;30221:287::-;30350:3;30388:6;30382:13;30404:66;30463:6;30458:3;30451:4;30443:6;30439:17;30404:66;:::i;:::-;30486:16;;;;;30221:287;-1:-1:-1;;30221:287:62:o;30513:259::-;30591:6;30644:2;30632:9;30623:7;30619:23;30615:32;30612:52;;;30660:1;30657;30650:12;30612:52;30692:9;30686:16;30711:31;30736:5;30711:31;:::i;30777:1067::-;30988:2;30977:9;30970:21;30951:4;31026:6;31020:13;31069:2;31064;31053:9;31049:18;31042:30;31151:1;31147;31142:3;31138:11;31134:19;31119:12;31113:19;31109:45;31103:3;31092:9;31088:19;31081:74;31246:1;31242;31237:3;31233:11;31229:19;31221:4;31207:12;31203:23;31197:30;31193:56;31186:4;31175:9;31171:20;31164:86;-1:-1:-1;;;;;31315:2:62;31301:12;31297:21;31291:28;31287:53;31281:3;31270:9;31266:19;31259:82;31431:1;31427;31422:3;31418:11;31414:19;31406:4;31392:12;31388:23;31382:30;31378:56;31372:3;31361:9;31357:19;31350:85;31490:3;31476:12;31472:22;31466:29;31444:51;;31532:4;31526:3;31515:9;31511:19;31504:33;31557:54;31606:3;31595:9;31591:19;31575:14;31557:54;:::i;:::-;31546:65;;31660:4;31652:6;31648:17;31642:24;31733:2;31729:7;31717:9;31712:3;31708:19;31704:33;31697:4;31686:9;31682:20;31675:63;31755:38;31789:3;31773:14;31755:38;:::i;:::-;31747:46;;;;31831:6;31824:4;31813:9;31809:20;31802:36;30777:1067;;;;;:::o;31849:326::-;32021:47;32058:9;32050:6;32021:47;:::i;:::-;32104:2;32099;32088:9;32084:18;32077:30;32002:4;32124:45;32165:2;32154:9;32150:18;32142:6;32124:45;:::i;32504:168::-;32577:9;;;32608;;32625:15;;;32619:22;;32605:37;32595:71;;32646:18;;:::i;32930:408::-;-1:-1:-1;;;;;33165:32:62;;;33147:51;;33234:32;;33229:2;33214:18;;33207:60;33135:2;33120:18;;33276:56;33328:2;33313:18;;33305:6;33276:56;:::i;33343:821::-;33445:6;33505:3;33493:9;33484:7;33480:23;33476:33;33521:2;33518:22;;;33536:1;33533;33526:12;33518:22;-1:-1:-1;33555:1:62;33578:17;;:::i;:::-;33641:16;;33666:22;;33755:2;33740:18;;;33734:25;33775:14;;;33768:31;33866:2;33851:18;;;33845:25;33886:14;;;33879:31;33977:2;33962:18;;;33956:25;33997:14;;;33990:31;34088:3;34073:19;;;34067:26;34109:15;;;34102:32;;;;-1:-1:-1;33673:5:62;;33343:821;-1:-1:-1;;33343:821:62:o;34169:371::-;-1:-1:-1;;;;;34389:32:62;;;34371:51;;34458:32;;;;34453:2;34438:18;;34431:60;34522:2;34507:18;;34500:34;;;;34359:2;34344:18;;34169:371::o;35389:433::-;35620:3;35609:9;35602:22;35583:4;35641:46;35682:3;35671:9;35667:19;35659:6;35641:46;:::i;:::-;35718:2;35703:18;;35696:34;;;;-1:-1:-1;35761:2:62;35746:18;;35739:34;;;;35804:2;35789:18;;;35782:34;35633:54;35389:433;-1:-1:-1;35389:433:62:o;35827:372::-;35914:6;35922;35975:2;35963:9;35954:7;35950:23;35946:32;35943:52;;;35991:1;35988;35981:12;35943:52;36036:16;;36121:2;36106:18;;36100:25;36036:16;;-1:-1:-1;36134:33:62;36100:25;36134:33;:::i;36483:136::-;36522:3;36550:5;36540:39;;36559:18;;:::i;:::-;-1:-1:-1;;;36595:18:62;;36483:136::o;36624:135::-;36663:3;36684:17;;;36681:43;;36704:18;;:::i;:::-;-1:-1:-1;36751:1:62;36740:13;;36624:135::o;36764:386::-;-1:-1:-1;;;;;36982:32:62;;;36964:51;;37051:32;;;;37046:2;37031:18;;37024:60;37132:10;37120:23;;;37115:2;37100:18;;37093:51;36952:2;36937:18;;36764:386::o;37155:217::-;37195:1;37221;37211:132;;37265:10;37260:3;37256:20;37253:1;37246:31;37300:4;37297:1;37290:15;37328:4;37325:1;37318:15;37211:132;-1:-1:-1;37357:9:62;;37155:217::o" - }, - "methodIdentifiers": { - "acceptProvisionPendingParameters(address,bytes)": "ce0fc0cc", - "allocationProvisionTracker(address)": "6234e216", - "allocations(address)": "52a9039c", - "claims(bytes32)": "eff0f592", - "claimsLists(address)": "13c474c9", - "collect(address,uint8,bytes)": "b15d2a2c", - "curationFeesCut()": "138dea08", - "delegationRatio()": "bfdfa7af", - "eip712Domain()": "84b0196e", - "encodeAllocationProof(address,address)": "ce56c98b", - "feesProvisionTracker(address)": "cbe5f3f2", - "forceCloseAllocation(address)": "a827a90c", - "getAllocation(address)": "0e022923", - "getAllocationData(address)": "55c85269", - "getDelegationRatio()": "1ebb7c30", - "getLegacyAllocation(address)": "6d9a3951", - "getProvisionTokensRange()": "819ba366", - "getSubgraphAllocatedTokens(bytes32)": "e2e1e8e9", - "getThawingPeriodRange()": "71ce020a", - "getVerifierCutRange()": "482468b7", - "indexers(address)": "4f793cdc", - "initialize(uint256,uint32,uint256)": "1cafa218", - "isActiveAllocation(address)": "6a3ca383", - "isOverAllocated(address)": "ba38f67d", - "isStaleAllocation(address)": "3f0ed79d", - "legacyAllocations(address)": "93d4e7cb", - "maxPOIStaleness()": "85e82baf", - "maximumProvisionTokens()": "73371823", - "maximumThawingPeriod()": "9aafa5d1", - "maximumVerifierCut()": "9249c5c1", - "migrateLegacyAllocation(address,address,bytes32)": "7dfe6d28", - "minimumProvisionTokens()": "36fdd28a", - "minimumThawingPeriod()": "8d2f2948", - "minimumVerifierCut()": "88812583", - "multicall(bytes[])": "ac9650d8", - "owner()": "8da5cb5b", - "pause()": "8456cb59", - "pauseGuardians(address)": "9384e078", - "paused()": "5c975abb", - "register(address,bytes)": "24b8fbf6", - "releaseStake(uint256)": "45f54485", - "renounceOwnership()": "715018a6", - "resizeAllocation(address,address,uint256)": "81e777a7", - "rewardsDestination(address)": "7203ca78", - "setCurationCut(uint256)": "7e89bac3", - "setDelegationRatio(uint32)": "1dd42f60", - "setMaxPOIStaleness(uint256)": "7aa31bce", - "setMinimumProvisionTokens(uint256)": "832bc923", - "setPauseGuardian(address,bool)": "35577962", - "setRewardsDestination(address)": "772495c3", - "setStakeToFeesRatio(uint256)": "e6f50054", - "slash(address,bytes)": "cb8347fe", - "stakeToFeesRatio()": "d07a7a84", - "startService(address,bytes)": "dedf6726", - "stopService(address,bytes)": "8180083b", - "subgraphAllocatedTokens(bytes32)": "3afd23fe", - "transferOwnership(address)": "f2fde38b", - "unpause()": "3f4ba83a" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"graphController\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"disputeManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tapCollector\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"curation\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"AllocationAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"name\":\"AllocationClosed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"AllocationDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"AllocationManagerAllocationClosed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"AllocationManagerAllocationSameSize\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"AllocationManagerInvalidAllocationProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllocationManagerInvalidZeroAllocationId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"DataServiceFeesClaimNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DataServiceFeesZeroTokens\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"DataServicePausableNotPauseGuardian\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"disputeManager\",\"type\":\"address\"}],\"name\":\"DirectoryNotDisputeManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractName\",\"type\":\"bytes\"}],\"name\":\"GraphDirectoryInvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"LegacyAllocationAlreadyMigrated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"LegacyAllocationExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LinkedListEmptyList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LinkedListInvalidIterations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LinkedListInvalidZeroId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LinkedListMaxElementsExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"b\",\"type\":\"uint256\"}],\"name\":\"PPMMathInvalidMulPPM\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionManagerInvalidRange\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionManagerInvalidValue\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"ProvisionManagerNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionManagerProvisionNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokensAvailable\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensRequired\",\"type\":\"uint256\"}],\"name\":\"ProvisionTrackerInsufficientTokens\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"SubgraphServiceAllocationIsAltruistic\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"SubgraphServiceAllocationNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"SubgraphServiceCannotForceCloseAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubgraphServiceEmptyGeohash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubgraphServiceEmptyUrl\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensDataService\",\"type\":\"uint256\"}],\"name\":\"SubgraphServiceInconsistentCollection\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubgraphServiceIndexerAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"providedIndexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expectedIndexer\",\"type\":\"address\"}],\"name\":\"SubgraphServiceIndexerMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"SubgraphServiceIndexerNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"curationCut\",\"type\":\"uint256\"}],\"name\":\"SubgraphServiceInvalidCurationCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"}],\"name\":\"SubgraphServiceInvalidPaymentType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ravIndexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationIndexer\",\"type\":\"address\"}],\"name\":\"SubgraphServiceInvalidRAV\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubgraphServiceInvalidZeroStakeToFeesRatio\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"AllocationClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"AllocationCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldTokens\",\"type\":\"uint256\"}],\"name\":\"AllocationResized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"curationCut\",\"type\":\"uint256\"}],\"name\":\"CurationCutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"ratio\",\"type\":\"uint32\"}],\"name\":\"DelegationRatioSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphStaking\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphPayments\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEscrow\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEpochManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphRewardsManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphTokenGateway\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphProxyAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphCuration\",\"type\":\"address\"}],\"name\":\"GraphDirectoryInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensRewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensIndexerRewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensDelegationRewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poi\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"currentEpoch\",\"type\":\"uint256\"}],\"name\":\"IndexingRewardsCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"name\":\"LegacyAllocationMigrated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxPOIStaleness\",\"type\":\"uint256\"}],\"name\":\"MaxPOIStalenessSet\",\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"PauseGuardianSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionPendingParametersAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ProvisionTokensRangeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensCollected\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensCurators\",\"type\":\"uint256\"}],\"name\":\"QueryFeesCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rewardsDestination\",\"type\":\"address\"}],\"name\":\"RewardsDestinationSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServicePaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServiceProviderSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStopped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockTimestamp\",\"type\":\"uint256\"}],\"name\":\"StakeClaimLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"releasableAt\",\"type\":\"uint256\"}],\"name\":\"StakeClaimReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensReleased\",\"type\":\"uint256\"}],\"name\":\"StakeClaimsReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"}],\"name\":\"StakeToFeesRatioSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subgraphService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"disputeManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tapCollector\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"curation\",\"type\":\"address\"}],\"name\":\"SubgraphServiceDirectoryInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"min\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"max\",\"type\":\"uint64\"}],\"name\":\"ThawingPeriodRangeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"min\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"max\",\"type\":\"uint32\"}],\"name\":\"VerifierCutRangeSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"acceptProvisionPendingParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"allocationProvisionTracker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"allocations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastPOIPresentedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPerAllocatedToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPending\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"releasableAt\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"nextClaim\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"claimsLists\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"tail\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"curationFeesCut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"encodeAllocationProof\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"feesProvisionTracker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"forceCloseAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastPOIPresentedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPerAllocatedToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPending\",\"type\":\"uint256\"}],\"internalType\":\"struct Allocation.State\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getAllocationData\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getLegacyAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"internalType\":\"struct LegacyAllocation.State\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvisionTokensRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"name\":\"getSubgraphAllocatedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThawingPeriodRange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCutRange\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"indexers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"registeredAt\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"geoHash\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minimumProvisionTokens\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"maximumDelegationRatio\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"stakeToFeesRatio\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"isActiveAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"isOverAllocated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"isStaleAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"legacyAllocations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPOIStaleness\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maximumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentID\",\"type\":\"bytes32\"}],\"name\":\"migrateLegacyAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumProvisionTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumThawingPeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minimumVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pauseGuardian\",\"type\":\"address\"}],\"name\":\"pauseGuardians\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numClaimsToRelease\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"resizeAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"rewardsDestination\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"curationCut\",\"type\":\"uint256\"}],\"name\":\"setCurationCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"delegationRatio\",\"type\":\"uint32\"}],\"name\":\"setDelegationRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxPOIStaleness\",\"type\":\"uint256\"}],\"name\":\"setMaxPOIStaleness\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minimumProvisionTokens\",\"type\":\"uint256\"}],\"name\":\"setMinimumProvisionTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pauseGuardian\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setPauseGuardian\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rewardsDestination\",\"type\":\"address\"}],\"name\":\"setRewardsDestination\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeToFeesRatio_\",\"type\":\"uint256\"}],\"name\":\"setStakeToFeesRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeToFeesRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"startService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stopService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"name\":\"subgraphAllocatedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"Please email security+contracts@thegraph.com if you find any bugs. We may have an active bug bounty program.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AllocationAlreadyExists(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}],\"AllocationClosed(address,uint256)\":[{\"params\":{\"allocationId\":\"The allocation id\",\"closedAt\":\"The timestamp when the allocation was closed\"}}],\"AllocationDoesNotExist(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}],\"AllocationManagerAllocationClosed(address)\":[{\"params\":{\"allocationId\":\"The id of the allocation\"}}],\"AllocationManagerAllocationSameSize(address,uint256)\":[{\"params\":{\"allocationId\":\"The id of the allocation\",\"tokens\":\"The amount of tokens\"}}],\"AllocationManagerInvalidAllocationProof(address,address)\":[{\"params\":{\"allocationId\":\"The id of the allocation\",\"signer\":\"The address that signed the proof\"}}],\"DataServicePausableNotPauseGuardian(address)\":[{\"params\":{\"account\":\"The address of the pause guardian\"}}],\"DirectoryNotDisputeManager(address,address)\":[{\"params\":{\"caller\":\"The caller address\",\"disputeManager\":\"The Dispute Manager address\"}}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"params\":{\"contractName\":\"The name of the contract that was not found, or the controller\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"LegacyAllocationAlreadyMigrated(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}],\"LegacyAllocationExists(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"PPMMathInvalidMulPPM(uint256,uint256)\":[{\"params\":{\"a\":\"The first value in the multiplication.\",\"b\":\"The second value in the multiplication.\"}}],\"ProvisionManagerInvalidRange(uint256,uint256)\":[{\"params\":{\"max\":\"The maximum value.\",\"min\":\"The minimum value.\"}}],\"ProvisionManagerInvalidValue(bytes,uint256,uint256,uint256)\":[{\"params\":{\"max\":\"The maximum allowed value.\",\"message\":\"The error message.\",\"min\":\"The minimum allowed value.\",\"value\":\"The value that is out of range.\"}}],\"ProvisionManagerNotAuthorized(address,address)\":[{\"params\":{\"caller\":\"The address of the caller.\",\"serviceProvider\":\"The address of the serviceProvider.\"}}],\"ProvisionManagerProvisionNotFound(address)\":[{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}}],\"SubgraphServiceAllocationIsAltruistic(address)\":[{\"params\":{\"allocationId\":\"The id of the allocation\"}}],\"SubgraphServiceAllocationNotAuthorized(address,address)\":[{\"params\":{\"allocationId\":\"The id of the allocation.\",\"indexer\":\"The address of the expected indexer.\"}}],\"SubgraphServiceCannotForceCloseAllocation(address)\":[{\"params\":{\"allocationId\":\"The id of the allocation\"}}],\"SubgraphServiceInconsistentCollection(uint256,uint256,uint256)\":[{\"params\":{\"balanceAfter\":\"The contract GRT balance after the collection\",\"balanceBefore\":\"The contract GRT balance before the collection\",\"tokensDataService\":\"The amount of tokens sent to the subgraph service\"}}],\"SubgraphServiceIndexerMismatch(address,address)\":[{\"params\":{\"expectedIndexer\":\"The address of the expected indexer.\",\"providedIndexer\":\"The address of the provided indexer.\"}}],\"SubgraphServiceIndexerNotRegistered(address)\":[{\"params\":{\"indexer\":\"The address of the indexer that is not registered\"}}],\"SubgraphServiceInvalidCurationCut(uint256)\":[{\"params\":{\"curationCut\":\"The curation cut value\"}}],\"SubgraphServiceInvalidPaymentType(uint8)\":[{\"params\":{\"paymentType\":\"The payment type that is not supported\"}}],\"SubgraphServiceInvalidRAV(address,address)\":[{\"params\":{\"allocationIndexer\":\"The address of the allocation indexer\",\"ravIndexer\":\"The address of the RAV indexer\"}}]},\"events\":{\"AllocationClosed(address,address,bytes32,uint256)\":{\"details\":\"Emitted when an indexer closes an allocation\",\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\",\"tokens\":\"The amount of tokens allocated\"}},\"AllocationCreated(address,address,bytes32,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\",\"tokens\":\"The amount of tokens allocated\"}},\"AllocationResized(address,address,bytes32,uint256,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\",\"newTokens\":\"The new amount of tokens allocated\",\"oldTokens\":\"The old amount of tokens allocated\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\"}},\"CurationCutSet(uint256)\":{\"params\":{\"curationCut\":\"The curation cut\"}},\"DelegationRatioSet(uint32)\":{\"params\":{\"ratio\":\"The delegation ratio\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"params\":{\"graphController\":\"The Graph Controller contract address\",\"graphCuration\":\"The Curation contract address\",\"graphEpochManager\":\"The Epoch Manager contract address\",\"graphEscrow\":\"The Payments Escrow contract address\",\"graphPayments\":\"The Graph Payments contract address\",\"graphProxyAdmin\":\"The Graph Proxy Admin contract address\",\"graphRewardsManager\":\"The Rewards Manager contract address\",\"graphStaking\":\"The Horizon Staking contract address\",\"graphToken\":\"The Graph Token contract address\",\"graphTokenGateway\":\"The Token Gateway contract address\"}},\"IndexingRewardsCollected(address,address,bytes32,uint256,uint256,uint256,bytes32,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"currentEpoch\":\"The current epoch\",\"indexer\":\"The address of the indexer\",\"poi\":\"The POI presented\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\",\"tokensDelegationRewards\":\"The amount of tokens collected for delegators\",\"tokensIndexerRewards\":\"The amount of tokens collected for the indexer\",\"tokensRewards\":\"The amount of tokens collected\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"LegacyAllocationMigrated(address,address,bytes32)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\"}},\"MaxPOIStalenessSet(uint256)\":{\"params\":{\"maxPOIStaleness\":\"The max POI staleness in seconds\"}},\"PauseGuardianSet(address,bool)\":{\"params\":{\"account\":\"The address of the pause guardian\",\"allowed\":\"The allowed status of the pause guardian\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"ProvisionTokensRangeSet(uint256,uint256)\":{\"params\":{\"max\":\"The maximum allowed value for the provision tokens.\",\"min\":\"The minimum allowed value for the provision tokens.\"}},\"QueryFeesCollected(address,uint256,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokensCollected\":\"The amount of tokens collected\",\"tokensCurators\":\"The amount of tokens curators receive\"}},\"RewardsDestinationSet(address,address)\":{\"params\":{\"indexer\":\"The address of the indexer\",\"rewardsDestination\":\"The address where indexing rewards should be sent\"}},\"ServicePaymentCollected(address,uint8,uint256)\":{\"params\":{\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens collected.\"}},\"ServiceProviderRegistered(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceProviderSlashed(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens slashed.\"}},\"ServiceStarted(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceStopped(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"StakeClaimLocked(address,bytes32,uint256,uint256)\":{\"params\":{\"claimId\":\"The id of the stake claim\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens to lock in the claim\",\"unlockTimestamp\":\"The timestamp when the tokens can be released\"}},\"StakeClaimReleased(address,bytes32,uint256,uint256)\":{\"params\":{\"claimId\":\"The id of the stake claim\",\"releasableAt\":\"The timestamp when the tokens were released\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens released\"}},\"StakeClaimsReleased(address,uint256,uint256)\":{\"params\":{\"claimsCount\":\"The number of stake claims being released\",\"serviceProvider\":\"The address of the service provider\",\"tokensReleased\":\"The total amount of tokens being released\"}},\"StakeToFeesRatioSet(uint256)\":{\"params\":{\"ratio\":\"The stake to fees ratio\"}},\"SubgraphServiceDirectoryInitialized(address,address,address,address)\":{\"params\":{\"curation\":\"The Curation contract address\",\"disputeManager\":\"The Dispute Manager contract address\",\"subgraphService\":\"The Subgraph Service contract address\",\"tapCollector\":\"The TAP Collector contract address\"}},\"ThawingPeriodRangeSet(uint64,uint64)\":{\"params\":{\"max\":\"The maximum allowed value for the thawing period.\",\"min\":\"The minimum allowed value for the thawing period.\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"VerifierCutRangeSet(uint32,uint32)\":{\"params\":{\"max\":\"The maximum allowed value for the max verifier cut.\",\"min\":\"The minimum allowed value for the max verifier cut.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"details\":\"Implements {IDataService-acceptProvisionPendingParameters} Requirements: - The indexer must be registered - Must have previously staged provision parameters, using {IHorizonStaking-setProvisionParameters} - The new provision parameters must be valid according to the subgraph service rules Emits a {ProvisionPendingParametersAccepted} event\",\"params\":{\"indexer\":\"The address of the indexer to accept the provision for\"}},\"collect(address,uint8,bytes)\":{\"details\":\"This function is the equivalent of the `collect` function for query fees and the `closeAllocation` function for indexing rewards in the legacy Staking contract. Requirements: - The indexer must be registered - The provision must be valid according to the subgraph service rules Emits a {ServicePaymentCollected} event. Emits payment type specific events. For query fees, see {SubgraphService-_collectQueryFees} for more details. For indexing rewards, see {AllocationManager-_collectIndexingRewards} for more details.\",\"params\":{\"data\":\"Encoded data to fulfill the payment. The structure of the data depends on the payment type. See above.\",\"indexer\":\"The address of the indexer\",\"paymentType\":\"The type of payment to collect as defined in {IGraphPayments}\"}},\"constructor\":{\"details\":\"DataService and Directory constructors set a bunch of immutable variables\",\"params\":{\"curation\":\"The address of the Curation contract\",\"disputeManager\":\"The address of the DisputeManager contract\",\"graphController\":\"The address of the Graph Controller contract\",\"tapCollector\":\"The address of the TAPCollector contract\"}},\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"},\"getAllocationData(address)\":{\"details\":\"Implements {IRewardsIssuer.getAllocationData}Note that this is slightly different than {getAllocation}. It returns an unstructured subset of the allocation data, which is the minimum required to mint rewards. Should only be used by the {RewardsManager}.\",\"params\":{\"allocationId\":\"The allocation Id\"},\"returns\":{\"_0\":\"indexer The indexer address\",\"_1\":\"subgraphDeploymentId Subgraph deployment id for the allocation\",\"_2\":\"tokens Amount of allocated tokens\",\"_3\":\"accRewardsPerAllocatedToken Rewards snapshot\"}},\"getSubgraphAllocatedTokens(bytes32)\":{\"details\":\"Implements {IRewardsIssuer.getSubgraphAllocatedTokens}To be used by the {RewardsManager}.\",\"params\":{\"subgraphDeploymentId\":\"Deployment Id for the subgraph\"},\"returns\":{\"_0\":\"Total tokens allocated to subgraph\"}},\"initialize(uint256,uint32,uint256)\":{\"details\":\"The thawingPeriod and verifierCut ranges are not set here because they are variables on the DisputeManager. We use the {ProvisionManager} overrideable getters to get the ranges.\",\"params\":{\"maximumDelegationRatio\":\"The maximum delegation ratio allowed for an allocation\",\"minimumProvisionTokens\":\"The minimum amount of provisioned tokens required to create an allocation\",\"stakeToFeesRatio\":\"The ratio of stake to fees to lock when collecting query fees\"}},\"isActiveAllocation(address)\":{\"details\":\"Implements {IRewardsIssuer.isAllocationActive}To be used by the {RewardsManager}.\",\"params\":{\"allocationId\":\"The allocation Id\"},\"returns\":{\"_0\":\"Wether or not the allocation is active\"}},\"multicall(bytes[])\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Receives and executes a batch of function calls on this contract.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"register(address,bytes)\":{\"params\":{\"data\":\"Encoded registration data: - address `url`: The URL of the indexer - string `geohash`: The geohash of the indexer - address `rewardsDestination`: The address where the indexer wants to receive indexing rewards. Use zero address for automatic reprovisioning to the subgraph service.\",\"indexer\":\"The address of the indexer to register\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"slash(address,bytes)\":{\"details\":\"Slashing is delegated to the {DisputeManager} contract which is the only one that can call this function. See {IHorizonStaking-slash} for more details. Emits a {ServiceProviderSlashed} event.\",\"params\":{\"data\":\"Encoded data: - uint256 `tokens`: The amount of tokens to slash - uint256 `reward`: The amount of tokens to reward the slasher\",\"indexer\":\"The address of the indexer to be slashed\"}},\"startService(address,bytes)\":{\"details\":\"This is the equivalent of the `allocate` function in the legacy Staking contract. Requirements: - The indexer must be registered - The provision must be valid according to the subgraph service rules - Allocation id cannot be zero - Allocation id cannot be reused from the legacy staking contract - The indexer must have enough available tokens to allocate The `allocationProof` is a 65-bytes Ethereum signed message of `keccak256(indexerAddress,allocationId)`. See {AllocationManager-allocate} for more details. Emits {ServiceStarted} and {AllocationCreated} events\",\"params\":{\"data\":\"Encoded data: - bytes32 `subgraphDeploymentId`: The id of the subgraph deployment - uint256 `tokens`: The amount of tokens to allocate - address `allocationId`: The id of the allocation - bytes `allocationProof`: Signed proof of the allocation id address ownership\",\"indexer\":\"The address of the indexer\"}},\"stopService(address,bytes)\":{\"details\":\"This is the equivalent of the `closeAllocation` function in the legacy Staking contract. There are a few notable differences with the legacy function: - allocations are nowlong lived. All service payments, including indexing rewards, should be collected periodically without the need of closing the allocation. Allocations should only be closed when indexers want to reclaim the allocated tokens for other purposes. - No POI is required to close an allocation. Indexers should present POIs to collect indexing rewards using {collect}. Requirements: - The indexer must be registered - Allocation must exist and be open Emits {ServiceStopped} and {AllocationClosed} events\",\"params\":{\"data\":\"Encoded data: - address `allocationId`: The id of the allocation\",\"indexer\":\"The address of the indexer\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"SubgraphService contract\",\"version\":1},\"userdoc\":{\"errors\":{\"AllocationAlreadyExists(address)\":[{\"notice\":\"Thrown when attempting to create an allocation with an existing id\"}],\"AllocationClosed(address,uint256)\":[{\"notice\":\"Thrown when trying to perform an operation on a closed allocation\"}],\"AllocationDoesNotExist(address)\":[{\"notice\":\"Thrown when trying to perform an operation on a non-existent allocation\"}],\"AllocationManagerAllocationClosed(address)\":[{\"notice\":\"Thrown when attempting to collect indexing rewards on a closed allocationl\"}],\"AllocationManagerAllocationSameSize(address,uint256)\":[{\"notice\":\"Thrown when attempting to resize an allocation with the same size\"}],\"AllocationManagerInvalidAllocationProof(address,address)\":[{\"notice\":\"Thrown when an allocation proof is invalid Both `signer` and `allocationId` should match for a valid proof.\"}],\"AllocationManagerInvalidZeroAllocationId()\":[{\"notice\":\"Thrown when attempting to create an allocation with a zero allocation id\"}],\"DataServiceFeesClaimNotFound(bytes32)\":[{\"notice\":\"Thrown when attempting to get a stake claim that does not exist.\"}],\"DataServiceFeesZeroTokens()\":[{\"notice\":\"Emitted when trying to lock zero tokens in a stake claim\"}],\"DataServicePausableNotPauseGuardian(address)\":[{\"notice\":\"Emitted when a the caller is not a pause guardian\"}],\"DirectoryNotDisputeManager(address,address)\":[{\"notice\":\"Thrown when the caller is not the Dispute Manager\"}],\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"notice\":\"Thrown when either the controller is the zero address or a contract address is not found on the controller\"}],\"LegacyAllocationAlreadyMigrated(address)\":[{\"notice\":\"Thrown when trying to migrate an allocation that has already been migrated\"}],\"LegacyAllocationExists(address)\":[{\"notice\":\"Thrown when attempting to migrate an allocation with an existing id\"}],\"LinkedListEmptyList()\":[{\"notice\":\"Thrown when trying to remove an item from an empty list\"}],\"LinkedListInvalidIterations()\":[{\"notice\":\"Thrown when trying to traverse a list with more iterations than elements\"}],\"LinkedListInvalidZeroId()\":[{\"notice\":\"Thrown when trying to add an item with id equal to bytes32(0)\"}],\"LinkedListMaxElementsExceeded()\":[{\"notice\":\"Thrown when trying to add an item to a list that has reached the maximum number of elements\"}],\"PPMMathInvalidMulPPM(uint256,uint256)\":[{\"notice\":\"Thrown when no value in a multiplication is in PPM.\"}],\"ProvisionManagerInvalidRange(uint256,uint256)\":[{\"notice\":\"Thrown when attempting to set a range where min is greater than max.\"}],\"ProvisionManagerInvalidValue(bytes,uint256,uint256,uint256)\":[{\"notice\":\"Thrown when a provision parameter is out of range.\"}],\"ProvisionManagerNotAuthorized(address,address)\":[{\"notice\":\"Thrown when the caller is not authorized to manage the provision of a service provider.\"}],\"ProvisionManagerProvisionNotFound(address)\":[{\"notice\":\"Thrown when a provision is not found.\"}],\"ProvisionTrackerInsufficientTokens(uint256,uint256)\":[{\"notice\":\"Thrown when trying to lock more tokens than available\"}],\"SubgraphServiceAllocationIsAltruistic(address)\":[{\"notice\":\"Thrown when trying to force close an altruistic allocation\"}],\"SubgraphServiceAllocationNotAuthorized(address,address)\":[{\"notice\":\"Thrown when the indexer in the allocation state does not match the expected indexer.\"}],\"SubgraphServiceCannotForceCloseAllocation(address)\":[{\"notice\":\"Thrown when trying to force close an allocation that is not stale and the indexer is not over-allocated\"}],\"SubgraphServiceEmptyGeohash()\":[{\"notice\":\"Thrown when an indexer tries to register with an empty geohash\"}],\"SubgraphServiceEmptyUrl()\":[{\"notice\":\"Thrown when an indexer tries to register with an empty URL\"}],\"SubgraphServiceInconsistentCollection(uint256,uint256,uint256)\":[{\"notice\":\"Thrown when the contract GRT balance is inconsistent with the payment amount collected from Graph Payments\"}],\"SubgraphServiceIndexerAlreadyRegistered()\":[{\"notice\":\"Thrown when an indexer tries to register but they are already registered\"}],\"SubgraphServiceIndexerMismatch(address,address)\":[{\"notice\":\"@notice Thrown when the service provider in the RAV does not match the expected indexer.\"}],\"SubgraphServiceIndexerNotRegistered(address)\":[{\"notice\":\"Thrown when an indexer tries to perform an operation but they are not registered\"}],\"SubgraphServiceInvalidCurationCut(uint256)\":[{\"notice\":\"Thrown when trying to set a curation cut that is not a valid PPM value\"}],\"SubgraphServiceInvalidPaymentType(uint8)\":[{\"notice\":\"Thrown when an indexer tries to collect fees for an unsupported payment type\"}],\"SubgraphServiceInvalidRAV(address,address)\":[{\"notice\":\"Thrown when collecting a RAV where the RAV indexer is not the same as the allocation indexer\"}],\"SubgraphServiceInvalidZeroStakeToFeesRatio()\":[{\"notice\":\"Thrown when trying to set stake to fees ratio to zero\"}]},\"events\":{\"AllocationCreated(address,address,bytes32,uint256)\":{\"notice\":\"Emitted when an indexer creates an allocation\"},\"AllocationResized(address,address,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when an indexer resizes an allocation\"},\"CurationCutSet(uint256)\":{\"notice\":\"Emitted when curator cuts are set\"},\"DelegationRatioSet(uint32)\":{\"notice\":\"Emitted when the delegation ratio is set.\"},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"notice\":\"Emitted when the GraphDirectory is initialized\"},\"IndexingRewardsCollected(address,address,bytes32,uint256,uint256,uint256,bytes32,uint256)\":{\"notice\":\"Emitted when an indexer collects indexing rewards for an allocation\"},\"LegacyAllocationMigrated(address,address,bytes32)\":{\"notice\":\"Emitted when a legacy allocation is migrated into the subgraph service\"},\"MaxPOIStalenessSet(uint256)\":{\"notice\":\"Emitted when the maximum POI staleness is updated\"},\"PauseGuardianSet(address,bool)\":{\"notice\":\"Emitted when a pause guardian is set.\"},\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"ProvisionTokensRangeSet(uint256,uint256)\":{\"notice\":\"Emitted when the provision tokens range is set.\"},\"QueryFeesCollected(address,uint256,uint256)\":{\"notice\":\"Emitted when a subgraph service collects query fees from Graph Payments\"},\"RewardsDestinationSet(address,address)\":{\"notice\":\"Emitted when an indexer sets a new indexing rewards destination\"},\"ServicePaymentCollected(address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider collects payment.\"},\"ServiceProviderRegistered(address,bytes)\":{\"notice\":\"Emitted when a service provider is registered with the data service.\"},\"ServiceProviderSlashed(address,uint256)\":{\"notice\":\"Emitted when a service provider is slashed.\"},\"ServiceStarted(address,bytes)\":{\"notice\":\"Emitted when a service provider starts providing the service.\"},\"ServiceStopped(address,bytes)\":{\"notice\":\"Emitted when a service provider stops providing the service.\"},\"StakeClaimLocked(address,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when a stake claim is created and stake is locked.\"},\"StakeClaimReleased(address,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when a stake claim is released and stake is unlocked.\"},\"StakeClaimsReleased(address,uint256,uint256)\":{\"notice\":\"Emitted when a series of stake claims are released.\"},\"StakeToFeesRatioSet(uint256)\":{\"notice\":\"Emitted when the stake to fees ratio is set.\"},\"SubgraphServiceDirectoryInitialized(address,address,address,address)\":{\"notice\":\"Emitted when the Directory is initialized\"},\"ThawingPeriodRangeSet(uint64,uint64)\":{\"notice\":\"Emitted when the thawing period range is set.\"},\"VerifierCutRangeSet(uint32,uint32)\":{\"notice\":\"Emitted when the verifier cut range is set.\"}},\"kind\":\"user\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"notice\":\"Accept staged parameters in the provision of a service provider\"},\"allocationProvisionTracker(address)\":{\"notice\":\"Tracks allocated tokens per indexer\"},\"allocations(address)\":{\"notice\":\"Allocation details\"},\"claims(bytes32)\":{\"notice\":\"List of all locked stake claims to be released to service providers\"},\"claimsLists(address)\":{\"notice\":\"Service providers registered in the data service\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment for the service provided by the indexer Allows collecting different types of payments such as query fees and indexing rewards. It uses Graph Horizon payments protocol to process payments. Reverts if the payment type is not supported.\"},\"constructor\":{\"notice\":\"Constructor for the SubgraphService contract\"},\"curationFeesCut()\":{\"notice\":\"The cut curators take from query fee payments\"},\"delegationRatio()\":{\"notice\":\"How much delegation the service provider can effectively use\"},\"encodeAllocationProof(address,address)\":{\"notice\":\"See {ISubgraphService.encodeAllocationProof}\"},\"forceCloseAllocation(address)\":{\"notice\":\"See {ISubgraphService.closeStaleAllocation}\"},\"getAllocation(address)\":{\"notice\":\"See {ISubgraphService.getAllocation}\"},\"getAllocationData(address)\":{\"notice\":\"Get allocation data to calculate rewards issuance\"},\"getDelegationRatio()\":{\"notice\":\"See {IDataService-getDelegationRatio}.\"},\"getLegacyAllocation(address)\":{\"notice\":\"See {ISubgraphService.getLegacyAllocation}\"},\"getProvisionTokensRange()\":{\"notice\":\"See {IDataService-getProvisionTokensRange}.\"},\"getSubgraphAllocatedTokens(bytes32)\":{\"notice\":\"Return the total amount of tokens allocated to subgraph.\"},\"getThawingPeriodRange()\":{\"notice\":\"See {IDataService-getThawingPeriodRange}.\"},\"getVerifierCutRange()\":{\"notice\":\"See {IDataService-getVerifierCutRange}.\"},\"indexers(address)\":{\"notice\":\"Service providers registered in the data service\"},\"initialize(uint256,uint32,uint256)\":{\"notice\":\"Initialize the contract\"},\"isActiveAllocation(address)\":{\"notice\":\"Check if an allocation is open\"},\"isOverAllocated(address)\":{\"notice\":\"See {ISubgraphService.isOverAllocated}\"},\"isStaleAllocation(address)\":{\"notice\":\"See {ISubgraphService.isStaleAllocation}\"},\"legacyAllocations(address)\":{\"notice\":\"Legacy allocation details\"},\"maxPOIStaleness()\":{\"notice\":\"Maximum amount of time, in seconds, allowed between presenting POIs to qualify for indexing rewards\"},\"maximumProvisionTokens()\":{\"notice\":\"The maximum amount of tokens allowed to register a provision in the data service\"},\"maximumThawingPeriod()\":{\"notice\":\"The maximum thawing period allowed to register a provision in the data service\"},\"maximumVerifierCut()\":{\"notice\":\"The maximum verifier cut allowed to register a provision in the data service (in PPM)\"},\"migrateLegacyAllocation(address,address,bytes32)\":{\"notice\":\"See {ISubgraphService.migrateLegacyAllocation}\"},\"minimumProvisionTokens()\":{\"notice\":\"The minimum amount of tokens required to register a provision in the data service\"},\"minimumThawingPeriod()\":{\"notice\":\"The minimum thawing period required to register a provision in the data service\"},\"minimumVerifierCut()\":{\"notice\":\"The minimum verifier cut required to register a provision in the data service (in PPM)\"},\"pause()\":{\"notice\":\"See {IDataServicePausable-pause}\"},\"pauseGuardians(address)\":{\"notice\":\"List of pause guardians and their allowed status\"},\"register(address,bytes)\":{\"notice\":\"@dev Implements {IDataService.register} Requirements: - The indexer must not be already registered - The URL must not be empty - The provision must be valid according to the subgraph service rules Emits a {ServiceProviderRegistered} event\"},\"releaseStake(uint256)\":{\"notice\":\"See {IDataServiceFees-releaseStake}\"},\"resizeAllocation(address,address,uint256)\":{\"notice\":\"See {ISubgraphService.resizeAllocation}\"},\"rewardsDestination(address)\":{\"notice\":\"Destination of accrued indexing rewards\"},\"setCurationCut(uint256)\":{\"notice\":\"See {ISubgraphService.setCurationCut}\"},\"setDelegationRatio(uint32)\":{\"notice\":\"See {ISubgraphService.setDelegationRatio}\"},\"setMaxPOIStaleness(uint256)\":{\"notice\":\"See {ISubgraphService.setMaxPOIStaleness}\"},\"setMinimumProvisionTokens(uint256)\":{\"notice\":\"See {ISubgraphService.setMinimumProvisionTokens}\"},\"setPauseGuardian(address,bool)\":{\"notice\":\"See {ISubgraphService.setPauseGuardian}\"},\"setRewardsDestination(address)\":{\"notice\":\"See {ISubgraphService.setRewardsDestination}\"},\"setStakeToFeesRatio(uint256)\":{\"notice\":\"See {ISubgraphService.setStakeToFeesRatio}\"},\"slash(address,bytes)\":{\"notice\":\"Slash an indexer\"},\"stakeToFeesRatio()\":{\"notice\":\"Multiplier for how many tokens back collected query fees\"},\"startService(address,bytes)\":{\"notice\":\"Allocates tokens to subgraph deployment, manifesting the indexer's commitment to index it\"},\"stopService(address,bytes)\":{\"notice\":\"Close an allocation, indicating that the indexer has stopped indexing the subgraph deployment\"},\"subgraphAllocatedTokens(bytes32)\":{\"notice\":\"Track total tokens allocated per subgraph deployment\"},\"unpause()\":{\"notice\":\"See {IDataServicePausable-pause}\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SubgraphService.sol\":\"SubgraphService\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\":{\"keccak256\":\"0x3cbcc6e4629543a99acacc7ee4ffa6c063b9fb17d3597ccd2f9481008e3633bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d6bb0bb830b67d579e57a261e5f5d9e90b32dc006b02badbecf1f6c82c0a5100\",\"dweb:/ipfs/Qmd38iNXZpinwbNRJPEAA8r9bmmtRwjTSK1SkmH47ge4kJ\"]},\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":{\"keccak256\":\"0x17e4db429003cab08cd2859db94b95e0cee1f9478c1881903a4104def8fdc048\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://52ed58228a0e92aeb3493473a6e02f92d26a4e4eb0c46d38dd446e3bfcb6691e\",\"dweb:/ipfs/QmZzWxHAztdz2Q7cobqVEf4ExGpNuqWJFYgs2oHCgApjW6\"]},\"@graphprotocol/contracts/contracts/epochs/IEpochManager.sol\":{\"keccak256\":\"0x0f4b3a3569c023d2610d0d8b37b3ecb0b67f848d77aa063bb311756670017e85\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://df7c43568e554b301134aa2c58e4889ad0d3dcfec40e834b63621a43f39da154\",\"dweb:/ipfs/QmZeSV9AM6FKCkH9QYyF7i5nVggseEJXbvWbtrgUeXqQpo\"]},\"@graphprotocol/contracts/contracts/governance/IController.sol\":{\"keccak256\":\"0xe37df86cdea385d708ba00862cd9e04940e4f2aa50354fb3a9d2d4f505d5509a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0f6c9fd2b7a8c5a6b89ef12c7423144df04a5f251d5480be1b73c74a785ff12a\",\"dweb:/ipfs/QmYpiCQoxbDEYQ2FNA39Z4FGfoxfQ8jvH1Z3ccrqguQFMP\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0x5b4e4b27c41121831d28a6a71ed90fcb44c34d2d3e722993dac74c239ad653fd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9312944c7b9f5f5901e6b899e11838a628c5a146b6ee70f2bd4664010d652e68\",\"dweb:/ipfs/QmYMjrhnL5pefMQfSf64wFrqmqEAYgxoyf3jb8g2jz1kMc\"]},\"@graphprotocol/contracts/contracts/token/IGraphToken.sol\":{\"keccak256\":\"0x2ffad6798d641c8d1288730be725c43041c803caceaf6d9985122d000ad5761c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5f782a5670037fc9223dc20fd4f99c0277a9bec7d08f7800b0a0733e819a07cb\",\"dweb:/ipfs/QmP3K2QnmukScCh1nzgphYdg7AiAuTaT914jq4txLYNpra\"]},\"@graphprotocol/contracts/contracts/utils/TokenUtils.sol\":{\"keccak256\":\"0x7bd336193785ed6f09a3bd847f9208f64aa9b87ad67c40838d00fec41bb153d5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d96d83cdb9bbb567e4eafac8bdef3ff6bdaf426338baf76bae277c11afb33cee\",\"dweb:/ipfs/QmNjr4PiJ76Wc5mFqa9H88BjsEMrUfy1jiftNHYTgd6Mp5\"]},\"@graphprotocol/horizon/contracts/data-service/DataService.sol\":{\"keccak256\":\"0x72d1f60db2ba0d65de99869a98ee0ae43dab30a474415c3ee349458b71f97439\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f59f760342a177e107bd1323ad62a0346d2845ea49554380d625107aafd69a30\",\"dweb:/ipfs/QmaovA9tVpp3yS3KtWqsRQwWK5TNyJeF1BZFuTFR6mhCiL\"]},\"@graphprotocol/horizon/contracts/data-service/DataServiceStorage.sol\":{\"keccak256\":\"0xc291c4f4cd273f7aa4e664843207032c0cb85454c9af834940c982073309eab6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://6bf8640abd32f4b2f0700cf5fa04e22926401e7381b92e45b776b4b8cdf27219\",\"dweb:/ipfs/QmaGnVYjXx34sJw6xoLqM2Xtz8gCSiEUGKTajd5cvrmgoC\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFees.sol\":{\"keccak256\":\"0x136536e55b4a7ee042b368f32e771e6fe5aa512d89e3eb3e53bc65133a61ec7e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://4cd6aa727129b4d30db958f0fb814fe9313da691340af3998baa283bd0c0d3a4\",\"dweb:/ipfs/QmZfakV8Gemw3o6SLQJjZ3m4gYkaFi4VMuQ5jnDJzyhia4\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServiceFeesStorage.sol\":{\"keccak256\":\"0xfc2ead98c0a29cf14523745ccb07cbd568ba3299bffe5f9c3bec9dad7bf00562\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1a27545f89d99c54e8acd01d510b31e97500c75a4ace58f2986ab01eb1f0ff13\",\"dweb:/ipfs/QmeBPV1QfdTM6M9q478k512hKSr7kWsKwfEESdDimHQaoH\"]},\"@graphprotocol/horizon/contracts/data-service/extensions/DataServicePausableUpgradeable.sol\":{\"keccak256\":\"0xbb8e8d819d97570ccdcd5a6fafd8c43880016f71f6ce1eb4a2f260a1eaf6da5b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9f72b98fb9e707e88da2bd496102f0142e55a614c1b65319d4a09ee28b73f227\",\"dweb:/ipfs/Qma93cnXPBKf8qoVbWnQpKiffPwpzE837WncTo3Mx3v42H\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x8d2bed66024782e98b52836a3be855fe6ae59c9bb9ba863e3d420c6ebb80f764\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e945e02d82e8fef6cb25148533acaa6579c9e70eaac6e725eb30559ba91b3f8\",\"dweb:/ipfs/QmfUei9N9Exwwmrm2gL2FKcMuyGPqUpSVKY8pKE2QeJyuz\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServicePausable.sol\":{\"keccak256\":\"0xdf6f1f87857eaa5824747e81aed89f11d52e34400077d341f66165631772ccd2\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a5fd53c4e7571f1efe15ef3fdf291cec2cb282f5a617c8986eae00f56741b4c6\",\"dweb:/ipfs/QmX1WQNc5XJDgDT6aEv779DAgWzY7Uby8obF2Fey3m1WnE\"]},\"@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol\":{\"keccak256\":\"0x9012127a1b1dc8a3f75ad49925632faecca8bcb46f42ab7d1ac0af83a7514f9c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b002f1f6759e7ced37f161706bc4b787ba7534fb4326ae7ab395270926292c42\",\"dweb:/ipfs/QmRVDPWMbrijk14sywXTbnKdueVBgADBB7h8F9aGA4DgSZ\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol\":{\"keccak256\":\"0xd26e1eb1b0702f856f8489c4f5548644598a502221beece2f87ac4d01af9a609\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://69c3c34019e752bb6562c1b6709fcfd6958eb036ebe07b5c3c63ec47b4a17efc\",\"dweb:/ipfs/QmeKJuzv9Kb5TPBzpi2SoWwmPpn3Y9v3MR1g7hXoFJcwAG\"]},\"@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManagerStorage.sol\":{\"keccak256\":\"0x256512546eedbc0a954815735a5bd6d8832c465a3ce0bdc4959a6dcca3ea24ac\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://bcd9acb66c3153a5d38888ef17a798659bae9938e998e6597fcfb8f666bd3e50\",\"dweb:/ipfs/QmfTQt588Zon3AhR1PxhkHGL8xGw5JC7DAepTLDXeMWWA1\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0xa9c752ea887bd2a3637934b5f197526b6fac46b0b924deb75a8d224290ccbc95\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0a6625b4175959cd53af91a3741c12fb1fa2e91e0ab2302dff8a06bf7a66781\",\"dweb:/ipfs/QmPMoc5DN9gZr22gWkKGQDgJ8eqK1pChGQYTbPLC9LDCiY\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0xa32bd068b2a6a6cdd3863439aa280b29718ebb0a94da59e5806455c75af7994e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d1cdd344d026af2fc6e136337f9f86354d1b2731a6076e498c2ffd370705cdb5\",\"dweb:/ipfs/QmZe4rGR9gvyWP9ENDGLWxcB5a67qvbqbFKKhr9Di7VkEN\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol\":{\"keccak256\":\"0x86f3cfc8eaac309e99018dda796248fb44130b09c2e5bcfc6c63c0e568803bf8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://176a017cb5c677222ac6a82fecd798292f5f41b4dcb9e16768fbf87816381010\",\"dweb:/ipfs/QmNuLfA5nZptMzWPuvDzJnm7Pwt7uYn1A7G8fwTWPy5Ybm\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x04da4bb0cfc6db397d6140ae72d6a4ffcadb19b5a8fc654ae3fd1550b64526ff\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9dca21008f5cf563d1863148b151d103b92a99c7bb0fe4667fdd9236bfa9881e\",\"dweb:/ipfs/QmPBfG7s2ajEYn35oJk6TjQ6wCQ7FNVAuZnzXbAENbKF9i\"]},\"@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol\":{\"keccak256\":\"0xa5a882c413c68bfe914bad5e419c0340d7d6a6aef453894ea10b7b96458932bc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a5dfc1a11d94b22db5a9262b7038c2fb9c69616f47a11507f59efcc5aa1dcf9b\",\"dweb:/ipfs/QmQ8ahkkfm8PXTuZc5Q8zX2RzXHoSi9btYc57KMvtCrLMU\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x2aa4aa3745b13f9cadcbf3f93888ebbaa8f5d1da3b6f845f1741d51b16ff9944\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://290e13fd3dc9170244aaa4c6e5f5646878d011ee25024926d4d60d40eb6cf8c9\",\"dweb:/ipfs/QmPWwXxhnxmNSUpVF6caT1cXVtV2c1ackJiMzAbUG4z6Fo\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0xbb225acac73f4245b30a8fe9c0bf4bcc8b310f40da526a0447a2303f1ca63e96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://207826b2277a0bd42b8a4d8825f6b16e46d6dc8039e4027faa22df462aa06079\",\"dweb:/ipfs/QmYS177dKBuY7iRUdwBMHxSMd6SfNpARTApLHMLgFCozTy\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd161d01d49ec47200c1c8374d11ad7d9a2c1776a2f87c546f78535ffa33b3954\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7da68f651214064c6afb1b43955879a2eaea6076c44e92975abf31735b0e1012\",\"dweb:/ipfs/QmZBHtfqhzWsv1oWy73pR8zabgLnhqpiWhknK4TzrPBhV2\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0x2bc503df758ca7fcc2a741b41350158a53e295974a37478336f2ed8b76e460a5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://24af9fe8ca1e0daae752a4b331b77c3a268a2a358e2e34a50df8ef283dd8670f\",\"dweb:/ipfs/QmYBJAMWHeiWWepGTTdkUSN4Vn2oP4GvyeqiwDK1TVdfce\"]},\"@graphprotocol/horizon/contracts/libraries/UintRange.sol\":{\"keccak256\":\"0x3389a6fae8651820ced92bdc06b7168280055ea65467ac094c5c3fd950700820\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2e3756bebea135066625cba99d4d608ca1770a21abfd3cfbc05a3e1b280c688b\",\"dweb:/ipfs/QmQeebmsKNQqKpGKYPEyJqrpF3ZjP71udwPgoGEdTfvTSb\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1be743a301a082944c78ba37b48c466ebc47d2ddd94529a3e05ed828e4413c68\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://663e05ec37777a21b344acb96235db183dcfac14e42048cfc921ab2038cd77d1\",\"dweb:/ipfs/QmY5mQ2L3BLrB8TDNXadDhjR2nCb7ssNPTJ6zegJnC5bjq\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol\":{\"keccak256\":\"0x1545b1796f0b94f811d95b8b208c0668dacfc7768247d22b63161a47c4c5ef4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1dccf7856b960b2ed7565906b457812ad8d29a15d403f17702ac7e090680300\",\"dweb:/ipfs/QmUqqibiekFv84mdq7zeyRF56mLJbFyFUxWKTrz8Twzkpn\"]},\"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0x92915b7f7f642c6be3f65bfd1522feb5d5b6ef25f755f4dbb51df32c868f2f97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85ad36d5cc7e190e1ee6c94b24659bc3a31396c4c36b6ffa6a509e10661f8007\",\"dweb:/ipfs/QmPFyc4zMh2zo6YWZt25gjm3YdR2hg6wGETaWw256fMmJJ\"]},\"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x85462422a22578744581e012e9aa0a391958cb360288b0b63f29bf0431d70327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bc529e2b9b28da5d26da451058250d85afcaa3c5083ee273ac68fa6bf956b78\",\"dweb:/ipfs/Qmd3Aq59ztmoVmHigsaR4YjkXWKERVpjfQ4a2PHk7Ke6Rx\"]},\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/SubgraphService.sol\":{\"keccak256\":\"0x432feb6e60a2757391aea8457b5d941c87b26f82223ace7147061591215ddb58\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://231d2a5eef41ee638f7a703c83f8c772e89035c40e1573732c1c2105b517ba52\",\"dweb:/ipfs/QmRH2SLFMeg6vvwPJyo2cfi18HJMZhv7m28PffitFaHa5o\"]},\"contracts/SubgraphServiceStorage.sol\":{\"keccak256\":\"0xd65d4e68881be74d04902e73d3434103a6250367d6f32acdca0ad984064a6f24\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f6adf65148f3a7241be65927f0a721e0646f469bc7fbb3b1c5a41e117539c822\",\"dweb:/ipfs/QmVWGLJRrFnpAPTNW8429KSHNbfMC93sHFHp2UopiQ6Pun\"]},\"contracts/interfaces/IDisputeManager.sol\":{\"keccak256\":\"0x12d82ad300a87b0ca3a43f9dc693f01bfc5765342e2b727b38e5ea234bb146c7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4b3b8a3663613e7c94b106a1f19f074d338745ca3a93047ac8d0e1db61684b34\",\"dweb:/ipfs/QmNVtbS6XRWfq2SEmagGsWMPCeRvpVj4BXVcvQ5PPtPy1i\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0xd61a4cb3fe5b91d0ac8288d85aa0cb3a8d19e78cb87e700ffb34636bf6d5853a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8fc1f600bc67f34cadaf25daf34c0f4f5e9ac8dced8353ee01853ecfbfa51d3b\",\"dweb:/ipfs/QmeidTmk5rQFtzc6S9fdA4urqewYBSdBHVfaCauPmqTFt8\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xdc1528c7429147d886323e98c4cb02076c91e1220fa25ec263aadd09841f749f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a61d43fe10ddce9df90fea94ed52c5284f78e1419548e8ca8bdfce977642c677\",\"dweb:/ipfs/Qme35BnH5DPbEGsc2MVeFJdY2uqXEhU1WVQW1E5jawYdan\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x25271cc1233cb1853a2e3a070d5143268384b09d2368ff1fa78c25bddc80d5d4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0176185c14b41702bdfa60dc0fd27626a33f4dbf3289b1e28ef51abb37e0e125\",\"dweb:/ipfs/QmbHLdmPNRby5eyG6dFuUWHUg8aBUQSjD9E7QCgqfPxjNB\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x705b640c357b931820f764b018ddf096a71e5097e7eb3f30e9be44b06f903563\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c99211c9ee8d1369cdc65981ec111935b6e86990025e096fdf240b04cf51ece2\",\"dweb:/ipfs/QmTpfFsy8njQYpHxw7XDcWHDeEv47msUDzD13m173CaV9p\"]},\"contracts/utilities/AllocationManager.sol\":{\"keccak256\":\"0xc24b976ce48a98b22cc22c50cc704ec2f5624e753d8cc2a16ede76109345624e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://009aee0ceb4cb423d389a2dad841e9ba39845d0385d507aca47fd49680de3908\",\"dweb:/ipfs/QmXnSEpeFmN6zbbuUJ1w37Sjhgag3h7vjZLi819BdtTUeF\"]},\"contracts/utilities/AllocationManagerStorage.sol\":{\"keccak256\":\"0x4e5f682e3c67a101ddefb795d43f27ef5ed9b458dc348b85e4f2290c01cf48a8\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dd557b9537c581bbb4bcb5843c03289cf9101236790e33e206621068ff4431b7\",\"dweb:/ipfs/QmcmDDBuGnrNmud7oS79FRsLwb88Ebkqxg8Ws3vQSSs8xQ\"]},\"contracts/utilities/Directory.sol\":{\"keccak256\":\"0xad65e3c6e8ddcb2855c9fbb689d538c3709bda1b7b08f665bc7a9e905e6a9ef4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8ae2fbea52fc9b412dc333d74d0984a458da80cc98defdd86bc6a9f31633df56\",\"dweb:/ipfs/QmatwUHznJRo9wvA9ggG4UZVWprdUtAeBmx7T5vDU8vBx9\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 2134, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "minimumProvisionTokens", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 2137, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "maximumProvisionTokens", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 2140, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "minimumThawingPeriod", - "offset": 0, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2143, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "maximumThawingPeriod", - "offset": 8, - "slot": "2", - "type": "t_uint64" - }, - { - "astId": 2146, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "minimumVerifierCut", - "offset": 16, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2149, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "maximumVerifierCut", - "offset": 20, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2152, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "delegationRatio", - "offset": 24, - "slot": "2", - "type": "t_uint32" - }, - { - "astId": 2157, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "__gap", - "offset": 0, - "slot": "3", - "type": "t_array(t_uint256)50_storage" - }, - { - "astId": 703, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "__gap", - "offset": 0, - "slot": "53", - "type": "t_array(t_uint256)50_storage" - }, - { - "astId": 1101, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "pauseGuardians", - "offset": 0, - "slot": "103", - "type": "t_mapping(t_address,t_bool)" - }, - { - "astId": 1063, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "feesProvisionTracker", - "offset": 0, - "slot": "104", - "type": "t_mapping(t_address,t_uint256)" - }, - { - "astId": 1069, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "claims", - "offset": 0, - "slot": "105", - "type": "t_mapping(t_bytes32,t_struct(StakeClaim)1335_storage)" - }, - { - "astId": 1075, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "claimsLists", - "offset": 0, - "slot": "106", - "type": "t_mapping(t_address,t_struct(List)3813_storage)" - }, - { - "astId": 1080, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "__gap", - "offset": 0, - "slot": "107", - "type": "t_array(t_uint256)50_storage" - }, - { - "astId": 13042, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "allocations", - "offset": 0, - "slot": "157", - "type": "t_mapping(t_address,t_struct(State)11307_storage)" - }, - { - "astId": 13048, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "legacyAllocations", - "offset": 0, - "slot": "158", - "type": "t_mapping(t_address,t_struct(State)11933_storage)" - }, - { - "astId": 13053, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "allocationProvisionTracker", - "offset": 0, - "slot": "159", - "type": "t_mapping(t_address,t_uint256)" - }, - { - "astId": 13056, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "maxPOIStaleness", - "offset": 0, - "slot": "160", - "type": "t_uint256" - }, - { - "astId": 13061, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "rewardsDestination", - "offset": 0, - "slot": "161", - "type": "t_mapping(t_address,t_address)" - }, - { - "astId": 13066, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "subgraphAllocatedTokens", - "offset": 0, - "slot": "162", - "type": "t_mapping(t_bytes32,t_uint256)" - }, - { - "astId": 13071, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "__gap", - "offset": 0, - "slot": "163", - "type": "t_array(t_uint256)50_storage" - }, - { - "astId": 10694, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "indexers", - "offset": 0, - "slot": "213", - "type": "t_mapping(t_address,t_struct(Indexer)11078_storage)" - }, - { - "astId": 10697, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "stakeToFeesRatio", - "offset": 0, - "slot": "214", - "type": "t_uint256" - }, - { - "astId": 10700, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "curationFeesCut", - "offset": 0, - "slot": "215", - "type": "t_uint256" - } - ], - "types": { - "t_address": { - "encoding": "inplace", - "label": "address", - "numberOfBytes": "20" - }, - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_bool": { - "encoding": "inplace", - "label": "bool", - "numberOfBytes": "1" - }, - "t_bytes32": { - "encoding": "inplace", - "label": "bytes32", - "numberOfBytes": "32" - }, - "t_mapping(t_address,t_address)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => address)", - "numberOfBytes": "32", - "value": "t_address" - }, - "t_mapping(t_address,t_bool)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => bool)", - "numberOfBytes": "32", - "value": "t_bool" - }, - "t_mapping(t_address,t_struct(Indexer)11078_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct ISubgraphService.Indexer)", - "numberOfBytes": "32", - "value": "t_struct(Indexer)11078_storage" - }, - "t_mapping(t_address,t_struct(List)3813_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct LinkedList.List)", - "numberOfBytes": "32", - "value": "t_struct(List)3813_storage" - }, - "t_mapping(t_address,t_struct(State)11307_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct Allocation.State)", - "numberOfBytes": "32", - "value": "t_struct(State)11307_storage" - }, - "t_mapping(t_address,t_struct(State)11933_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct LegacyAllocation.State)", - "numberOfBytes": "32", - "value": "t_struct(State)11933_storage" - }, - "t_mapping(t_address,t_uint256)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => uint256)", - "numberOfBytes": "32", - "value": "t_uint256" - }, - "t_mapping(t_bytes32,t_struct(StakeClaim)1335_storage)": { - "encoding": "mapping", - "key": "t_bytes32", - "label": "mapping(bytes32 => struct IDataServiceFees.StakeClaim)", - "numberOfBytes": "32", - "value": "t_struct(StakeClaim)1335_storage" - }, - "t_mapping(t_bytes32,t_uint256)": { - "encoding": "mapping", - "key": "t_bytes32", - "label": "mapping(bytes32 => uint256)", - "numberOfBytes": "32", - "value": "t_uint256" - }, - "t_string_storage": { - "encoding": "bytes", - "label": "string", - "numberOfBytes": "32" - }, - "t_struct(Indexer)11078_storage": { - "encoding": "inplace", - "label": "struct ISubgraphService.Indexer", - "members": [ - { - "astId": 11073, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "registeredAt", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 11075, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "url", - "offset": 0, - "slot": "1", - "type": "t_string_storage" - }, - { - "astId": 11077, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "geoHash", - "offset": 0, - "slot": "2", - "type": "t_string_storage" - } - ], - "numberOfBytes": "96" - }, - "t_struct(List)3813_storage": { - "encoding": "inplace", - "label": "struct LinkedList.List", - "members": [ - { - "astId": 3806, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "head", - "offset": 0, - "slot": "0", - "type": "t_bytes32" - }, - { - "astId": 3808, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "tail", - "offset": 0, - "slot": "1", - "type": "t_bytes32" - }, - { - "astId": 3810, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "nonce", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 3812, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "count", - "offset": 0, - "slot": "3", - "type": "t_uint256" - } - ], - "numberOfBytes": "128" - }, - "t_struct(StakeClaim)1335_storage": { - "encoding": "inplace", - "label": "struct IDataServiceFees.StakeClaim", - "members": [ - { - "astId": 1328, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "tokens", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 1330, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "createdAt", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 1332, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "releasableAt", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 1334, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "nextClaim", - "offset": 0, - "slot": "3", - "type": "t_bytes32" - } - ], - "numberOfBytes": "128" - }, - "t_struct(State)11307_storage": { - "encoding": "inplace", - "label": "struct Allocation.State", - "members": [ - { - "astId": 11292, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "indexer", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 11294, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "subgraphDeploymentId", - "offset": 0, - "slot": "1", - "type": "t_bytes32" - }, - { - "astId": 11296, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "tokens", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 11298, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "createdAt", - "offset": 0, - "slot": "3", - "type": "t_uint256" - }, - { - "astId": 11300, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "closedAt", - "offset": 0, - "slot": "4", - "type": "t_uint256" - }, - { - "astId": 11302, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "lastPOIPresentedAt", - "offset": 0, - "slot": "5", - "type": "t_uint256" - }, - { - "astId": 11304, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "accRewardsPerAllocatedToken", - "offset": 0, - "slot": "6", - "type": "t_uint256" - }, - { - "astId": 11306, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "accRewardsPending", - "offset": 0, - "slot": "7", - "type": "t_uint256" - } - ], - "numberOfBytes": "256" - }, - "t_struct(State)11933_storage": { - "encoding": "inplace", - "label": "struct LegacyAllocation.State", - "members": [ - { - "astId": 11930, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "indexer", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 11932, - "contract": "contracts/SubgraphService.sol:SubgraphService", - "label": "subgraphDeploymentId", - "offset": 0, - "slot": "1", - "type": "t_bytes32" - } - ], - "numberOfBytes": "64" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - }, - "t_uint32": { - "encoding": "inplace", - "label": "uint32", - "numberOfBytes": "4" - }, - "t_uint64": { - "encoding": "inplace", - "label": "uint64", - "numberOfBytes": "8" - } - } - } - } - }, - "contracts/SubgraphServiceStorage.sol": { - "SubgraphServiceV1Storage": { - "abi": [ - { - "inputs": [], - "name": "curationFeesCut", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "indexers", - "outputs": [ - { - "internalType": "uint256", - "name": "registeredAt", - "type": "uint256" - }, - { - "internalType": "string", - "name": "url", - "type": "string" - }, - { - "internalType": "string", - "name": "geoHash", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "stakeToFeesRatio", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "curationFeesCut()": "138dea08", - "indexers(address)": "4f793cdc", - "stakeToFeesRatio()": "d07a7a84" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"curationFeesCut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"indexers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"registeredAt\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"geoHash\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeToFeesRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"curationFeesCut()\":{\"notice\":\"The cut curators take from query fee payments\"},\"indexers(address)\":{\"notice\":\"Service providers registered in the data service\"},\"stakeToFeesRatio()\":{\"notice\":\"Multiplier for how many tokens back collected query fees\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/SubgraphServiceStorage.sol\":\"SubgraphServiceV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x8d2bed66024782e98b52836a3be855fe6ae59c9bb9ba863e3d420c6ebb80f764\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e945e02d82e8fef6cb25148533acaa6579c9e70eaac6e725eb30559ba91b3f8\",\"dweb:/ipfs/QmfUei9N9Exwwmrm2gL2FKcMuyGPqUpSVKY8pKE2QeJyuz\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"contracts/SubgraphServiceStorage.sol\":{\"keccak256\":\"0xd65d4e68881be74d04902e73d3434103a6250367d6f32acdca0ad984064a6f24\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f6adf65148f3a7241be65927f0a721e0646f469bc7fbb3b1c5a41e117539c822\",\"dweb:/ipfs/QmVWGLJRrFnpAPTNW8429KSHNbfMC93sHFHp2UopiQ6Pun\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0xd61a4cb3fe5b91d0ac8288d85aa0cb3a8d19e78cb87e700ffb34636bf6d5853a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8fc1f600bc67f34cadaf25daf34c0f4f5e9ac8dced8353ee01853ecfbfa51d3b\",\"dweb:/ipfs/QmeidTmk5rQFtzc6S9fdA4urqewYBSdBHVfaCauPmqTFt8\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xdc1528c7429147d886323e98c4cb02076c91e1220fa25ec263aadd09841f749f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a61d43fe10ddce9df90fea94ed52c5284f78e1419548e8ca8bdfce977642c677\",\"dweb:/ipfs/Qme35BnH5DPbEGsc2MVeFJdY2uqXEhU1WVQW1E5jawYdan\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x705b640c357b931820f764b018ddf096a71e5097e7eb3f30e9be44b06f903563\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c99211c9ee8d1369cdc65981ec111935b6e86990025e096fdf240b04cf51ece2\",\"dweb:/ipfs/QmTpfFsy8njQYpHxw7XDcWHDeEv47msUDzD13m173CaV9p\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 10694, - "contract": "contracts/SubgraphServiceStorage.sol:SubgraphServiceV1Storage", - "label": "indexers", - "offset": 0, - "slot": "0", - "type": "t_mapping(t_address,t_struct(Indexer)11078_storage)" - }, - { - "astId": 10697, - "contract": "contracts/SubgraphServiceStorage.sol:SubgraphServiceV1Storage", - "label": "stakeToFeesRatio", - "offset": 0, - "slot": "1", - "type": "t_uint256" - }, - { - "astId": 10700, - "contract": "contracts/SubgraphServiceStorage.sol:SubgraphServiceV1Storage", - "label": "curationFeesCut", - "offset": 0, - "slot": "2", - "type": "t_uint256" - } - ], - "types": { - "t_address": { - "encoding": "inplace", - "label": "address", - "numberOfBytes": "20" - }, - "t_mapping(t_address,t_struct(Indexer)11078_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct ISubgraphService.Indexer)", - "numberOfBytes": "32", - "value": "t_struct(Indexer)11078_storage" - }, - "t_string_storage": { - "encoding": "bytes", - "label": "string", - "numberOfBytes": "32" - }, - "t_struct(Indexer)11078_storage": { - "encoding": "inplace", - "label": "struct ISubgraphService.Indexer", - "members": [ - { - "astId": 11073, - "contract": "contracts/SubgraphServiceStorage.sol:SubgraphServiceV1Storage", - "label": "registeredAt", - "offset": 0, - "slot": "0", - "type": "t_uint256" - }, - { - "astId": 11075, - "contract": "contracts/SubgraphServiceStorage.sol:SubgraphServiceV1Storage", - "label": "url", - "offset": 0, - "slot": "1", - "type": "t_string_storage" - }, - { - "astId": 11077, - "contract": "contracts/SubgraphServiceStorage.sol:SubgraphServiceV1Storage", - "label": "geoHash", - "offset": 0, - "slot": "2", - "type": "t_string_storage" - } - ], - "numberOfBytes": "96" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - } - } - } - } - }, - "contracts/interfaces/IDisputeManager.sol": { - "IDisputeManager": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerDisputeAlreadyCreated", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "enum IDisputeManager.DisputeStatus", - "name": "status", - "type": "uint8" - } - ], - "name": "DisputeManagerDisputeNotPending", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerDisputePeriodNotFinished", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerDisputePeriodZero", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "DisputeManagerIndexerNotFound", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerInvalidDispute", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "DisputeManagerInvalidDisputeDeposit", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "cut", - "type": "uint32" - } - ], - "name": "DisputeManagerInvalidFishermanReward", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxSlashingCut", - "type": "uint32" - } - ], - "name": "DisputeManagerInvalidMaxSlashingCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokensSlash", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxTokensSlash", - "type": "uint256" - } - ], - "name": "DisputeManagerInvalidTokensSlash", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "relatedDisputeId", - "type": "bytes32" - } - ], - "name": "DisputeManagerMustAcceptRelatedDispute", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "requestCID1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "requestCID2", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID2", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId2", - "type": "bytes32" - } - ], - "name": "DisputeManagerNonConflictingAttestations", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId1", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId2", - "type": "bytes32" - } - ], - "name": "DisputeManagerNonMatchingSubgraphDeployment", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerNotArbitrator", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerNotFisherman", - "type": "error" - }, - { - "inputs": [], - "name": "DisputeManagerZeroTokens", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "arbitrator", - "type": "address" - } - ], - "name": "ArbitratorSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeCancelled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "DisputeDepositSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeDrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId1", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId2", - "type": "bytes32" - } - ], - "name": "DisputeLinked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "disputePeriod", - "type": "uint64" - } - ], - "name": "DisputePeriodSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "DisputeRejected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "fishermanRewardCut", - "type": "uint32" - } - ], - "name": "FishermanRewardCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "name": "IndexingDisputeCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "maxSlashingCut", - "type": "uint32" - } - ], - "name": "MaxSlashingCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "fisherman", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "attestation", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "stakeSnapshot", - "type": "uint256" - } - ], - "name": "QueryDisputeCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "subgraphService", - "type": "address" - } - ], - "name": "SubgraphServiceSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokensSlash", - "type": "uint256" - } - ], - "name": "acceptDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation1", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation2", - "type": "tuple" - } - ], - "name": "areConflictingAttestations", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "cancelDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - } - ], - "name": "createIndexingDispute", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "attestationData", - "type": "bytes" - } - ], - "name": "createQueryDispute", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "attestationData1", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "attestationData2", - "type": "bytes" - } - ], - "name": "createQueryDisputeConflict", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "drawDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "internalType": "struct Attestation.Receipt", - "name": "receipt", - "type": "tuple" - } - ], - "name": "encodeReceipt", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "requestCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "responseCID", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - } - ], - "internalType": "struct Attestation.State", - "name": "attestation", - "type": "tuple" - } - ], - "name": "getAttestationIndexer", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDisputePeriod", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "getStakeSnapshot", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCut", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "isDisputeCreated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "disputeId", - "type": "bytes32" - } - ], - "name": "rejectDispute", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "arbitrator", - "type": "address" - } - ], - "name": "setArbitrator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "disputeDeposit", - "type": "uint256" - } - ], - "name": "setDisputeDeposit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "disputePeriod", - "type": "uint64" - } - ], - "name": "setDisputePeriod", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "cut", - "type": "uint32" - } - ], - "name": "setFishermanRewardCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "maxCut", - "type": "uint32" - } - ], - "name": "setMaxSlashingCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "subgraphService", - "type": "address" - } - ], - "name": "setSubgraphService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptDispute(bytes32,uint256)": "050b17ad", - "areConflictingAttestations((bytes32,bytes32,bytes32,bytes32,bytes32,uint8),(bytes32,bytes32,bytes32,bytes32,bytes32,uint8))": "d36fc9d4", - "cancelDispute(bytes32)": "1792f194", - "createIndexingDispute(address,bytes32)": "4bc5839a", - "createQueryDispute(bytes)": "c50a77b1", - "createQueryDisputeConflict(bytes,bytes)": "c894222e", - "drawDispute(bytes32)": "9334ea52", - "encodeReceipt((bytes32,bytes32,bytes32))": "6369df6b", - "getAttestationIndexer((bytes32,bytes32,bytes32,bytes32,bytes32,uint8))": "c9747f51", - "getDisputePeriod()": "5aea0ec4", - "getStakeSnapshot(address)": "c133b429", - "getVerifierCut()": "84633713", - "isDisputeCreated(bytes32)": "be41f384", - "rejectDispute(bytes32)": "36167e03", - "setArbitrator(address)": "b0eefabe", - "setDisputeDeposit(uint256)": "16972978", - "setDisputePeriod(uint64)": "d76f62d1", - "setFishermanRewardCut(uint32)": "76c993ae", - "setMaxSlashingCut(uint32)": "9f81a7cf", - "setSubgraphService(address)": "93a90a1e" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerDisputeAlreadyCreated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IDisputeManager.DisputeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"DisputeManagerDisputeNotPending\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerDisputePeriodNotFinished\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerDisputePeriodZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"DisputeManagerIndexerNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerInvalidDispute\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"disputeDeposit\",\"type\":\"uint256\"}],\"name\":\"DisputeManagerInvalidDisputeDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"cut\",\"type\":\"uint32\"}],\"name\":\"DisputeManagerInvalidFishermanReward\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"maxSlashingCut\",\"type\":\"uint32\"}],\"name\":\"DisputeManagerInvalidMaxSlashingCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokensSlash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxTokensSlash\",\"type\":\"uint256\"}],\"name\":\"DisputeManagerInvalidTokensSlash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerInvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"relatedDisputeId\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerMustAcceptRelatedDispute\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestCID1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"requestCID2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId2\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerNonConflictingAttestations\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId2\",\"type\":\"bytes32\"}],\"name\":\"DisputeManagerNonMatchingSubgraphDeployment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerNotArbitrator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerNotFisherman\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DisputeManagerZeroTokens\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"arbitrator\",\"type\":\"address\"}],\"name\":\"ArbitratorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DisputeAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DisputeCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"disputeDeposit\",\"type\":\"uint256\"}],\"name\":\"DisputeDepositSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DisputeDrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId1\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId2\",\"type\":\"bytes32\"}],\"name\":\"DisputeLinked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"disputePeriod\",\"type\":\"uint64\"}],\"name\":\"DisputePeriodSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"DisputeRejected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"fishermanRewardCut\",\"type\":\"uint32\"}],\"name\":\"FishermanRewardCutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poi\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakeSnapshot\",\"type\":\"uint256\"}],\"name\":\"IndexingDisputeCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"maxSlashingCut\",\"type\":\"uint32\"}],\"name\":\"MaxSlashingCutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fisherman\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"attestation\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"stakeSnapshot\",\"type\":\"uint256\"}],\"name\":\"QueryDisputeCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subgraphService\",\"type\":\"address\"}],\"name\":\"SubgraphServiceSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokensSlash\",\"type\":\"uint256\"}],\"name\":\"acceptDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"}],\"internalType\":\"struct Attestation.State\",\"name\":\"attestation1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"}],\"internalType\":\"struct Attestation.State\",\"name\":\"attestation2\",\"type\":\"tuple\"}],\"name\":\"areConflictingAttestations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"cancelDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"poi\",\"type\":\"bytes32\"}],\"name\":\"createIndexingDispute\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"attestationData\",\"type\":\"bytes\"}],\"name\":\"createQueryDispute\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"attestationData1\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"attestationData2\",\"type\":\"bytes\"}],\"name\":\"createQueryDisputeConflict\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"drawDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"internalType\":\"struct Attestation.Receipt\",\"name\":\"receipt\",\"type\":\"tuple\"}],\"name\":\"encodeReceipt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"responseCID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"}],\"internalType\":\"struct Attestation.State\",\"name\":\"attestation\",\"type\":\"tuple\"}],\"name\":\"getAttestationIndexer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDisputePeriod\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"getStakeSnapshot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCut\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"isDisputeCreated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"}],\"name\":\"rejectDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"arbitrator\",\"type\":\"address\"}],\"name\":\"setArbitrator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"disputeDeposit\",\"type\":\"uint256\"}],\"name\":\"setDisputeDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"disputePeriod\",\"type\":\"uint64\"}],\"name\":\"setDisputePeriod\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"cut\",\"type\":\"uint32\"}],\"name\":\"setFishermanRewardCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"maxCut\",\"type\":\"uint32\"}],\"name\":\"setMaxSlashingCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"subgraphService\",\"type\":\"address\"}],\"name\":\"setSubgraphService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ArbitratorSet(address)\":{\"params\":{\"arbitrator\":\"The address of the arbitrator.\"}},\"DisputeAccepted(bytes32,address,address,uint256)\":{\"details\":\"Emitted when arbitrator accepts a `disputeId` to `indexer` created by `fisherman`. The event emits the amount `tokens` transferred to the fisherman, the deposit plus reward.\"},\"DisputeCancelled(bytes32,address,address,uint256)\":{\"details\":\"Emitted when a dispute is cancelled by the fisherman. The event emits the amount `tokens` returned to the fisherman.\"},\"DisputeDepositSet(uint256)\":{\"params\":{\"disputeDeposit\":\"The dispute deposit required to create a dispute.\"}},\"DisputeDrawn(bytes32,address,address,uint256)\":{\"details\":\"Emitted when arbitrator draw a `disputeId` for `indexer` created by `fisherman`. The event emits the amount `tokens` used as deposit and returned to the fisherman.\"},\"DisputeLinked(bytes32,bytes32)\":{\"details\":\"Emitted when two disputes are in conflict to link them. This event will be emitted after each DisputeCreated event is emitted for each of the individual disputes.\"},\"DisputePeriodSet(uint64)\":{\"params\":{\"disputePeriod\":\"The dispute period in seconds.\"}},\"DisputeRejected(bytes32,address,address,uint256)\":{\"details\":\"Emitted when arbitrator rejects a `disputeId` for `indexer` created by `fisherman`. The event emits the amount `tokens` burned from the fisherman deposit.\"},\"FishermanRewardCutSet(uint32)\":{\"params\":{\"fishermanRewardCut\":\"The fisherman reward cut.\"}},\"IndexingDisputeCreated(bytes32,address,address,uint256,address,bytes32,uint256)\":{\"details\":\"Emitted when an indexing dispute is created for `allocationId` and `indexer` by `fisherman`. The event emits the amount of `tokens` deposited by the fisherman.\"},\"MaxSlashingCutSet(uint32)\":{\"params\":{\"maxSlashingCut\":\"The maximum slashing cut that can be set.\"}},\"QueryDisputeCreated(bytes32,address,address,uint256,bytes32,bytes,uint256)\":{\"details\":\"Emitted when a query dispute is created for `subgraphDeploymentId` and `indexer` by `fisherman`. The event emits the amount of `tokens` deposited by the fisherman and `attestation` submitted.\"},\"SubgraphServiceSet(address)\":{\"params\":{\"subgraphService\":\"The address of the subgraph service.\"}}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"ArbitratorSet(address)\":{\"notice\":\"Emitted when arbitrator is set.\"},\"DisputeDepositSet(uint256)\":{\"notice\":\"Emitted when dispute deposit is set.\"},\"DisputePeriodSet(uint64)\":{\"notice\":\"Emitted when dispute period is set.\"},\"FishermanRewardCutSet(uint32)\":{\"notice\":\"Emitted when fisherman reward cut is set.\"},\"MaxSlashingCutSet(uint32)\":{\"notice\":\"Emitted when max slashing cut is set.\"},\"SubgraphServiceSet(address)\":{\"notice\":\"Emitted when subgraph service is set.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IDisputeManager.sol\":\"IDisputeManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IDisputeManager.sol\":{\"keccak256\":\"0x12d82ad300a87b0ca3a43f9dc693f01bfc5765342e2b727b38e5ea234bb146c7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4b3b8a3663613e7c94b106a1f19f074d338745ca3a93047ac8d0e1db61684b34\",\"dweb:/ipfs/QmNVtbS6XRWfq2SEmagGsWMPCeRvpVj4BXVcvQ5PPtPy1i\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x25271cc1233cb1853a2e3a070d5143268384b09d2368ff1fa78c25bddc80d5d4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0176185c14b41702bdfa60dc0fd27626a33f4dbf3289b1e28ef51abb37e0e125\",\"dweb:/ipfs/QmbHLdmPNRby5eyG6dFuUWHUg8aBUQSjD9E7QCgqfPxjNB\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "contracts/interfaces/ISubgraphService.sol": { - "ISubgraphService": { - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - } - ], - "name": "DataServiceFeesClaimNotFound", - "type": "error" - }, - { - "inputs": [], - "name": "DataServiceFeesZeroTokens", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceAllocationIsAltruistic", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceAllocationNotAuthorized", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "SubgraphServiceCannotForceCloseAllocation", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceEmptyGeohash", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceEmptyUrl", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balanceBefore", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balanceAfter", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokensDataService", - "type": "uint256" - } - ], - "name": "SubgraphServiceInconsistentCollection", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceIndexerAlreadyRegistered", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "providedIndexer", - "type": "address" - }, - { - "internalType": "address", - "name": "expectedIndexer", - "type": "address" - } - ], - "name": "SubgraphServiceIndexerMismatch", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "SubgraphServiceIndexerNotRegistered", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "SubgraphServiceInvalidCurationCut", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "paymentType", - "type": "uint8" - } - ], - "name": "SubgraphServiceInvalidPaymentType", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "ravIndexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationIndexer", - "type": "address" - } - ], - "name": "SubgraphServiceInvalidRAV", - "type": "error" - }, - { - "inputs": [], - "name": "SubgraphServiceInvalidZeroStakeToFeesRatio", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "CurationCutSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - } - ], - "name": "ProvisionPendingParametersAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensCollected", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensCurators", - "type": "uint256" - } - ], - "name": "QueryFeesCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServicePaymentCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceProviderRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "ServiceProviderSlashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ServiceStopped", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "unlockTimestamp", - "type": "uint256" - } - ], - "name": "StakeClaimLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "claimId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "releasableAt", - "type": "uint256" - } - ], - "name": "StakeClaimReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimsCount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensReleased", - "type": "uint256" - } - ], - "name": "StakeClaimsReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "ratio", - "type": "uint256" - } - ], - "name": "StakeToFeesRatioSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "acceptProvisionPendingParameters", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "enum IGraphPayments.PaymentTypes", - "name": "feeType", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "collect", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "encodeAllocationProof", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "forceCloseAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lastPOIPresentedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "internalType": "struct Allocation.State", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDelegationRatio", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "getLegacyAllocation", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "internalType": "struct LegacyAllocation.State", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProvisionTokensRange", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThawingPeriodRange", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getVerifierCutRange", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "isOverAllocated", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "isStaleAllocation", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "migrateLegacyAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "numClaimsToRelease", - "type": "uint256" - } - ], - "name": "releaseStake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "resizeAllocation", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "curationCut", - "type": "uint256" - } - ], - "name": "setCurationCut", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "delegationRatio", - "type": "uint32" - } - ], - "name": "setDelegationRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "maxPOIStaleness", - "type": "uint256" - } - ], - "name": "setMaxPOIStaleness", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "minimumProvisionTokens", - "type": "uint256" - } - ], - "name": "setMinimumProvisionTokens", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "pauseGuardian", - "type": "address" - }, - { - "internalType": "bool", - "name": "allowed", - "type": "bool" - } - ], - "name": "setPauseGuardian", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "rewardsDestination", - "type": "address" - } - ], - "name": "setRewardsDestination", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "stakeToFeesRatio", - "type": "uint256" - } - ], - "name": "setStakeToFeesRatio", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "slash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "startService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "serviceProvider", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "stopService", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "acceptProvisionPendingParameters(address,bytes)": "ce0fc0cc", - "collect(address,uint8,bytes)": "b15d2a2c", - "encodeAllocationProof(address,address)": "ce56c98b", - "forceCloseAllocation(address)": "a827a90c", - "getAllocation(address)": "0e022923", - "getDelegationRatio()": "1ebb7c30", - "getLegacyAllocation(address)": "6d9a3951", - "getProvisionTokensRange()": "819ba366", - "getThawingPeriodRange()": "71ce020a", - "getVerifierCutRange()": "482468b7", - "isOverAllocated(address)": "ba38f67d", - "isStaleAllocation(address)": "3f0ed79d", - "migrateLegacyAllocation(address,address,bytes32)": "7dfe6d28", - "register(address,bytes)": "24b8fbf6", - "releaseStake(uint256)": "45f54485", - "resizeAllocation(address,address,uint256)": "81e777a7", - "setCurationCut(uint256)": "7e89bac3", - "setDelegationRatio(uint32)": "1dd42f60", - "setMaxPOIStaleness(uint256)": "7aa31bce", - "setMinimumProvisionTokens(uint256)": "832bc923", - "setPauseGuardian(address,bool)": "35577962", - "setRewardsDestination(address)": "772495c3", - "setStakeToFeesRatio(uint256)": "e6f50054", - "slash(address,bytes)": "cb8347fe", - "startService(address,bytes)": "dedf6726", - "stopService(address,bytes)": "8180083b" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"DataServiceFeesClaimNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DataServiceFeesZeroTokens\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"SubgraphServiceAllocationIsAltruistic\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"SubgraphServiceAllocationNotAuthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"SubgraphServiceCannotForceCloseAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubgraphServiceEmptyGeohash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubgraphServiceEmptyUrl\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balanceBefore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceAfter\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokensDataService\",\"type\":\"uint256\"}],\"name\":\"SubgraphServiceInconsistentCollection\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubgraphServiceIndexerAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"providedIndexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expectedIndexer\",\"type\":\"address\"}],\"name\":\"SubgraphServiceIndexerMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"SubgraphServiceIndexerNotRegistered\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"curationCut\",\"type\":\"uint256\"}],\"name\":\"SubgraphServiceInvalidCurationCut\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"paymentType\",\"type\":\"uint8\"}],\"name\":\"SubgraphServiceInvalidPaymentType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"ravIndexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationIndexer\",\"type\":\"address\"}],\"name\":\"SubgraphServiceInvalidRAV\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubgraphServiceInvalidZeroStakeToFeesRatio\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"curationCut\",\"type\":\"uint256\"}],\"name\":\"CurationCutSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"}],\"name\":\"ProvisionPendingParametersAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensCollected\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensCurators\",\"type\":\"uint256\"}],\"name\":\"QueryFeesCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServicePaymentCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"ServiceProviderSlashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ServiceStopped\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unlockTimestamp\",\"type\":\"uint256\"}],\"name\":\"StakeClaimLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"releasableAt\",\"type\":\"uint256\"}],\"name\":\"StakeClaimReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensReleased\",\"type\":\"uint256\"}],\"name\":\"StakeClaimsReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ratio\",\"type\":\"uint256\"}],\"name\":\"StakeToFeesRatioSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"acceptProvisionPendingParameters\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"enum IGraphPayments.PaymentTypes\",\"name\":\"feeType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"encodeAllocationProof\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"forceCloseAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastPOIPresentedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPerAllocatedToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPending\",\"type\":\"uint256\"}],\"internalType\":\"struct Allocation.State\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDelegationRatio\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"getLegacyAllocation\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"internalType\":\"struct LegacyAllocation.State\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvisionTokensRange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThawingPeriodRange\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVerifierCutRange\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"isOverAllocated\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"isStaleAllocation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"name\":\"migrateLegacyAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numClaimsToRelease\",\"type\":\"uint256\"}],\"name\":\"releaseStake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"resizeAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"curationCut\",\"type\":\"uint256\"}],\"name\":\"setCurationCut\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"delegationRatio\",\"type\":\"uint32\"}],\"name\":\"setDelegationRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxPOIStaleness\",\"type\":\"uint256\"}],\"name\":\"setMaxPOIStaleness\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minimumProvisionTokens\",\"type\":\"uint256\"}],\"name\":\"setMinimumProvisionTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pauseGuardian\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"setPauseGuardian\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rewardsDestination\",\"type\":\"address\"}],\"name\":\"setRewardsDestination\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"stakeToFeesRatio\",\"type\":\"uint256\"}],\"name\":\"setStakeToFeesRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"startService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"serviceProvider\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"stopService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This interface extends {IDataServiceFees} and {IDataService}.\",\"errors\":{\"SubgraphServiceAllocationIsAltruistic(address)\":[{\"params\":{\"allocationId\":\"The id of the allocation\"}}],\"SubgraphServiceAllocationNotAuthorized(address,address)\":[{\"params\":{\"allocationId\":\"The id of the allocation.\",\"indexer\":\"The address of the expected indexer.\"}}],\"SubgraphServiceCannotForceCloseAllocation(address)\":[{\"params\":{\"allocationId\":\"The id of the allocation\"}}],\"SubgraphServiceInconsistentCollection(uint256,uint256,uint256)\":[{\"params\":{\"balanceAfter\":\"The contract GRT balance after the collection\",\"balanceBefore\":\"The contract GRT balance before the collection\",\"tokensDataService\":\"The amount of tokens sent to the subgraph service\"}}],\"SubgraphServiceIndexerMismatch(address,address)\":[{\"params\":{\"expectedIndexer\":\"The address of the expected indexer.\",\"providedIndexer\":\"The address of the provided indexer.\"}}],\"SubgraphServiceIndexerNotRegistered(address)\":[{\"params\":{\"indexer\":\"The address of the indexer that is not registered\"}}],\"SubgraphServiceInvalidCurationCut(uint256)\":[{\"params\":{\"curationCut\":\"The curation cut value\"}}],\"SubgraphServiceInvalidPaymentType(uint8)\":[{\"params\":{\"paymentType\":\"The payment type that is not supported\"}}],\"SubgraphServiceInvalidRAV(address,address)\":[{\"params\":{\"allocationIndexer\":\"The address of the allocation indexer\",\"ravIndexer\":\"The address of the RAV indexer\"}}]},\"events\":{\"CurationCutSet(uint256)\":{\"params\":{\"curationCut\":\"The curation cut\"}},\"ProvisionPendingParametersAccepted(address)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\"}},\"QueryFeesCollected(address,uint256,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider\",\"tokensCollected\":\"The amount of tokens collected\",\"tokensCurators\":\"The amount of tokens curators receive\"}},\"ServicePaymentCollected(address,uint8,uint256)\":{\"params\":{\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens collected.\"}},\"ServiceProviderRegistered(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceProviderSlashed(address,uint256)\":{\"params\":{\"serviceProvider\":\"The address of the service provider.\",\"tokens\":\"The amount of tokens slashed.\"}},\"ServiceStarted(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"ServiceStopped(address,bytes)\":{\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"StakeClaimLocked(address,bytes32,uint256,uint256)\":{\"params\":{\"claimId\":\"The id of the stake claim\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens to lock in the claim\",\"unlockTimestamp\":\"The timestamp when the tokens can be released\"}},\"StakeClaimReleased(address,bytes32,uint256,uint256)\":{\"params\":{\"claimId\":\"The id of the stake claim\",\"releasableAt\":\"The timestamp when the tokens were released\",\"serviceProvider\":\"The address of the service provider\",\"tokens\":\"The amount of tokens released\"}},\"StakeClaimsReleased(address,uint256,uint256)\":{\"params\":{\"claimsCount\":\"The number of stake claims being released\",\"serviceProvider\":\"The address of the service provider\",\"tokensReleased\":\"The total amount of tokens being released\"}},\"StakeToFeesRatioSet(uint256)\":{\"params\":{\"ratio\":\"The stake to fees ratio\"}}},\"kind\":\"dev\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"details\":\"Provides a way for the data service to validate and accept provision parameter changes. Call {_acceptProvision}. Emits a {ProvisionPendingParametersAccepted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"collect(address,uint8,bytes)\":{\"details\":\"The implementation of this function is expected to interact with {GraphPayments} to collect payment from the service payer, which is done via {IGraphPayments-collect}.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"feeType\":\"The type of fee to collect as defined in {GraphPayments}.\",\"serviceProvider\":\"The address of the service provider.\"},\"returns\":{\"_0\":\"The amount of tokens collected.\"}},\"encodeAllocationProof(address,address)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\"}},\"forceCloseAllocation(address)\":{\"details\":\"This function can be permissionlessly called when the allocation is stale or if the indexer is over-allocated. This ensures that rewards for other allocations are not diluted by an inactive allocation, and that over-allocated indexers stop accumulating rewards with tokens they no longer have allocated. Requirements: - Allocation must exist and be open - Allocation must be stale or indexer must be over-allocated - Allocation cannot be altruistic Emits a {AllocationClosed} event.\",\"params\":{\"allocationId\":\"The id of the allocation\"}},\"getAllocation(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"}},\"getDelegationRatio()\":{\"returns\":{\"_0\":\"The delegation ratio\"}},\"getLegacyAllocation(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"}},\"getProvisionTokensRange()\":{\"returns\":{\"_0\":\"Minimum provision tokens allowed\",\"_1\":\"Maximum provision tokens allowed\"}},\"getThawingPeriodRange()\":{\"returns\":{\"_0\":\"Minimum thawing period allowed\",\"_1\":\"Maximum thawing period allowed\"}},\"getVerifierCutRange()\":{\"returns\":{\"_0\":\"Minimum verifier cut allowed\",\"_1\":\"Maximum verifier cut allowed\"}},\"isOverAllocated(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"},\"returns\":{\"_0\":\"True if the indexer is over-allocated, false otherwise\"}},\"isStaleAllocation(address)\":{\"params\":{\"allocationId\":\"The id of the allocation\"},\"returns\":{\"_0\":\"True if the allocation is stale, false otherwise\"}},\"migrateLegacyAllocation(address,address,bytes32)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\"}},\"register(address,bytes)\":{\"details\":\"Before registering, the service provider must have created a provision in the Graph Horizon staking contract with parameters that are compatible with the data service. Verifies provision parameters and rejects registration in the event they are not valid. Emits a {ServiceProviderRegistered} event. NOTE: Failing to accept the provision will result in the service provider operating on an unverified provision. Depending on of the data service this can be a security risk as the protocol won't be able to guarantee economic security for the consumer.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"releaseStake(uint256)\":{\"details\":\"This function is only meant to be called if the service provider has enough stake claims that releasing them all at once would exceed the block gas limit.This function can be overriden and/or disabled.Emits a {StakeClaimsReleased} event, and a {StakeClaimReleased} event for each claim released.\",\"params\":{\"numClaimsToRelease\":\"Amount of stake claims to process. If 0, all stake claims are processed.\"}},\"resizeAllocation(address,address,uint256)\":{\"details\":\"Requirements: - The indexer must be registered - The provision must be valid according to the subgraph service rules - `tokens` must be different from the current allocation size - The indexer must have enough available tokens to allocate if they are upsizing the allocation Emits a {AllocationResized} event. See {AllocationManager-_resizeAllocation} for more details.\",\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\",\"tokens\":\"The new amount of tokens in the allocation\"}},\"setCurationCut(uint256)\":{\"details\":\"Emits a {CuratorCutSet} event\",\"params\":{\"curationCut\":\"The curation cut for the payment type\"}},\"setDelegationRatio(uint32)\":{\"params\":{\"delegationRatio\":\"The delegation ratio\"}},\"setMaxPOIStaleness(uint256)\":{\"params\":{\"maxPOIStaleness\":\"The max POI staleness in seconds\"}},\"setMinimumProvisionTokens(uint256)\":{\"params\":{\"minimumProvisionTokens\":\"The minimum amount of provisioned tokens required to create an allocation\"}},\"setPauseGuardian(address,bool)\":{\"params\":{\"allowed\":\"True if the pause guardian is allowed to pause the contract, false otherwise\",\"pauseGuardian\":\"The address of the pause guardian\"}},\"setRewardsDestination(address)\":{\"details\":\"Emits a {RewardsDestinationSet} event\",\"params\":{\"rewardsDestination\":\"The address where indexing rewards should be sent\"}},\"setStakeToFeesRatio(uint256)\":{\"params\":{\"stakeToFeesRatio\":\"The stake to fees ratio\"}},\"slash(address,bytes)\":{\"details\":\"To slash the service provider's provision the function should call {Staking-slash}. Emits a {ServiceProviderSlashed} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"startService(address,bytes)\":{\"details\":\"Emits a {ServiceStarted} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}},\"stopService(address,bytes)\":{\"details\":\"Emits a {ServiceStopped} event.\",\"params\":{\"data\":\"Custom data, usage defined by the data service.\",\"serviceProvider\":\"The address of the service provider.\"}}},\"title\":\"Interface for the {SubgraphService} contract\",\"version\":1},\"userdoc\":{\"errors\":{\"DataServiceFeesClaimNotFound(bytes32)\":[{\"notice\":\"Thrown when attempting to get a stake claim that does not exist.\"}],\"DataServiceFeesZeroTokens()\":[{\"notice\":\"Emitted when trying to lock zero tokens in a stake claim\"}],\"SubgraphServiceAllocationIsAltruistic(address)\":[{\"notice\":\"Thrown when trying to force close an altruistic allocation\"}],\"SubgraphServiceAllocationNotAuthorized(address,address)\":[{\"notice\":\"Thrown when the indexer in the allocation state does not match the expected indexer.\"}],\"SubgraphServiceCannotForceCloseAllocation(address)\":[{\"notice\":\"Thrown when trying to force close an allocation that is not stale and the indexer is not over-allocated\"}],\"SubgraphServiceEmptyGeohash()\":[{\"notice\":\"Thrown when an indexer tries to register with an empty geohash\"}],\"SubgraphServiceEmptyUrl()\":[{\"notice\":\"Thrown when an indexer tries to register with an empty URL\"}],\"SubgraphServiceInconsistentCollection(uint256,uint256,uint256)\":[{\"notice\":\"Thrown when the contract GRT balance is inconsistent with the payment amount collected from Graph Payments\"}],\"SubgraphServiceIndexerAlreadyRegistered()\":[{\"notice\":\"Thrown when an indexer tries to register but they are already registered\"}],\"SubgraphServiceIndexerMismatch(address,address)\":[{\"notice\":\"@notice Thrown when the service provider in the RAV does not match the expected indexer.\"}],\"SubgraphServiceIndexerNotRegistered(address)\":[{\"notice\":\"Thrown when an indexer tries to perform an operation but they are not registered\"}],\"SubgraphServiceInvalidCurationCut(uint256)\":[{\"notice\":\"Thrown when trying to set a curation cut that is not a valid PPM value\"}],\"SubgraphServiceInvalidPaymentType(uint8)\":[{\"notice\":\"Thrown when an indexer tries to collect fees for an unsupported payment type\"}],\"SubgraphServiceInvalidRAV(address,address)\":[{\"notice\":\"Thrown when collecting a RAV where the RAV indexer is not the same as the allocation indexer\"}],\"SubgraphServiceInvalidZeroStakeToFeesRatio()\":[{\"notice\":\"Thrown when trying to set stake to fees ratio to zero\"}]},\"events\":{\"CurationCutSet(uint256)\":{\"notice\":\"Emitted when curator cuts are set\"},\"ProvisionPendingParametersAccepted(address)\":{\"notice\":\"Emitted when a service provider accepts a provision in {Graph Horizon staking contract}.\"},\"QueryFeesCollected(address,uint256,uint256)\":{\"notice\":\"Emitted when a subgraph service collects query fees from Graph Payments\"},\"ServicePaymentCollected(address,uint8,uint256)\":{\"notice\":\"Emitted when a service provider collects payment.\"},\"ServiceProviderRegistered(address,bytes)\":{\"notice\":\"Emitted when a service provider is registered with the data service.\"},\"ServiceProviderSlashed(address,uint256)\":{\"notice\":\"Emitted when a service provider is slashed.\"},\"ServiceStarted(address,bytes)\":{\"notice\":\"Emitted when a service provider starts providing the service.\"},\"ServiceStopped(address,bytes)\":{\"notice\":\"Emitted when a service provider stops providing the service.\"},\"StakeClaimLocked(address,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when a stake claim is created and stake is locked.\"},\"StakeClaimReleased(address,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when a stake claim is released and stake is unlocked.\"},\"StakeClaimsReleased(address,uint256,uint256)\":{\"notice\":\"Emitted when a series of stake claims are released.\"},\"StakeToFeesRatioSet(uint256)\":{\"notice\":\"Emitted when the stake to fees ratio is set.\"}},\"kind\":\"user\",\"methods\":{\"acceptProvisionPendingParameters(address,bytes)\":{\"notice\":\"Accepts pending parameters in the provision of a service provider in the {Graph Horizon staking contract}.\"},\"collect(address,uint8,bytes)\":{\"notice\":\"Collects payment earnt by the service provider.\"},\"encodeAllocationProof(address,address)\":{\"notice\":\"Encodes the allocation proof for EIP712 signing\"},\"forceCloseAllocation(address)\":{\"notice\":\"Force close an allocation\"},\"getAllocation(address)\":{\"notice\":\"Gets the details of an allocation For legacy allocations use {getLegacyAllocation}\"},\"getDelegationRatio()\":{\"notice\":\"External getter for the delegation ratio\"},\"getLegacyAllocation(address)\":{\"notice\":\"Gets the details of a legacy allocation For non-legacy allocations use {getAllocation}\"},\"getProvisionTokensRange()\":{\"notice\":\"External getter for the provision tokens range\"},\"getThawingPeriodRange()\":{\"notice\":\"External getter for the thawing period range\"},\"getVerifierCutRange()\":{\"notice\":\"External getter for the verifier cut range\"},\"isOverAllocated(address)\":{\"notice\":\"Checks if an indexer is over-allocated\"},\"isStaleAllocation(address)\":{\"notice\":\"Checks if an allocation is stale\"},\"migrateLegacyAllocation(address,address,bytes32)\":{\"notice\":\"Imports a legacy allocation id into the subgraph service This is a governor only action that is required to prevent indexers from re-using allocation ids from the legacy staking contract.\"},\"register(address,bytes)\":{\"notice\":\"Registers a service provider with the data service. The service provider can now start providing the service.\"},\"releaseStake(uint256)\":{\"notice\":\"Releases expired stake claims for the caller.\"},\"resizeAllocation(address,address,uint256)\":{\"notice\":\"Change the amount of tokens in an allocation\"},\"setCurationCut(uint256)\":{\"notice\":\"Sets the curators payment cut for query fees\"},\"setDelegationRatio(uint32)\":{\"notice\":\"Sets the delegation ratio\"},\"setMaxPOIStaleness(uint256)\":{\"notice\":\"Sets the max POI staleness See {AllocationManagerV1Storage-maxPOIStaleness} for more details.\"},\"setMinimumProvisionTokens(uint256)\":{\"notice\":\"Sets the minimum amount of provisioned tokens required to create an allocation\"},\"setPauseGuardian(address,bool)\":{\"notice\":\"Sets a pause guardian\"},\"setRewardsDestination(address)\":{\"notice\":\"Sets the rewards destination for an indexer to receive indexing rewards\"},\"setStakeToFeesRatio(uint256)\":{\"notice\":\"Sets the stake to fees ratio\"},\"slash(address,bytes)\":{\"notice\":\"Slash a service provider for misbehaviour.\"},\"startService(address,bytes)\":{\"notice\":\"Service provider starts providing the service.\"},\"stopService(address,bytes)\":{\"notice\":\"Service provider stops providing the service.\"}},\"notice\":\"The Subgraph Service is a data service built on top of Graph Horizon that supports the use case of subgraph indexing and querying. The {SubgraphService} contract implements the flows described in the Data Service framework to allow indexers to register as subgraph service providers, create allocations to signal their commitment to index a subgraph, and collect fees for indexing and querying services.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ISubgraphService.sol\":\"ISubgraphService\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x8d2bed66024782e98b52836a3be855fe6ae59c9bb9ba863e3d420c6ebb80f764\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e945e02d82e8fef6cb25148533acaa6579c9e70eaac6e725eb30559ba91b3f8\",\"dweb:/ipfs/QmfUei9N9Exwwmrm2gL2FKcMuyGPqUpSVKY8pKE2QeJyuz\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0xd61a4cb3fe5b91d0ac8288d85aa0cb3a8d19e78cb87e700ffb34636bf6d5853a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8fc1f600bc67f34cadaf25daf34c0f4f5e9ac8dced8353ee01853ecfbfa51d3b\",\"dweb:/ipfs/QmeidTmk5rQFtzc6S9fdA4urqewYBSdBHVfaCauPmqTFt8\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xdc1528c7429147d886323e98c4cb02076c91e1220fa25ec263aadd09841f749f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a61d43fe10ddce9df90fea94ed52c5284f78e1419548e8ca8bdfce977642c677\",\"dweb:/ipfs/Qme35BnH5DPbEGsc2MVeFJdY2uqXEhU1WVQW1E5jawYdan\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x705b640c357b931820f764b018ddf096a71e5097e7eb3f30e9be44b06f903563\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c99211c9ee8d1369cdc65981ec111935b6e86990025e096fdf240b04cf51ece2\",\"dweb:/ipfs/QmTpfFsy8njQYpHxw7XDcWHDeEv47msUDzD13m173CaV9p\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "contracts/libraries/Allocation.sol": { - "Allocation": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationAlreadyExists", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - } - ], - "name": "AllocationClosed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationDoesNotExist", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220291c9aa1e1a00cb5ec5f2f8ed26ccb21fe0b529c44b1d6c1644b12749dba75d764736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 SHR SWAP11 LOG1 0xE1 LOG0 0xC 0xB5 0xEC PUSH0 0x2F DUP15 0xD2 PUSH13 0xCB21FE0B529C44B1D6C1644B12 PUSH21 0x9DBA75D764736F6C634300081B0033000000000000 ", - "sourceMap": "220:7144:54:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;220:7144:54;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220291c9aa1e1a00cb5ec5f2f8ed26ccb21fe0b529c44b1d6c1644b12749dba75d764736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 SHR SWAP11 LOG1 0xE1 LOG0 0xC 0xB5 0xEC PUSH0 0x2F DUP15 0xD2 PUSH13 0xCB21FE0B529C44B1D6C1644B12 PUSH21 0x9DBA75D764736F6C634300081B0033000000000000 ", - "sourceMap": "220:7144:54:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"AllocationAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"}],\"name\":\"AllocationClosed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"AllocationDoesNotExist\",\"type\":\"error\"}],\"devdoc\":{\"errors\":{\"AllocationAlreadyExists(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}],\"AllocationClosed(address,uint256)\":[{\"params\":{\"allocationId\":\"The allocation id\",\"closedAt\":\"The timestamp when the allocation was closed\"}}],\"AllocationDoesNotExist(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"Allocation library\",\"version\":1},\"userdoc\":{\"errors\":{\"AllocationAlreadyExists(address)\":[{\"notice\":\"Thrown when attempting to create an allocation with an existing id\"}],\"AllocationClosed(address,uint256)\":[{\"notice\":\"Thrown when trying to perform an operation on a closed allocation\"}],\"AllocationDoesNotExist(address)\":[{\"notice\":\"Thrown when trying to perform an operation on a non-existent allocation\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"A library to handle Allocations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/Allocation.sol\":\"Allocation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xdc1528c7429147d886323e98c4cb02076c91e1220fa25ec263aadd09841f749f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a61d43fe10ddce9df90fea94ed52c5284f78e1419548e8ca8bdfce977642c677\",\"dweb:/ipfs/Qme35BnH5DPbEGsc2MVeFJdY2uqXEhU1WVQW1E5jawYdan\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "contracts/libraries/Attestation.sol": { - "Attestation": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expectedLength", - "type": "uint256" - } - ], - "name": "AttestationInvalidBytesLength", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa356496335e29bc5b636632a191a68385d839ae18bff5095b2d78d3f63eb7ae64736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STATICCALL CALLDATALOAD PUSH5 0x96335E29BC JUMPDEST PUSH4 0x6632A191 0xA6 DUP4 DUP6 0xD8 CODECOPY 0xAE XOR 0xBF CREATE2 MULMOD JUMPDEST 0x2D PUSH25 0xD3F63EB7AE64736F6C634300081B0033000000000000000000 ", - "sourceMap": "152:4376:55:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;152:4376:55;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa356496335e29bc5b636632a191a68385d839ae18bff5095b2d78d3f63eb7ae64736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STATICCALL CALLDATALOAD PUSH5 0x96335E29BC JUMPDEST PUSH4 0x6632A191 0xA6 DUP4 DUP6 0xD8 CODECOPY 0xAE XOR 0xBF CREATE2 MULMOD JUMPDEST 0x2D PUSH25 0xD3F63EB7AE64736F6C634300081B0033000000000000000000 ", - "sourceMap": "152:4376:55:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedLength\",\"type\":\"uint256\"}],\"name\":\"AttestationInvalidBytesLength\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Attestation library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A library to handle Attestation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/Attestation.sol\":\"Attestation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x25271cc1233cb1853a2e3a070d5143268384b09d2368ff1fa78c25bddc80d5d4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0176185c14b41702bdfa60dc0fd27626a33f4dbf3289b1e28ef51abb37e0e125\",\"dweb:/ipfs/QmbHLdmPNRby5eyG6dFuUWHUg8aBUQSjD9E7QCgqfPxjNB\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "contracts/libraries/LegacyAllocation.sol": { - "LegacyAllocation": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "LegacyAllocationAlreadyMigrated", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "LegacyAllocationDoesNotExist", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "LegacyAllocationExists", - "type": "error" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220470e3c1f93a943319bd2758940bf40c2421579802938427096997bb3795f5e8964736f6c634300081b0033", - "opcodes": "PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE 0xE EXTCODECOPY 0x1F SWAP4 0xA9 NUMBER BALANCE SWAP12 0xD2 PUSH22 0x8940BF40C2421579802938427096997BB3795F5E8964 PUSH20 0x6F6C634300081B00330000000000000000000000 ", - "sourceMap": "164:3349:56:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;164:3349:56;;;;;;;;;;;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220470e3c1f93a943319bd2758940bf40c2421579802938427096997bb3795f5e8964736f6c634300081b0033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE 0xE EXTCODECOPY 0x1F SWAP4 0xA9 NUMBER BALANCE SWAP12 0xD2 PUSH22 0x8940BF40C2421579802938427096997BB3795F5E8964 PUSH20 0x6F6C634300081B00330000000000000000000000 ", - "sourceMap": "164:3349:56:-:0;;;;;;;;" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"LegacyAllocationAlreadyMigrated\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"LegacyAllocationDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"LegacyAllocationExists\",\"type\":\"error\"}],\"devdoc\":{\"errors\":{\"LegacyAllocationAlreadyMigrated(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}],\"LegacyAllocationDoesNotExist(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}],\"LegacyAllocationExists(address)\":[{\"params\":{\"allocationId\":\"The allocation id\"}}]},\"kind\":\"dev\",\"methods\":{},\"title\":\"LegacyAllocation library\",\"version\":1},\"userdoc\":{\"errors\":{\"LegacyAllocationAlreadyMigrated(address)\":[{\"notice\":\"Thrown when trying to migrate an allocation that has already been migrated\"}],\"LegacyAllocationDoesNotExist(address)\":[{\"notice\":\"Thrown when trying to get a non-existent allocation\"}],\"LegacyAllocationExists(address)\":[{\"notice\":\"Thrown when attempting to migrate an allocation with an existing id\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"A library to handle legacy Allocations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/LegacyAllocation.sol\":\"LegacyAllocation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x705b640c357b931820f764b018ddf096a71e5097e7eb3f30e9be44b06f903563\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c99211c9ee8d1369cdc65981ec111935b6e86990025e096fdf240b04cf51ece2\",\"dweb:/ipfs/QmTpfFsy8njQYpHxw7XDcWHDeEv47msUDzD13m173CaV9p\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - }, - "contracts/utilities/AllocationManager.sol": { - "AllocationManager": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationManagerAllocationClosed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationManagerAllocationSameSize", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "AllocationManagerInvalidAllocationProof", - "type": "error" - }, - { - "inputs": [], - "name": "AllocationManagerInvalidZeroAllocationId", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "contractName", - "type": "bytes" - } - ], - "name": "GraphDirectoryInvalidZeroAddress", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "name": "AllocationCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newTokens", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "oldTokens", - "type": "uint256" - } - ], - "name": "AllocationResized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "EIP712DomainChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "graphToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphStaking", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphPayments", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEscrow", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "graphController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphEpochManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphRewardsManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphTokenGateway", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphProxyAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "graphCuration", - "type": "address" - } - ], - "name": "GraphDirectoryInitialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensIndexerRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokensDelegationRewards", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "poi", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "currentEpoch", - "type": "uint256" - } - ], - "name": "IndexingRewardsCollected", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "allocationId", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "LegacyAllocationMigrated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "maxPOIStaleness", - "type": "uint256" - } - ], - "name": "MaxPOIStalenessSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "rewardsDestination", - "type": "address" - } - ], - "name": "RewardsDestinationSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "allocationProvisionTracker", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "allocations", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lastPOIPresentedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "eip712Domain", - "outputs": [ - { - "internalType": "bytes1", - "name": "fields", - "type": "bytes1" - }, - { - "internalType": "string", - "name": "name", - "type": "string" - }, - { - "internalType": "string", - "name": "version", - "type": "string" - }, - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "verifyingContract", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "uint256[]", - "name": "extensions", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "legacyAllocations", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxPOIStaleness", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "rewardsDestination", - "outputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "subgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "allocationProvisionTracker(address)": "6234e216", - "allocations(address)": "52a9039c", - "eip712Domain()": "84b0196e", - "legacyAllocations(address)": "93d4e7cb", - "maxPOIStaleness()": "85e82baf", - "rewardsDestination(address)": "7203ca78", - "subgraphAllocatedTokens(bytes32)": "3afd23fe" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"AllocationManagerAllocationClosed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"AllocationManagerAllocationSameSize\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"AllocationManagerInvalidAllocationProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllocationManagerInvalidZeroAllocationId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"contractName\",\"type\":\"bytes\"}],\"name\":\"GraphDirectoryInvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"AllocationClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"name\":\"AllocationCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newTokens\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldTokens\",\"type\":\"uint256\"}],\"name\":\"AllocationResized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphStaking\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphPayments\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEscrow\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"graphController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphEpochManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphRewardsManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphTokenGateway\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphProxyAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"graphCuration\",\"type\":\"address\"}],\"name\":\"GraphDirectoryInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensRewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensIndexerRewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensDelegationRewards\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poi\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"currentEpoch\",\"type\":\"uint256\"}],\"name\":\"IndexingRewardsCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"name\":\"LegacyAllocationMigrated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxPOIStaleness\",\"type\":\"uint256\"}],\"name\":\"MaxPOIStalenessSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rewardsDestination\",\"type\":\"address\"}],\"name\":\"RewardsDestinationSet\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"allocationProvisionTracker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"allocations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastPOIPresentedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPerAllocatedToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPending\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"legacyAllocations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPOIStaleness\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"rewardsDestination\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"name\":\"subgraphAllocatedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AllocationManagerAllocationClosed(address)\":[{\"params\":{\"allocationId\":\"The id of the allocation\"}}],\"AllocationManagerAllocationSameSize(address,uint256)\":[{\"params\":{\"allocationId\":\"The id of the allocation\",\"tokens\":\"The amount of tokens\"}}],\"AllocationManagerInvalidAllocationProof(address,address)\":[{\"params\":{\"allocationId\":\"The id of the allocation\",\"signer\":\"The address that signed the proof\"}}],\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"params\":{\"contractName\":\"The name of the contract that was not found, or the controller\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"AllocationClosed(address,address,bytes32,uint256)\":{\"details\":\"Emitted when an indexer closes an allocation\",\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\",\"tokens\":\"The amount of tokens allocated\"}},\"AllocationCreated(address,address,bytes32,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\",\"tokens\":\"The amount of tokens allocated\"}},\"AllocationResized(address,address,bytes32,uint256,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\",\"newTokens\":\"The new amount of tokens allocated\",\"oldTokens\":\"The old amount of tokens allocated\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"params\":{\"graphController\":\"The Graph Controller contract address\",\"graphCuration\":\"The Curation contract address\",\"graphEpochManager\":\"The Epoch Manager contract address\",\"graphEscrow\":\"The Payments Escrow contract address\",\"graphPayments\":\"The Graph Payments contract address\",\"graphProxyAdmin\":\"The Graph Proxy Admin contract address\",\"graphRewardsManager\":\"The Rewards Manager contract address\",\"graphStaking\":\"The Horizon Staking contract address\",\"graphToken\":\"The Graph Token contract address\",\"graphTokenGateway\":\"The Token Gateway contract address\"}},\"IndexingRewardsCollected(address,address,bytes32,uint256,uint256,uint256,bytes32,uint256)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"currentEpoch\":\"The current epoch\",\"indexer\":\"The address of the indexer\",\"poi\":\"The POI presented\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\",\"tokensDelegationRewards\":\"The amount of tokens collected for delegators\",\"tokensIndexerRewards\":\"The amount of tokens collected for the indexer\",\"tokensRewards\":\"The amount of tokens collected\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"LegacyAllocationMigrated(address,address,bytes32)\":{\"params\":{\"allocationId\":\"The id of the allocation\",\"indexer\":\"The address of the indexer\",\"subgraphDeploymentId\":\"The id of the subgraph deployment\"}},\"MaxPOIStalenessSet(uint256)\":{\"params\":{\"maxPOIStaleness\":\"The max POI staleness in seconds\"}},\"RewardsDestinationSet(address,address)\":{\"params\":{\"indexer\":\"The address of the indexer\",\"rewardsDestination\":\"The address where indexing rewards should be sent\"}}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"See {IERC-5267}.\"}},\"stateVariables\":{\"EIP712_ALLOCATION_PROOF_TYPEHASH\":{\"details\":\"EIP712 typehash for allocation proof\"}},\"title\":\"AllocationManager contract\",\"version\":1},\"userdoc\":{\"errors\":{\"AllocationManagerAllocationClosed(address)\":[{\"notice\":\"Thrown when attempting to collect indexing rewards on a closed allocationl\"}],\"AllocationManagerAllocationSameSize(address,uint256)\":[{\"notice\":\"Thrown when attempting to resize an allocation with the same size\"}],\"AllocationManagerInvalidAllocationProof(address,address)\":[{\"notice\":\"Thrown when an allocation proof is invalid Both `signer` and `allocationId` should match for a valid proof.\"}],\"AllocationManagerInvalidZeroAllocationId()\":[{\"notice\":\"Thrown when attempting to create an allocation with a zero allocation id\"}],\"GraphDirectoryInvalidZeroAddress(bytes)\":[{\"notice\":\"Thrown when either the controller is the zero address or a contract address is not found on the controller\"}]},\"events\":{\"AllocationCreated(address,address,bytes32,uint256)\":{\"notice\":\"Emitted when an indexer creates an allocation\"},\"AllocationResized(address,address,bytes32,uint256,uint256)\":{\"notice\":\"Emitted when an indexer resizes an allocation\"},\"GraphDirectoryInitialized(address,address,address,address,address,address,address,address,address,address)\":{\"notice\":\"Emitted when the GraphDirectory is initialized\"},\"IndexingRewardsCollected(address,address,bytes32,uint256,uint256,uint256,bytes32,uint256)\":{\"notice\":\"Emitted when an indexer collects indexing rewards for an allocation\"},\"LegacyAllocationMigrated(address,address,bytes32)\":{\"notice\":\"Emitted when a legacy allocation is migrated into the subgraph service\"},\"MaxPOIStalenessSet(uint256)\":{\"notice\":\"Emitted when the maximum POI staleness is updated\"},\"RewardsDestinationSet(address,address)\":{\"notice\":\"Emitted when an indexer sets a new indexing rewards destination\"}},\"kind\":\"user\",\"methods\":{\"allocationProvisionTracker(address)\":{\"notice\":\"Tracks allocated tokens per indexer\"},\"allocations(address)\":{\"notice\":\"Allocation details\"},\"legacyAllocations(address)\":{\"notice\":\"Legacy allocation details\"},\"maxPOIStaleness()\":{\"notice\":\"Maximum amount of time, in seconds, allowed between presenting POIs to qualify for indexing rewards\"},\"rewardsDestination(address)\":{\"notice\":\"Destination of accrued indexing rewards\"},\"subgraphAllocatedTokens(bytes32)\":{\"notice\":\"Track total tokens allocated per subgraph deployment\"}},\"notice\":\"A helper contract implementing allocation lifecycle management. Allows opening, resizing, and closing allocations, as well as collecting indexing rewards by presenting a Proof of Indexing (POI).\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utilities/AllocationManager.sol\":\"AllocationManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/arbitrum/ITokenGateway.sol\":{\"keccak256\":\"0x3cbcc6e4629543a99acacc7ee4ffa6c063b9fb17d3597ccd2f9481008e3633bd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d6bb0bb830b67d579e57a261e5f5d9e90b32dc006b02badbecf1f6c82c0a5100\",\"dweb:/ipfs/Qmd38iNXZpinwbNRJPEAA8r9bmmtRwjTSK1SkmH47ge4kJ\"]},\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":{\"keccak256\":\"0x17e4db429003cab08cd2859db94b95e0cee1f9478c1881903a4104def8fdc048\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://52ed58228a0e92aeb3493473a6e02f92d26a4e4eb0c46d38dd446e3bfcb6691e\",\"dweb:/ipfs/QmZzWxHAztdz2Q7cobqVEf4ExGpNuqWJFYgs2oHCgApjW6\"]},\"@graphprotocol/contracts/contracts/epochs/IEpochManager.sol\":{\"keccak256\":\"0x0f4b3a3569c023d2610d0d8b37b3ecb0b67f848d77aa063bb311756670017e85\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://df7c43568e554b301134aa2c58e4889ad0d3dcfec40e834b63621a43f39da154\",\"dweb:/ipfs/QmZeSV9AM6FKCkH9QYyF7i5nVggseEJXbvWbtrgUeXqQpo\"]},\"@graphprotocol/contracts/contracts/governance/IController.sol\":{\"keccak256\":\"0xe37df86cdea385d708ba00862cd9e04940e4f2aa50354fb3a9d2d4f505d5509a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0f6c9fd2b7a8c5a6b89ef12c7423144df04a5f251d5480be1b73c74a785ff12a\",\"dweb:/ipfs/QmYpiCQoxbDEYQ2FNA39Z4FGfoxfQ8jvH1Z3ccrqguQFMP\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsIssuer.sol\":{\"keccak256\":\"0x1aa1346592e17eaa4a2711e584c33ed3887c6290eee4c74abac6a1dac5600d47\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://90b853048a0c88ef983370786fed2338d43b2293f9396107aba36ff87de8cbd1\",\"dweb:/ipfs/QmVCKC45HbzsYjzntCcffDEjv2DLsdUb3sBhf2ouknBK9D\"]},\"@graphprotocol/contracts/contracts/rewards/IRewardsManager.sol\":{\"keccak256\":\"0x5b4e4b27c41121831d28a6a71ed90fcb44c34d2d3e722993dac74c239ad653fd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9312944c7b9f5f5901e6b899e11838a628c5a146b6ee70f2bd4664010d652e68\",\"dweb:/ipfs/QmYMjrhnL5pefMQfSf64wFrqmqEAYgxoyf3jb8g2jz1kMc\"]},\"@graphprotocol/contracts/contracts/token/IGraphToken.sol\":{\"keccak256\":\"0x2ffad6798d641c8d1288730be725c43041c803caceaf6d9985122d000ad5761c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5f782a5670037fc9223dc20fd4f99c0277a9bec7d08f7800b0a0733e819a07cb\",\"dweb:/ipfs/QmP3K2QnmukScCh1nzgphYdg7AiAuTaT914jq4txLYNpra\"]},\"@graphprotocol/contracts/contracts/utils/TokenUtils.sol\":{\"keccak256\":\"0x7bd336193785ed6f09a3bd847f9208f64aa9b87ad67c40838d00fec41bb153d5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d96d83cdb9bbb567e4eafac8bdef3ff6bdaf426338baf76bae277c11afb33cee\",\"dweb:/ipfs/QmNjr4PiJ76Wc5mFqa9H88BjsEMrUfy1jiftNHYTgd6Mp5\"]},\"@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol\":{\"keccak256\":\"0x9012127a1b1dc8a3f75ad49925632faecca8bcb46f42ab7d1ac0af83a7514f9c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b002f1f6759e7ced37f161706bc4b787ba7534fb4326ae7ab395270926292c42\",\"dweb:/ipfs/QmRVDPWMbrijk14sywXTbnKdueVBgADBB7h8F9aGA4DgSZ\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphProxyAdmin.sol\":{\"keccak256\":\"0xa9c752ea887bd2a3637934b5f197526b6fac46b0b924deb75a8d224290ccbc95\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e0a6625b4175959cd53af91a3741c12fb1fa2e91e0ab2302dff8a06bf7a66781\",\"dweb:/ipfs/QmPMoc5DN9gZr22gWkKGQDgJ8eqK1pChGQYTbPLC9LDCiY\"]},\"@graphprotocol/horizon/contracts/interfaces/IHorizonStaking.sol\":{\"keccak256\":\"0xa32bd068b2a6a6cdd3863439aa280b29718ebb0a94da59e5806455c75af7994e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d1cdd344d026af2fc6e136337f9f86354d1b2731a6076e498c2ffd370705cdb5\",\"dweb:/ipfs/QmZe4rGR9gvyWP9ENDGLWxcB5a67qvbqbFKKhr9Di7VkEN\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsEscrow.sol\":{\"keccak256\":\"0x04da4bb0cfc6db397d6140ae72d6a4ffcadb19b5a8fc654ae3fd1550b64526ff\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9dca21008f5cf563d1863148b151d103b92a99c7bb0fe4667fdd9236bfa9881e\",\"dweb:/ipfs/QmPBfG7s2ajEYn35oJk6TjQ6wCQ7FNVAuZnzXbAENbKF9i\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingBase.sol\":{\"keccak256\":\"0x2aa4aa3745b13f9cadcbf3f93888ebbaa8f5d1da3b6f845f1741d51b16ff9944\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://290e13fd3dc9170244aaa4c6e5f5646878d011ee25024926d4d60d40eb6cf8c9\",\"dweb:/ipfs/QmPWwXxhnxmNSUpVF6caT1cXVtV2c1ackJiMzAbUG4z6Fo\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol\":{\"keccak256\":\"0xbb225acac73f4245b30a8fe9c0bf4bcc8b310f40da526a0447a2303f1ca63e96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://207826b2277a0bd42b8a4d8825f6b16e46d6dc8039e4027faa22df462aa06079\",\"dweb:/ipfs/QmYS177dKBuY7iRUdwBMHxSMd6SfNpARTApLHMLgFCozTy\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingMain.sol\":{\"keccak256\":\"0xd161d01d49ec47200c1c8374d11ad7d9a2c1776a2f87c546f78535ffa33b3954\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7da68f651214064c6afb1b43955879a2eaea6076c44e92975abf31735b0e1012\",\"dweb:/ipfs/QmZBHtfqhzWsv1oWy73pR8zabgLnhqpiWhknK4TzrPBhV2\"]},\"@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol\":{\"keccak256\":\"0xf1426559b911f2c10d750c6e4f2e406b752561484132008c9acd43afd8f93af9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://695b61f4bf5993b872c5362bade240fb98fe1fbdcc2f834e12ff61c84d640116\",\"dweb:/ipfs/QmRcE4NyTUBXbXRCtMJv19GUABNWztAY2iXpFTbpKvKBnA\"]},\"@graphprotocol/horizon/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x44b2d65992b15bb7d0a9d2f397a5d55450da36054b5a174a82cea484081b5ee1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://34c61d8ec1b3314b4ea5b4afb556ed78ffa177e3ac8bd5e3e235ba5afad2f95b\",\"dweb:/ipfs/QmdwvTpdmKPCzebZWKVK8Y1ooUDKpeWeKk9FgxQHdoMmDU\"]},\"@graphprotocol/horizon/contracts/libraries/PPMMath.sol\":{\"keccak256\":\"0x2bc503df758ca7fcc2a741b41350158a53e295974a37478336f2ed8b76e460a5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://24af9fe8ca1e0daae752a4b331b77c3a268a2a358e2e34a50df8ef283dd8670f\",\"dweb:/ipfs/QmYBJAMWHeiWWepGTTdkUSN4Vn2oP4GvyeqiwDK1TVdfce\"]},\"@graphprotocol/horizon/contracts/utilities/GraphDirectory.sol\":{\"keccak256\":\"0x1be743a301a082944c78ba37b48c466ebc47d2ddd94529a3e05ed828e4413c68\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://663e05ec37777a21b344acb96235db183dcfac14e42048cfc921ab2038cd77d1\",\"dweb:/ipfs/QmY5mQ2L3BLrB8TDNXadDhjR2nCb7ssNPTJ6zegJnC5bjq\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x85462422a22578744581e012e9aa0a391958cb360288b0b63f29bf0431d70327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bc529e2b9b28da5d26da451058250d85afcaa3c5083ee273ac68fa6bf956b78\",\"dweb:/ipfs/Qmd3Aq59ztmoVmHigsaR4YjkXWKERVpjfQ4a2PHk7Ke6Rx\"]},\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xdc1528c7429147d886323e98c4cb02076c91e1220fa25ec263aadd09841f749f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a61d43fe10ddce9df90fea94ed52c5284f78e1419548e8ca8bdfce977642c677\",\"dweb:/ipfs/Qme35BnH5DPbEGsc2MVeFJdY2uqXEhU1WVQW1E5jawYdan\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x705b640c357b931820f764b018ddf096a71e5097e7eb3f30e9be44b06f903563\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c99211c9ee8d1369cdc65981ec111935b6e86990025e096fdf240b04cf51ece2\",\"dweb:/ipfs/QmTpfFsy8njQYpHxw7XDcWHDeEv47msUDzD13m173CaV9p\"]},\"contracts/utilities/AllocationManager.sol\":{\"keccak256\":\"0xc24b976ce48a98b22cc22c50cc704ec2f5624e753d8cc2a16ede76109345624e\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://009aee0ceb4cb423d389a2dad841e9ba39845d0385d507aca47fd49680de3908\",\"dweb:/ipfs/QmXnSEpeFmN6zbbuUJ1w37Sjhgag3h7vjZLi819BdtTUeF\"]},\"contracts/utilities/AllocationManagerStorage.sol\":{\"keccak256\":\"0x4e5f682e3c67a101ddefb795d43f27ef5ed9b458dc348b85e4f2290c01cf48a8\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dd557b9537c581bbb4bcb5843c03289cf9101236790e33e206621068ff4431b7\",\"dweb:/ipfs/QmcmDDBuGnrNmud7oS79FRsLwb88Ebkqxg8Ws3vQSSs8xQ\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 13042, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "allocations", - "offset": 0, - "slot": "0", - "type": "t_mapping(t_address,t_struct(State)11307_storage)" - }, - { - "astId": 13048, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "legacyAllocations", - "offset": 0, - "slot": "1", - "type": "t_mapping(t_address,t_struct(State)11933_storage)" - }, - { - "astId": 13053, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "allocationProvisionTracker", - "offset": 0, - "slot": "2", - "type": "t_mapping(t_address,t_uint256)" - }, - { - "astId": 13056, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "maxPOIStaleness", - "offset": 0, - "slot": "3", - "type": "t_uint256" - }, - { - "astId": 13061, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "rewardsDestination", - "offset": 0, - "slot": "4", - "type": "t_mapping(t_address,t_address)" - }, - { - "astId": 13066, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "subgraphAllocatedTokens", - "offset": 0, - "slot": "5", - "type": "t_mapping(t_bytes32,t_uint256)" - }, - { - "astId": 13071, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "__gap", - "offset": 0, - "slot": "6", - "type": "t_array(t_uint256)50_storage" - } - ], - "types": { - "t_address": { - "encoding": "inplace", - "label": "address", - "numberOfBytes": "20" - }, - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_bytes32": { - "encoding": "inplace", - "label": "bytes32", - "numberOfBytes": "32" - }, - "t_mapping(t_address,t_address)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => address)", - "numberOfBytes": "32", - "value": "t_address" - }, - "t_mapping(t_address,t_struct(State)11307_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct Allocation.State)", - "numberOfBytes": "32", - "value": "t_struct(State)11307_storage" - }, - "t_mapping(t_address,t_struct(State)11933_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct LegacyAllocation.State)", - "numberOfBytes": "32", - "value": "t_struct(State)11933_storage" - }, - "t_mapping(t_address,t_uint256)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => uint256)", - "numberOfBytes": "32", - "value": "t_uint256" - }, - "t_mapping(t_bytes32,t_uint256)": { - "encoding": "mapping", - "key": "t_bytes32", - "label": "mapping(bytes32 => uint256)", - "numberOfBytes": "32", - "value": "t_uint256" - }, - "t_struct(State)11307_storage": { - "encoding": "inplace", - "label": "struct Allocation.State", - "members": [ - { - "astId": 11292, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "indexer", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 11294, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "subgraphDeploymentId", - "offset": 0, - "slot": "1", - "type": "t_bytes32" - }, - { - "astId": 11296, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "tokens", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 11298, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "createdAt", - "offset": 0, - "slot": "3", - "type": "t_uint256" - }, - { - "astId": 11300, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "closedAt", - "offset": 0, - "slot": "4", - "type": "t_uint256" - }, - { - "astId": 11302, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "lastPOIPresentedAt", - "offset": 0, - "slot": "5", - "type": "t_uint256" - }, - { - "astId": 11304, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "accRewardsPerAllocatedToken", - "offset": 0, - "slot": "6", - "type": "t_uint256" - }, - { - "astId": 11306, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "accRewardsPending", - "offset": 0, - "slot": "7", - "type": "t_uint256" - } - ], - "numberOfBytes": "256" - }, - "t_struct(State)11933_storage": { - "encoding": "inplace", - "label": "struct LegacyAllocation.State", - "members": [ - { - "astId": 11930, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "indexer", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 11932, - "contract": "contracts/utilities/AllocationManager.sol:AllocationManager", - "label": "subgraphDeploymentId", - "offset": 0, - "slot": "1", - "type": "t_bytes32" - } - ], - "numberOfBytes": "64" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - } - } - } - } - }, - "contracts/utilities/AllocationManagerStorage.sol": { - "AllocationManagerV1Storage": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "allocationProvisionTracker", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "allocations", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "closedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lastPOIPresentedAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPerAllocatedToken", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "accRewardsPending", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "allocationId", - "type": "address" - } - ], - "name": "legacyAllocations", - "outputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "maxPOIStaleness", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "indexer", - "type": "address" - } - ], - "name": "rewardsDestination", - "outputs": [ - { - "internalType": "address", - "name": "destination", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "subgraphDeploymentId", - "type": "bytes32" - } - ], - "name": "subgraphAllocatedTokens", - "outputs": [ - { - "internalType": "uint256", - "name": "tokens", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "allocationProvisionTracker(address)": "6234e216", - "allocations(address)": "52a9039c", - "legacyAllocations(address)": "93d4e7cb", - "maxPOIStaleness()": "85e82baf", - "rewardsDestination(address)": "7203ca78", - "subgraphAllocatedTokens(bytes32)": "3afd23fe" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"allocationProvisionTracker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"allocations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"closedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastPOIPresentedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPerAllocatedToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accRewardsPending\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocationId\",\"type\":\"address\"}],\"name\":\"legacyAllocations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxPOIStaleness\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"indexer\",\"type\":\"address\"}],\"name\":\"rewardsDestination\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"subgraphDeploymentId\",\"type\":\"bytes32\"}],\"name\":\"subgraphAllocatedTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"Gap to allow adding variables in future upgrades\"},\"subgraphAllocatedTokens\":{\"details\":\"Used to calculate indexing rewards\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allocationProvisionTracker(address)\":{\"notice\":\"Tracks allocated tokens per indexer\"},\"allocations(address)\":{\"notice\":\"Allocation details\"},\"legacyAllocations(address)\":{\"notice\":\"Legacy allocation details\"},\"maxPOIStaleness()\":{\"notice\":\"Maximum amount of time, in seconds, allowed between presenting POIs to qualify for indexing rewards\"},\"rewardsDestination(address)\":{\"notice\":\"Destination of accrued indexing rewards\"},\"subgraphAllocatedTokens(bytes32)\":{\"notice\":\"Track total tokens allocated per subgraph deployment\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utilities/AllocationManagerStorage.sol\":\"AllocationManagerV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xdc1528c7429147d886323e98c4cb02076c91e1220fa25ec263aadd09841f749f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a61d43fe10ddce9df90fea94ed52c5284f78e1419548e8ca8bdfce977642c677\",\"dweb:/ipfs/Qme35BnH5DPbEGsc2MVeFJdY2uqXEhU1WVQW1E5jawYdan\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x705b640c357b931820f764b018ddf096a71e5097e7eb3f30e9be44b06f903563\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c99211c9ee8d1369cdc65981ec111935b6e86990025e096fdf240b04cf51ece2\",\"dweb:/ipfs/QmTpfFsy8njQYpHxw7XDcWHDeEv47msUDzD13m173CaV9p\"]},\"contracts/utilities/AllocationManagerStorage.sol\":{\"keccak256\":\"0x4e5f682e3c67a101ddefb795d43f27ef5ed9b458dc348b85e4f2290c01cf48a8\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://dd557b9537c581bbb4bcb5843c03289cf9101236790e33e206621068ff4431b7\",\"dweb:/ipfs/QmcmDDBuGnrNmud7oS79FRsLwb88Ebkqxg8Ws3vQSSs8xQ\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 13042, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "allocations", - "offset": 0, - "slot": "0", - "type": "t_mapping(t_address,t_struct(State)11307_storage)" - }, - { - "astId": 13048, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "legacyAllocations", - "offset": 0, - "slot": "1", - "type": "t_mapping(t_address,t_struct(State)11933_storage)" - }, - { - "astId": 13053, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "allocationProvisionTracker", - "offset": 0, - "slot": "2", - "type": "t_mapping(t_address,t_uint256)" - }, - { - "astId": 13056, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "maxPOIStaleness", - "offset": 0, - "slot": "3", - "type": "t_uint256" - }, - { - "astId": 13061, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "rewardsDestination", - "offset": 0, - "slot": "4", - "type": "t_mapping(t_address,t_address)" - }, - { - "astId": 13066, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "subgraphAllocatedTokens", - "offset": 0, - "slot": "5", - "type": "t_mapping(t_bytes32,t_uint256)" - }, - { - "astId": 13071, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "__gap", - "offset": 0, - "slot": "6", - "type": "t_array(t_uint256)50_storage" - } - ], - "types": { - "t_address": { - "encoding": "inplace", - "label": "address", - "numberOfBytes": "20" - }, - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_bytes32": { - "encoding": "inplace", - "label": "bytes32", - "numberOfBytes": "32" - }, - "t_mapping(t_address,t_address)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => address)", - "numberOfBytes": "32", - "value": "t_address" - }, - "t_mapping(t_address,t_struct(State)11307_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct Allocation.State)", - "numberOfBytes": "32", - "value": "t_struct(State)11307_storage" - }, - "t_mapping(t_address,t_struct(State)11933_storage)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => struct LegacyAllocation.State)", - "numberOfBytes": "32", - "value": "t_struct(State)11933_storage" - }, - "t_mapping(t_address,t_uint256)": { - "encoding": "mapping", - "key": "t_address", - "label": "mapping(address => uint256)", - "numberOfBytes": "32", - "value": "t_uint256" - }, - "t_mapping(t_bytes32,t_uint256)": { - "encoding": "mapping", - "key": "t_bytes32", - "label": "mapping(bytes32 => uint256)", - "numberOfBytes": "32", - "value": "t_uint256" - }, - "t_struct(State)11307_storage": { - "encoding": "inplace", - "label": "struct Allocation.State", - "members": [ - { - "astId": 11292, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "indexer", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 11294, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "subgraphDeploymentId", - "offset": 0, - "slot": "1", - "type": "t_bytes32" - }, - { - "astId": 11296, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "tokens", - "offset": 0, - "slot": "2", - "type": "t_uint256" - }, - { - "astId": 11298, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "createdAt", - "offset": 0, - "slot": "3", - "type": "t_uint256" - }, - { - "astId": 11300, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "closedAt", - "offset": 0, - "slot": "4", - "type": "t_uint256" - }, - { - "astId": 11302, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "lastPOIPresentedAt", - "offset": 0, - "slot": "5", - "type": "t_uint256" - }, - { - "astId": 11304, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "accRewardsPerAllocatedToken", - "offset": 0, - "slot": "6", - "type": "t_uint256" - }, - { - "astId": 11306, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "accRewardsPending", - "offset": 0, - "slot": "7", - "type": "t_uint256" - } - ], - "numberOfBytes": "256" - }, - "t_struct(State)11933_storage": { - "encoding": "inplace", - "label": "struct LegacyAllocation.State", - "members": [ - { - "astId": 11930, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "indexer", - "offset": 0, - "slot": "0", - "type": "t_address" - }, - { - "astId": 11932, - "contract": "contracts/utilities/AllocationManagerStorage.sol:AllocationManagerV1Storage", - "label": "subgraphDeploymentId", - "offset": 0, - "slot": "1", - "type": "t_bytes32" - } - ], - "numberOfBytes": "64" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - } - } - } - } - }, - "contracts/utilities/AttestationManager.sol": { - "AttestationManager": { - "abi": [ - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"title\":\"AttestationManager contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"A helper contract implementing attestation verification. Uses a custom implementation of EIP712 for backwards compatibility with attestations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utilities/AttestationManager.sol\":\"AttestationManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x25271cc1233cb1853a2e3a070d5143268384b09d2368ff1fa78c25bddc80d5d4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0176185c14b41702bdfa60dc0fd27626a33f4dbf3289b1e28ef51abb37e0e125\",\"dweb:/ipfs/QmbHLdmPNRby5eyG6dFuUWHUg8aBUQSjD9E7QCgqfPxjNB\"]},\"contracts/utilities/AttestationManager.sol\":{\"keccak256\":\"0xb50da53c59205cf06bec2263238d89d6df6d72522a1e555bfe2c3ca8558c8f88\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://18241c6b621d825234a62dc08a7f7e87b2e3e23caa5f618a74a1c48cde46052e\",\"dweb:/ipfs/QmWvo16uoasqBMVVLr557gyMsCq2Nts7EakgkdwJZuRHiF\"]},\"contracts/utilities/AttestationManagerStorage.sol\":{\"keccak256\":\"0xc14058d90b97806df0f43acfce6bc984c17ded00511ea9d7dd559d897fed7cf7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df851043d7e2b5f0eaa611141cbc2b594c3ece4ba4e7f040215095d7bdef7ea0\",\"dweb:/ipfs/Qmf5PBxRP4dCtPonNdeoHrgmCYZDogzx4vMEsLM3h5JQDs\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 13231, - "contract": "contracts/utilities/AttestationManager.sol:AttestationManager", - "label": "_domainSeparator", - "offset": 0, - "slot": "0", - "type": "t_bytes32" - }, - { - "astId": 13236, - "contract": "contracts/utilities/AttestationManager.sol:AttestationManager", - "label": "__gap", - "offset": 0, - "slot": "1", - "type": "t_array(t_uint256)50_storage" - } - ], - "types": { - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_bytes32": { - "encoding": "inplace", - "label": "bytes32", - "numberOfBytes": "32" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - } - } - } - } - }, - "contracts/utilities/AttestationManagerStorage.sol": { - "AttestationManagerV1Storage": { - "abi": [], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"Gap to allow adding variables in future upgrades\"},\"_domainSeparator\":{\"details\":\"EIP712 domain separator\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utilities/AttestationManagerStorage.sol\":\"AttestationManagerV1Storage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"contracts/utilities/AttestationManagerStorage.sol\":{\"keccak256\":\"0xc14058d90b97806df0f43acfce6bc984c17ded00511ea9d7dd559d897fed7cf7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://df851043d7e2b5f0eaa611141cbc2b594c3ece4ba4e7f040215095d7bdef7ea0\",\"dweb:/ipfs/Qmf5PBxRP4dCtPonNdeoHrgmCYZDogzx4vMEsLM3h5JQDs\"]}},\"version\":1}", - "storageLayout": { - "storage": [ - { - "astId": 13231, - "contract": "contracts/utilities/AttestationManagerStorage.sol:AttestationManagerV1Storage", - "label": "_domainSeparator", - "offset": 0, - "slot": "0", - "type": "t_bytes32" - }, - { - "astId": 13236, - "contract": "contracts/utilities/AttestationManagerStorage.sol:AttestationManagerV1Storage", - "label": "__gap", - "offset": 0, - "slot": "1", - "type": "t_array(t_uint256)50_storage" - } - ], - "types": { - "t_array(t_uint256)50_storage": { - "base": "t_uint256", - "encoding": "inplace", - "label": "uint256[50]", - "numberOfBytes": "1600" - }, - "t_bytes32": { - "encoding": "inplace", - "label": "bytes32", - "numberOfBytes": "32" - }, - "t_uint256": { - "encoding": "inplace", - "label": "uint256", - "numberOfBytes": "32" - } - } - } - } - }, - "contracts/utilities/Directory.sol": { - "Directory": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "disputeManager", - "type": "address" - } - ], - "name": "DirectoryNotDisputeManager", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "subgraphService", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "disputeManager", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "tapCollector", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "curation", - "type": "address" - } - ], - "name": "SubgraphServiceDirectoryInitialized", - "type": "event" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": {} - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"disputeManager\",\"type\":\"address\"}],\"name\":\"DirectoryNotDisputeManager\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subgraphService\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"disputeManager\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tapCollector\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"curation\",\"type\":\"address\"}],\"name\":\"SubgraphServiceDirectoryInitialized\",\"type\":\"event\"}],\"devdoc\":{\"errors\":{\"DirectoryNotDisputeManager(address,address)\":[{\"params\":{\"caller\":\"The caller address\",\"disputeManager\":\"The Dispute Manager address\"}}]},\"events\":{\"SubgraphServiceDirectoryInitialized(address,address,address,address)\":{\"params\":{\"curation\":\"The Curation contract address\",\"disputeManager\":\"The Dispute Manager contract address\",\"subgraphService\":\"The Subgraph Service contract address\",\"tapCollector\":\"The TAP Collector contract address\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"curation\":\"The Curation contract address\",\"disputeManager\":\"The Dispute Manager contract address\",\"subgraphService\":\"The Subgraph Service contract address\",\"tapCollector\":\"The TAP Collector contract address\"}}},\"stateVariables\":{\"CURATION\":{\"details\":\"Required for curation fees distribution\"},\"TAP_COLLECTOR\":{\"details\":\"Required to collect payments via Graph Horizon payments protocol\"}},\"title\":\"Directory contract\",\"version\":1},\"userdoc\":{\"errors\":{\"DirectoryNotDisputeManager(address,address)\":[{\"notice\":\"Thrown when the caller is not the Dispute Manager\"}]},\"events\":{\"SubgraphServiceDirectoryInitialized(address,address,address,address)\":{\"notice\":\"Emitted when the Directory is initialized\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor for the Directory contract\"}},\"notice\":\"This contract is meant to be inherited by {SubgraphService} contract. It contains the addresses of the contracts that the contract interacts with. Uses immutable variables to minimize gas costs.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/utilities/Directory.sol\":\"Directory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":50},\"remappings\":[]},\"sources\":{\"@graphprotocol/contracts/contracts/curation/ICuration.sol\":{\"keccak256\":\"0x17e4db429003cab08cd2859db94b95e0cee1f9478c1881903a4104def8fdc048\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://52ed58228a0e92aeb3493473a6e02f92d26a4e4eb0c46d38dd446e3bfcb6691e\",\"dweb:/ipfs/QmZzWxHAztdz2Q7cobqVEf4ExGpNuqWJFYgs2oHCgApjW6\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol\":{\"keccak256\":\"0xe7c73e5a3f28048cb7d81f5914b6817216e78f4bcc1d0f0b316cd062585db854\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d78fdce88011d6bf6db3ca1e711f8b7192feb64f65e137b95a06245503fa13b4\",\"dweb:/ipfs/QmQduHFHJD4DHwDaPsjM4wwBw9GUojZ9YrVdDjiB3oMxY3\"]},\"@graphprotocol/horizon/contracts/data-service/interfaces/IDataServiceFees.sol\":{\"keccak256\":\"0x8d2bed66024782e98b52836a3be855fe6ae59c9bb9ba863e3d420c6ebb80f764\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://9e945e02d82e8fef6cb25148533acaa6579c9e70eaac6e725eb30559ba91b3f8\",\"dweb:/ipfs/QmfUei9N9Exwwmrm2gL2FKcMuyGPqUpSVKY8pKE2QeJyuz\"]},\"@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol\":{\"keccak256\":\"0xb7d1ddfef1f8b718ef53f32a848ac3d1e95dff4307902241a4bb2f133ade323c\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://37383a20159af2d17894a99b41f3260f93288570a49c013e6b5f19cebf565100\",\"dweb:/ipfs/QmdriKPYwQPEZuwSQKqreVbLk9quvH3eriuT4JwrgNwm49\"]},\"@graphprotocol/horizon/contracts/interfaces/IPaymentsCollector.sol\":{\"keccak256\":\"0x86f3cfc8eaac309e99018dda796248fb44130b09c2e5bcfc6c63c0e568803bf8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://176a017cb5c677222ac6a82fecd798292f5f41b4dcb9e16768fbf87816381010\",\"dweb:/ipfs/QmNuLfA5nZptMzWPuvDzJnm7Pwt7uYn1A7G8fwTWPy5Ybm\"]},\"@graphprotocol/horizon/contracts/interfaces/ITAPCollector.sol\":{\"keccak256\":\"0xa5a882c413c68bfe914bad5e419c0340d7d6a6aef453894ea10b7b96458932bc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a5dfc1a11d94b22db5a9262b7038c2fb9c69616f47a11507f59efcc5aa1dcf9b\",\"dweb:/ipfs/QmQ8ahkkfm8PXTuZc5Q8zX2RzXHoSi9btYc57KMvtCrLMU\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"contracts/interfaces/IDisputeManager.sol\":{\"keccak256\":\"0x12d82ad300a87b0ca3a43f9dc693f01bfc5765342e2b727b38e5ea234bb146c7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4b3b8a3663613e7c94b106a1f19f074d338745ca3a93047ac8d0e1db61684b34\",\"dweb:/ipfs/QmNVtbS6XRWfq2SEmagGsWMPCeRvpVj4BXVcvQ5PPtPy1i\"]},\"contracts/interfaces/ISubgraphService.sol\":{\"keccak256\":\"0xd61a4cb3fe5b91d0ac8288d85aa0cb3a8d19e78cb87e700ffb34636bf6d5853a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8fc1f600bc67f34cadaf25daf34c0f4f5e9ac8dced8353ee01853ecfbfa51d3b\",\"dweb:/ipfs/QmeidTmk5rQFtzc6S9fdA4urqewYBSdBHVfaCauPmqTFt8\"]},\"contracts/libraries/Allocation.sol\":{\"keccak256\":\"0xdc1528c7429147d886323e98c4cb02076c91e1220fa25ec263aadd09841f749f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a61d43fe10ddce9df90fea94ed52c5284f78e1419548e8ca8bdfce977642c677\",\"dweb:/ipfs/Qme35BnH5DPbEGsc2MVeFJdY2uqXEhU1WVQW1E5jawYdan\"]},\"contracts/libraries/Attestation.sol\":{\"keccak256\":\"0x25271cc1233cb1853a2e3a070d5143268384b09d2368ff1fa78c25bddc80d5d4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0176185c14b41702bdfa60dc0fd27626a33f4dbf3289b1e28ef51abb37e0e125\",\"dweb:/ipfs/QmbHLdmPNRby5eyG6dFuUWHUg8aBUQSjD9E7QCgqfPxjNB\"]},\"contracts/libraries/LegacyAllocation.sol\":{\"keccak256\":\"0x705b640c357b931820f764b018ddf096a71e5097e7eb3f30e9be44b06f903563\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c99211c9ee8d1369cdc65981ec111935b6e86990025e096fdf240b04cf51ece2\",\"dweb:/ipfs/QmTpfFsy8njQYpHxw7XDcWHDeEv47msUDzD13m173CaV9p\"]},\"contracts/utilities/Directory.sol\":{\"keccak256\":\"0xad65e3c6e8ddcb2855c9fbb689d538c3709bda1b7b08f665bc7a9e905e6a9ef4\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8ae2fbea52fc9b412dc333d74d0984a458da80cc98defdd86bc6a9f31633df56\",\"dweb:/ipfs/QmatwUHznJRo9wvA9ggG4UZVWprdUtAeBmx7T5vDU8vBx9\"]}},\"version\":1}", - "storageLayout": { - "storage": [], - "types": null - } - } - } - } - } -} \ No newline at end of file diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/deployed_addresses.json b/packages/subgraph-service/ignition/deployments/chain-421614/deployed_addresses.json deleted file mode 100644 index b60c2e877..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/deployed_addresses.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "SubgraphServiceProxies#OZProxyDummy_DisputeManager": "0x925FC952A401483A2cF4b8fB780580a0051ecebA", - "SubgraphServiceProxies#OZProxyDummy_SubgraphService": "0x83D97ee6d5a6c34896024Df82B9aA162e8244046", - "SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager": "0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5", - "SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService": "0xBc53a58f03917A88174C2795B674734eCEeec05F", - "SubgraphServiceProxies#ProxyAdmin_DisputeManager": "0xe002DE2C9C6b7aebD9e275C1234B68b917a2B13e", - "SubgraphServiceProxies#ProxyAdmin_SubgraphService": "0x4f1c68dd0c1CB5bd75C431f94c8734A5067a0b2F", - "Controller#Controller": "0x59c3CA02528054C6337f63eb367a374Ac45C292C", - "Curation#Curation": "0xFB1a3F555c919B3F8477959639f9d8cA9A3b3c01", - "EpochManager#EpochManager": "0xFBb7D5597f4796225A957Fd56d368bfaD45F5036", - "HorizonProxies#OZProxyDummy_GraphPayments": "0x779934076396014b1395892C1a960CAd33548b7a", - "HorizonProxies#OZProxyDummy_PaymentsEscrow": "0x994e77A4673d74C3565B04EF572988B9c7f05778", - "RewardsManager#RewardsManager": "0x7C52Ce46ea416DA19aea8cE6072C2E28159c6910", - "BridgeEscrow#BridgeEscrow": "0x5d767c408237E7cB90Ccc2332c1946115B5187D9", - "Curation#GraphCurationToken": "0x714fF20f04c77104eC4906E1059b5478e253daCb", - "GraphProxyAdmin#GraphProxyAdmin": "0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45", - "GraphToken#GraphToken": "0x1Aec39D141925B02bef1D1A30b80746356Dcc291", - "GraphTokenGateway#GraphTokenGateway": "0x2B8665A7E899ee5FA67460b5f296aE901016102C", - "HorizonStakingExtension#ExponentialRebates": "0xA966fedEE46EbfA9B2390986aa19fab5aE018e87", - "HorizonProxies#TransparentUpgradeableProxy_GraphPayments": "0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD", - "HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow": "0x7782536dac304b46E4Eb60751e4021ab3b09aBAb", - "Curation#GraphProxy": "0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C", - "BridgeEscrow#GraphProxy": "0x84a56624009F5CF297d52940dF268CdF8d2a09B4", - "EpochManager#GraphProxy": "0xCf27161EE08cA6087f9fF445a44474B89C10e554", - "GraphToken#GraphProxy": "0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8", - "GraphTokenGateway#GraphProxy": "0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3", - "RewardsManager#GraphProxy": "0x1C0f92202CFc66B160972D54c513A7354F507Bf8", - "BridgeEscrow#BridgeEscrow_Instance": "0x84a56624009F5CF297d52940dF268CdF8d2a09B4", - "Curation#Curation_Instance": "0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C", - "EpochManager#EpochManager_Instance": "0xCf27161EE08cA6087f9fF445a44474B89C10e554", - "GraphToken#GraphToken_Instance": "0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8", - "GraphTokenGateway#GraphTokenGateway_Instance": "0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3", - "HorizonProxies#ProxyAdmin_GraphPayments": "0x191308fb34b4d18487bC323FfE5ef7B2dd2449e9", - "HorizonProxies#ProxyAdmin_PaymentsEscrow": "0xB3eD0202b929Cef59B0e2668a68F06FE996e8419", - "RewardsManager#RewardsManager_Instance": "0x1C0f92202CFc66B160972D54c513A7354F507Bf8", - "GraphHorizon_Periphery#Dummy": "0x923a8027EF79AaCC9B4eBC22a548F7c755153F6a", - "HorizonProxies#GraphProxy_HorizonStaking": "0xdabc7419aba5A47d368d008f42bb66c7D5801740", - "HorizonProxies#RegisteredDummy": "0x5560e7816fb9198A07d1432559cD67fd304C5046", - "GraphPayments#GraphPayments_Instance": "0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD", - "PaymentsEscrow#PaymentsEscrow": "0x69F0a00274f8211120a80D7aFdf9b0f2D76A02F6", - "PaymentsEscrow#PaymentsEscrow_Instance": "0x7782536dac304b46E4Eb60751e4021ab3b09aBAb", - "GraphPayments#GraphPayments": "0xB5DA0C077f45BD34964D4d94cf4FE0DFbbC8Ba42", - "HorizonStakingExtension#HorizonStakingExtension": "0x83e6689eDbc7e71861F2c1Eb273D1E0DF00C9f3c", - "TAPCollector#TAPCollector": "0x84149af521E4C32dDCCb7e9F1F63a187A964396c", - "HorizonStaking#HorizonStaking": "0x5DF9C2eFB1206d11C50Ad130446364c88934a17E", - "HorizonStaking#HorizonStaking_Instance": "0xdabc7419aba5A47d368d008f42bb66c7D5801740", - "DisputeManager#DisputeManager_Instance": "0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5", - "DisputeManager#ProxyAdmin": "0xe002DE2C9C6b7aebD9e275C1234B68b917a2B13e", - "DisputeManager#DisputeManager": "0x8e436E815226C8Bd5e775C7FF693DAe6a94bE7d1", - "SubgraphService#ProxyAdmin": "0x4f1c68dd0c1CB5bd75C431f94c8734A5067a0b2F", - "SubgraphService#SubgraphService": "0x2268247782f4b7AdB2DA810EFD6e43B27a37af54", - "SubgraphService#SubgraphService_Instance": "0xBc53a58f03917A88174C2795B674734eCEeec05F" -} diff --git a/packages/subgraph-service/ignition/deployments/chain-421614/journal.jsonl b/packages/subgraph-service/ignition/deployments/chain-421614/journal.jsonl deleted file mode 100644 index fb2cb3378..000000000 --- a/packages/subgraph-service/ignition/deployments/chain-421614/journal.jsonl +++ /dev/null @@ -1,378 +0,0 @@ - -{"chainId":421614,"type":"DEPLOYMENT_INITIALIZE"} -{"artifactId":"SubgraphServiceProxies#OZProxyDummy_DisputeManager","constructorArgs":[],"contractName":"Dummy","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"SubgraphServiceProxies#OZProxyDummy_DisputeManager","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"SubgraphServiceProxies#OZProxyDummy_DisputeManager","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SubgraphServiceProxies#OZProxyDummy_DisputeManager","networkInteractionId":1,"nonce":665,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x4675097edd717a34579e7a17b1832587974a058b3b703cebca8e350958190bb4"},"type":"TRANSACTION_SEND"} -{"artifactId":"SubgraphServiceProxies#OZProxyDummy_SubgraphService","constructorArgs":[],"contractName":"Dummy","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"SubgraphServiceProxies#OZProxyDummy_SubgraphService","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"SubgraphServiceProxies#OZProxyDummy_SubgraphService","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SubgraphServiceProxies#OZProxyDummy_SubgraphService","networkInteractionId":1,"nonce":666,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x96a30c734828666fe0ab2556250b99d884c38c86cf1007c849cd408d36795347"},"type":"TRANSACTION_SEND"} -{"futureId":"SubgraphServiceProxies#OZProxyDummy_DisputeManager","hash":"0x4675097edd717a34579e7a17b1832587974a058b3b703cebca8e350958190bb4","networkInteractionId":1,"receipt":{"blockHash":"0x4a2b220fb8234e254bbddbccade1775c7efeccc0343e340b28ae0dee26329a36","blockNumber":97665248,"contractAddress":"0x925FC952A401483A2cF4b8fB780580a0051ecebA","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SubgraphServiceProxies#OZProxyDummy_DisputeManager","result":{"address":"0x925FC952A401483A2cF4b8fB780580a0051ecebA","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"SubgraphServiceProxies#OZProxyDummy_SubgraphService","hash":"0x96a30c734828666fe0ab2556250b99d884c38c86cf1007c849cd408d36795347","networkInteractionId":1,"receipt":{"blockHash":"0x6919345e241f960bb1d8777296c1b85fcd156f2f160160755a7d740afa5577e8","blockNumber":97665258,"contractAddress":"0x83D97ee6d5a6c34896024Df82B9aA162e8244046","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SubgraphServiceProxies#OZProxyDummy_SubgraphService","result":{"address":"0x83D97ee6d5a6c34896024Df82B9aA162e8244046","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","constructorArgs":["0x925FC952A401483A2cF4b8fB780580a0051ecebA","0xade6b8eb69a49b56929c1d4f4b428d791861db6f","0x"],"contractName":"TransparentUpgradeableProxy","dependencies":["SubgraphServiceProxies#OZProxyDummy_DisputeManager"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","networkInteraction":{"data":"0x60a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103000000000000000000000000925fc952a401483a2cf4b8fb780580a0051eceba000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","networkInteractionId":1,"nonce":667,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xf14fa3f80378f25cbfde869983319264993e93b8c9db2ba6709e136c748b247f"},"type":"TRANSACTION_SEND"} -{"artifactId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","constructorArgs":["0x83D97ee6d5a6c34896024Df82B9aA162e8244046","0xade6b8eb69a49b56929c1d4f4b428d791861db6f","0x"],"contractName":"TransparentUpgradeableProxy","dependencies":["SubgraphServiceProxies#OZProxyDummy_SubgraphService"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","networkInteraction":{"data":"0x60a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610300000000000000000000000083d97ee6d5a6c34896024df82b9aa162e8244046000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","networkInteractionId":1,"nonce":668,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xc03d8961808eb43cf32ee42f131ed5d34eb6fbc45802434c9584cbc415691dfe"},"type":"TRANSACTION_SEND"} -{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","hash":"0xf14fa3f80378f25cbfde869983319264993e93b8c9db2ba6709e136c748b247f","networkInteractionId":1,"receipt":{"blockHash":"0xc0cbb8134a0eaf79fa62a878944fb146338512843ed9784f176f9bbcfb8a6f76","blockNumber":97665278,"contractAddress":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","logs":[{"address":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000925fc952a401483a2cf4b8fb780580a0051eceba"]},{"address":"0xe002DE2C9C6b7aebD9e275C1234B68b917a2B13e","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e002de2c9c6b7aebd9e275c1234b68b917a2b13e","logIndex":2,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","result":{"address":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","hash":"0xc03d8961808eb43cf32ee42f131ed5d34eb6fbc45802434c9584cbc415691dfe","networkInteractionId":1,"receipt":{"blockHash":"0xaea8a176a9c6003e36d95860d9528b320df9c6ec26c5df74ca4ad4860bbf589c","blockNumber":97665289,"contractAddress":"0xBc53a58f03917A88174C2795B674734eCEeec05F","logs":[{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000083d97ee6d5a6c34896024df82b9aa162e8244046"]},{"address":"0x4f1c68dd0c1CB5bd75C431f94c8734A5067a0b2F","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000004f1c68dd0c1cb5bd75c431f94c8734a5067a0b2f","logIndex":2,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","result":{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager","dependencies":["SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager"],"emitterAddress":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","eventIndex":0,"eventName":"AdminChanged","futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager_AdminChanged","nameOrIndex":"newAdmin","result":"0xe002DE2C9C6b7aebD9e275C1234B68b917a2B13e","strategy":"basic","strategyConfig":{},"txToReadFrom":"0xf14fa3f80378f25cbfde869983319264993e93b8c9db2ba6709e136c748b247f","type":"READ_EVENT_ARGUMENT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService","dependencies":["SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService"],"emitterAddress":"0xBc53a58f03917A88174C2795B674734eCEeec05F","eventIndex":0,"eventName":"AdminChanged","futureId":"SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService_AdminChanged","nameOrIndex":"newAdmin","result":"0x4f1c68dd0c1CB5bd75C431f94c8734A5067a0b2F","strategy":"basic","strategyConfig":{},"txToReadFrom":"0xc03d8961808eb43cf32ee42f131ed5d34eb6fbc45802434c9584cbc415691dfe","type":"READ_EVENT_ARGUMENT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"SubgraphServiceProxies#ProxyAdmin_DisputeManager","contractAddress":"0xe002DE2C9C6b7aebD9e275C1234B68b917a2B13e","contractName":"ProxyAdmin","dependencies":["SubgraphServiceProxies#TransparentUpgradeableProxy_DisputeManager_AdminChanged"],"futureId":"SubgraphServiceProxies#ProxyAdmin_DisputeManager","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"SubgraphServiceProxies#ProxyAdmin_SubgraphService","contractAddress":"0x4f1c68dd0c1CB5bd75C431f94c8734A5067a0b2F","contractName":"ProxyAdmin","dependencies":["SubgraphServiceProxies#TransparentUpgradeableProxy_SubgraphService_AdminChanged"],"futureId":"SubgraphServiceProxies#ProxyAdmin_SubgraphService","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"BridgeEscrow#BridgeEscrow","constructorArgs":[],"contractName":"BridgeEscrow","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"BridgeEscrow#BridgeEscrow","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"BridgeEscrow#BridgeEscrow","networkInteraction":{"data":"0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e051610100516101205161014051610c376101696000398061071f5250806106f65250806106cd528061089e5250806106a452508061067b5250806106525250806106295250610c376000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063c4d66de81161005b578063c4d66de814610181578063d6866ea5146101a7578063e7dd4b2c146101af578063f77c4791146101d557610088565b80630621472c1461008d57806392eefe9b146100b55780639ce7abe5146100db578063a2594d821461015b575b600080fd5b6100b3600480360360208110156100a357600080fd5b50356001600160a01b03166101f9565b005b6100b3600480360360208110156100cb57600080fd5b50356001600160a01b0316610290565b6100b3600480360360408110156100f157600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561011c57600080fd5b82018360208201111561012e57600080fd5b8035906020019184600183028401116401000000008311171561015057600080fd5b5090925090506102a4565b6100b36004803603602081101561017157600080fd5b50356001600160a01b03166103fa565b6100b36004803603602081101561019757600080fd5b50356001600160a01b0316610515565b6100b3610624565b6100b3600480360360208110156101c557600080fd5b50356001600160a01b0316610745565b6101dd6107ac565b604080516001600160a01b039092168252519081900360200190f35b6102016107c1565b610209610897565b6001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561026157600080fd5b505af1158015610275573d6000803e3d6000fd5b505050506040513d602081101561028b57600080fd5b505050565b6102986108c7565b6102a18161092c565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156102e057600080fd5b505af11580156102f4573d6000803e3d6000fd5b505050506040513d602081101561030a57600080fd5b50516001600160a01b03163314610368576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156103dc57600080fd5b505af11580156103f0573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561043657600080fd5b505af115801561044a573d6000803e3d6000fd5b505050506040513d602081101561046057600080fd5b50516001600160a01b031633146104be576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104f957600080fd5b505af115801561050d573d6000803e3d6000fd5b505050505050565b61051d6109de565b6001600160a01b0316336001600160a01b031614610578576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600054610100900460ff16806105915750610591610a03565b8061059f575060005460ff16155b6105da5760405162461bcd60e51b815260040180806020018281038252602e815260200180610bd4602e913960400191505060405180910390fd5b600054610100900460ff16158015610605576000805460ff1961ff0019909116610100171660011790555b61060e82610298565b8015610620576000805461ff00191690555b5050565b61064d7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106767f0000000000000000000000000000000000000000000000000000000000000000610a14565b61069f7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106c87f0000000000000000000000000000000000000000000000000000000000000000610a14565b6106f17f0000000000000000000000000000000000000000000000000000000000000000610a14565b61071a7f0000000000000000000000000000000000000000000000000000000000000000610a14565b6107437f0000000000000000000000000000000000000000000000000000000000000000610a14565b565b61074d6107c1565b610755610897565b6001600160a01b031663095ea7b38260006040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561026157600080fd5b6000546201000090046001600160a01b031681565b600060029054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561080f57600080fd5b505afa158015610823573d6000803e3d6000fd5b505050506040513d602081101561083957600080fd5b50516001600160a01b03163314610743576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006108c27f0000000000000000000000000000000000000000000000000000000000000000610b22565b905090565b6000546201000090046001600160a01b03163314610743576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610980576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b03831662010000810262010000600160b01b03199092169190911790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000610a0e30610bcd565b15905090565b60008060029054906101000a90046001600160a01b03166001600160a01b031663f7641a5e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a6e57600080fd5b505afa158015610a82573d6000803e3d6000fd5b505050506040513d6020811015610a9857600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146106205760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600160205260408120546001600160a01b031680610bc757600060029054906101000a90046001600160a01b03166001600160a01b031663f7641a5e846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b9857600080fd5b505afa158015610bac573d6000803e3d6000fd5b505050506040513d6020811015610bc257600080fd5b505190505b92915050565b3b15159056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a2646970667358221220c31afba89fb33b650455afd85c794f3d761dc1b1adc4a7b3036ffb0292947a4f64736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"BridgeEscrow#BridgeEscrow","networkInteractionId":1,"nonce":669,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x1bbf7d97fb0863b9aef2b2f540ae3e7e83d4c117c61a6e7d11ebeb5f30bc9808"},"type":"TRANSACTION_SEND"} -{"artifactId":"Controller#Controller","constructorArgs":[],"contractName":"Controller","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"Controller#Controller","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"Controller#Controller","networkInteraction":{"data":"0x608060405234801561001057600080fd5b506100243361003360201b6109b21760201c565b61002e6001610055565b6100e7565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600160159054906101000a900460ff1615158115151415610075576100e4565b6001805460ff60a81b1916600160a81b8315158102919091179182905560ff910416156100a157426003555b60015460408051600160a81b90920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a15b50565b610ba0806100f66000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80635c975abb116100a2578063e0e9929211610071578063e0e9929214610215578063e3056a3414610241578063eb5dd94f14610249578063f2fde38b14610275578063f7641a5e1461029b5761010b565b80635c975abb146101e057806379ba5097146101e85780639181df9c146101f057806391b4ded91461020d5761010b565b80632e292fc7116100de5780632e292fc71461017757806348bde20c146101935780634fc07d75146101b957806356371bd8146101c15761010b565b80630c340a2414610110578063147ddef51461013457806316c38b3c1461014e57806324a3d6221461016f575b600080fd5b6101186102b8565b604080516001600160a01b039092168252519081900360200190f35b61013c6102c7565b60408051918252519081900360200190f35b61016d6004803603602081101561016457600080fd5b503515156102cd565b005b610118610337565b61017f610346565b604080519115158252519081900360200190f35b61016d600480360360208110156101a957600080fd5b50356001600160a01b0316610356565b610118610412565b61016d600480360360208110156101d757600080fd5b50351515610421565b61017f610488565b61016d610498565b61016d6004803603602081101561020657600080fd5b50356105a6565b61013c610651565b61016d6004803603604081101561022b57600080fd5b50803590602001356001600160a01b0316610657565b61011861076e565b61016d6004803603604081101561025f57600080fd5b50803590602001356001600160a01b031661077d565b61016d6004803603602081101561028b57600080fd5b50356001600160a01b0316610899565b610118600480360360208110156102b157600080fd5b5035610997565b6000546001600160a01b031681565b60025481565b6000546001600160a01b03163314806102f057506004546001600160a01b031633145b61032b5760405162461bcd60e51b8152600401808060200182810382526022815260200180610b496022913960400191505060405180910390fd5b610334816109d4565b50565b6004546001600160a01b031681565b600154600160a01b900460ff1690565b6000546001600160a01b031633146103ae576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610409576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61033481610a65565b6000546001600160a01b031690565b6000546001600160a01b031633148061044457506004546001600160a01b031633145b61047f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610b496022913960400191505060405180910390fd5b61033481610ab7565b600154600160a81b900460ff1690565b6001546001600160a01b031680158015906104bb5750336001600160a01b038216145b61050c576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000546001600160a01b031633146105fe576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b600081815260056020908152604080832080546001600160a01b031916905580519283525183927f937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd92908290030190a250565b60035481565b6000546001600160a01b031633146106af576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661070a576040805162461bcd60e51b815260206004820152601c60248201527f436f6e74726163742061646472657373206d7573742062652073657400000000604482015290519081900360640190fd5b60008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927f937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd92908290030190a25050565b6001546001600160a01b031681565b6000546001600160a01b031633146107d5576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610829576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b6000828152600560205260408082205481516392eefe9b60e01b81526001600160a01b038581166004830152925192909116926392eefe9b9260248084019382900301818387803b15801561087d57600080fd5b505af1158015610891573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146108f1576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610943576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000908152600560205260409020546001600160a01b031690565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600160159054906101000a900460ff16151581151514156109f457610334565b6001805460ff60a81b1916600160a81b8315158102919091179182905560ff91041615610a2057426003555b60015460408051600160a81b90920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b600160149054906101000a900460ff1615158115151415610ad757610334565b6001805460ff60a01b1916600160a01b8315158102919091179182905560ff91041615610b0357426002555b60015460408051600160a01b90920460ff1615158252517f511b770d1b1dc5cbd412a5017f55cbb2295b826385e5f46c1de2b6ebeb44ae02916020908290030190a15056fe4f6e6c7920476f7665726e6f72206f7220477561726469616e2063616e2063616c6ca26469706673582212207cecec10a8617577e80b5c52f6cd82da5e5974468c039848ed5e90b25c8267c764736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"Controller#Controller","networkInteractionId":1,"nonce":670,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x3ae0392f2cb0de80d200c4f33896e45cbaa7e0fc41fb1ea83fae29f9bb2a9e4d"},"type":"TRANSACTION_SEND"} -{"futureId":"Controller#Controller","hash":"0x3ae0392f2cb0de80d200c4f33896e45cbaa7e0fc41fb1ea83fae29f9bb2a9e4d","networkInteractionId":1,"receipt":{"blockHash":"0xfdb6493b02bdf6d735dc4c3f5c2e204731560c94f31476eb99239421d1ff86be","blockNumber":97665326,"contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":1,"topics":["0x8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"Controller#Controller","result":{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"Curation#Curation","constructorArgs":[],"contractName":"Curation","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"Curation#Curation","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"Curation#Curation","networkInteraction":{"data":"0x6101806040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea361014052613d0960e61b6101605234801561011a57600080fd5b5060805160a05160c05160e0516101005161012051610140516101605160e01c6128cc61018f60003980610c2f52508061141b52806119025250806113f25250806113c9528061180c5250806113a05280611dbf5250806113775280611ff252508061134e52508061132552506128cc6000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806399439fee11610104578063cd0ad4a2116100a2578063eff1d50e11610071578063eff1d50e146103f2578063f049b900146103fa578063f115c4271461040d578063f77c479114610415576101da565b8063cd0ad4a2146103af578063cd18119e146103c2578063d6866ea5146103d5578063eba0c8a1146103dd576101da565b80639f94c667116100de5780639f94c6671461035f578063a2594d8214610372578063a25e62c714610385578063b5217bb41461038d576101da565b806399439fee146103265780639b4d9f33146103395780639ce7abe51461034c576101da565b80634c4ea0ed1161017c5780637a2a45b81161014b5780637a2a45b8146102da57806381573288146102ed57806392eefe9b1461030057806393a90a1e14610313576101da565b80634c4ea0ed1461027f5780634c8c7a441461029f5780636536fe32146102b457806369db11a1146102c7576101da565b806326058249116101b857806326058249146102235780633718896d14610238578063375a54ab1461024b57806346e855da1461026c576101da565b80630faaf87f146101df578063185360f91461020857806324bdeec714610210575b600080fd5b6101f26101ed366004612175565b61041d565b6040516101ff91906122ab565b60405180910390f35b6101f26104da565b6101f261021e366004612196565b6104e0565b61022b610662565b6040516101ff9190612273565b6101f2610246366004612175565b610677565b61025e610259366004612196565b6108b6565b6040516101ff9291906127b8565b6101f261027a36600461215d565b610af7565b61029261028d36600461215d565b610b0c565b6040516101ff91906122a0565b6102b26102ad3660046120e4565b610b20565b005b6102b26102c236600461215d565b610cb0565b6101f26102d5366004612175565b610cc4565b6101f26102e8366004612175565b610d78565b6102b26102fb366004612175565b610d8b565b6102b261030e3660046120c8565b610e5e565b6102b26103213660046120c8565b610e6f565b6101f261033436600461215d565b610ecb565b6102b26103473660046120c8565b610f72565b6102b261035a3660046121c1565b610f83565b6101f261036d366004612132565b6110d9565b6102b26103803660046120c8565b61118d565b61022b6112a8565b6103a061039b36600461215d565b6112be565b6040516101ff939291906127dc565b6102b26103bd366004612259565b6112ef565b6102b26103d0366004612259565b61130f565b6102b2611320565b6103e5611441565b6040516101ff9190612801565b61022b611454565b61025e610408366004612175565b611463565b6103e56114c0565b61022b6114cc565b6000828152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b0316908201528161046d85610ecb565b82519091506104975760405162461bcd60e51b815260040161048e906125e8565b60405180910390fd5b838110156104b75760405162461bcd60e51b815260040161048e906124f3565b81516104cf9082906104c990876114db565b90611534565b925050505b92915050565b600d5481565b60006104ea61159b565b33836105085760405162461bcd60e51b815260040161048e906122b4565b8361051382876110d9565b10156105315760405162461bcd60e51b815260040161048e906124af565b600061053d868661041d565b90508381101561055f5760405162461bcd60e51b815260040161048e906123ff565b61056886611709565b6000868152600f60205260409020805461058290836117a8565b8155600181015460405163079cc67960e41b8152600160201b9091046001600160a01b0316906379cc6790906105be9086908a90600401612287565b600060405180830381600087803b1580156105d857600080fd5b505af11580156105ec573d6000803e3d6000fd5b505050506105f987610ecb565b61060257600081555b61061461060d611805565b8484611835565b86836001600160a01b03167fe14cd5e80f6821ded0538e85a537487acf10bb5e97a12176df56a099e90bfb3484896040516106509291906127b8565b60405180910390a35095945050505050565b6010546201000090046001600160a01b031681565b600061068161159b565b6106896118fb565b6001600160a01b0316336001600160a01b0316146106b95760405162461bcd60e51b815260040161048e90612781565b816106d65760405162461bcd60e51b815260040161048e906126c0565b60006106e28484611926565b6000858152600f6020526040902090915033906106fe86610b0c565b6107ca576001810154600160201b90046001600160a01b03166107ca57600c5460009061073a90600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610769903090600401612273565b600060405180830381600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6107d386611709565b60006107dd611805565b90506107ea818488611a76565b81546107f69087611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f19906108329086908890600401612287565b600060405180830381600087803b15801561084c57600080fd5b505af1158015610860573d6000803e3d6000fd5b5050505086836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf888760006040516108a3939291906127c6565b60405180910390a3509195945050505050565b6000806108c161159b565b836108de5760405162461bcd60e51b815260040161048e906126c0565b6000806108eb8787611463565b915091508482101561090f5760405162461bcd60e51b815260040161048e906123ff565b6000878152600f60205260409020339061092889610b0c565b6109f4576001810154600160201b90046001600160a01b03166109f457600c5460009061096490600160401b90046001600160a01b03166119d9565b60405163189acdbd60e31b81529091506001600160a01b0382169063c4d66de890610993903090600401612273565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b5050506001830180546001600160a01b03909316600160201b02640100000000600160c01b031990931692909217909155505b6109fd89611709565b6000610a07611805565b9050610a1481848b611a76565b610a1e8185611b2f565b610a33610a2b8a866117a8565b835490611ad5565b825560018201546040516340c10f1960e01b8152600160201b9091046001600160a01b0316906340c10f1990610a6f9086908990600401612287565b600060405180830381600087803b158015610a8957600080fd5b505af1158015610a9d573d6000803e3d6000fd5b5050505089836001600160a01b03167fb7bf5f4e5b23ef992df9875ecea572620d18dab0c1a5486a9b695d20d9ec50cf8b8888604051610adf939291906127c6565b60405180910390a35092989197509095505050505050565b6000818152600f60205260409020545b919050565b6000908152600f6020526040902054151590565b610b28611b7b565b6001600160a01b0316336001600160a01b031614610b83576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b601054610100900460ff1680610b9c5750610b9c611ba0565b80610baa575060105460ff16155b610be55760405162461bcd60e51b815260040180806020018281038252602e815260200180612848602e913960400191505060405180910390fd5b601054610100900460ff16158015610c10576010805460ff1961ff0019909116610100171660011790555b610c1985610e66565b600c805467ffffffff000000001916600160201b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff160217905560405160008051602061282883398151915290610c74906123d2565b60405180910390a1610c8583611bb1565b610c8e82611c16565b610c9784611c54565b8015610ca9576010805461ff00191690555b5050505050565b610cb8611ce4565b610cc181611c16565b50565b600081610ce35760405162461bcd60e51b815260040161048e90612322565b6000610cef8484611926565b6000858152600f6020908152604080832081516060810183528154815260019091015463ffffffff811693820193909352600160201b9092046001600160a01b031690820152919250610d4b83610d4588610ecb565b90611ad5565b8251909150600090610d5d9087611ad5565b9050610d6d826104c983876114db565b979650505050505050565b6000610d848383611926565b9392505050565b6010546201000090046001600160a01b0316331480610dc25750610dad611db8565b6001600160a01b0316336001600160a01b0316145b610dde5760405162461bcd60e51b815260040161048e9061255c565b610de782610b0c565b610e035760405162461bcd60e51b815260040161048e9061245c565b6000828152600f602052604090208054610e1d9083611ad5565b815560405183907ff17fdee613a92b35db6b7598eb43750b24d4072eb304e6eca80121e40402e34b90610e519085906122ab565b60405180910390a2505050565b610e66611de3565b610cc181611e42565b610e77611ce4565b6010805462010000600160b01b031916620100006001600160a01b038416908102919091179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015610f6957806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f2c57600080fd5b505afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190612241565b610d84565b60009392505050565b610f7a611ce4565b610cc181611c54565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050506040513d6020811015610fe957600080fd5b50516001600160a01b03163314611047576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b1580156110bb57600080fd5b505af11580156110cf573d6000803e3d6000fd5b5050505050505050565b6000818152600f6020526040812060010154600160201b90046001600160a01b03168015611182576040516370a0823160e01b81526001600160a01b038216906370a082319061112d908790600401612273565b60206040518083038186803b15801561114557600080fd5b505afa158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d9190612241565b611185565b60005b949350505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156111c957600080fd5b505af11580156111dd573d6000803e3d6000fd5b505050506040513d60208110156111f357600080fd5b50516001600160a01b03163314611251576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050505050565b600c54600160401b90046001600160a01b031681565b600f602052600090815260409020805460019091015463ffffffff811690600160201b90046001600160a01b031683565b6112f7611ce4565b60405162461bcd60e51b815260040161048e906123a3565b611317611ce4565b610cc181611bb1565b6113497f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113727f0000000000000000000000000000000000000000000000000000000000000000611eea565b61139b7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113c47f0000000000000000000000000000000000000000000000000000000000000000611eea565b6113ed7f0000000000000000000000000000000000000000000000000000000000000000611eea565b6114167f0000000000000000000000000000000000000000000000000000000000000000611eea565b61143f7f0000000000000000000000000000000000000000000000000000000000000000611eea565b565b600c54600160201b900463ffffffff1681565b600e546001600160a01b031681565b600c546000908190819061149790620f4240906104c990879061149190849063ffffffff908116906117a816565b906114db565b905060006114a585836117a8565b905060006114b38784611926565b9791965090945050505050565b600c5463ffffffff1681565b6000546001600160a01b031681565b6000826114ea575060006104d4565b828202828482816114f757fe5b0414610d845760405162461bcd60e51b81526004018080602001828103825260218152602001806128766021913960400191505060405180910390fd5b600080821161158a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161159357fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d602081101561161157600080fd5b50511561164e576040805162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b604482015290519081900360640190fd5b60008054906101000a90046001600160a01b03166001600160a01b0316632e292fc76040518163ffffffff1660e01b815260040160206040518083038186803b15801561169a57600080fd5b505afa1580156116ae573d6000803e3d6000fd5b505050506040513d60208110156116c457600080fd5b50511561143f576040805162461bcd60e51b815260206004820152600e60248201526d14185c9d1a585b0b5c185d5cd95960921b604482015290519081900360640190fd5b6000611713611feb565b90506001600160a01b038116156117a4576040516307470bfb60e21b81526001600160a01b03821690631d1c2fec906117509085906004016122ab565b602060405180830381600087803b15801561176a57600080fd5b505af115801561177e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a29190612241565b505b5050565b6000828211156117ff576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b905090565b80156117a257826001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561189257600080fd5b505af11580156118a6573d6000803e3d6000fd5b505050506040513d60208110156118bc57600080fd5b50516117a2576040805162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000828152600f602090815260408083208151606081018352815480825260019092015463ffffffff811694820194909452600160201b9093046001600160a01b0316918301919091526119c657600d548310156119965760405162461bcd60e51b815260040161048e90612359565b600d546119be906119b6906104c96119ae87836117a8565b6001906114db565b600190611ad5565b9150506104d4565b8051611185906104c98561149188610ecb565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610b07576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b80156117a257604080516323b872dd60e01b81526001600160a01b038481166004830152306024830152604482018490529151918516916323b872dd916064808201926020929091908290030181600087803b15801561189257600080fd5b600082820183811015610d84576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b80156117a457816001600160a01b03166342966c68826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561128c57600080fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611bab306120ae565b15905090565b620f424063ffffffff82161115611bda5760405162461bcd60e51b815260040161048e906126f7565b600c805463ffffffff191663ffffffff831617905560405160008051602061282883398151915290611c0b906125b9565b60405180910390a150565b80611c335760405162461bcd60e51b815260040161048e90612645565b600d81905560405160008051602061282883398151915290611c0b9061242c565b6001600160a01b038116611c7a5760405162461bcd60e51b815260040161048e906122eb565b611c83816120ae565b611c9f5760405162461bcd60e51b815260040161048e90612689565b600c805468010000000000000000600160e01b031916600160401b6001600160a01b0384160217905560405160008051602061282883398151915290611c0b90612754565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015611d3057600080fd5b505afa158015611d44573d6000803e3d6000fd5b505050506040513d6020811015611d5a57600080fd5b50516001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b60006118307f0000000000000000000000000000000000000000000000000000000000000000612012565b6000546001600160a01b0316331461143f576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116611e96576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015611f3757600080fd5b505afa158015611f4b573d6000803e3d6000fd5b505050506040513d6020811015611f6157600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146117a45760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b60006118307f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b0316806104d45760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561207b57600080fd5b505afa15801561208f573d6000803e3d6000fd5b505050506040513d60208110156120a557600080fd5b50519392505050565b3b151590565b803563ffffffff81168114610b0757600080fd5b6000602082840312156120d9578081fd5b8135610d8481612812565b600080600080608085870312156120f9578283fd5b843561210481612812565b9350602085013561211481612812565b9250612122604086016120b4565b9396929550929360600135925050565b60008060408385031215612144578182fd5b823561214f81612812565b946020939093013593505050565b60006020828403121561216e578081fd5b5035919050565b60008060408385031215612187578182fd5b50508035926020909101359150565b6000806000606084860312156121aa578283fd5b505081359360208301359350604090920135919050565b6000806000604084860312156121d5578283fd5b83356121e081612812565b9250602084013567ffffffffffffffff808211156121fc578384fd5b818601915086601f83011261220f578384fd5b81358181111561221d578485fd5b87602082850101111561222e578485fd5b6020830194508093505050509250925092565b600060208284031215612252578081fd5b5051919050565b60006020828403121561226a578081fd5b610d84826120b4565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60208082526017908201527f43616e6e6f74206275726e207a65726f207369676e616c000000000000000000604082015260600190565b6020808252601e908201527f546f6b656e206d6173746572206d757374206265206e6f6e2d656d7074790000604082015260600190565b6020808252601d908201527f43616e27742063616c63756c6174652077697468203020746f6b656e73000000604082015260600190565b6020808252602a908201527f4375726174696f6e206465706f7369742069732062656c6f77206d696e696d756040820152691b481c995c5d5a5c995960b21b606082015260800190565b6020808252601590820152742737ba1034b6b83632b6b2b73a32b21034b710261960591b604082015260600190565b60208082526013908201527264656661756c7452657365727665526174696f60681b604082015260600190565b60208082526013908201527229b634b83830b3b290383937ba32b1ba34b7b760691b604082015260600190565b6020808252601690820152751b5a5b9a5b5d5b50dd5c985d1a5bdb91195c1bdcda5d60521b604082015260600190565b60208082526033908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527274656420746f20636f6c6c656374206665657360681b606082015260800190565b60208082526024908201527f43616e6e6f74206275726e206d6f7265207369676e616c207468616e20796f756040820152631037bbb760e11b606082015260800190565b60208082526043908201527f5369676e616c206d7573742062652061626f7665206f7220657175616c20746f60408201527f207369676e616c2069737375656420696e20746865206375726174696f6e20706060820152621bdbdb60ea1b608082015260a00190565b60208082526037908201527f43616c6c6572206d75737420626520746865207375626772617068207365727660408201527f696365206f72207374616b696e6720636f6e7472616374000000000000000000606082015260800190565b6020808252601590820152746375726174696f6e54617850657263656e7461676560581b604082015260600190565b6020808252603b908201527f5375626772617068206465706c6f796d656e74206d757374206265206375726160408201527f74656420746f20706572666f726d2063616c63756c6174696f6e730000000000606082015260800190565b60208082526024908201527f4d696e696d756d206375726174696f6e206465706f7369742063616e6e6f74206040820152630626520360e41b606082015260800190565b6020808252601f908201527f546f6b656e206d6173746572206d757374206265206120636f6e747261637400604082015260600190565b6020808252601a908201527f43616e6e6f74206465706f736974207a65726f20746f6b656e73000000000000604082015260600190565b60208082526039908201527f4375726174696f6e207461782070657263656e74616765206d7573742062652060408201527f62656c6f77206f7220657175616c20746f204d41585f50504d00000000000000606082015260800190565b60208082526013908201527231bab930ba34b7b72a37b5b2b726b0b9ba32b960691b604082015260600190565b6020808252601a908201527f4f6e6c792074686520474e532063616e2063616c6c2074686973000000000000604082015260600190565b918252602082015260400190565b9283526020830191909152604082015260600190565b92835263ffffffff9190911660208301526001600160a01b0316604082015260600190565b63ffffffff91909116815260200190565b6001600160a01b0381168114610cc157600080fdfe96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122048a2c0bbd827c328fe29a977d84099426057dab6398c943cb2b41e9b1c61d2c064736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"Curation#Curation","networkInteractionId":1,"nonce":671,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x81b10a161cce12b09a56d7e949a6c31fe83db9020d8a23a4c118b0a58337a712"},"type":"TRANSACTION_SEND"} -{"futureId":"Curation#Curation","hash":"0x81b10a161cce12b09a56d7e949a6c31fe83db9020d8a23a4c118b0a58337a712","networkInteractionId":1,"receipt":{"blockHash":"0x2d398c8a9683bf19552720ad47d591082ffd2a31cd2567211729dc171f2edf0e","blockNumber":97665339,"contractAddress":"0xFB1a3F555c919B3F8477959639f9d8cA9A3b3c01","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"Curation#Curation","result":{"address":"0xFB1a3F555c919B3F8477959639f9d8cA9A3b3c01","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"Curation#GraphCurationToken","constructorArgs":[],"contractName":"GraphCurationToken","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"Curation#GraphCurationToken","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"Curation#GraphCurationToken","networkInteraction":{"data":"0x608060405234801561001057600080fd5b506114ec806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806379ba5097116100a2578063a9059cbb11610071578063a9059cbb14610352578063c4d66de81461037e578063dd62ed3e146103a4578063e3056a34146103d2578063f2fde38b146103da57610116565b806379ba5097146102ea57806379cc6790146102f257806395d89b411461031e578063a457c2d71461032657610116565b806323b872dd116100e957806323b872dd14610216578063313ce5671461024c578063395093511461026a57806340c10f191461029657806370a08231146102c457610116565b806306fdde031461011b578063095ea7b3146101985780630c340a24146101d857806318160ddd146101fc575b600080fd5b610123610400565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610496565b604080519115158252519081900360200190f35b6101e06104b3565b604080516001600160a01b039092168252519081900360200190f35b6102046104c2565b60408051918252519081900360200190f35b6101c46004803603606081101561022c57600080fd5b506001600160a01b038135811691602081013590911690604001356104c8565b61025461054f565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561028057600080fd5b506001600160a01b038135169060200135610558565b6102c2600480360360408110156102ac57600080fd5b506001600160a01b0381351690602001356105a6565b005b610204600480360360208110156102da57600080fd5b50356001600160a01b031661060c565b6102c2610627565b6102c26004803603604081101561030857600080fd5b506001600160a01b038135169060200135610737565b610123610799565b6101c46004803603604081101561033c57600080fd5b506001600160a01b0381351690602001356107fa565b6101c46004803603604081101561036857600080fd5b506001600160a01b038135169060200135610862565b6102c26004803603602081101561039457600080fd5b50356001600160a01b0316610876565b610204600480360360408110156103ba57600080fd5b506001600160a01b0381358116916020013516610972565b6101e061099d565b6102c2600480360360208110156103f057600080fd5b50356001600160a01b03166109ac565b60368054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561048c5780601f106104615761010080835404028352916020019161048c565b820191906000526020600020905b81548152906001019060200180831161046f57829003601f168201915b5050505050905090565b60006104aa6104a3610aaa565b8484610aae565b50600192915050565b6065546001600160a01b031681565b60355490565b60006104d5848484610b9a565b610545846104e1610aaa565b61054085604051806060016040528060288152602001611400602891396001600160a01b038a1660009081526034602052604081209061051f610aaa565b6001600160a01b031681526020810191909152604001600020549190610cf7565b610aae565b5060019392505050565b60385460ff1690565b60006104aa610565610aaa565b846105408560346000610576610aaa565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610d8e565b6065546001600160a01b031633146105fe576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106088282610def565b5050565b6001600160a01b031660009081526033602052604090205490565b6066546001600160a01b0316801580159061064a5750336001600160a01b038216145b61069b576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b606580546001600160a01b038381166001600160a01b0319808416919091179384905560668054909116905560405191811692169082907f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f90600090a36066546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6065546001600160a01b0316331461078f576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6106088282610ee1565b60378054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561048c5780601f106104615761010080835404028352916020019161048c565b60006104aa610807610aaa565b84610540856040518060600160405280602581526020016114926025913960346000610831610aaa565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610cf7565b60006104aa61086f610aaa565b8484610b9a565b600054610100900460ff168061088f575061088f610fdd565b8061089d575060005460ff16155b6108d85760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff16158015610903576000805460ff1961ff0019909116610100171660011790555b61090c82610fee565b61095d604051806040016040528060148152602001734772617068204375726174696f6e20536861726560601b8152506040518060400160405280600381526020016247435360e81b815250611010565b8015610608576000805461ff00191690555050565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b6066546001600160a01b031681565b6065546001600160a01b03163314610a04576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610a56576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b606680546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b038316610af35760405162461bcd60e51b815260040180806020018281038252602481526020018061146e6024913960400191505060405180910390fd5b6001600160a01b038216610b385760405162461bcd60e51b815260040180806020018281038252602281526020018061138a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610bdf5760405162461bcd60e51b81526004018080602001828103825260258152602001806114496025913960400191505060405180910390fd5b6001600160a01b038216610c245760405162461bcd60e51b81526004018080602001828103825260238152602001806113456023913960400191505060405180910390fd5b610c2f8383836110c1565b610c6c816040518060600160405280602681526020016113ac602691396001600160a01b0386166000908152603360205260409020549190610cf7565b6001600160a01b038085166000908152603360205260408082209390935590841681522054610c9b9082610d8e565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610d865760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d4b578181015183820152602001610d33565b50505050905090810190601f168015610d785780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610de8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610e4a576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610e56600083836110c1565b603554610e639082610d8e565b6035556001600160a01b038216600090815260336020526040902054610e899082610d8e565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610f265760405162461bcd60e51b81526004018080602001828103825260218152602001806114286021913960400191505060405180910390fd5b610f32826000836110c1565b610f6f81604051806060016040528060228152602001611368602291396001600160a01b0385166000908152603360205260409020549190610cf7565b6001600160a01b038316600090815260336020526040902055603554610f9590826110c6565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000610fe830611123565b15905090565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff16806110295750611029610fdd565b80611037575060005460ff16155b6110725760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff1615801561109d576000805460ff1961ff0019909116610100171660011790555b6110a5611129565b6110af83836111cb565b80156110c1576000805461ff00191690555b505050565b60008282111561111d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600054610100900460ff16806111425750611142610fdd565b80611150575060005460ff16155b61118b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff161580156111b6576000805460ff1961ff0019909116610100171660011790555b80156111c8576000805461ff00191690555b50565b600054610100900460ff16806111e457506111e4610fdd565b806111f2575060005460ff16155b61122d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806113d2602e913960400191505060405180910390fd5b600054610100900460ff16158015611258576000805460ff1961ff0019909116610100171660011790555b825161126b9060369060208601906112a3565b50815161127f9060379060208501906112a3565b506038805460ff1916601217905580156110c1576000805461ff0019169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826112d9576000855561131f565b82601f106112f257805160ff191683800117855561131f565b8280016001018555821561131f579182015b8281111561131f578251825591602001919060010190611304565b5061132b92915061132f565b5090565b5b8082111561132b576000815560010161133056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200b687fddcd01dbad6e1d5fbd49cb041f69ed61684a12a4c26c6e37e0f5ad7c2a64736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"Curation#GraphCurationToken","networkInteractionId":1,"nonce":672,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x9d3f08284859c2c3f523c7c7bf48aaecadb5aa4e9cbc6f4abb001c48db908ba3"},"type":"TRANSACTION_SEND"} -{"artifactId":"EpochManager#EpochManager","constructorArgs":[],"contractName":"EpochManager","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"EpochManager#EpochManager","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"EpochManager#EpochManager","networkInteraction":{"data":"0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161103461016460003980610aac525080610a83525080610a5a525080610a31525080610a085250806109df5250806109b652506110346000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a2594d82116100ad578063cd6dc68711610071578063cd6dc687146102c4578063d0cfa46e146102f0578063d6866ea5146102f8578063f77c479114610300578063faa1a23c146103245761012c565b8063a2594d821461027e578063ab93122c146102a4578063b4146a0b146102ac578063c46e58eb146102b4578063cc65149b146102bc5761012c565b806376671808116100f457806376671808146101ab57806385df51fd146101b35780638ae63d6d146101d057806392eefe9b146101d85780639ce7abe5146101fe5761012c565b806319c3b82d146101315780631b28126d1461014b5780631ce05d381461016857806354eea7961461018457806357d775f8146101a3575b600080fd5b61013961032c565b60408051918252519081900360200190f35b6101396004803603602081101561016157600080fd5b5035610353565b61017061037f565b604080519115158252519081900360200190f35b6101a16004803603602081101561019a57600080fd5b5035610392565b005b61013961047f565b610139610485565b610139600480360360208110156101c957600080fd5b503561049b565b61013961053b565b6101a1600480360360208110156101ee57600080fd5b50356001600160a01b031661053f565b6101a16004803603604081101561021457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561023f57600080fd5b82018360208201111561025157600080fd5b8035906020019184600183028401116401000000008311171561027357600080fd5b509092509050610553565b6101a16004803603602081101561029457600080fd5b50356001600160a01b03166106a9565b6101396107c4565b6101396107e6565b6101a16107ec565b610139610888565b6101a1600480360360408110156102da57600080fd5b506001600160a01b03813516906020013561088e565b610139610999565b6101a16109b1565b610308610ad2565b604080516001600160a01b039092168252519081900360200190f35b610139610ae1565b600061034e600c54610348600f5461034261053b565b90610ae7565b90610b49565b905090565b60008061035e610485565b905080831061036e576000610378565b6103788184610ae7565b9392505050565b6000610389610485565b600d5414905090565b61039a610bb0565b600081116103ea576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b600c5481141561042b5760405162461bcd60e51b8152600401808060200182810382526029815260200180610f666029913960400191505060405180910390fd5b610433610485565b600e5561043e6107c4565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a250565b600c5481565b600061034e61049261032c565b600e5490610c84565b6000806104a661053b565b90508083106104e65760405162461bcd60e51b8152600401808060200182810382526023815260200180610fdc6023913960400191505060405180910390fd5b6101008110806104fa575061010081038310155b6105355760405162461bcd60e51b815260040180806020018281038252602c815260200180610fb0602c913960400191505060405180910390fd5b50504090565b4390565b610547610cde565b61055081610d3d565b50565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b505050506040513d60208110156105b957600080fd5b50516001600160a01b03163314610617576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561068b57600080fd5b505af115801561069f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156106e557600080fd5b505af11580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b50516001600160a01b0316331461076d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050505050565b600061034e6107dd600c546107d761032c565b90610de5565b600f5490610c84565b600e5481565b6107f461037f565b15610846576040805162461bcd60e51b815260206004820152601960248201527f43757272656e742065706f636820616c72656164792072756e00000000000000604482015290519081900360640190fd5b61084e610485565b600d8190556040805133815290517f666a37ccc682d20f8c51c5f6fd835cbadbcaaf09921e076282446e42d7264e3e9181900360200190a2565b600f5481565b610896610e3e565b6001600160a01b0316336001600160a01b0316146108f1576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b60008111610941576040805162461bcd60e51b8152602060048201526018602482015277045706f6368206c656e6774682063616e6e6f7420626520360441b604482015290519081900360640190fd5b61094a82610547565b6001600e5561095761053b565b600f55600c819055600e546040805183815290517f25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce24419181900360200190a25050565b60006109a36107c4565b6109ab61053b565b03905090565b6109da7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a037f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a2c7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a557f0000000000000000000000000000000000000000000000000000000000000000610e63565b610a7e7f0000000000000000000000000000000000000000000000000000000000000000610e63565b610aa77f0000000000000000000000000000000000000000000000000000000000000000610e63565b610ad07f0000000000000000000000000000000000000000000000000000000000000000610e63565b565b6000546001600160a01b031681565b600d5481565b600082821115610b3e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000808211610b9f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610ba857fe5b049392505050565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfc57600080fd5b505afa158015610c10573d6000803e3d6000fd5b505050506040513d6020811015610c2657600080fd5b50516001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b600082820183811015610378576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000546001600160a01b03163314610ad0576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b038116610d91576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600082610df457506000610b43565b82820282848281610e0157fe5b04146103785760405162461bcd60e51b8152600401808060200182810382526021815260200180610f8f6021913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b50516000838152600160205260409020549091506001600160a01b03808316911614610f615760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25b505056fe45706f6368206c656e677468206d75737420626520646966666572656e7420746f2063757272656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7743616e206f6e6c792072657472696576652068617368657320666f72206c6173742032353620626c6f636b7343616e206f6e6c79207265747269657665207061737420626c6f636b20686173686573a26469706673582212204f2e402817a5814bc2adbaf12f2c502ea545dc841b2e7971e3e247c0bfe5bd9464736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"EpochManager#EpochManager","networkInteractionId":1,"nonce":673,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x2926b3a82c5526008763763ba1fc2e6f4a0b058e2aa2e3600aff63f2678d358c"},"type":"TRANSACTION_SEND"} -{"futureId":"EpochManager#EpochManager","hash":"0x2926b3a82c5526008763763ba1fc2e6f4a0b058e2aa2e3600aff63f2678d358c","networkInteractionId":1,"receipt":{"blockHash":"0xf9a1d638963db590068461eb5be0fb291361be215852bb0b94745c5fdb41e7c6","blockNumber":97665362,"contractAddress":"0xFBb7D5597f4796225A957Fd56d368bfaD45F5036","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"EpochManager#EpochManager","result":{"address":"0xFBb7D5597f4796225A957Fd56d368bfaD45F5036","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"GraphProxyAdmin#GraphProxyAdmin","constructorArgs":[],"contractName":"GraphProxyAdmin","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"GraphProxyAdmin#GraphProxyAdmin","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphProxyAdmin#GraphProxyAdmin","networkInteraction":{"data":"0x608060405234801561001057600080fd5b506100243361002960201b610a0c1760201c565b61004b565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610a648061005a6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637eff275e116100715780637eff275e146101b157806399a88ec4146101df578063e3056a341461020d578063eb451a0214610215578063f2fde38b14610243578063f3b7dead14610269576100a9565b806307ebde0e146100ae5780630c340a2414610139578063204e1c7a1461015d5780635bf410eb1461018357806379ba5097146101a9575b600080fd5b610137600480360360608110156100c457600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b50909250905061028f565b005b610141610388565b604080516001600160a01b039092168252519081900360200190f35b6101416004803603602081101561017357600080fd5b50356001600160a01b0316610397565b6101416004803603602081101561019957600080fd5b50356001600160a01b031661046a565b610137610525565b610137600480360360408110156101c757600080fd5b506001600160a01b0381358116916020013516610633565b610137600480360360408110156101f557600080fd5b506001600160a01b03813581169160200135166106f6565b61014161079d565b6101376004803603604081101561022b57600080fd5b506001600160a01b03813581169160200135166107ac565b6101376004803603602081101561025957600080fd5b50356001600160a01b0316610853565b6101416004803603602081101561027f57600080fd5b50356001600160a01b0316610951565b6000546001600160a01b031633146102e7576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b836001600160a01b0316639ce7abe58484846040518463ffffffff1660e01b815260040180846001600160a01b03168152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050945050505050600060405180830381600087803b15801561036a57600080fd5b505af115801561037e573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b031681565b6000806000836001600160a01b03166040518080635c60da1b60e01b8152506004019050600060405180830381855afa9150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b50915091508161044b576040805162461bcd60e51b8152602060048201526016602482015275141c9bde1e481a5b5c1b0818d85b1b0819985a5b195960521b604482015290519081900360640190fd5b80806020019051602081101561046057600080fd5b5051949350505050565b6000806000836001600160a01b0316604051808063396f7b2360e01b8152506004019050600060405180830381855afa9150503d80600081146104c9576040519150601f19603f3d011682016040523d82523d6000602084013e6104ce565b606091505b50915091508161044b576040805162461bcd60e51b815260206004820152601d60248201527f50726f78792070656e64696e67496d706c2063616c6c206661696c6564000000604482015290519081900360640190fd5b6001546001600160a01b031680158015906105485750336001600160a01b038216145b610599576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000546001600160a01b0316331461068b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b031663704b6c02826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b505af11580156106ee573d6000803e3d6000fd5b505050505050565b6000546001600160a01b0316331461074e576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b0316633659cfe6826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b6001546001600160a01b031681565b6000546001600160a01b03163314610804576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b816001600160a01b031663a2594d82826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b1580156106da57600080fd5b6000546001600160a01b031633146108ab576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b0381166108fd576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000806000836001600160a01b031660405180806303e1469160e61b8152506004019050600060405180830381855afa9150503d80600081146109b0576040519150601f19603f3d011682016040523d82523d6000602084013e6109b5565b606091505b50915091508161044b576040805162461bcd60e51b815260206004820152601760248201527f50726f78792061646d696e2063616c6c206661696c6564000000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b039290921691909117905556fea26469706673582212208b271ee4c7625d89f662c15e90f70e142245bf56f0595043fe9af742b09d958c64736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphProxyAdmin#GraphProxyAdmin","networkInteractionId":1,"nonce":674,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x51c1db4798ea9bbacc08f180d8fe1481f583c397a2fe8797dc8b0ba99160a84c"},"type":"TRANSACTION_SEND"} -{"artifactId":"GraphToken#GraphToken","constructorArgs":[],"contractName":"GraphToken","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"GraphToken#GraphToken","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphToken#GraphToken","networkInteraction":{"data":"0x6101206040527fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564726080527fefcec85968da792893fa503eb21730083fc6c50ed5461e56163b28335b2a5f9660a0527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60c0527fe33842a7acd1d5a1d28f25a931703e5605152dc48d64dc4716efdae1f565959160e0527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610100523480156100c657600080fd5b5060805160a05160c05160e0516101005161261e61010660003980611547525080611eae525080611e5e525080611e3d525080611e1c525061261e6000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80638c2a993e1161011a578063a9059cbb116100ad578063ca52d7d71161007c578063ca52d7d71461067a578063d505accf146106a0578063dd62ed3e146106f1578063e3056a341461071f578063f2fde38b14610727576101fb565b8063a9059cbb146105fa578063aa271e1a14610626578063c2eeeebd1461064c578063c4d66de814610654576101fb565b806398650275116100e957806398650275146105205780639ce7abe514610528578063a2594d82146105a8578063a457c2d7146105ce576101fb565b80638c2a993e146104a057806390646b4a146104cc57806395d89b41146104f2578063983b2d56146104fa576101fb565b8063395093511161019257806374f4f5471161016157806374f4f5471461041a57806379ba50971461044657806379cc67901461044e5780637ecebe001461047a576101fb565b8063395093511461037f57806340c10f19146103ab57806342966c68146103d757806370a08231146103f4576101fb565b806318160ddd116101ce57806318160ddd146102e957806323b872dd146103035780633092afd514610339578063313ce56714610361576101fb565b806306fdde0314610200578063095ea7b31461027d5780630c340a24146102bd578063116191b6146102e1575b600080fd5b61020861074d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024257818101518382015260200161022a565b50505050905090810190601f16801561026f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102a96004803603604081101561029357600080fd5b506001600160a01b0381351690602001356107e3565b604080519115158252519081900360200190f35b6102c5610800565b604080516001600160a01b039092168252519081900360200190f35b6102c561080f565b6102f161081e565b60408051918252519081900360200190f35b6102a96004803603606081101561031957600080fd5b506001600160a01b03813581169160208101359091169060400135610824565b61035f6004803603602081101561034f57600080fd5b50356001600160a01b03166108ab565b005b610369610958565b6040805160ff9092168252519081900360200190f35b6102a96004803603604081101561039557600080fd5b506001600160a01b038135169060200135610961565b61035f600480360360408110156103c157600080fd5b506001600160a01b0381351690602001356109af565b61035f600480360360208110156103ed57600080fd5b5035610a0e565b6102f16004803603602081101561040a57600080fd5b50356001600160a01b0316610a1f565b61035f6004803603604081101561043057600080fd5b506001600160a01b038135169060200135610a3a565b61035f610ad4565b61035f6004803603604081101561046457600080fd5b506001600160a01b038135169060200135610be2565b6102f16004803603602081101561049057600080fd5b50356001600160a01b0316610c3c565b61035f600480360360408110156104b657600080fd5b506001600160a01b038135169060200135610c4e565b61035f600480360360208110156104e257600080fd5b50356001600160a01b0316610ce8565b610208610de1565b61035f6004803603602081101561051057600080fd5b50356001600160a01b0316610e42565b61035f610eef565b61035f6004803603604081101561053e57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561056957600080fd5b82018360208201111561057b57600080fd5b8035906020019184600183028401116401000000008311171561059d57600080fd5b509092509050610f43565b61035f600480360360208110156105be57600080fd5b50356001600160a01b0316611099565b6102a9600480360360408110156105e457600080fd5b506001600160a01b0381351690602001356111b4565b6102a96004803603604081101561061057600080fd5b506001600160a01b03813516906020013561121c565b6102a96004803603602081101561063c57600080fd5b50356001600160a01b0316611230565b6102c561124e565b61035f6004803603602081101561066a57600080fd5b50356001600160a01b031661125d565b61035f6004803603602081101561069057600080fd5b50356001600160a01b03166113d3565b61035f600480360360e08110156106b657600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c001356114cf565b6102f16004803603604081101561070757600080fd5b506001600160a01b0381358116916020013516611680565b6102c56116ab565b61035f6004803603602081101561073d57600080fd5b50356001600160a01b03166116ba565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b820191906000526020600020905b8154815290600101906020018083116107bc57829003601f168201915b5050505050905090565b60006107f76107f06117b8565b84846117bc565b50600192915050565b6000546001600160a01b031681565b60ca546001600160a01b031681565b60365490565b60006108318484846118a8565b6108a18461083d6117b8565b61089c8560405180606001604052806028815260200161250e602891396001600160a01b038a1660009081526035602052604081209061087b6117b8565b6001600160a01b031681526020810191909152604001600020549190611a05565b6117bc565b5060019392505050565b6000546001600160a01b03163314610903576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b61090c81611230565b61094c576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b61095581611a9c565b50565b60395460ff1690565b60006107f761096e6117b8565b8461089c856035600061097f6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611ae5565b6109b833611230565b610a00576040805162461bcd60e51b815260206004820152601460248201527313db9b1e481b5a5b9d195c8818d85b8818d85b1b60621b604482015290519081900360640190fd5b610a0a8282611b46565b5050565b610955610a196117b8565b82611c38565b6001600160a01b031660009081526034602052604090205490565b60ca546001600160a01b03163314610a87576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610a918282610be2565b6040805182815290516001600160a01b038416917fe87aeeb22c5753db7f543198a4c3089d2233040ea9d1cab0eaa3b96d94d4fc6e919081900360200190a25050565b6001546001600160a01b03168015801590610af75750336001600160a01b038216145b610b48576040805162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206d7573742062652070656e64696e6720676f7665726e6f7200604482015290519081900360640190fd5b600080546001600160a01b038381166001600160a01b031980841691909117808555600180549092169091556040519282169391169183917f0ac6deed30eef60090c749850e10f2fa469e3e25fec1d1bef2853003f6e6f18f91a36001546040516001600160a01b03918216918416907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b6000610c198260405180606001604052806024815260200161253660249139610c1286610c0d6117b8565b611680565b9190611a05565b9050610c2d83610c276117b8565b836117bc565b610c378383611c38565b505050565b609a6020526000908152604090205481565b60ca546001600160a01b03163314610c9b576040805162461bcd60e51b815260206004820152600b60248201526a4e4f545f4741544557415960a81b604482015290519081900360640190fd5b610ca58282611b46565b6040805182815290516001600160a01b038416917fae4b6e741e38054ad6705655cc56c91c184f6768f76b41e10803e2766d89e19f919081900360200190a25050565b6000546001600160a01b03163314610d40576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610d8d576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4741544557415960881b604482015290519081900360640190fd5b60ca80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f5317fa585931182194fed99f2ea5f2efd38af9cff9724273704c8501c521e34b9181900360200190a150565b60388054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107d95780601f106107ae576101008083540402835291602001916107d9565b6000546001600160a01b03163314610e9a576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116610ee6576040805162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa6a4a72a22a960911b604482015290519081900360640190fd5b61095581611d34565b610ef833611230565b610f38576040805162461bcd60e51b815260206004820152600c60248201526b2727aa2fa0afa6a4a72a22a960a11b604482015290519081900360640190fd5b610f4133611a9c565b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610f7f57600080fd5b505af1158015610f93573d6000803e3d6000fd5b505050506040513d6020811015610fa957600080fd5b50516001600160a01b03163314611007576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156110d557600080fd5b505af11580156110e9573d6000803e3d6000fd5b505050506040513d60208110156110ff57600080fd5b50516001600160a01b0316331461115d576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561119857600080fd5b505af11580156111ac573d6000803e3d6000fd5b505050505050565b60006107f76111c16117b8565b8461089c856040518060600160405280602581526020016125c460259139603560006111eb6117b8565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611a05565b60006107f76112296117b8565b84846118a8565b6001600160a01b031660009081526099602052604090205460ff1690565b60cb546001600160a01b031681565b611265611d80565b6001600160a01b0316336001600160a01b0316146112c0576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b600154600160a81b900460ff16806112db57506112db611da5565b806112f05750600154600160a01b900460ff16155b61132b5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015611362576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b6001600160a01b0382166113b1576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6113bc826000611db6565b8015610a0a576001805460ff60a81b191690555050565b6000546001600160a01b0316331461142b576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b03811661147b576040805162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c315f4144445245535360701b604482015290519081900360640190fd5b60cb80546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f603c0b2e4494ac82839a70be8b6c660d7d042ccfe71c3ce0e5157f59090e74459181900360200190a150565b8315806114dc5750834211155b611523576040805162461bcd60e51b815260206004820152601360248201527211d4950e88195e1c1a5c9959081c195c9b5a5d606a1b604482015290519081900360640190fd5b6098546001600160a01b038089166000818152609a602090815260408083205481517f00000000000000000000000000000000000000000000000000000000000000008185015280830195909552948c166060850152608084018b905260a084019490945260c08084018a90528451808503909101815260e08401855280519082012061190160f01b61010085015261010284019590955261012280840195909552835180840390950185526101429092019092528251920191909120906115ed82868686611ef3565b9050806001600160a01b0316896001600160a01b03161461164b576040805162461bcd60e51b815260206004820152601360248201527211d4950e881a5b9d985b1a59081c195c9b5a5d606a1b604482015290519081900360640190fd5b6001600160a01b0389166000908152609a60205260409020805460010190556116758989896117bc565b505050505050505050565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b6001546001600160a01b031681565b6000546001600160a01b03163314611712576040805162461bcd60e51b815260206004820152601660248201527513db9b1e4811dbdd995c9b9bdc8818d85b8818d85b1b60521b604482015290519081900360640190fd5b6001600160a01b038116611764576040805162461bcd60e51b815260206004820152601460248201527311dbdd995c9b9bdc881b5d5cdd081899481cd95d60621b604482015290519081900360640190fd5b600180546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d90600090a35050565b3390565b6001600160a01b0383166118015760405162461bcd60e51b81526004018080602001828103825260248152602001806125a06024913960400191505060405180910390fd5b6001600160a01b0382166118465760405162461bcd60e51b81526004018080602001828103825260228152602001806124546022913960400191505060405180910390fd5b6001600160a01b03808416600081815260356020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166118ed5760405162461bcd60e51b815260040180806020018281038252602581526020018061257b6025913960400191505060405180910390fd5b6001600160a01b0382166119325760405162461bcd60e51b815260040180806020018281038252602381526020018061240f6023913960400191505060405180910390fd5b61193d838383610c37565b61197a81604051806060016040528060268152602001612476602691396001600160a01b0386166000908152603460205260409020549190611a05565b6001600160a01b0380851660009081526034602052604080822093909355908416815220546119a99082611ae5565b6001600160a01b0380841660008181526034602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115611a945760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a59578181015183820152602001611a41565b50505050905090810190601f168015611a865780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038116600081815260996020526040808220805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929190a250565b600082820183811015611b3f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216611ba1576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611bad60008383610c37565b603654611bba9082611ae5565b6036556001600160a01b038216600090815260346020526040902054611be09082611ae5565b6001600160a01b03831660008181526034602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216611c7d5760405162461bcd60e51b815260040180806020018281038252602181526020018061255a6021913960400191505060405180910390fd5b611c8982600083610c37565b611cc681604051806060016040528060228152602001612432602291396001600160a01b0385166000908152603460205260409020549190611a05565b6001600160a01b038316600090815260346020526040902055603654611cec9082612071565b6036556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b038116600081815260996020526040808220805460ff19166001179055517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f69190a250565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611db0306120ce565b15905090565b611dfe6040518060400160405280600b81526020016a23b930b834102a37b5b2b760a91b8152506040518060400160405280600381526020016211d49560ea1b8152506120d4565b611e07826121a0565b611e118282611b46565b611e1a82611d34565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611e856121c2565b6040805160208082019690965280820194909452606084019290925260808301523060a08301527f000000000000000000000000000000000000000000000000000000000000000060c0808401919091528151808403909101815260e0909201905280519101206098555050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115611f545760405162461bcd60e51b815260040180806020018281038252602281526020018061249c6022913960400191505060405180910390fd5b8360ff16601b1480611f6957508360ff16601c145b611fa45760405162461bcd60e51b81526004018080602001828103825260228152602001806124ec6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015612000573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612068576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b6000828211156120c8576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3b151590565b600154600160a81b900460ff16806120ef57506120ef611da5565b806121045750600154600160a01b900460ff16155b61213f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612176576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b61217e6121c6565b612188838361227e565b8015610c37576001805460ff60a81b19169055505050565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b4690565b600154600160a81b900460ff16806121e157506121e1611da5565b806121f65750600154600160a01b900460ff16155b6122315760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612268576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b8015610955576001805460ff60a81b1916905550565b600154600160a81b900460ff16806122995750612299611da5565b806122ae5750600154600160a01b900460ff16155b6122e95760405162461bcd60e51b815260040180806020018281038252602e8152602001806124be602e913960400191505060405180910390fd5b600154600160a81b900460ff16158015612320576001805460ff60a01b1960ff60a81b19909116600160a81b1716600160a01b1790555b825161233390603790602086019061236d565b50815161234790603890602085019061236d565b506039805460ff191660121790558015610c37576001805460ff60a81b19169055505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826123a357600085556123e9565b82601f106123bc57805160ff19168380011785556123e9565b828001600101855582156123e9579182015b828111156123e95782518255916020019190600101906123ce565b506123f59291506123f9565b5090565b5b808211156123f557600081556001016123fa56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c7565496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a656445434453413a20696e76616c6964207369676e6174757265202776272076616c756545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ff9ed43c1b257716d58111b6358b62039b7d7359bc9f0f142332535a4370cafe64736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphToken#GraphToken","networkInteractionId":1,"nonce":675,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x2b8f1636bdf24dfc8e48fb4795aecee9bfa5a35b190eaec2a4089d8d1de628b5"},"type":"TRANSACTION_SEND"} -{"artifactId":"GraphTokenGateway#GraphTokenGateway","constructorArgs":[],"contractName":"GraphTokenGateway","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"GraphTokenGateway#GraphTokenGateway","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphTokenGateway#GraphTokenGateway","networkInteraction":{"data":"0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e05161010051610120516101405161222b6101696000398061112f5250806111065250806110dd528061150a5250806110b452508061108b525080611062525080611039525061222b6000f3fe6080604052600436106101405760003560e01c806392eefe9b116100b6578063c4d66de81161006f578063c4d66de814610355578063d2ce7d6514610375578063d685c0b214610388578063d6866ea5146103a8578063f14a4bd5146103bd578063f77c4791146103d257610140565b806392eefe9b146102a05780639ce7abe5146102c0578063a0c76a96146102e0578063a2594d8214610300578063a7e28d4814610320578063c4c0087c1461034057610140565b806348bde20c1161010857806348bde20c146101e75780634adc698a146102075780635c975abb1461021c57806369bc8cd41461023e5780637b3a3c8b1461025e57806391b4ded91461028b57610140565b80630252fec114610145578063147ddef51461016757806316c38b3c1461019257806324a3d622146101b25780632e567b36146101d4575b600080fd5b34801561015157600080fd5b50610165610160366004611b43565b6103e7565b005b34801561017357600080fd5b5061017c610474565b60405161018991906121a9565b60405180910390f35b34801561019e57600080fd5b506101656101ad366004611da9565b61047a565b3480156101be57600080fd5b506101c7610572565b6040516101899190611e67565b6101656101e2366004611bb4565b610581565b3480156101f357600080fd5b50610165610202366004611b43565b6107b9565b34801561021357600080fd5b506101c7610825565b34801561022857600080fd5b50610231610834565b6040516101899190611f43565b34801561024a57600080fd5b50610165610259366004611b43565b610842565b34801561026a57600080fd5b5061027e610279366004611cb4565b6108bb565b6040516101899190611f4e565b34801561029757600080fd5b5061017c6108d7565b3480156102ac57600080fd5b506101656102bb366004611b43565b6108dd565b3480156102cc57600080fd5b506101656102db366004611dc9565b6108ee565b3480156102ec57600080fd5b5061027e6102fb366004611c37565b610a44565b34801561030c57600080fd5b5061016561031b366004611b43565b610ac4565b34801561032c57600080fd5b506101c761033b366004611b43565b610bdf565b34801561034c57600080fd5b506101c7610c0f565b34801561036157600080fd5b50610165610370366004611b43565b610c1e565b61027e610383366004611d25565b610d44565b34801561039457600080fd5b506101656103a3366004611b43565b610fbb565b3480156103b457600080fd5b50610165611034565b3480156103c957600080fd5b506101c7611155565b3480156103de57600080fd5b506101c7611164565b6103ef611173565b6001600160a01b03811661041e5760405162461bcd60e51b815260040161041590612034565b60405180910390fd5b607780546001600160a01b0319166001600160a01b0383161790556040517f43a303848c82a28f94def3043839eaebd654c19fdada874a74fb94d8bf7d343890610469908390611e67565b60405180910390a150565b60015481565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50516001600160a01b031633148061050857506003546001600160a01b031633145b610559576040805162461bcd60e51b815260206004820152601960248201527f4f6e6c7920476f7665726e6f72206f7220477561726469616e00000000000000604482015290519081900360640190fd5b806105665761056661123d565b61056f816112b5565b50565b6003546001600160a01b031681565b600260435414156105d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026043556105e6611340565b6076546105fb906001600160a01b0316611391565b6001600160a01b0316336001600160a01b03161461062b5760405162461bcd60e51b815260040161041590612172565b6075546001600160a01b038781169116146106585760405162461bcd60e51b81526004016104159061214b565b34156106765760405162461bcd60e51b815260040161041590611fdd565b60755461068b906001600160a01b0316610bdf565b6001600160a01b0316638c2a993e85856040518363ffffffff1660e01b81526004016106b8929190611ee2565b600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b505082159150610757905057604051635260769b60e11b81526001600160a01b0385169063a4c0ed3690610724908890879087908790600401611efb565b600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b505050505b836001600160a01b0316856001600160a01b0316876001600160a01b03167fc7f2e9c55c40a50fbc217dfc70cd39a222940dfa62145aa0ca49eb9535d4fcb2866040516107a491906121a9565b60405180910390a45050600160435550505050565b6107c1611173565b6001600160a01b03811661081c576040805162461bcd60e51b815260206004820152601960248201527f5061757365477561726469616e206d7573742062652073657400000000000000604482015290519081900360640190fd5b61056f816113aa565b6077546001600160a01b031681565b600054610100900460ff1690565b61084a611173565b6001600160a01b0381166108705760405162461bcd60e51b81526004016104159061200c565b607580546001600160a01b0319166001600160a01b0383161790556040517f0b7cf729ac6c387cab57a28d257c6ecac863c24b086353121057083c7bfc79f990610469908390611e67565b60606108cd8686866000808888610d44565b9695505050505050565b60025481565b6108e56113fc565b61056f8161145b565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b505050506040513d602081101561095457600080fd5b50516001600160a01b031633146109b2576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610a2657600080fd5b505af1158015610a3a573d6000803e3d6000fd5b5050505050505050565b6060632e567b3660e01b86868686600087604051602001610a66929190611f61565b60408051601f1981840301815290829052610a879594939291602401611e7b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905095945050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610b0057600080fd5b505af1158015610b14573d6000803e3d6000fd5b505050506040513d6020811015610b2a57600080fd5b50516001600160a01b03163314610b88576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bc357600080fd5b505af1158015610bd7573d6000803e3d6000fd5b505050505050565b6075546000906001600160a01b03838116911614610bff57506000610c0a565b610c07611503565b90505b919050565b6076546001600160a01b031681565b610c26611533565b6001600160a01b0316336001600160a01b031614610c81576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b604254610100900460ff1680610c9a5750610c9a611558565b80610ca8575060425460ff16155b610ce35760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015610d0e576042805460ff1961ff0019909116610100171660011790555b610d17826108e5565b6000805461ff001916610100179055610d2e611569565b8015610d40576042805461ff00191690555b5050565b606060026043541415610d9e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002604355610dab611340565b6075546001600160a01b03898116911614610dd85760405162461bcd60e51b81526004016104159061214b565b85610df55760405162461bcd60e51b815260040161041590611fb0565b3415610e135760405162461bcd60e51b815260040161041590611fdd565b6001600160a01b038716610e395760405162461bcd60e51b81526004016104159061205f565b610e41611a76565b610e4b8484611612565b602083018190526001600160a01b0390911682525115610e7d5760405162461bcd60e51b8152600401610415906120bc565b607554610e92906001600160a01b0316610bdf565b81516040516374f4f54760e01b81526001600160a01b0392909216916374f4f54791610ec2918b90600401611ee2565b600060405180830381600087803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b505050506000610f3060008360000151607660009054906101000a90046001600160a01b0316610f2b8e87600001518f8f8a60200151610a44565b61168f565b905080896001600160a01b031683600001516001600160a01b03167f3073a74ecb728d10be779fe19a74a1428e20468f5b4d167bf9c73d9067847d738d60008d604051610f7f93929190611ec1565b60405180910390a480604051602001610f9891906121a9565b604051602081830303815290604052925050506001604355979650505050505050565b610fc3611173565b6001600160a01b038116610fe95760405162461bcd60e51b81526004016104159061208c565b607680546001600160a01b0319166001600160a01b0383161790556040517f60d5265d09ed32300af9a69188333d24b405b6f4196f623f3e2b78321181a61590610469908390611e67565b61105d7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110867f000000000000000000000000000000000000000000000000000000000000000061182f565b6110af7f000000000000000000000000000000000000000000000000000000000000000061182f565b6110d87f000000000000000000000000000000000000000000000000000000000000000061182f565b6111017f000000000000000000000000000000000000000000000000000000000000000061182f565b61112a7f000000000000000000000000000000000000000000000000000000000000000061182f565b6111537f000000000000000000000000000000000000000000000000000000000000000061182f565b565b6075546001600160a01b031681565b6004546001600160a01b031681565b6004805460408051634fc07d7560e01b815290516001600160a01b0390921692634fc07d75928282019260209290829003018186803b1580156111b557600080fd5b505afa1580156111c9573d6000803e3d6000fd5b505050506040513d60208110156111df57600080fd5b50516001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b6077546001600160a01b03166112655760405162461bcd60e51b815260040161041590611f85565b6076546001600160a01b031661128d5760405162461bcd60e51b8152600401610415906120f3565b6075546001600160a01b03166111535760405162461bcd60e51b815260040161041590612123565b600060019054906101000a900460ff16151581151514156112d55761056f565b6000805461ff0019166101008315158102919091179182905560ff910416156112fd57426002555b6000546040805161010090920460ff1615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916020908290030190a150565b600054610100900460ff1615611153576040805162461bcd60e51b81526020600482015260116024820152705061757365642028636f6e74726163742960781b604482015290519081900360640190fd5b7311110000000000000000000000000000000011110190565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e90600090a35050565b6004546001600160a01b03163314611153576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166114af576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600480546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b600061152e7f0000000000000000000000000000000000000000000000000000000000000000611930565b905090565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000611563306119ca565b15905090565b604254610100900460ff16806115825750611582611558565b80611590575060425460ff16155b6115cb5760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff161580156115f6576042805460ff1961ff0019909116610100171660011790555b6115fe6119d0565b801561056f576042805461ff001916905550565b607754600090606090829082906001600160a01b03163314156116455761163b85870187611b66565b9092509050611682565b33915085858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b90925090505b9250929050565b60008060646001600160a01b031663928c169a8786866040518463ffffffff1660e01b815260040180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156117005781810151838201526020016116e8565b50505050905090810190601f16801561172d5780820380516001836020036101000a031916815260200191505b5093505050506020604051808303818588803b15801561174c57600080fd5b505af1158015611760573d6000803e3d6000fd5b50505050506040513d602081101561177757600080fd5b5051604080516020808252865182820152865193945084936001600160a01b03808a1694908b16937f2b986d32a0536b7e19baa48ab949fec7b903b7fad7730820b20632d100cc3a68938a93919283929083019185019080838360005b838110156117ec5781810151838201526020016117d4565b50505050905090810190601f1680156118195780820380516001836020036101000a031916815260200191505b509250505060405180910390a495945050505050565b6004805460408051637bb20d2f60e11b8152928301849052516000926001600160a01b039092169163f7641a5e916024808301926020929190829003018186803b15801561187c57600080fd5b505afa158015611890573d6000803e3d6000fd5b505050506040513d60208110156118a657600080fd5b50516000838152600560205260409020549091506001600160a01b03808316911614610d405760008281526005602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000818152600560205260408120546001600160a01b031680610c07576004805460408051637bb20d2f60e11b8152928301869052516001600160a01b039091169163f7641a5e916024808301926020929190829003018186803b15801561199757600080fd5b505afa1580156119ab573d6000803e3d6000fd5b505050506040513d60208110156119c157600080fd5b50519392505050565b3b151590565b604254610100900460ff16806119e957506119e9611558565b806119f7575060425460ff16155b611a325760405162461bcd60e51b815260040180806020018281038252602e8152602001806121c8602e913960400191505060405180910390fd5b604254610100900460ff16158015611a5d576042805460ff1961ff0019909116610100171660011790555b6001604355801561056f576042805461ff001916905550565b60408051808201909152600081526060602082015290565b60008083601f840112611a9f578182fd5b50813567ffffffffffffffff811115611ab6578182fd5b60208301915083602082850101111561168857600080fd5b600082601f830112611ade578081fd5b813567ffffffffffffffff80821115611af357fe5b604051601f8301601f191681016020018281118282101715611b1157fe5b604052828152848301602001861015611b28578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215611b54578081fd5b8135611b5f816121b2565b9392505050565b60008060408385031215611b78578081fd5b8235611b83816121b2565b9150602083013567ffffffffffffffff811115611b9e578182fd5b611baa85828601611ace565b9150509250929050565b60008060008060008060a08789031215611bcc578182fd5b8635611bd7816121b2565b95506020870135611be7816121b2565b94506040870135611bf7816121b2565b935060608701359250608087013567ffffffffffffffff811115611c19578283fd5b611c2589828a01611a8e565b979a9699509497509295939492505050565b600080600080600060a08688031215611c4e578081fd5b8535611c59816121b2565b94506020860135611c69816121b2565b93506040860135611c79816121b2565b925060608601359150608086013567ffffffffffffffff811115611c9b578182fd5b611ca788828901611ace565b9150509295509295909350565b600080600080600060808688031215611ccb578081fd5b8535611cd6816121b2565b94506020860135611ce6816121b2565b935060408601359250606086013567ffffffffffffffff811115611d08578182fd5b611d1488828901611a8e565b969995985093965092949392505050565b600080600080600080600060c0888a031215611d3f578081fd5b8735611d4a816121b2565b96506020880135611d5a816121b2565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611d8a578182fd5b611d968a828b01611a8e565b989b979a50959850939692959293505050565b600060208284031215611dba578081fd5b81358015158114611b5f578182fd5b600080600060408486031215611ddd578283fd5b8335611de8816121b2565b9250602084013567ffffffffffffffff811115611e03578283fd5b611e0f86828701611a8e565b9497909650939450505050565b60008151808452815b81811015611e4157602081850181015186830182015201611e25565b81811115611e525782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a060808201819052600090611eb690830184611e1c565b979650505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b901515815260200190565b600060208252611b5f6020830184611e1c565b600060ff8416825260406020830152611f7d6040830184611e1c565b949350505050565b602080825260119082015270130c97d493d555115497d393d517d4d155607a1b604082015260600190565b6020808252601390820152721253959053125117d6915493d7d05353d55395606a1b604082015260600190565b602080825260159082015274494e56414c49445f4e4f4e5a45524f5f56414c554560581b604082015260600190565b6020808252600e908201526d1253959053125117d30c57d1d49560921b604082015260600190565b60208082526011908201527024a72b20a624a22fa6192fa927aaaa22a960791b604082015260600190565b60208082526013908201527224a72b20a624a22fa222a9aa24a720aa24a7a760691b604082015260600190565b6020808252601690820152751253959053125117d30c57d0d3d5539511549410549560521b604082015260600190565b6020808252601a908201527f43414c4c5f484f4f4b5f444154415f4e4f545f414c4c4f574544000000000000604082015260600190565b602080825260169082015275130c57d0d3d5539511549410549517d393d517d4d15560521b604082015260600190565b6020808252600e908201526d130c57d1d49517d393d517d4d15560921b604082015260600190565b6020808252600d908201526c1513d2d15397d393d517d1d495609a1b604082015260600190565b60208082526018908201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604082015260600190565b90815260200190565b6001600160a01b038116811461056f57600080fdfe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564a264697066735822122057745d277cf1b69bcdb769c1080348f4281e738017b4783e36958ec852e3141b64736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphTokenGateway#GraphTokenGateway","networkInteractionId":1,"nonce":676,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x0fc1922bf5f636404f8b6393b0e75d933c57b0bcc5fe452fbba6817f91d6260d"},"type":"TRANSACTION_SEND"} -{"artifactId":"HorizonProxies#OZProxyDummy_GraphPayments","constructorArgs":[],"contractName":"Dummy","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonProxies#OZProxyDummy_GraphPayments","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonProxies#OZProxyDummy_GraphPayments","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonProxies#OZProxyDummy_GraphPayments","networkInteractionId":1,"nonce":677,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xfcdb517c739e39c4079965c00f6436d4312e91b3fecd1490909a5ecea4c70d01"},"type":"TRANSACTION_SEND"} -{"futureId":"HorizonProxies#OZProxyDummy_GraphPayments","hash":"0xfcdb517c739e39c4079965c00f6436d4312e91b3fecd1490909a5ecea4c70d01","networkInteractionId":1,"receipt":{"blockHash":"0xb12d820bd14f60e40fe0687503a62fb2445b877e197efd27ded703562a56344b","blockNumber":97665397,"contractAddress":"0x779934076396014b1395892C1a960CAd33548b7a","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonProxies#OZProxyDummy_GraphPayments","result":{"address":"0x779934076396014b1395892C1a960CAd33548b7a","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"HorizonProxies#OZProxyDummy_PaymentsEscrow","constructorArgs":[],"contractName":"Dummy","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonProxies#OZProxyDummy_PaymentsEscrow","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonProxies#OZProxyDummy_PaymentsEscrow","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonProxies#OZProxyDummy_PaymentsEscrow","networkInteractionId":1,"nonce":678,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xac4ce8d1fdf1317d7ada6e6e1ab22cdba08db0b6199dacac72a66fa47576df99"},"type":"TRANSACTION_SEND"} -{"futureId":"HorizonProxies#OZProxyDummy_PaymentsEscrow","hash":"0xac4ce8d1fdf1317d7ada6e6e1ab22cdba08db0b6199dacac72a66fa47576df99","networkInteractionId":1,"receipt":{"blockHash":"0x06e529349e456be3fd4977463460264899500ddc270d61d0f75ea95432738494","blockNumber":97665408,"contractAddress":"0x994e77A4673d74C3565B04EF572988B9c7f05778","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonProxies#OZProxyDummy_PaymentsEscrow","result":{"address":"0x994e77A4673d74C3565B04EF572988B9c7f05778","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"HorizonStakingExtension#ExponentialRebates","constructorArgs":[],"contractName":"ExponentialRebates","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonStakingExtension#ExponentialRebates","futureType":"LIBRARY_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonStakingExtension#ExponentialRebates","networkInteraction":{"data":"0x610c2d610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806349484d811461003a575b600080fd5b61004d610048366004610a66565b61005f565b60405190815260200160405180910390f35b6000806100728660030b8660030b61011c565b9050806000036100855787915050610112565b87600003610097576000915050610112565b60006100a98560030b8560030b61011c565b905060006100b8828a8c61013c565b9050600f6100c582610153565b13156100d657899350505050610112565b60006100ff6001607f1b6100fa866100f56100f087610ae2565b610169565b610882565b61089d565b905061010b818c6108d4565b9450505050505b9695505050505050565b600061013561012f846001607f1b610920565b83610988565b9392505050565b600061014b61012f8585610920565b949350505050565b60006101636001607f1b83610b14565b92915050565b60006101796101ff607c1b610ae2565b82121561018857506000919050565b8160000361019b57506001607f1b919050565b60008213156101c55760405162461bcd60e51b81526004016101bc90610b42565b60405180910390fd5b6000806101d66001607c1b85610b69565b91508190506001607f1b6101ea8280610b7d565b6101f49190610b14565b9050610208816710e1b3be415a0000610b7d565b6102129084610bad565b92506001607f1b6102238383610b7d565b61022d9190610b14565b9050610241816705a0913f6b1e0000610b7d565b61024b9084610bad565b92506001607f1b61025c8383610b7d565b6102669190610b14565b905061027a81670168244fdac78000610b7d565b6102849084610bad565b92506001607f1b6102958383610b7d565b61029f9190610b14565b90506102b281664807432bc18000610b7d565b6102bc9084610bad565b92506001607f1b6102cd8383610b7d565b6102d79190610b14565b90506102ea81660c0135dca04000610b7d565b6102f49084610bad565b92506001607f1b6103058383610b7d565b61030f9190610b14565b9050610322816601b707b1cdc000610b7d565b61032c9084610bad565b92506001607f1b61033d8383610b7d565b6103479190610b14565b9050610359816536e0f639b800610b7d565b6103639084610bad565b92506001607f1b6103748383610b7d565b61037e9190610b14565b905061039081650618fee9f800610b7d565b61039a9084610bad565b92506001607f1b6103ab8383610b7d565b6103b59190610b14565b90506103c681649c197dcc00610b7d565b6103d09084610bad565b92506001607f1b6103e18383610b7d565b6103eb9190610b14565b90506103fc81640e30dce400610b7d565b6104069084610bad565b92506001607f1b6104178383610b7d565b6104219190610b14565b90506104328164012ebd1300610b7d565b61043c9084610bad565b92506001607f1b61044d8383610b7d565b6104579190610b14565b9050610467816317499f00610b7d565b6104719084610bad565b92506001607f1b6104828383610b7d565b61048c9190610b14565b905061049c816301a9d480610b7d565b6104a69084610bad565b92506001607f1b6104b78383610b7d565b6104c19190610b14565b90506104d081621c6380610b7d565b6104da9084610bad565b92506001607f1b6104eb8383610b7d565b6104f59190610b14565b9050610504816201c638610b7d565b61050e9084610bad565b92506001607f1b61051f8383610b7d565b6105299190610b14565b905061053781611ab8610b7d565b6105419084610bad565b92506001607f1b6105528383610b7d565b61055c9190610b14565b905061056a8161017c610b7d565b6105749084610bad565b92506001607f1b6105858383610b7d565b61058f9190610b14565b905061059c816014610b7d565b6105a69084610bad565b92506001607f1b6105b78383610b7d565b6105c19190610b14565b90506105ce816001610b7d565b6105d89084610bad565b92506001607f1b826105f26721c3677c82b4000086610b14565b6105fc9190610bad565b6106069190610bad565b925061061184610ae2565b9350600160841b841615610657577243cbaf42a000812488fc5c220ad7b97bf6e99e61064a6cf1aaddd7742e56d32fb9f9974485610b7d565b6106549190610b14565b92505b600160831b84161561069c577105d27a9f51c31b7c2f8038212a057477999161068f6e0afe10820813d65dfe6a33c07f738f85610b7d565b6106999190610b14565b92505b600160821b8416156106e157701b4c902e273a58678d6d3bfdb93db96d026106d46f02582ab704279e8efd15e0265855c47a85610b7d565b6106de9190610b14565b92505b600160811b841615610726577003b1cc971a9bb5b9867477440d6d1577506107196f1152aaa3bf81cb9fdb76eae12d02957185610b7d565b6107239190610b14565b92505b600160801b84161561076b5770015bf0a8b1457695355fb8ac404e7a79e361075e6f2f16ac6c59de6f8d5d6f63c1482a7c8685610b7d565b6107689190610b14565b92505b6001607f1b8416156107af576fd3094c70f034de4b96ff7d5b6f99fcd86107a26f4da2cbf1be5827f9eb3ad1aa9866ebb385610b7d565b6107ac9190610b14565b92505b6001607e1b8416156107f3576fa45af1e1f40c333b3de1db4dd55f29a76107e66f63afbe7ab2082ba1a0ae5e4eb1b479dc85610b7d565b6107f09190610b14565b92505b6001607d1b841615610837576f910b022db7ae67ce76b441c27035c6a161082a6f70f5a893b608861e1f58934f97aea57d85610b7d565b6108349190610b14565b92505b6001607c1b84161561087b576f88415abbe9a76bead8d00cf112e4d4a861086e6f783eafef1c0a8f3978c7f81824d62ebf85610b7d565b6108789190610b14565b92505b5050919050565b60006001607f1b6108938484610920565b6101359190610b14565b6000600160ff1b82036108c25760405162461bcd60e51b81526004016101bc90610b42565b610135836108cf84610ae2565b6109f2565b6000808212156108f65760405162461bcd60e51b81526004016101bc90610b42565b60006109028484610920565b905060008113610916576000915050610163565b607f1c9392505050565b600082158061092d575081155b1561093a57506000610163565b508181028183828161094e5761094e610afe565b0514158061096b57508282828161096757610967610afe565b0514155b156101635760405162461bcd60e51b81526004016101bc90610bd5565b6000816000036109aa5760405162461bcd60e51b81526004016101bc90610bd5565b600160ff1b831480156109be575081600019145b156109db5760405162461bcd60e51b81526004016101bc90610bd5565b8183816109ea576109ea610afe565b059392505050565b818101600083128015610a055750600082125b8015610a1057508281135b8061096b5750600083138015610a265750600082135b801561096b5750828112156101635760405162461bcd60e51b81526004016101bc90610bd5565b803563ffffffff81168114610a6157600080fd5b919050565b60008060008060008060c08789031215610a7f57600080fd5b8635955060208701359450610a9660408801610a4d565b9350610aa460608801610a4d565b9250610ab260808801610a4d565b9150610ac060a08801610a4d565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610af757610af7610acc565b5060000390565b634e487b7160e01b600052601260045260246000fd5b600082610b2357610b23610afe565b600160ff1b821460001984141615610b3d57610b3d610acc565b500590565b6020808252600d908201526c6f75742d6f662d626f756e647360981b604082015260600190565b600082610b7857610b78610afe565b500790565b80820260008212600160ff1b84141615610b9957610b99610acc565b818105831482151761016357610163610acc565b8082018281126000831280158216821582161715610bcd57610bcd610acc565b505092915050565b6020808252600890820152676f766572666c6f7760c01b60408201526060019056fea26469706673582212201cac81319f1bc19d15bc3a02519b03e3559a9cf147525a96caa8cb800f74da2864736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonStakingExtension#ExponentialRebates","networkInteractionId":1,"nonce":679,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x969a0e54409dc477218979e106b24123cd23518677aa9110137f1efa405a0861"},"type":"TRANSACTION_SEND"} -{"artifactId":"RewardsManager#RewardsManager","constructorArgs":[],"contractName":"RewardsManager","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"RewardsManager#RewardsManager","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"RewardsManager#RewardsManager","networkInteraction":{"data":"0x6101606040527fe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f6080527fc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f6706360a0527f966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c5318076160c0527f1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d16703460e0527f45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247610100527fd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0610120527f39605a6c26a173774ca666c67ef70cf491880e5d3d6d0ca66ec0a31034f15ea36101405234801561011057600080fd5b5060805160a05160c05160e051610100516101205161014051611eb861017360003980610fe1525080610fb8525080610f8f528061194f525080610f6652806116d2525080610f3d525080610f14525080610eeb52806115165250611eb86000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806392eefe9b1161010f578063c8a5f81e116100a2578063e284f84811610071578063e284f848146103cb578063e820e284146103d3578063eeac3e0e146103f3578063f77c479114610406576101e5565b8063c8a5f81e14610395578063d6866ea5146103a8578063db750926146103b0578063e242cf1e146103c3576101e5565b8063a8cc0ee2116100de578063a8cc0ee21461036a578063b951acd714610372578063c4d66de81461037a578063c7d1117d1461038d576101e5565b806392eefe9b1461031e57806393a90a1e146103315780639ce7abe514610344578063a2594d8214610357576101e5565b806326058249116101875780636c080f18116101565780636c080f18146102da578063702a280e146102e257806379ee54f7146103035780639006ce8b14610316576101e5565b806326058249146102895780634986594f146102915780634bbfc1c5146102b45780635c6cbd59146102c7576101e5565b80631324a506116101c35780631324a5061461023057806316a84ab2146102435780631d1c2fec146102635780631debaded14610276576101e5565b806305bb8c6b146101ea5780630903c094146102085780631156bdc11461021d575b600080fd5b6101f261040e565b6040516101ff9190611c75565b60405180910390f35b61021b610216366004611a54565b61041d565b005b61021b61022b366004611b75565b610479565b61021b61023e366004611b8d565b61048d565b610256610251366004611b75565b6104ce565b6040516101ff9190611cad565b610256610271366004611b75565b6104e0565b61021b610284366004611ad4565b610519565b6101f26105b8565b6102a461029f366004611b75565b6105c7565b6040516101ff9493929190611e23565b61021b6102c2366004611b75565b6105ee565b6102566102d5366004611b75565b6106ea565b6102566107db565b6102f56102f0366004611b75565b6107e1565b6040516101ff929190611e15565b610256610311366004611a54565b610955565b610256610b3d565b61021b61032c366004611a54565b610b43565b61021b61033f366004611a54565b610b54565b61021b610352366004611bbc565b610bae565b61021b610365366004611a54565b610d04565b610256610e1f565b610256610e3b565b61021b610388366004611a54565b610e41565b610256610ead565b6102566103a3366004611c54565b610ec5565b61021b610ee6565b6102566103be366004611a54565b611007565b610256611232565b610256611238565b6103e66103e1366004611b75565b611347565b6040516101ff9190611ca2565b610256610401366004611b75565b61135b565b6101f261138d565b600f546001600160a01b031681565b61042561139c565b600f80546001600160a01b0319166001600160a01b0383161790556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611cb6565b60405180910390a150565b61048161139c565b61048a81611470565b50565b600f546001600160a01b031633146104c05760405162461bcd60e51b81526004016104b790611ced565b60405180910390fd5b6104ca82826114ac565b5050565b60116020526000908152604090205481565b60006104ea610ead565b506000828152601060205260409020610502836106ea565b808255600d5460029092019190915590505b919050565b600f546001600160a01b031633146105435760405162461bcd60e51b81526004016104b790611ced565b8281146105625760405162461bcd60e51b81526004016104b790611dcc565b60005b838110156105b1576105a985858381811061057c57fe5b9050602002013584848481811061058f57fe5b90506020020160208101906105a49190611b3d565b6114ac565b600101610565565b5050505050565b6015546001600160a01b031681565b60106020526000908152604090208054600182015460028301546003909301549192909184565b600f546001600160a01b031633148061069b575060008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b15801561064e57600080fd5b505afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106869190611a70565b6001600160a01b0316336001600160a01b0316145b6106b75760405162461bcd60e51b81526004016104b790611ded565b60128190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611d3c565b60008181526010602052604081208161070161150f565b6001600160a01b03166346e855da856040518263ffffffff1660e01b815260040161072c9190611cad565b60206040518083038186803b15801561074457600080fd5b505afa158015610758573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077c9190611c3c565b905060006012548210156107915760006107c3565b6107c3670de0b6b3a76400006107bd846107b787600201546107b1610e1f565b9061153a565b90611597565b906115f0565b83549091506107d29082611657565b95945050505050565b60145481565b60008181526010602052604081208190816107fb856106ea565b9050600061080d8284600101546116b1565b905060008060405180604001604052806108256116cb565b6001600160a01b03908116825260155416602090910152905060005b600281101561090457600082826002811061085857fe5b60200201516001600160a01b0316146108fc5781816002811061087757fe5b60200201516001600160a01b031663e2e1e8e98a6040518263ffffffff1660e01b81526004016108a79190611cad565b60206040518083038186803b1580156108bf57600080fd5b505afa1580156108d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f79190611c3c565b830192505b600101610841565b508161091b57600084965096505050505050610950565b6000610933836107bd86670de0b6b3a7640000611597565b60038701549091506109459082611657565b975093955050505050505b915091565b60008060009050600060405180604001604052806109716116cb565b6001600160a01b03908116825260155416602090910152905060005b6002811015610a685760008282600281106109a457fe5b60200201516001600160a01b031614610a60578181600281106109c357fe5b60200201516001600160a01b0316636a3ca383866040518263ffffffff1660e01b81526004016109f39190611c75565b60206040518083038186803b158015610a0b57600080fd5b505afa158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a439190611b59565b15610a6057818160028110610a5457fe5b60200201519250610a68565b60010161098d565b506001600160a01b038216610a8257600092505050610514565b600080600080856001600160a01b03166355c85269896040518263ffffffff1660e01b8152600401610ab49190611c75565b60a06040518083038186803b158015610acc57600080fd5b505afa158015610ae0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b049190611a8c565b9450945094509450506000610b18856107e1565b509050610b30610b298585846116f6565b8390611657565b9998505050505050505050565b600e5481565b610b4b61171b565b61048a8161177a565b610b5c61139c565b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede90600090a35050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6020811015610c1457600080fd5b50516001600160a01b03163314610c72576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b60405163623faf6160e01b8152602060048201908152602482018490526001600160a01b0386169163623faf619186918691908190604401848480828437600081840152601f19601f8201169050808301925050509350505050600060405180830381600087803b158015610ce657600080fd5b505af1158015610cfa573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610d4057600080fd5b505af1158015610d54573d6000803e3d6000fd5b505050506040513d6020811015610d6a57600080fd5b50516001600160a01b03163314610dc8576040805162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e0000604482015290519081900360640190fd5b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e0357600080fd5b505af1158015610e17573d6000803e3d6000fd5b505050505050565b6000610e35610e2c611238565b600d5490611657565b90505b90565b60125481565b610e49611822565b6001600160a01b0316336001600160a01b031614610ea4576040805162461bcd60e51b815260206004820152601360248201527227b7363c9034b6b83632b6b2b73a30ba34b7b760691b604482015290519081900360640190fd5b61048a81610b4b565b6000610eb7610e1f565b600d81905543600e55905090565b6000610edd670de0b6b3a76400006107bd8486611597565b90505b92915050565b610f0f7f0000000000000000000000000000000000000000000000000000000000000000611847565b610f387f0000000000000000000000000000000000000000000000000000000000000000611847565b610f617f0000000000000000000000000000000000000000000000000000000000000000611847565b610f8a7f0000000000000000000000000000000000000000000000000000000000000000611847565b610fb37f0000000000000000000000000000000000000000000000000000000000000000611847565b610fdc7f0000000000000000000000000000000000000000000000000000000000000000611847565b6110057f0000000000000000000000000000000000000000000000000000000000000000611847565b565b6000336110126116cb565b6001600160a01b0316816001600160a01b0316148061103e57506015546001600160a01b038281169116145b61105a5760405162461bcd60e51b81526004016104b790611d95565b6000806000806000856001600160a01b03166355c85269896040518263ffffffff1660e01b815260040161108e9190611c75565b60a06040518083038186803b1580156110a657600080fd5b505afa1580156110ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110de9190611a8c565b9450945094509450945060006110f38561135b565b90506110fe85611347565b1561115357886001600160a01b0316866001600160a01b03167f9b1323a10f3955b1c9c054ffbda78edfdf49998aaf37f61d9f84776b59ac804360405160405180910390a36000975050505050505050610514565b600061116a6111638686856116f6565b8490611657565b905080156111da5761117a611948565b6001600160a01b03166340c10f1989836040518363ffffffff1660e01b81526004016111a7929190611c89565b600060405180830381600087803b1580156111c157600080fd5b505af11580156111d5573d6000803e3d6000fd5b505050505b896001600160a01b0316876001600160a01b03167fbf5617ec135b48259c44e1ae312a03606f36e174082ef2e87042b86ceebace648360405161121d9190611cad565b60405180910390a39998505050505050505050565b600d5481565b600080611250600e544361153a90919063ffffffff16565b905080611261576000915050610e38565b601454611272576000915050610e38565b600061127c611948565b90506000816001600160a01b03166370a0823161129761150f565b6040518263ffffffff1660e01b81526004016112b39190611c75565b60206040518083038186803b1580156112cb57600080fd5b505afa1580156112df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113039190611c3c565b9050806113165760009350505050610e38565b6014546000906113269085611597565b905061133e826107bd83670de0b6b3a7640000611597565b94505050505090565b600090815260116020526040902054151590565b60008181526010602052604081208180611374856107e1565b6003850182905560019094019390935550909392505050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b0316634fc07d756040518163ffffffff1660e01b815260040160206040518083038186803b1580156113e857600080fd5b505afa1580156113fc573d6000803e3d6000fd5b505050506040513d602081101561141257600080fd5b50516001600160a01b03163314611005576040805162461bcd60e51b815260206004820152601860248201527f4f6e6c7920436f6e74726f6c6c657220676f7665726e6f720000000000000000604482015290519081900360640190fd5b611478610ead565b5060148190556040517f96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c9061046e90611d6b565b6000816114ba5760006114bc565b435b600084815260116020526040908190208290555190915083907fe016102b339c3889f4967b491f3381f2c352c8fe3d4f880007807d45b124065a90611502908490611cad565b60405180910390a2505050565b6000610e357f000000000000000000000000000000000000000000000000000000000000000061196f565b600082821115611591576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000826115a657506000610ee0565b828202828482816115b357fe5b0414610edd5760405162461bcd60e51b8152600401808060200182810382526021815260200180611e626021913960400191505060405180910390fd5b6000808211611646576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161164f57fe5b049392505050565b600082820183811015610edd576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008183116116c1576000610edd565b610edd838361153a565b6000610e357f000000000000000000000000000000000000000000000000000000000000000061196f565b600080611703838561153a565b90506107d2670de0b6b3a76400006107bd8388611597565b6000546001600160a01b03163314611005576040805162461bcd60e51b815260206004820152601960248201527f43616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b6001600160a01b0381166117ce576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9bdb1b195c881b5d5cdd081899481cd95d60521b604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6000805460408051637bb20d2f60e11b81526004810185905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b15801561189457600080fd5b505afa1580156118a8573d6000803e3d6000fd5b505050506040513d60208110156118be57600080fd5b50516000838152600160205260409020549091506001600160a01b038083169116146104ca5760008281526001602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251908152915184927fd0e7a942b1fc38c411c4f53d153ba14fd24542a6a35ebacd9b6afca1a154e20692908290030190a25050565b6000610e357f00000000000000000000000000000000000000000000000000000000000000005b6000818152600160205260408120546001600160a01b031680610ee05760005460408051637bb20d2f60e11b81526004810186905290516001600160a01b039092169163f7641a5e91602480820192602092909190829003018186803b1580156119d857600080fd5b505afa1580156119ec573d6000803e3d6000fd5b505050506040513d6020811015611a0257600080fd5b50519392505050565b60008083601f840112611a1c578182fd5b50813567ffffffffffffffff811115611a33578182fd5b6020830191508360208083028501011115611a4d57600080fd5b9250929050565b600060208284031215611a65578081fd5b8135610edd81611e3e565b600060208284031215611a81578081fd5b8151610edd81611e3e565b600080600080600060a08688031215611aa3578081fd5b8551611aae81611e3e565b602087015160408801516060890151608090990151929a91995097965090945092505050565b60008060008060408587031215611ae9578384fd5b843567ffffffffffffffff80821115611b00578586fd5b611b0c88838901611a0b565b90965094506020870135915080821115611b24578384fd5b50611b3187828801611a0b565b95989497509550505050565b600060208284031215611b4e578081fd5b8135610edd81611e53565b600060208284031215611b6a578081fd5b8151610edd81611e53565b600060208284031215611b86578081fd5b5035919050565b60008060408385031215611b9f578182fd5b823591506020830135611bb181611e53565b809150509250929050565b600080600060408486031215611bd0578283fd5b8335611bdb81611e3e565b9250602084013567ffffffffffffffff80821115611bf7578384fd5b818601915086601f830112611c0a578384fd5b813581811115611c18578485fd5b876020828501011115611c29578485fd5b6020830194508093505050509250925092565b600060208284031215611c4d578081fd5b5051919050565b60008060408385031215611c66578182fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b6020808252601a908201527f7375626772617068417661696c6162696c6974794f7261636c65000000000000604082015260600190565b6020808252602f908201527f43616c6c6572206d75737420626520746865207375626772617068206176616960408201526e6c6162696c697479206f7261636c6560881b606082015260800190565b6020808252601590820152741b5a5b9a5b5d5b54dd5899dc985c1a14da59db985b605a1b604082015260600190565b60208082526010908201526f69737375616e6365506572426c6f636b60801b604082015260600190565b6020808252601f908201527f43616c6c6572206d757374206265206120726577617264732069737375657200604082015260600190565b602080825260079082015266042d8cadccee8d60cb1b604082015260600190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b6001600160a01b038116811461048a57600080fd5b801515811461048a57600080fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f18b1a1091f1c6856415c7806703c6da0f0a9f186640f4b0f22d6d3964d5934764736f6c63430007060033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"RewardsManager#RewardsManager","networkInteractionId":1,"nonce":680,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xafb2066742ff060dc628cddb4a4569d5c0c7100adf4d0504ab7caa0f8f89e22e"},"type":"TRANSACTION_SEND"} -{"futureId":"RewardsManager#RewardsManager","hash":"0xafb2066742ff060dc628cddb4a4569d5c0c7100adf4d0504ab7caa0f8f89e22e","networkInteractionId":1,"receipt":{"blockHash":"0x3ff820234575a56aec75a6ef0860b67d046fc20210d0e40b9900aa55f0388b35","blockNumber":97665430,"contractAddress":"0x7C52Ce46ea416DA19aea8cE6072C2E28159c6910","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"RewardsManager#RewardsManager","result":{"address":"0x7C52Ce46ea416DA19aea8cE6072C2E28159c6910","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"BridgeEscrow#BridgeEscrow","hash":"0x1bbf7d97fb0863b9aef2b2f540ae3e7e83d4c117c61a6e7d11ebeb5f30bc9808","networkInteractionId":1,"receipt":{"blockHash":"0x5660e99330c8f3710625877945f6ee948c1dd2a5cf56a37cba01009e54337487","blockNumber":97665313,"contractAddress":"0x5d767c408237E7cB90Ccc2332c1946115B5187D9","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"BridgeEscrow#BridgeEscrow","result":{"address":"0x5d767c408237E7cB90Ccc2332c1946115B5187D9","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"Curation#GraphCurationToken","hash":"0x9d3f08284859c2c3f523c7c7bf48aaecadb5aa4e9cbc6f4abb001c48db908ba3","networkInteractionId":1,"receipt":{"blockHash":"0x9d2a8e9af62f35e5d085e57a42f54ef105bf4e45a533c4fa94295389c9456973","blockNumber":97665351,"contractAddress":"0x714fF20f04c77104eC4906E1059b5478e253daCb","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"Curation#GraphCurationToken","result":{"address":"0x714fF20f04c77104eC4906E1059b5478e253daCb","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphProxyAdmin#GraphProxyAdmin","hash":"0x51c1db4798ea9bbacc08f180d8fe1481f583c397a2fe8797dc8b0ba99160a84c","networkInteractionId":1,"receipt":{"blockHash":"0xd1e9bec4928c03556ef842c03adfc5d1075277933cdbb24aa9bc34d44f441d7e","blockNumber":97665371,"contractAddress":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphProxyAdmin#GraphProxyAdmin","result":{"address":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphToken#GraphToken","hash":"0x2b8f1636bdf24dfc8e48fb4795aecee9bfa5a35b190eaec2a4089d8d1de628b5","networkInteractionId":1,"receipt":{"blockHash":"0x401d9cec1b4f846b2e6108d38765b2bdeb961996ab3f955762375a1d74173ede","blockNumber":97665380,"contractAddress":"0x1Aec39D141925B02bef1D1A30b80746356Dcc291","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphToken#GraphToken","result":{"address":"0x1Aec39D141925B02bef1D1A30b80746356Dcc291","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphTokenGateway#GraphTokenGateway","hash":"0x0fc1922bf5f636404f8b6393b0e75d933c57b0bcc5fe452fbba6817f91d6260d","networkInteractionId":1,"receipt":{"blockHash":"0xf14fb7817fc975fbda57fc768cc0e75340addcfa1a2d8076c43377cb08ab1508","blockNumber":97665386,"contractAddress":"0x2B8665A7E899ee5FA67460b5f296aE901016102C","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphTokenGateway#GraphTokenGateway","result":{"address":"0x2B8665A7E899ee5FA67460b5f296aE901016102C","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"HorizonStakingExtension#ExponentialRebates","hash":"0x969a0e54409dc477218979e106b24123cd23518677aa9110137f1efa405a0861","networkInteractionId":1,"receipt":{"blockHash":"0x5f065e626164a4774e35e3b4a350556b1f670ae10fb9bc88a58fadfe937cddb5","blockNumber":97665419,"contractAddress":"0xA966fedEE46EbfA9B2390986aa19fab5aE018e87","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonStakingExtension#ExponentialRebates","result":{"address":"0xA966fedEE46EbfA9B2390986aa19fab5aE018e87","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"args":["0x95cED938F7991cd0dFcb48F0a06a40FA1aF46EBC"],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setPauseGuardian","futureId":"Controller#Controller.setPauseGuardian","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"Controller#Controller.setPauseGuardian","networkInteraction":{"data":"0x48bde20c00000000000000000000000095ced938f7991cd0dfcb48f0a06a40fa1af46ebc","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"Controller#Controller.setPauseGuardian","networkInteractionId":1,"nonce":681,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xc1e3e53b36d3f52ec7ee4d5ef22a789b4e36090f7e465a9ed5c2eda7af7177cf"},"type":"TRANSACTION_SEND"} -{"args":[false],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setPaused","futureId":"Controller#Controller.setPaused","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"Controller#Controller.setPaused","networkInteraction":{"data":"0x16c38b3c0000000000000000000000000000000000000000000000000000000000000000","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"Controller#Controller.setPaused","networkInteractionId":1,"nonce":682,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x07d8805a6dedb6623d3ec001452ad5be3ddbeca3b9678f1604f2660581cdd2fe"},"type":"TRANSACTION_SEND"} -{"args":["0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0"],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"transferOwnership","futureId":"Controller#Controller.transferOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"Controller#Controller.transferOwnership","networkInteraction":{"data":"0xf2fde38b000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"Controller#Controller.transferOwnership","networkInteractionId":1,"nonce":683,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x7a95eec4f6b7ede10e32e8c42a134cf59906e8dd2335b07d048952df3f131005"},"type":"TRANSACTION_SEND"} -{"futureId":"Controller#Controller.transferOwnership","hash":"0x7a95eec4f6b7ede10e32e8c42a134cf59906e8dd2335b07d048952df3f131005","networkInteractionId":1,"receipt":{"blockHash":"0x5d7c5fccd1a19b720b0df7711fb83227cf2e34f85e99699756cf1b34a77f29ee","blockNumber":97665469,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x","logIndex":0,"topics":["0x76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"Controller#Controller.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"args":["0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","dependencies":["GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"transferOwnership","futureId":"GraphProxyAdmin#GraphProxyAdmin.transferOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphProxyAdmin#GraphProxyAdmin.transferOwnership","networkInteraction":{"data":"0xf2fde38b000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0","id":1,"to":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphProxyAdmin#GraphProxyAdmin.transferOwnership","networkInteractionId":1,"nonce":684,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xa39935fc6723e299fce4354a88e1e3922a1fabd99bf53ff13999c3e5403db8df"},"type":"TRANSACTION_SEND"} -{"args":["0xade6b8eb69a49b56929c1d4f4b428d791861db6f"],"artifactId":"GraphToken#GraphToken","dependencies":["GraphToken#GraphToken"],"functionName":"initialize","futureId":"GraphToken#encodeFunctionCall(GraphToken#GraphToken.initialize)","result":"0xc4d66de8000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","constructorArgs":["0x779934076396014b1395892C1a960CAd33548b7a","0xade6b8eb69a49b56929c1d4f4b428d791861db6f","0x"],"contractName":"TransparentUpgradeableProxy","dependencies":["HorizonProxies#OZProxyDummy_GraphPayments"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","networkInteraction":{"data":"0x60a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103000000000000000000000000779934076396014b1395892c1a960cad33548b7a000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","networkInteractionId":1,"nonce":685,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x22c2f026d84fa8f556a76a1ca64fb666ef8d57dba2d981315f1f8e8b49ce9fe2"},"type":"TRANSACTION_SEND"} -{"artifactId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","constructorArgs":["0x994e77A4673d74C3565B04EF572988B9c7f05778","0xade6b8eb69a49b56929c1d4f4b428d791861db6f","0x"],"contractName":"TransparentUpgradeableProxy","dependencies":["HorizonProxies#OZProxyDummy_PaymentsEscrow"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","networkInteraction":{"data":"0x60a060405260405162000eb138038062000eb18339810160408190526200002691620003cd565b82816200003482826200009c565b505081604051620000459062000366565b6001600160a01b039091168152602001604051809103906000f08015801562000072573d6000803e3d6000fd5b506001600160a01b0316608052620000936200008d60805190565b62000102565b505050620004cb565b620000a78262000174565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115620000f457620000ef8282620001f4565b505050565b620000fe62000271565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200014460008051602062000e91833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620001718162000293565b50565b806001600160a01b03163b600003620001b057604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b031684604051620002139190620004ad565b600060405180830381855af49150503d806000811462000250576040519150601f19603f3d011682016040523d82523d6000602084013e62000255565b606091505b50909250905062000268858383620002d6565b95945050505050565b3415620002915760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002bf57604051633173bdd160e11b815260006004820152602401620001a7565b8060008051602062000e91833981519152620001d3565b606082620002ef57620002e9826200033c565b62000335565b81511580156200030757506001600160a01b0384163b155b156200033257604051639996b31560e01b81526001600160a01b0385166004820152602401620001a7565b50805b9392505050565b8051156200034d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610524806200096d83390190565b80516001600160a01b03811681146200038c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003c4578181015183820152602001620003aa565b50506000910152565b600080600060608486031215620003e357600080fd5b620003ee8462000374565b9250620003fe6020850162000374565b60408501519092506001600160401b03808211156200041c57600080fd5b818601915086601f8301126200043157600080fd5b81518181111562000446576200044662000391565b604051601f8201601f19908116603f0116810190838211818310171562000471576200047162000391565b816040528281528960208487010111156200048b57600080fd5b6200049e836020830160208801620003a7565b80955050505050509250925092565b60008251620004c1818460208701620003a7565b9190910192915050565b608051610487620004e66000396000601001526104876000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007b576000356001600160e01b03191663278f794360e11b14610071576040516334ad5dbb60e21b815260040160405180910390fd5b610079610083565b565b6100796100b2565b6000806100933660048184610312565b8101906100a09190610352565b915091506100ae82826100c2565b5050565b6100796100bd61011d565b610155565b6100cb82610179565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156101155761011082826101f5565b505050565b6100ae61026b565b60006101507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015610174573d6000f35b3d6000fd5b806001600160a01b03163b6000036101b457604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516102129190610422565b600060405180830381855af49150503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b509150915061026285838361028a565b95945050505050565b34156100795760405163b398979f60e01b815260040160405180910390fd5b60608261029f5761029a826102e9565b6102e2565b81511580156102b657506001600160a01b0384163b155b156102df57604051639996b31560e01b81526001600160a01b03851660048201526024016101ab565b50805b9392505050565b8051156102f95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000808585111561032257600080fd5b8386111561032f57600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561036557600080fd5b82356001600160a01b038116811461037c57600080fd5b9150602083013567ffffffffffffffff8082111561039957600080fd5b818501915085601f8301126103ad57600080fd5b8135818111156103bf576103bf61033c565b604051601f8201601f19908116603f011681019083821181831017156103e7576103e761033c565b8160405282815288602084870101111561040057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000825160005b818110156104435760208186018101518583015201610429565b50600092019182525091905056fea264697066735822122053869634917c3f506e9458e33de6974842d50d2f87cc565783db64cc7b8af3f264736f6c63430008140033608060405234801561001057600080fd5b5060405161052438038061052483398101604081905261002f916100be565b806001600160a01b03811661005e57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100678161006e565b50506100ee565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d057600080fd5b81516001600160a01b03811681146100e757600080fd5b9392505050565b610427806100fd6000396000f3fe60806040526004361061004a5760003560e01c8063715018a61461004f5780638da5cb5b146100665780639623609d14610093578063ad3cb1cc146100a6578063f2fde38b146100e4575b600080fd5b34801561005b57600080fd5b50610064610104565b005b34801561007257600080fd5b506000546040516001600160a01b0390911681526020015b60405180910390f35b6100646100a1366004610272565b610118565b3480156100b257600080fd5b506100d7604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161008a919061038e565b3480156100f057600080fd5b506100646100ff3660046103a8565b610187565b61010c6101ca565b61011660006101f7565b565b6101206101ca565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061015090869086906004016103c5565b6000604051808303818588803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050505050505050565b61018f6101ca565b6001600160a01b0381166101be57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6101c7816101f7565b50565b6000546001600160a01b031633146101165760405163118cdaa760e01b81523360048201526024016101b5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101c757600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561028757600080fd5b833561029281610247565b925060208401356102a281610247565b9150604084013567ffffffffffffffff808211156102bf57600080fd5b818601915086601f8301126102d357600080fd5b8135818111156102e5576102e561025c565b604051601f8201601f19908116603f0116810190838211818310171561030d5761030d61025c565b8160405282815289602084870101111561032657600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000815180845260005b8181101561036e57602081850181015186830182015201610352565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006103a16020830184610348565b9392505050565b6000602082840312156103ba57600080fd5b81356103a181610247565b6001600160a01b03831681526040602082018190526000906103e990830184610348565b94935050505056fea2646970667358221220c1ca14a59ae9fe8f66625b7accc22e698394cc37b875cf375a41b9ced938f75264736f6c63430008140033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103000000000000000000000000994e77a4673d74c3565b04ef572988b9c7f05778000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","networkInteractionId":1,"nonce":686,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x473c72596e7af8e037dde45ed6a6ead298a338cf49fdc75027fd2e929d007536"},"type":"TRANSACTION_SEND"} -{"futureId":"Controller#Controller.setPauseGuardian","hash":"0xc1e3e53b36d3f52ec7ee4d5ef22a789b4e36090f7e465a9ed5c2eda7af7177cf","networkInteractionId":1,"receipt":{"blockHash":"0x48723ea331f82b6d0b447714b6ca92e767ea4b8f1452551480c7fb3ae40c4987","blockNumber":97665450,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x","logIndex":0,"topics":["0x0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000095ced938f7991cd0dfcb48f0a06a40fa1af46ebc"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"Controller#Controller.setPauseGuardian","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"Controller#Controller.setPaused","hash":"0x07d8805a6dedb6623d3ec001452ad5be3ddbeca3b9678f1604f2660581cdd2fe","networkInteractionId":1,"receipt":{"blockHash":"0x165250e298b540500cfadb6762796d6a395763c9ab85f94fd489d04a41c0cdc5","blockNumber":97665460,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x0000000000000000000000000000000000000000000000000000000000000000","logIndex":0,"topics":["0x8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"Controller#Controller.setPaused","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphProxyAdmin#GraphProxyAdmin.transferOwnership","hash":"0xa39935fc6723e299fce4354a88e1e3922a1fabd99bf53ff13999c3e5403db8df","networkInteractionId":1,"receipt":{"blockHash":"0x38afc17b17d4657031a750edbdfc0aad9cbad52c6469b24b71b8c47a1b9d6d1c","blockNumber":97665481,"logs":[{"address":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","data":"0x","logIndex":0,"topics":["0x76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphProxyAdmin#GraphProxyAdmin.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","hash":"0x22c2f026d84fa8f556a76a1ca64fb666ef8d57dba2d981315f1f8e8b49ce9fe2","networkInteractionId":1,"receipt":{"blockHash":"0xa0c01ec9868c6f5ee3e020ccd3da0845543b063d05bebf0047b202e22c74f3b0","blockNumber":97665492,"contractAddress":"0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD","logs":[{"address":"0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000779934076396014b1395892c1a960cad33548b7a"]},{"address":"0x191308fb34b4d18487bC323FfE5ef7B2dd2449e9","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD","data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000191308fb34b4d18487bc323ffe5ef7b2dd2449e9","logIndex":2,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","result":{"address":"0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","hash":"0x473c72596e7af8e037dde45ed6a6ead298a338cf49fdc75027fd2e929d007536","networkInteractionId":1,"receipt":{"blockHash":"0x9334d8bbeebd5de8e23d553aad2af7b610b072c6088f40ff465c8c5147f132d4","blockNumber":97665503,"contractAddress":"0x7782536dac304b46E4Eb60751e4021ab3b09aBAb","logs":[{"address":"0x7782536dac304b46E4Eb60751e4021ab3b09aBAb","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000994e77a4673d74c3565b04ef572988b9c7f05778"]},{"address":"0xB3eD0202b929Cef59B0e2668a68F06FE996e8419","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0x7782536dac304b46E4Eb60751e4021ab3b09aBAb","data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b3ed0202b929cef59b0e2668a68f06fe996e8419","logIndex":2,"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","result":{"address":"0x7782536dac304b46E4Eb60751e4021ab3b09aBAb","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"BridgeEscrow#GraphProxy","constructorArgs":["0x5d767c408237E7cB90Ccc2332c1946115B5187D9","0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45"],"contractName":"GraphProxy","dependencies":["BridgeEscrow#BridgeEscrow","GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"BridgeEscrow#GraphProxy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"BridgeEscrow#GraphProxy","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c0000000000000000000000005d767c408237e7cb90ccc2332c1946115b5187d9000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"BridgeEscrow#GraphProxy","networkInteractionId":1,"nonce":687,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x60dce7ab15dc797a01f9ffc9eb9527723a751cf220acb7f25a428c8f7638363b"},"type":"TRANSACTION_SEND"} -{"args":["0x59c3CA02528054C6337f63eb367a374Ac45C292C"],"artifactId":"BridgeEscrow#BridgeEscrow","dependencies":["BridgeEscrow#BridgeEscrow","Controller#Controller"],"functionName":"initialize","futureId":"BridgeEscrow#encodeFunctionCall(BridgeEscrow#BridgeEscrow.initialize)","result":"0xc4d66de800000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"Curation#GraphProxy","constructorArgs":["0xFB1a3F555c919B3F8477959639f9d8cA9A3b3c01","0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45"],"contractName":"GraphProxy","dependencies":["Curation#Curation","GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"Curation#GraphProxy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"Curation#GraphProxy","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c000000000000000000000000fb1a3f555c919b3f8477959639f9d8ca9a3b3c01000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"Curation#GraphProxy","networkInteractionId":1,"nonce":688,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x924776e6178848f13272c7e946a39d7a2548414e146e996b296fc3c0fca966a0"},"type":"TRANSACTION_SEND"} -{"futureId":"Curation#GraphProxy","hash":"0x924776e6178848f13272c7e946a39d7a2548414e146e996b296fc3c0fca966a0","networkInteractionId":1,"receipt":{"blockHash":"0x388c38d5f31e0103734819548e93d947bfb284c950838ecc719482b6012d1068","blockNumber":97665536,"contractAddress":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","logs":[{"address":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45"]},{"address":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000fb1a3f555c919b3f8477959639f9d8ca9a3b3c01"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"Curation#GraphProxy","result":{"address":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"args":["0x59c3CA02528054C6337f63eb367a374Ac45C292C","0x714fF20f04c77104eC4906E1059b5478e253daCb",10000,1],"artifactId":"Curation#Curation","dependencies":["Curation#Curation","Controller#Controller","Curation#GraphCurationToken"],"functionName":"initialize","futureId":"Curation#encodeFunctionCall(Curation#Curation.initialize)","result":"0x4c8c7a4400000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c000000000000000000000000714ff20f04c77104ec4906e1059b5478e253dacb00000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000000001","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"EpochManager#GraphProxy","constructorArgs":["0xFBb7D5597f4796225A957Fd56d368bfaD45F5036","0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45"],"contractName":"GraphProxy","dependencies":["EpochManager#EpochManager","GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"EpochManager#GraphProxy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"EpochManager#GraphProxy","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c000000000000000000000000fbb7d5597f4796225a957fd56d368bfad45f5036000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"EpochManager#GraphProxy","networkInteractionId":1,"nonce":689,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xfdd12ca58013199c013c5f92eb97e0850ba695a95d902aaeae856eb22291b3fd"},"type":"TRANSACTION_SEND"} -{"args":["0x59c3CA02528054C6337f63eb367a374Ac45C292C",60],"artifactId":"EpochManager#EpochManager","dependencies":["EpochManager#EpochManager","Controller#Controller"],"functionName":"initialize","futureId":"EpochManager#encodeFunctionCall(EpochManager#EpochManager.initialize)","result":"0xcd6dc68700000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c000000000000000000000000000000000000000000000000000000000000003c","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} -{"args":["0xed734418922426bf2cc8783754bd80fc4d441a4dbe994549aee8a2f03136fcdb","0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45"],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller","GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setContractProxy","futureId":"GraphHorizon_Periphery#setContractProxy_GraphProxyAdmin","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphProxyAdmin","networkInteraction":{"data":"0xe0e99292ed734418922426bf2cc8783754bd80fc4d441a4dbe994549aee8a2f03136fcdb000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphProxyAdmin","networkInteractionId":1,"nonce":690,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xe07e5ca7dd1af20c4b2e6f7cded02e75c524291f98b88baa494d3d2c729304f4"},"type":"TRANSACTION_SEND"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphProxyAdmin","hash":"0xe07e5ca7dd1af20c4b2e6f7cded02e75c524291f98b88baa494d3d2c729304f4","networkInteractionId":1,"receipt":{"blockHash":"0x968194c0edb5536cc8f3cbb665074e200d61534e9c3f88d858d522754ae14446","blockNumber":97665554,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0xed734418922426bf2cc8783754bd80fc4d441a4dbe994549aee8a2f03136fcdb"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphProxyAdmin","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"GraphToken#GraphProxy","constructorArgs":["0x1Aec39D141925B02bef1D1A30b80746356Dcc291","0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45"],"contractName":"GraphProxy","dependencies":["GraphToken#GraphToken","GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"GraphToken#GraphProxy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphToken#GraphProxy","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c0000000000000000000000001aec39d141925b02bef1d1a30b80746356dcc291000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphToken#GraphProxy","networkInteractionId":1,"nonce":691,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x70b289c37eb6693d9a73f0445da8fc869c83915982938e9b667d4c41c89fee4a"},"type":"TRANSACTION_SEND"} -{"artifactId":"GraphTokenGateway#GraphProxy","constructorArgs":["0x2B8665A7E899ee5FA67460b5f296aE901016102C","0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45"],"contractName":"GraphProxy","dependencies":["GraphTokenGateway#GraphTokenGateway","GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"GraphTokenGateway#GraphProxy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphTokenGateway#GraphProxy","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c0000000000000000000000002b8665a7e899ee5fa67460b5f296ae901016102c000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphTokenGateway#GraphProxy","networkInteractionId":1,"nonce":692,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x06b7de86ba4ddf10d8a8cd98075a3bfc0ec485344eba637a1d234b9cf1a05cd9"},"type":"TRANSACTION_SEND"} -{"args":["0x59c3CA02528054C6337f63eb367a374Ac45C292C"],"artifactId":"GraphTokenGateway#GraphTokenGateway","dependencies":["GraphTokenGateway#GraphTokenGateway","Controller#Controller"],"functionName":"initialize","futureId":"GraphTokenGateway#encodeFunctionCall(GraphTokenGateway#GraphTokenGateway.initialize)","result":"0xc4d66de800000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments","dependencies":["HorizonProxies#TransparentUpgradeableProxy_GraphPayments"],"emitterAddress":"0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD","eventIndex":0,"eventName":"AdminChanged","futureId":"HorizonProxies#TransparentUpgradeableProxy_GraphPayments_AdminChanged","nameOrIndex":"newAdmin","result":"0x191308fb34b4d18487bC323FfE5ef7B2dd2449e9","strategy":"basic","strategyConfig":{},"txToReadFrom":"0x22c2f026d84fa8f556a76a1ca64fb666ef8d57dba2d981315f1f8e8b49ce9fe2","type":"READ_EVENT_ARGUMENT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","dependencies":["HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow"],"emitterAddress":"0x7782536dac304b46E4Eb60751e4021ab3b09aBAb","eventIndex":0,"eventName":"AdminChanged","futureId":"HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow_AdminChanged","nameOrIndex":"newAdmin","result":"0xB3eD0202b929Cef59B0e2668a68F06FE996e8419","strategy":"basic","strategyConfig":{},"txToReadFrom":"0x473c72596e7af8e037dde45ed6a6ead298a338cf49fdc75027fd2e929d007536","type":"READ_EVENT_ARGUMENT_EXECUTION_STATE_INITIALIZE"} -{"args":["0x88cae14a9889b95b4cfd9472fc7dcbca2da791846a1e314bac9c1f8a234cbf9f","0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD"],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller","HorizonProxies#TransparentUpgradeableProxy_GraphPayments"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setContractProxy","futureId":"HorizonProxies#setContractProxy_GraphPayments","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonProxies#setContractProxy_GraphPayments","networkInteraction":{"data":"0xe0e9929288cae14a9889b95b4cfd9472fc7dcbca2da791846a1e314bac9c1f8a234cbf9f000000000000000000000000dfee494c436613bafbfb80de4b19597fc69ec4fd","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonProxies#setContractProxy_GraphPayments","networkInteractionId":1,"nonce":693,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x6cdb2ccb86dc13e8bf62f777a3a179c68e2a0de8cbf5b3236b53889e577a51b3"},"type":"TRANSACTION_SEND"} -{"args":["0x628f67391f8b955553cabfadbf5f1b6a31d2a2d0fea175f5594af9d40b0bedc9","0x7782536dac304b46E4Eb60751e4021ab3b09aBAb"],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller","HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setContractProxy","futureId":"HorizonProxies#setContractProxy_PaymentsEscrow","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonProxies#setContractProxy_PaymentsEscrow","networkInteraction":{"data":"0xe0e99292628f67391f8b955553cabfadbf5f1b6a31d2a2d0fea175f5594af9d40b0bedc90000000000000000000000007782536dac304b46e4eb60751e4021ab3b09abab","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonProxies#setContractProxy_PaymentsEscrow","networkInteractionId":1,"nonce":694,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x0f3a19a01b271c679106cbff57b610477915fe28b73c03aeef274e8f636bf3f0"},"type":"TRANSACTION_SEND"} -{"artifactId":"RewardsManager#GraphProxy","constructorArgs":["0x7C52Ce46ea416DA19aea8cE6072C2E28159c6910","0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45"],"contractName":"GraphProxy","dependencies":["RewardsManager#RewardsManager","GraphProxyAdmin#GraphProxyAdmin"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"RewardsManager#GraphProxy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"RewardsManager#GraphProxy","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c0000000000000000000000007c52ce46ea416da19aea8ce6072c2e28159c6910000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"RewardsManager#GraphProxy","networkInteractionId":1,"nonce":695,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xc6846ec161cba19b22d0e81e114898aa3cf0adcaec174df04be56e64b7949f60"},"type":"TRANSACTION_SEND"} -{"args":["0x59c3CA02528054C6337f63eb367a374Ac45C292C"],"artifactId":"RewardsManager#RewardsManager","dependencies":["RewardsManager#RewardsManager","Controller#Controller"],"functionName":"initialize","futureId":"RewardsManager#encodeFunctionCall(RewardsManager#RewardsManager.initialize)","result":"0xc4d66de800000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} -{"futureId":"BridgeEscrow#GraphProxy","hash":"0x60dce7ab15dc797a01f9ffc9eb9527723a751cf220acb7f25a428c8f7638363b","networkInteractionId":1,"receipt":{"blockHash":"0x9b842c515603de7f7f457a03af8b04a2459b9687855da4727747940918687f9c","blockNumber":97665524,"contractAddress":"0x84a56624009F5CF297d52940dF268CdF8d2a09B4","logs":[{"address":"0x84a56624009F5CF297d52940dF268CdF8d2a09B4","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45"]},{"address":"0x84a56624009F5CF297d52940dF268CdF8d2a09B4","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000005d767c408237e7cb90ccc2332c1946115b5187d9"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"BridgeEscrow#GraphProxy","result":{"address":"0x84a56624009F5CF297d52940dF268CdF8d2a09B4","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"EpochManager#GraphProxy","hash":"0xfdd12ca58013199c013c5f92eb97e0850ba695a95d902aaeae856eb22291b3fd","networkInteractionId":1,"receipt":{"blockHash":"0xb01af1cf3880fa8e0c54271b98763e40743eb573416ac6622204f33911603899","blockNumber":97665547,"contractAddress":"0xCf27161EE08cA6087f9fF445a44474B89C10e554","logs":[{"address":"0xCf27161EE08cA6087f9fF445a44474B89C10e554","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45"]},{"address":"0xCf27161EE08cA6087f9fF445a44474B89C10e554","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000fbb7d5597f4796225a957fd56d368bfad45f5036"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"EpochManager#GraphProxy","result":{"address":"0xCf27161EE08cA6087f9fF445a44474B89C10e554","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphToken#GraphProxy","hash":"0x70b289c37eb6693d9a73f0445da8fc869c83915982938e9b667d4c41c89fee4a","networkInteractionId":1,"receipt":{"blockHash":"0x88c7e6929f56d87b2f7bfca3bc40804e0c5e4d895704dbc2e7f9b2ce28a24c24","blockNumber":97665567,"contractAddress":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","logs":[{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45"]},{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000001aec39d141925b02bef1d1a30b80746356dcc291"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphToken#GraphProxy","result":{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphTokenGateway#GraphProxy","hash":"0x06b7de86ba4ddf10d8a8cd98075a3bfc0ec485344eba637a1d234b9cf1a05cd9","networkInteractionId":1,"receipt":{"blockHash":"0x959891b8d848f75409e643c61047d8b118efc0780f1e68b6e4add090741f6052","blockNumber":97665579,"contractAddress":"0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","logs":[{"address":"0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45"]},{"address":"0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000002b8665a7e899ee5fa67460b5f296ae901016102c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphTokenGateway#GraphProxy","result":{"address":"0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"HorizonProxies#setContractProxy_GraphPayments","hash":"0x6cdb2ccb86dc13e8bf62f777a3a179c68e2a0de8cbf5b3236b53889e577a51b3","networkInteractionId":1,"receipt":{"blockHash":"0xc7ffb73af2f28fb0861ff6820932207fb73c02dd83a29ffee03f6417a59cf202","blockNumber":97665588,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x000000000000000000000000dfee494c436613bafbfb80de4b19597fc69ec4fd","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0x88cae14a9889b95b4cfd9472fc7dcbca2da791846a1e314bac9c1f8a234cbf9f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonProxies#setContractProxy_GraphPayments","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"HorizonProxies#setContractProxy_PaymentsEscrow","hash":"0x0f3a19a01b271c679106cbff57b610477915fe28b73c03aeef274e8f636bf3f0","networkInteractionId":1,"receipt":{"blockHash":"0x19f8cc56b079e3c4eeeec1a1a5665253db6192949f90314c181731109fd1211d","blockNumber":97665599,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x0000000000000000000000007782536dac304b46e4eb60751e4021ab3b09abab","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0x628f67391f8b955553cabfadbf5f1b6a31d2a2d0fea175f5594af9d40b0bedc9"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonProxies#setContractProxy_PaymentsEscrow","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"RewardsManager#GraphProxy","hash":"0xc6846ec161cba19b22d0e81e114898aa3cf0adcaec174df04be56e64b7949f60","networkInteractionId":1,"receipt":{"blockHash":"0x2f4cc496a64e0718889d3c43a2fc13057b2639cc7f904a5666ad76de18e241bb","blockNumber":97665610,"contractAddress":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","logs":[{"address":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45"]},{"address":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000007c52ce46ea416da19aea8ce6072c2e28159c6910"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"RewardsManager#GraphProxy","result":{"address":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"BridgeEscrow#BridgeEscrow_Instance","contractAddress":"0x84a56624009F5CF297d52940dF268CdF8d2a09B4","contractName":"BridgeEscrow_Instance","dependencies":["BridgeEscrow#GraphProxy"],"futureId":"BridgeEscrow#BridgeEscrow_Instance","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"args":["0x5d767c408237E7cB90Ccc2332c1946115B5187D9","0x84a56624009F5CF297d52940dF268CdF8d2a09B4","0xc4d66de800000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","dependencies":["GraphProxyAdmin#GraphProxyAdmin","BridgeEscrow#BridgeEscrow","BridgeEscrow#GraphProxy","BridgeEscrow#encodeFunctionCall(BridgeEscrow#BridgeEscrow.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"acceptProxyAndCall","futureId":"BridgeEscrow#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"BridgeEscrow#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteraction":{"data":"0x07ebde0e0000000000000000000000005d767c408237e7cb90ccc2332c1946115b5187d900000000000000000000000084a56624009f5cf297d52940df268cdf8d2a09b400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de800000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c00000000000000000000000000000000000000000000000000000000","id":1,"to":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"BridgeEscrow#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":696,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xd3c18abd2c454e57149a2c30030f0cd37318e5ba162544f038ecded5e4501b75"},"type":"TRANSACTION_SEND"} -{"artifactId":"Curation#Curation_Instance","contractAddress":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","contractName":"Curation_Instance","dependencies":["Curation#GraphProxy"],"futureId":"Curation#Curation_Instance","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"args":["0xFB1a3F555c919B3F8477959639f9d8cA9A3b3c01","0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","0x4c8c7a4400000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c000000000000000000000000714ff20f04c77104ec4906e1059b5478e253dacb00000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000000001"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","dependencies":["GraphProxyAdmin#GraphProxyAdmin","Curation#Curation","Curation#GraphProxy","Curation#encodeFunctionCall(Curation#Curation.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"acceptProxyAndCall","futureId":"Curation#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"Curation#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteraction":{"data":"0x07ebde0e000000000000000000000000fb1a3f555c919b3f8477959639f9d8ca9a3b3c01000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000844c8c7a4400000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c000000000000000000000000714ff20f04c77104ec4906e1059b5478e253dacb0000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000","id":1,"to":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"Curation#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":697,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x0252212bb4f86eb8e8d52c7b891b4d256de169ebaee1f68960f33cb41cba430f"},"type":"TRANSACTION_SEND"} -{"futureId":"Curation#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","hash":"0x0252212bb4f86eb8e8d52c7b891b4d256de169ebaee1f68960f33cb41cba430f","networkInteractionId":1,"receipt":{"blockHash":"0x971268dad5646dc8025dc908a806ad71f0b781d5aa01d7d4a54d35bbf4444d61","blockNumber":97665650,"logs":[{"address":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000fb1a3f555c919b3f8477959639f9d8ca9a3b3c01"]},{"address":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x000000000000000000000000fb1a3f555c919b3f8477959639f9d8ca9a3b3c01","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","data":"0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c","logIndex":2,"topics":["0x4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f70"]},{"address":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","data":"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001364656661756c7452657365727665526174696f00000000000000000000000000","logIndex":3,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]},{"address":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","data":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000156375726174696f6e54617850657263656e746167650000000000000000000000","logIndex":4,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]},{"address":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","data":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000166d696e696d756d4375726174696f6e4465706f73697400000000000000000000","logIndex":5,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]},{"address":"0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C","data":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000136375726174696f6e546f6b656e4d617374657200000000000000000000000000","logIndex":6,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"Curation#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"EpochManager#EpochManager_Instance","contractAddress":"0xCf27161EE08cA6087f9fF445a44474B89C10e554","contractName":"EpochManager_Instance","dependencies":["EpochManager#GraphProxy"],"futureId":"EpochManager#EpochManager_Instance","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"args":["0xFBb7D5597f4796225A957Fd56d368bfaD45F5036","0xCf27161EE08cA6087f9fF445a44474B89C10e554","0xcd6dc68700000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c000000000000000000000000000000000000000000000000000000000000003c"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","dependencies":["GraphProxyAdmin#GraphProxyAdmin","EpochManager#EpochManager","EpochManager#GraphProxy","EpochManager#encodeFunctionCall(EpochManager#EpochManager.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"acceptProxyAndCall","futureId":"EpochManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"EpochManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteraction":{"data":"0x07ebde0e000000000000000000000000fbb7d5597f4796225a957fd56d368bfad45f5036000000000000000000000000cf27161ee08ca6087f9ff445a44474b89c10e55400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044cd6dc68700000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000","id":1,"to":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"EpochManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":698,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x4356c858d052a126039f5d902f92ba05824a22619181a519325a4588023ae688"},"type":"TRANSACTION_SEND"} -{"args":["0x1Aec39D141925B02bef1D1A30b80746356Dcc291","0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","0xc4d66de8000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","dependencies":["GraphProxyAdmin#GraphProxyAdmin","GraphToken#GraphToken","GraphToken#GraphProxy","GraphToken#encodeFunctionCall(GraphToken#GraphToken.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"acceptProxyAndCall","futureId":"GraphToken#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphToken#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteraction":{"data":"0x07ebde0e0000000000000000000000001aec39d141925b02bef1d1a30b80746356dcc291000000000000000000000000cf242b6e8d1a5883627049485bf2c1d3dcf56ba800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de8000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f00000000000000000000000000000000000000000000000000000000","id":1,"to":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphToken#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":699,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xc9290f621aac5ac566934e36b825b1208998eff556f5f27e84297907fc839764"},"type":"TRANSACTION_SEND"} -{"artifactId":"GraphToken#GraphToken_Instance","contractAddress":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","contractName":"GraphToken_Instance","dependencies":["GraphToken#GraphProxy"],"futureId":"GraphToken#GraphToken_Instance","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"args":["0x2B8665A7E899ee5FA67460b5f296aE901016102C","0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","0xc4d66de800000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","dependencies":["GraphProxyAdmin#GraphProxyAdmin","GraphTokenGateway#GraphTokenGateway","GraphTokenGateway#GraphProxy","GraphTokenGateway#encodeFunctionCall(GraphTokenGateway#GraphTokenGateway.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"acceptProxyAndCall","futureId":"GraphTokenGateway#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphTokenGateway#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteraction":{"data":"0x07ebde0e0000000000000000000000002b8665a7e899ee5fa67460b5f296ae901016102c0000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de800000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c00000000000000000000000000000000000000000000000000000000","id":1,"to":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphTokenGateway#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":700,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x18011b47c9be25a02c12f60a24ad53e1f7712c9c4884593d47d98faf5157877f"},"type":"TRANSACTION_SEND"} -{"futureId":"GraphTokenGateway#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","hash":"0x18011b47c9be25a02c12f60a24ad53e1f7712c9c4884593d47d98faf5157877f","networkInteractionId":1,"receipt":{"blockHash":"0xea9baf497a6be895fa392c4c072bb6b35afee6fe2c7dd01774eed506d58bdf58","blockNumber":97665682,"logs":[{"address":"0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000002b8665a7e899ee5fa67460b5f296ae901016102c"]},{"address":"0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000002b8665a7e899ee5fa67460b5f296ae901016102c","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","data":"0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c","logIndex":2,"topics":["0x4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f70"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphTokenGateway#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"GraphTokenGateway#GraphTokenGateway_Instance","contractAddress":"0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","contractName":"GraphTokenGateway_Instance","dependencies":["GraphTokenGateway#GraphProxy"],"futureId":"GraphTokenGateway#GraphTokenGateway_Instance","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"HorizonProxies#ProxyAdmin_GraphPayments","contractAddress":"0x191308fb34b4d18487bC323FfE5ef7B2dd2449e9","contractName":"ProxyAdmin","dependencies":["HorizonProxies#TransparentUpgradeableProxy_GraphPayments_AdminChanged"],"futureId":"HorizonProxies#ProxyAdmin_GraphPayments","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"HorizonProxies#ProxyAdmin_PaymentsEscrow","contractAddress":"0xB3eD0202b929Cef59B0e2668a68F06FE996e8419","contractName":"ProxyAdmin","dependencies":["HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow_AdminChanged"],"futureId":"HorizonProxies#ProxyAdmin_PaymentsEscrow","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"args":["0x7C52Ce46ea416DA19aea8cE6072C2E28159c6910","0x1C0f92202CFc66B160972D54c513A7354F507Bf8","0xc4d66de800000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","dependencies":["GraphProxyAdmin#GraphProxyAdmin","RewardsManager#RewardsManager","RewardsManager#GraphProxy","RewardsManager#encodeFunctionCall(RewardsManager#RewardsManager.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"acceptProxyAndCall","futureId":"RewardsManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"RewardsManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteraction":{"data":"0x07ebde0e0000000000000000000000007c52ce46ea416da19aea8ce6072c2e28159c69100000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024c4d66de800000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c00000000000000000000000000000000000000000000000000000000","id":1,"to":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"RewardsManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","networkInteractionId":1,"nonce":701,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xd68b760941f96b73f668536d2b225cd3295bb971a5ed6b40baa30fb84f481597"},"type":"TRANSACTION_SEND"} -{"futureId":"RewardsManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","hash":"0xd68b760941f96b73f668536d2b225cd3295bb971a5ed6b40baa30fb84f481597","networkInteractionId":1,"receipt":{"blockHash":"0x021b8caf11507166285bcb6e3561fa8a7d34bdd3e82b50d9ba49df2c0af59a75","blockNumber":97665694,"logs":[{"address":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000007c52ce46ea416da19aea8ce6072c2e28159c6910"]},{"address":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000007c52ce46ea416da19aea8ce6072c2e28159c6910","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","data":"0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c","logIndex":2,"topics":["0x4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f70"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"RewardsManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"RewardsManager#RewardsManager_Instance","contractAddress":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","contractName":"RewardsManager_Instance","dependencies":["RewardsManager#GraphProxy"],"futureId":"RewardsManager#RewardsManager_Instance","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"futureId":"BridgeEscrow#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","hash":"0xd3c18abd2c454e57149a2c30030f0cd37318e5ba162544f038ecded5e4501b75","networkInteractionId":1,"receipt":{"blockHash":"0x99e9cb615aa284510c98597e7d4691dda4637aa673cc71ebc68705b6a71abc95","blockNumber":97665639,"logs":[{"address":"0x84a56624009F5CF297d52940dF268CdF8d2a09B4","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000005d767c408237e7cb90ccc2332c1946115b5187d9"]},{"address":"0x84a56624009F5CF297d52940dF268CdF8d2a09B4","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000005d767c408237e7cb90ccc2332c1946115b5187d9","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0x84a56624009F5CF297d52940dF268CdF8d2a09B4","data":"0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c","logIndex":2,"topics":["0x4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f70"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"BridgeEscrow#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"EpochManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","hash":"0x4356c858d052a126039f5d902f92ba05824a22619181a519325a4588023ae688","networkInteractionId":1,"receipt":{"blockHash":"0x2052065cfea901e8fab8ae90947cbe1ca94634b3b69ab589cb30ea3e7bfb23a2","blockNumber":97665661,"logs":[{"address":"0xCf27161EE08cA6087f9fF445a44474B89C10e554","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000fbb7d5597f4796225a957fd56d368bfad45f5036"]},{"address":"0xCf27161EE08cA6087f9fF445a44474B89C10e554","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x000000000000000000000000fbb7d5597f4796225a957fd56d368bfad45f5036","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0xCf27161EE08cA6087f9fF445a44474B89C10e554","data":"0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c","logIndex":2,"topics":["0x4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f70"]},{"address":"0xCf27161EE08cA6087f9fF445a44474B89C10e554","data":"0x000000000000000000000000000000000000000000000000000000000000003c","logIndex":3,"topics":["0x25ddd6f00038d5eac0051df83c6084f140a01586f092e2728d1ed781c9ce2441","0x0000000000000000000000000000000000000000000000000000000000000001"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"EpochManager#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphToken#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","hash":"0xc9290f621aac5ac566934e36b825b1208998eff556f5f27e84297907fc839764","networkInteractionId":1,"receipt":{"blockHash":"0x3111b46862e73e1476f75a4901f654d51eb2a6ba530d0bb693df11b12f963599","blockNumber":97665672,"logs":[{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000001aec39d141925b02bef1d1a30b80746356dcc291"]},{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000001aec39d141925b02bef1d1a30b80746356dcc291","0x0000000000000000000000000000000000000000000000000000000000000000"]},{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","data":"0x0000000000000000000000000000000000000000000000000000000000000000","logIndex":2,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]},{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","data":"0x","logIndex":3,"topics":["0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphToken#GraphProxyAdmin~GraphProxyAdmin.acceptProxyAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"args":["0xe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f","0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C"],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller","Curation#Curation_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setContractProxy","futureId":"GraphHorizon_Periphery#setContractProxy_Curation","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphHorizon_Periphery#setContractProxy_Curation","networkInteraction":{"data":"0xe0e99292e6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_Curation","networkInteractionId":1,"nonce":702,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x0d3246218132b00fa8839135c5a9d22b84a0283c7cdafb9d515ad5693c817c79"},"type":"TRANSACTION_SEND"} -{"args":["0xc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063","0xCf27161EE08cA6087f9fF445a44474B89C10e554"],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller","EpochManager#EpochManager_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setContractProxy","futureId":"GraphHorizon_Periphery#setContractProxy_EpochManager","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphHorizon_Periphery#setContractProxy_EpochManager","networkInteraction":{"data":"0xe0e99292c713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063000000000000000000000000cf27161ee08ca6087f9ff445a44474b89c10e554","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_EpochManager","networkInteractionId":1,"nonce":703,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x8b29698b48714a9cf49cfd9f61b4b85d72a6619f31016a305d538c8a77d0ec7b"},"type":"TRANSACTION_SEND"} -{"args":["0xade6b8eb69a49b56929c1d4f4b428d791861db6f","10000000000000000000000000000"],"artifactId":"GraphToken#GraphToken_Instance","contractAddress":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","dependencies":["GraphToken#GraphToken_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"mint","futureId":"GraphToken#GraphToken_Instance.mint","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphToken#GraphToken_Instance.mint","networkInteraction":{"data":"0x40c10f19000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f0000000000000000000000000000000000000000204fce5e3e25026110000000","id":1,"to":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphToken#GraphToken_Instance.mint","networkInteractionId":1,"nonce":704,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x5e89a0111bf53fdec85c3217a78b3f4520cf914c0cd458525d80f092f4bf2b4e"},"type":"TRANSACTION_SEND"} -{"args":[],"artifactId":"GraphToken#GraphToken_Instance","contractAddress":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","dependencies":["GraphToken#GraphToken_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"renounceMinter","futureId":"GraphToken#GraphToken_Instance.renounceMinter","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphToken#GraphToken_Instance.renounceMinter","networkInteraction":{"data":"0x98650275","id":1,"to":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphToken#GraphToken_Instance.renounceMinter","networkInteractionId":1,"nonce":705,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xf76ca2d9d1c8db0fa70fe898e47caa22ce5a5392387174b102b260f73f93a0e8"},"type":"TRANSACTION_SEND"} -{"args":["0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0"],"artifactId":"GraphToken#GraphToken_Instance","contractAddress":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","dependencies":["GraphToken#GraphToken_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"transferOwnership","futureId":"GraphToken#GraphToken_Instance.transferOwnership","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphToken#GraphToken_Instance.transferOwnership","networkInteraction":{"data":"0xf2fde38b000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0","id":1,"to":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphToken#GraphToken_Instance.transferOwnership","networkInteractionId":1,"nonce":706,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x22adf2e833f1f302f56befc6bd01dad573d89003c9ed350efc7b4889c54ad23d"},"type":"TRANSACTION_SEND"} -{"args":["0x95cED938F7991cd0dFcb48F0a06a40FA1aF46EBC"],"artifactId":"GraphTokenGateway#GraphTokenGateway_Instance","contractAddress":"0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","dependencies":["GraphTokenGateway#GraphTokenGateway_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setPauseGuardian","futureId":"GraphTokenGateway#GraphTokenGateway_Instance.setPauseGuardian","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphTokenGateway#GraphTokenGateway_Instance.setPauseGuardian","networkInteraction":{"data":"0x48bde20c00000000000000000000000095ced938f7991cd0dfcb48f0a06a40fa1af46ebc","id":1,"to":"0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphTokenGateway#GraphTokenGateway_Instance.setPauseGuardian","networkInteractionId":1,"nonce":707,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xd7139b2954c4a432974cbafc4ea100493527d5857ff6173e85f0e269e785e2e4"},"type":"TRANSACTION_SEND"} -{"args":["114155251141552511415"],"artifactId":"RewardsManager#RewardsManager_Instance","contractAddress":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","dependencies":["RewardsManager#RewardsManager_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setIssuancePerBlock","futureId":"RewardsManager#RewardsManager_Instance.setIssuancePerBlock","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"RewardsManager#RewardsManager_Instance.setIssuancePerBlock","networkInteraction":{"data":"0x1156bdc10000000000000000000000000000000000000000000000063038ec17c1be19b7","id":1,"to":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"RewardsManager#RewardsManager_Instance.setIssuancePerBlock","networkInteractionId":1,"nonce":708,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x44cd760b5a43fae0f38a986c95dfc064eac371fdea223e8c5fd995556e01eb74"},"type":"TRANSACTION_SEND"} -{"args":["0xd03ea8624C8C5987235048901fB614fDcA89b117"],"artifactId":"RewardsManager#RewardsManager_Instance","contractAddress":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","dependencies":["RewardsManager#RewardsManager_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setSubgraphAvailabilityOracle","futureId":"RewardsManager#RewardsManager_Instance.setSubgraphAvailabilityOracle","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"RewardsManager#RewardsManager_Instance.setSubgraphAvailabilityOracle","networkInteraction":{"data":"0x0903c094000000000000000000000000d03ea8624c8c5987235048901fb614fdca89b117","id":1,"to":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"RewardsManager#RewardsManager_Instance.setSubgraphAvailabilityOracle","networkInteractionId":1,"nonce":709,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x260510632da250baca33a824b36739ff9cd85789ae4f1a11eda2fd5f86ecd63a"},"type":"TRANSACTION_SEND"} -{"futureId":"RewardsManager#RewardsManager_Instance.setSubgraphAvailabilityOracle","hash":"0x260510632da250baca33a824b36739ff9cd85789ae4f1a11eda2fd5f86ecd63a","networkInteractionId":1,"receipt":{"blockHash":"0xbf423bbc18f37fda47c658857d5e3b422c62f19e9acc46e2880768756c9d328e","blockNumber":97665790,"logs":[{"address":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","data":"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001a7375626772617068417661696c6162696c6974794f7261636c65000000000000","logIndex":0,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"RewardsManager#RewardsManager_Instance.setSubgraphAvailabilityOracle","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"args":["0xBc53a58f03917A88174C2795B674734eCEeec05F"],"artifactId":"RewardsManager#RewardsManager_Instance","contractAddress":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","dependencies":["RewardsManager#RewardsManager_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setSubgraphService","futureId":"RewardsManager#RewardsManager_Instance.setSubgraphService","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"RewardsManager#RewardsManager_Instance.setSubgraphService","networkInteraction":{"data":"0x93a90a1e000000000000000000000000bc53a58f03917a88174c2795b674734eceeec05f","id":1,"to":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"RewardsManager#RewardsManager_Instance.setSubgraphService","networkInteractionId":1,"nonce":710,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xb20ae47445f3b01649aeecd7f7d0f91b260206a23c7e372ba1880a6dd8d0f176"},"type":"TRANSACTION_SEND"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_Curation","hash":"0x0d3246218132b00fa8839135c5a9d22b84a0283c7cdafb9d515ad5693c817c79","networkInteractionId":1,"receipt":{"blockHash":"0xf65acea5cd26d2bcb8d7a5a8570a27d5d1f1822f115803e2c98cdc42d93e849e","blockNumber":97665716,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0xe6876326c1291dfcbbd3864a6816d698cd591defc7aa2153d7f9c4c04016c89f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_Curation","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_EpochManager","hash":"0x8b29698b48714a9cf49cfd9f61b4b85d72a6619f31016a305d538c8a77d0ec7b","networkInteractionId":1,"receipt":{"blockHash":"0x9703d9afc9df93dd1d7de7c4d33662037f6dacbfc4efd41371272421bf8b355a","blockNumber":97665727,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x000000000000000000000000cf27161ee08ca6087f9ff445a44474b89c10e554","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0xc713c3df6d14cdf946460395d09af88993ee2b948b1a808161494e32c5f67063"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_EpochManager","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphToken#GraphToken_Instance.mint","hash":"0x5e89a0111bf53fdec85c3217a78b3f4520cf914c0cd458525d80f092f4bf2b4e","networkInteractionId":1,"receipt":{"blockHash":"0x57ccbd361d8eed5418bc04beac87816c81b2ae8c6414aa910d1b6f4e04cd1e82","blockNumber":97665736,"logs":[{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","data":"0x0000000000000000000000000000000000000000204fce5e3e25026110000000","logIndex":0,"topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphToken#GraphToken_Instance.mint","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphToken#GraphToken_Instance.renounceMinter","hash":"0xf76ca2d9d1c8db0fa70fe898e47caa22ce5a5392387174b102b260f73f93a0e8","networkInteractionId":1,"receipt":{"blockHash":"0x53367afdefdfc575bbaddf49c6111e4bd1f1dfd30cc20d94790271fda1333691","blockNumber":97665748,"logs":[{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","data":"0x","logIndex":0,"topics":["0xe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb66692","0x000000000000000000000000ade6b8eb69a49b56929c1d4f4b428d791861db6f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphToken#GraphToken_Instance.renounceMinter","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphToken#GraphToken_Instance.transferOwnership","hash":"0x22adf2e833f1f302f56befc6bd01dad573d89003c9ed350efc7b4889c54ad23d","networkInteractionId":1,"receipt":{"blockHash":"0xde5163f66b9998a0704669403d7363df542688c66bddf9c4d5f2136db996e6bf","blockNumber":97665757,"logs":[{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","data":"0x","logIndex":0,"topics":["0x76563ad561b7036ae716b9b25cb521b21463240f104c97e12f25877f2235f33d","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphToken#GraphToken_Instance.transferOwnership","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphTokenGateway#GraphTokenGateway_Instance.setPauseGuardian","hash":"0xd7139b2954c4a432974cbafc4ea100493527d5857ff6173e85f0e269e785e2e4","networkInteractionId":1,"receipt":{"blockHash":"0xba1f0c388212cea1f8d7aebcfa6700918066efda31af2cb18084cfd800e4f411","blockNumber":97665768,"logs":[{"address":"0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3","data":"0x","logIndex":0,"topics":["0x0613b6ee6a04f0d09f390e4d9318894b9f6ac7fd83897cd8d18896ba579c401e","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000095ced938f7991cd0dfcb48f0a06a40fa1af46ebc"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphTokenGateway#GraphTokenGateway_Instance.setPauseGuardian","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"RewardsManager#RewardsManager_Instance.setIssuancePerBlock","hash":"0x44cd760b5a43fae0f38a986c95dfc064eac371fdea223e8c5fd995556e01eb74","networkInteractionId":1,"receipt":{"blockHash":"0x14768baf9985f47e73e5ceb0ba29806db3eda4791224aaf8d895ff23e87d02bf","blockNumber":97665780,"logs":[{"address":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","data":"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001069737375616e6365506572426c6f636b00000000000000000000000000000000","logIndex":0,"topics":["0x96d5a4b4edf1cefd0900c166d64447f8da1d01d1861a6a60894b5b82a2c15c3c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"RewardsManager#RewardsManager_Instance.setIssuancePerBlock","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"RewardsManager#RewardsManager_Instance.setSubgraphService","hash":"0xb20ae47445f3b01649aeecd7f7d0f91b260206a23c7e372ba1880a6dd8d0f176","networkInteractionId":1,"receipt":{"blockHash":"0x809cdec7cff27070d351ac964401c545c40a7c0e15ddd322fae0b199b2e3606e","blockNumber":97665799,"logs":[{"address":"0x1C0f92202CFc66B160972D54c513A7354F507Bf8","data":"0x","logIndex":0,"topics":["0x97befc0afcf2bace352f077aea9873c9552fc2e5ab26874f356006fdf9da4ede","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000bc53a58f03917a88174c2795b674734eceeec05f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"RewardsManager#RewardsManager_Instance.setSubgraphService","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"args":["0xd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0","0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3"],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller","GraphTokenGateway#GraphTokenGateway_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setContractProxy","futureId":"GraphHorizon_Periphery#setContractProxy_GraphTokenGateway","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphTokenGateway","networkInteraction":{"data":"0xe0e99292d362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf00000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c3","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphTokenGateway","networkInteractionId":1,"nonce":711,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x7a0cf3d5b00512272bc02cac445206a33637cfa680d22af86750c80195043274"},"type":"TRANSACTION_SEND"} -{"args":["0x966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c53180761","0x1C0f92202CFc66B160972D54c513A7354F507Bf8"],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller","RewardsManager#RewardsManager_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setContractProxy","futureId":"GraphHorizon_Periphery#setContractProxy_RewardsManager","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphHorizon_Periphery#setContractProxy_RewardsManager","networkInteraction":{"data":"0xe0e99292966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c531807610000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf8","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_RewardsManager","networkInteractionId":1,"nonce":712,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x3b74943c8239ed31372488e6a10fd1ae84074316c6061094745c21749c7fd82f"},"type":"TRANSACTION_SEND"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_RewardsManager","hash":"0x3b74943c8239ed31372488e6a10fd1ae84074316c6061094745c21749c7fd82f","networkInteractionId":1,"receipt":{"blockHash":"0x5bb7bd7c73fc4414539800003a570ba4e171e89518ee5c5e4906ba67e35c0a34","blockNumber":97665837,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x0000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf8","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0x966f1e8d8d8014e05f6ec4a57138da9be1f7c5a7f802928a18072f7c53180761"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_RewardsManager","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"args":["0x2679F1a908f1B241D6Bd10b1898762C70E0a24C3"],"artifactId":"GraphToken#GraphToken_Instance","contractAddress":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","dependencies":["GraphToken#GraphToken_Instance","GraphTokenGateway#GraphTokenGateway_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"addMinter","futureId":"GraphToken#addMinterGateway","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphToken#addMinterGateway","networkInteraction":{"data":"0x983b2d560000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c3","id":1,"to":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphToken#addMinterGateway","networkInteractionId":1,"nonce":713,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x8c129360e592b7d41fb66b02d6c79455ad4ec6138654e76d3d93e8709888465a"},"type":"TRANSACTION_SEND"} -{"args":["0x1C0f92202CFc66B160972D54c513A7354F507Bf8"],"artifactId":"GraphToken#GraphToken_Instance","contractAddress":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","dependencies":["GraphToken#GraphToken_Instance","RewardsManager#RewardsManager_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"addMinter","futureId":"GraphToken#addMinterRewardsManager","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphToken#addMinterRewardsManager","networkInteraction":{"data":"0x983b2d560000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf8","id":1,"to":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphToken#addMinterRewardsManager","networkInteractionId":1,"nonce":714,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xc8b296142da1b4ae30666b2a291f6e2ee50c23c29815ee36aaa851fff504ccd4"},"type":"TRANSACTION_SEND"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphTokenGateway","hash":"0x7a0cf3d5b00512272bc02cac445206a33637cfa680d22af86750c80195043274","networkInteractionId":1,"receipt":{"blockHash":"0xd32042609ab890e87bba0cab8240d8ad037b7962befea0300f16ad6c402b278f","blockNumber":97665826,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x0000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c3","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0xd362cac9cb75c10d67bcc0b7eeb0b1ef48bb5420b556c092d4fd7f758816fcf0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphTokenGateway","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphToken#addMinterGateway","hash":"0x8c129360e592b7d41fb66b02d6c79455ad4ec6138654e76d3d93e8709888465a","networkInteractionId":1,"receipt":{"blockHash":"0x41027a3b0321b221c1eb1675ac8f3400ee1d90487ddc25ca2e3701ed2c1e321b","blockNumber":97665846,"logs":[{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","data":"0x","logIndex":0,"topics":["0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6","0x0000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c3"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphToken#addMinterGateway","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"GraphToken#addMinterRewardsManager","hash":"0xc8b296142da1b4ae30666b2a291f6e2ee50c23c29815ee36aaa851fff504ccd4","networkInteractionId":1,"receipt":{"blockHash":"0x97c343ab37d642739692dda87dea5377c31da6be674ad28e9a9af2865fe67413","blockNumber":97665857,"logs":[{"address":"0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8","data":"0x","logIndex":7,"topics":["0x6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6","0x0000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf8"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphToken#addMinterRewardsManager","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"args":["0x45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247","0xcF242b6E8d1A5883627049485Bf2c1d3Dcf56bA8"],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller","GraphToken#GraphToken_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setContractProxy","futureId":"GraphHorizon_Periphery#setContractProxy_GraphToken","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphToken","networkInteraction":{"data":"0xe0e9929245fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247000000000000000000000000cf242b6e8d1a5883627049485bf2c1d3dcf56ba8","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphToken","networkInteractionId":1,"nonce":715,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x78f2d578ef1e6be44f8ed0bebd654b247e9f17524d275eb07aff2feb7336d981"},"type":"TRANSACTION_SEND"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphToken","hash":"0x78f2d578ef1e6be44f8ed0bebd654b247e9f17524d275eb07aff2feb7336d981","networkInteractionId":1,"receipt":{"blockHash":"0x39696584ae3b00e8f4e76b3c645415c2e257be4f9d13c74255a51dd253c9a5c9","blockNumber":97665876,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x000000000000000000000000cf242b6e8d1a5883627049485bf2c1d3dcf56ba8","logIndex":0,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0x45fc200c7e4544e457d3c5709bfe0d520442c30bbcbdaede89e8d4a4bbc19247"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphHorizon_Periphery#setContractProxy_GraphToken","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"GraphHorizon_Periphery#Dummy","constructorArgs":[],"contractName":"Dummy","dependencies":["GraphHorizon_Periphery#setContractProxy_EpochManager","GraphHorizon_Periphery#setContractProxy_RewardsManager","GraphHorizon_Periphery#setContractProxy_GraphToken","GraphHorizon_Periphery#setContractProxy_GraphTokenGateway","GraphHorizon_Periphery#setContractProxy_GraphProxyAdmin","GraphHorizon_Periphery#setContractProxy_Curation"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"GraphHorizon_Periphery#Dummy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphHorizon_Periphery#Dummy","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphHorizon_Periphery#Dummy","networkInteractionId":1,"nonce":716,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x1bcfb5e1e9bc192e94dcf5a345bae0323032e3df635f1d98250da4274bbfefa1"},"type":"TRANSACTION_SEND"} -{"futureId":"GraphHorizon_Periphery#Dummy","hash":"0x1bcfb5e1e9bc192e94dcf5a345bae0323032e3df635f1d98250da4274bbfefa1","networkInteractionId":1,"receipt":{"blockHash":"0x62f813fe603c912b206848a2fb9eb29cadba13867dbd5b71cded65e5107823a7","blockNumber":97665891,"contractAddress":"0x923a8027EF79AaCC9B4eBC22a548F7c755153F6a","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphHorizon_Periphery#Dummy","result":{"address":"0x923a8027EF79AaCC9B4eBC22a548F7c755153F6a","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"HorizonProxies#GraphProxy_HorizonStaking","constructorArgs":["0x0000000000000000000000000000000000000000","0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45"],"contractName":"GraphProxy","dependencies":["GraphProxyAdmin#GraphProxyAdmin","GraphHorizon_Periphery#Dummy"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonProxies#GraphProxy_HorizonStaking","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonProxies#GraphProxy_HorizonStaking","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051610a12380380610a128339818101604052604081101561003357600080fd5b50805160209091015161004581610055565b61004e826100b3565b5050610137565b600061005f610111565b6000805160206109d2833981519152838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006100bd610124565b6000805160206109f2833981519152838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b6000805160206109d28339815191525490565b6000805160206109f28339815191525490565b61088c806101466000396000f3fe6080604052600436106100745760003560e01c80635c60da1b1161004e5780635c60da1b14610104578063623faf6114610119578063704b6c0214610196578063f851a440146101c957610083565b80633659cfe61461008b578063396f7b23146100be57806359fc20bb146100ef57610083565b36610083576100816101de565b005b6100816101de565b34801561009757600080fd5b50610081600480360360208110156100ae57600080fd5b50356001600160a01b031661029e565b3480156100ca57600080fd5b506100d36102d8565b604080516001600160a01b039092168252519081900360200190f35b3480156100fb57600080fd5b50610081610338565b34801561011057600080fd5b506100d3610393565b34801561012557600080fd5b506100816004803603602081101561013c57600080fd5b81019060208101813564010000000081111561015757600080fd5b82018360208201111561016957600080fd5b8035906020019184600183028401116401000000008311171561018b57600080fd5b5090925090506103e1565b3480156101a257600080fd5b50610081600480360360208110156101b957600080fd5b50356001600160a01b03166104f1565b3480156101d557600080fd5b506100d3610576565b6101e66105c0565b6001600160a01b0316336001600160a01b0316141561024c576040805162461bcd60e51b815260206004820152601f60248201527f43616e6e6f742066616c6c6261636b20746f2070726f78792074617267657400604482015290519081900360640190fd5b6040516001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541636600083376000803684845af490503d806000843e81801561029a578184f35b8184fd5b6102a66105c0565b6001600160a01b0316336001600160a01b031614156102cd576102c8816105e5565b6102d5565b6102d56101de565b50565b60006102e26105c0565b6001600160a01b0316336001600160a01b031614806103195750610304610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610655565b9050610335565b6103356101de565b90565b6103406105c0565b6001600160a01b0316336001600160a01b031614806103775750610362610655565b6001600160a01b0316336001600160a01b0316145b156103895761038461067a565b610391565b6103916101de565b565b600061039d6105c0565b6001600160a01b0316336001600160a01b031614806103d457506103bf610655565b6001600160a01b0316336001600160a01b0316145b1561032d57610326610751565b6103e96105c0565b6001600160a01b0316336001600160a01b03161480610420575061040b610655565b6001600160a01b0316336001600160a01b0316145b156104e55761042d61067a565b6000610437610751565b6001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d8060008114610491576040519150601f19603f3d011682016040523d82523d6000602084013e610496565b606091505b50509050806104df576040805162461bcd60e51b815260206004820152601060248201526f125b5c1b0818d85b1b0819985a5b195960821b604482015290519081900360640190fd5b506104ed565b6104ed6101de565b5050565b6104f96105c0565b6001600160a01b0316336001600160a01b031614156102cd576001600160a01b03811661056d576040805162461bcd60e51b815260206004820152601e60248201527f41646d696e2063616e7420626520746865207a65726f20616464726573730000604482015290519081900360640190fd5b6102c881610776565b60006105806105c0565b6001600160a01b0316336001600160a01b031614806105b757506105a2610655565b6001600160a01b0316336001600160a01b0316145b1561032d576103265b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b60006105ef610655565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c838155604051919250906001600160a01b0380851691908416907f980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a190600090a3505050565b7f9e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c5490565b6000610684610655565b90506001600160a01b0381166106e1576040805162461bcd60e51b815260206004820152601b60248201527f496d706c2063616e6e6f74206265207a65726f20616464726573730000000000604482015290519081900360640190fd5b336001600160a01b0382161461073e576040805162461bcd60e51b815260206004820152601b60248201527f4f6e6c792070656e64696e6720696d706c656d656e746174696f6e0000000000604482015290519081900360640190fd5b610747816107e6565b6102d560006105e5565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b60006107806105c0565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103838155604051919250906001600160a01b0380851691908416907f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b90600090a3505050565b60006107f0610751565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc838155604051919250906001600160a01b0380851691908416907faa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da90600090a350505056fea264697066735822122041ce882775d17ef838c17f08249aa48a5f3ea1c65b581e69896452640b274de264736f6c63430007060033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61039e5eddc59e0b171f57125ab86bee043d9128098c3a6b9adb4f2e86333c2f6f8c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonProxies#GraphProxy_HorizonStaking","networkInteractionId":1,"nonce":717,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x0be81a5951e38358bf1ad21fadd0e7e929e80717a8b55fef13f976bc5e54bf7f"},"type":"TRANSACTION_SEND"} -{"futureId":"HorizonProxies#GraphProxy_HorizonStaking","hash":"0x0be81a5951e38358bf1ad21fadd0e7e929e80717a8b55fef13f976bc5e54bf7f","networkInteractionId":1,"receipt":{"blockHash":"0xb46cdfedfe470a8444ea5c8af51d6518eef5010410c3d28f3fe7c31aa0a02b4f","blockNumber":97665907,"contractAddress":"0xdabc7419aba5A47d368d008f42bb66c7D5801740","logs":[{"address":"0xdabc7419aba5A47d368d008f42bb66c7D5801740","data":"0x","logIndex":0,"topics":["0x101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45"]},{"address":"0xdabc7419aba5A47d368d008f42bb66c7D5801740","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonProxies#GraphProxy_HorizonStaking","result":{"address":"0xdabc7419aba5A47d368d008f42bb66c7D5801740","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"args":["0x1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034","0xdabc7419aba5A47d368d008f42bb66c7D5801740"],"artifactId":"Controller#Controller","contractAddress":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","dependencies":["Controller#Controller","HorizonProxies#GraphProxy_HorizonStaking"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setContractProxy","futureId":"HorizonProxies#setContractProxy_HorizonStaking","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonProxies#setContractProxy_HorizonStaking","networkInteraction":{"data":"0xe0e992921df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034000000000000000000000000dabc7419aba5a47d368d008f42bb66c7d5801740","id":1,"to":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonProxies#setContractProxy_HorizonStaking","networkInteractionId":1,"nonce":718,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xe80b17da59ff503afc808d1849215383b2d6238dfa99e4373fffeb8ec80b7b10"},"type":"TRANSACTION_SEND"} -{"futureId":"HorizonProxies#setContractProxy_HorizonStaking","hash":"0xe80b17da59ff503afc808d1849215383b2d6238dfa99e4373fffeb8ec80b7b10","networkInteractionId":1,"receipt":{"blockHash":"0x20e3c5de40693e83d7413d295f86aff74a41928a3d66f32e1d5294964df9c7d0","blockNumber":97665923,"logs":[{"address":"0x59c3CA02528054C6337f63eb367a374Ac45C292C","data":"0x000000000000000000000000dabc7419aba5a47d368d008f42bb66c7d5801740","logIndex":3,"topics":["0x937cf566d78d4769ff0211a7d87a6bea51e1fc026fd4d3d8cd589f0e99b983bd","0x1df41cd916959d1163dc8f0671a666ea8a3e434c13e40faef527133b5d167034"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonProxies#setContractProxy_HorizonStaking","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"HorizonProxies#RegisteredDummy","constructorArgs":[],"contractName":"Dummy","dependencies":["HorizonProxies#setContractProxy_HorizonStaking","HorizonProxies#setContractProxy_GraphPayments","HorizonProxies#setContractProxy_PaymentsEscrow"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonProxies#RegisteredDummy","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonProxies#RegisteredDummy","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e9552d0bd17028a389e7fe001355f436a4c48f8bbc01c19b8c400850f5a6b5ac64736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonProxies#RegisteredDummy","networkInteractionId":1,"nonce":719,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xa746c68e08fc55c8f7de91b24891c949b5b3863ca72ae5fc7dc5c6e1c9b39fc6"},"type":"TRANSACTION_SEND"} -{"futureId":"HorizonProxies#RegisteredDummy","hash":"0xa746c68e08fc55c8f7de91b24891c949b5b3863ca72ae5fc7dc5c6e1c9b39fc6","networkInteractionId":1,"receipt":{"blockHash":"0x364e0c66e079587d29d8e9d9d18cfc0a11f3e58be52177419f8630679c9d6667","blockNumber":97665939,"contractAddress":"0x5560e7816fb9198A07d1432559cD67fd304C5046","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonProxies#RegisteredDummy","result":{"address":"0x5560e7816fb9198A07d1432559cD67fd304C5046","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"GraphPayments#GraphPayments","constructorArgs":["0x59c3CA02528054C6337f63eb367a374Ac45C292C",10000],"contractName":"GraphPayments","dependencies":["Controller#Controller","GraphHorizon_Periphery#Dummy","HorizonProxies#RegisteredDummy"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"GraphPayments#GraphPayments","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphPayments#GraphPayments","networkInteraction":{"data":"0x6101e060405234801561001157600080fd5b5060405161132f38038061132f833981016040819052610030916104ee565b816001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b290610372565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e590610372565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e90610372565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015890610372565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019090610372565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb90610372565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020990610372565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024590610372565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a90610372565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a45061033a81620f4240101590565b819061035c5760405163d3097bcb60e01b815260040161007191815260200190565b506101c081905261036b610420565b505061058a565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103ad91815260200190565b602060405180830381865afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee919061051a565b9050826001600160a01b0382166104195760405163218f5add60e11b8152600401610071919061053c565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104705760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104cf5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b03811681146104e957600080fd5b919050565b6000806040838503121561050157600080fd5b61050a836104d2565b9150602083015190509250929050565b60006020828403121561052c57600080fd5b610535826104d2565b9392505050565b602081526000825180602084015260005b8181101561056a576020818601810151604086840101520161054d565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051610d086106276000396000818160560152610104015260005050600050506000505060005050600050506000505060005050600050506000818161012e015281816102c1015261035401526000818160d5015281816102220152818161025a0152818161029201526103f50152610d086000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631d526e50146100515780636c69783a1461008b5780638129fc1c146100a0578063ac9650d8146100a8575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61009e6100993660046109ab565b6100c8565b005b61009e61047f565b6100bb6100b6366004610a06565b61058d565b6040516100829190610aa1565b6100fc6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163385610676565b6000610128847f0000000000000000000000000000000000000000000000000000000000000000610733565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637573ef4f87868a6040518463ffffffff1660e01b815260040161017c93929190610b21565b602060405180830381865afa158015610199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bd9190610b65565b905060006101cb8683610733565b90506000816101da8686610b94565b6101e49190610b94565b905086818082101561021757604051638bd93bad60e01b8152600481019290925260248201526044015b60405180910390fd5b5050610253846102447f000000000000000000000000000000000000000000000000000000000000000090565b6001600160a01b0316906107a1565b61028a86867f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190610806565b81156103e0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018590526044016020604051808303816000875af115801561032d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103519190610ba7565b507f000000000000000000000000000000000000000000000000000000000000000060405163ca94b0e960e01b81526001600160a01b038a81166004830152888116602483015260448201859052919091169063ca94b0e990606401600060405180830381600087803b1580156103c757600080fd5b505af11580156103db573d6000803e3d6000fd5b505050505b60006103ec8289610bc9565b905061041989827f000000000000000000000000000000000000000000000000000000000000000061027a565b6040805182815260208101859052908101879052606081018690526001600160a01b0380891691908b169033907fb6dba03dcdcd7b7167b22bd6f1462a936eb55f4218b1d4dddff20bdec5703ca39060800160405180910390a450505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104c55750825b905060008267ffffffffffffffff1660011480156104e25750303b155b9050811580156104f0575080155b1561050e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561053857845460ff60401b1916600160401b1785555b610540610841565b831561058657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b6040805160008152602081019091526060908267ffffffffffffffff8111156105b8576105b8610bdc565b6040519080825280602002602001820160405280156105eb57816020015b60608152602001906001900390816105d65790505b50915060005b8381101561066d576106483086868481811061060f5761060f610bf2565b90506020028101906106219190610c08565b8560405160200161063493929190610c56565b60405160208183030381529060405261084b565b83828151811061065a5761065a610bf2565b60209081029190910101526001016105f1565b50505b92915050565b801561072e576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af11580156106d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f69190610ba7565b61072e5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161020e565b505050565b600061074283620f4240101590565b80610755575061075582620f4240101590565b8383909161077f5760405163768bf0eb60e11b81526004810192909252602482015260440161020e565b50620f424090506107908385610c7d565b61079a9190610c94565b9392505050565b801561080257604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b1580156107e957600080fd5b505af11580156107fd573d6000803e3d6000fd5b505050505b5050565b801561072e5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016106b3565b6108496108c1565b565b6060600080846001600160a01b0316846040516108689190610cb6565b600060405180830381855af49150503d80600081146108a3576040519150601f19603f3d011682016040523d82523d6000602084013e6108a8565b606091505b50915091506108b885838361090a565b95945050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661084957604051631afcd79f60e31b815260040160405180910390fd5b60608261091f5761091a82610966565b61079a565b815115801561093657506001600160a01b0384163b155b1561095f57604051639996b31560e01b81526001600160a01b038516600482015260240161020e565b5092915050565b8051156109765780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146109a657600080fd5b919050565b600080600080600060a086880312156109c357600080fd5b8535600381106109d257600080fd5b94506109e06020870161098f565b9350604086013592506109f56060870161098f565b949793965091946080013592915050565b60008060208385031215610a1957600080fd5b823567ffffffffffffffff811115610a3057600080fd5b8301601f81018513610a4157600080fd5b803567ffffffffffffffff811115610a5857600080fd5b8560208260051b8401011115610a6d57600080fd5b6020919091019590945092505050565b60005b83811015610a98578181015183820152602001610a80565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015610b1557603f1987860301845281518051808752610af2816020890160208501610a7d565b601f01601f19169590950160209081019550938401939190910190600101610ac9565b50929695505050505050565b6001600160a01b038481168252831660208201526060810160038310610b5757634e487b7160e01b600052602160045260246000fd5b826040830152949350505050565b600060208284031215610b7757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561067057610670610b7e565b600060208284031215610bb957600080fd5b8151801515811461079a57600080fd5b8181038181111561067057610670610b7e565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112610c1f57600080fd5b83018035915067ffffffffffffffff821115610c3a57600080fd5b602001915036819003821315610c4f57600080fd5b9250929050565b828482376000838201600081528351610c73818360208801610a7d565b0195945050505050565b808202811582820484141761067057610670610b7e565b600082610cb157634e487b7160e01b600052601260045260246000fd5b500490565b60008251610cc8818460208701610a7d565b919091019291505056fea2646970667358221220329af098a6f1bd645aa52dabc2029106013cfb67b7e66c24d6a3d3c7009305a864736f6c634300081b003300000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c0000000000000000000000000000000000000000000000000000000000002710","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphPayments#GraphPayments","networkInteractionId":1,"nonce":720,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x9e93b952fa3e6e7c60c2742ec2c37dc1906d247d589314b92124b926b4b943e7"},"type":"TRANSACTION_SEND"} -{"artifactId":"GraphPayments#GraphPayments_Instance","contractAddress":"0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD","contractName":"GraphPayments","dependencies":["HorizonProxies#TransparentUpgradeableProxy_GraphPayments"],"futureId":"GraphPayments#GraphPayments_Instance","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"HorizonStakingExtension#HorizonStakingExtension","constructorArgs":["0x59c3CA02528054C6337f63eb367a374Ac45C292C","0xBc53a58f03917A88174C2795B674734eCEeec05F"],"contractName":"HorizonStakingExtension","dependencies":["Controller#Controller","GraphHorizon_Periphery#Dummy","HorizonProxies#RegisteredDummy","HorizonStakingExtension#ExponentialRebates"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonStakingExtension#HorizonStakingExtension","futureType":"CONTRACT_DEPLOYMENT","libraries":{"ExponentialRebates":"0xA966fedEE46EbfA9B2390986aa19fab5aE018e87"},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonStakingExtension#HorizonStakingExtension","networkInteraction":{"data":"0x6101e060405234801561001157600080fd5b5060405161311a38038061311a83398101604081905261003091610411565b818181806001600160a01b03811661007d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b590610347565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e890610347565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261012190610347565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015b90610347565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019390610347565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101ce90610347565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020c90610347565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024890610347565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027d90610347565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103279790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b03166101c052506104b4915050565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161038291815260200190565b602060405180830381865afa15801561039f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c39190610444565b9050826001600160a01b0382166103ee5760405163218f5add60e11b81526004016100749190610466565b5092915050565b80516001600160a01b038116811461040c57600080fd5b919050565b6000806040838503121561042457600080fd5b61042d836103f5565b915061043b602084016103f5565b90509250929050565b60006020828403121561045657600080fd5b61045f826103f5565b9392505050565b602081526000825180602084015260005b818110156104945760208186018101516040868401015201610477565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051612bb061056a6000396000818161196c0152611b6c01526000611d910152600050506000505060008181611e73015281816121bf01526122c901526000818161120a01526118a5015260008181610be70152610e19015260005050600050506000505060008181610f870152818161113d01528181611d5901528181611ee801526120d00152612bb06000f3fe6080604052600436106101dc5760003560e01c806398c657dc11610102578063b7ca724111610095578063e73e14bf11610064578063e73e14bf14610a60578063f1d60d6614610a98578063fb744cc014610ab8578063fc54fb2714610ad857600080fd5b8063b7ca724114610926578063c0641994146109e9578063ccebcabb14610a04578063e2e1e8e914610a3357600080fd5b8063a784d498116100d1578063a784d49814610856578063ac9650d814610876578063ae4fe67a146108a3578063b6363cf2146108dc57600080fd5b806398c657dc146107195780639ce7abe514610746578063a212daf814610766578063a2594d821461083657600080fd5b8063561285e41161017a578063872d048911610149578063872d0489146106385780638cc01c86146106585780638d3c100a146106d95780639054e343146106f957600080fd5b8063561285e4146105865780636a3ca383146105e85780637573ef4f146106185780637a766460146102fb57600080fd5b806325d9897e116101b657806325d9897e1461033157806339514ad21461045457806344c32a611461048657806355c85269146104a857600080fd5b806308ce5f68146102335780630e022923146102665780631787e69f146102fb57600080fd5b3661022e5760405162461bcd60e51b815260206004820152601760248201527f524543454956455f4554485f4e4f545f414c4c4f57454400000000000000000060448201526064015b60405180910390fd5b600080fd5b34801561023f57600080fd5b5061025361024e3660046125ad565b610af0565b6040519081526020015b60405180910390f35b34801561027257600080fd5b506102866102813660046125e6565b610b05565b60405161025d919060006101208201905060018060a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015292915050565b34801561030757600080fd5b506102536103163660046125e6565b6001600160a01b03166000908152600e602052604090205490565b34801561033d57600080fd5b5061044761034c3660046125ad565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff808216606084015264010000000082046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e082015260049091015461010082015290565b60405161025d9190612603565b34801561046057600080fd5b50601a546001600160401b03165b6040516001600160401b03909116815260200161025d565b34801561049257600080fd5b506104a66104a13660046126a4565b610be5565b005b3480156104b457600080fd5b506105546104c33660046125e6565b6001600160a01b039081166000908152600f602090815260408083208151610120810183528154909516808652600182015493860184905260028201549286018390526003820154606087015260048201546080870152600582015460a0870152600682015460c0870152600782015460e08701819052600890920154610100909601959095529394919390929091565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a00161025d565b34801561059257600080fd5b506105a66105a13660046125ad565b610c93565b60405161025d9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b3480156105f457600080fd5b506106086106033660046125e6565b610d39565b604051901515815260200161025d565b34801561062457600080fd5b506102536106333660046126d0565b610d5e565b34801561064457600080fd5b5061025361065336600461271f565b610dc2565b34801561066457600080fd5b506106be6106733660046125e6565b60408051808201825260008082526020918201819052825180840184528181528083018281526001600160a01b03959095168252600e90925291909120805482526004015490915290565b6040805182518152602092830151928101929092520161025d565b3480156106e557600080fd5b506104a66106f4366004612768565b610e17565b34801561070557600080fd5b5061025361071436600461278d565b6112e3565b34801561072557600080fd5b506107396107343660046125e6565b6113cb565b60405161025d91906127e3565b34801561075257600080fd5b506104a661076136600461280b565b6113d6565b34801561077257600080fd5b5061080361078136600461278d565b60408051608080820183526000808352602080840182905283850182905260609384018290526001600160a01b039788168252601e815284822096881682529586528381209490961686529284529381902081519283018252805483526001810154938301939093526002830154908201526003909101549181019190915290565b60405161025d91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b34801561084257600080fd5b506104a66108513660046125e6565b611501565b34801561086257600080fd5b506102536108713660046125e6565b61161d565b34801561088257600080fd5b50610896610891366004612890565b611628565b60405161025d9190612929565b3480156108af57600080fd5b506106086108be3660046125e6565b6001600160a01b031660009081526022602052604090205460ff1690565b3480156108e857600080fd5b506106086108f73660046125ad565b6001600160a01b0380821660009081526015602090815260408083209386168352929052205460ff1692915050565b34801561093257600080fd5b506109ad6109413660046129a9565b6040805160808082018352600080835260208084018290528385018290526060938401829052948152601d8552839020835191820184528054825260018101546001600160401b0316948201949094526002840154928101929092526003909201549181019190915290565b60405161025d9190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b3480156109f557600080fd5b50600d5463ffffffff1661046e565b348015610a1057600080fd5b50610a24610a1f36600461278d565b61170f565b6040519051815260200161025d565b348015610a3f57600080fd5b50610253610a4e3660046129a9565b60009081526010602052604090205490565b348015610a6c57600080fd5b50610608610a7b3660046125e6565b6001600160a01b03166000908152600e6020526040902054151590565b348015610aa457600080fd5b50610608610ab33660046125e6565b611761565b348015610ac457600080fd5b50610253610ad33660046125ad565b611786565b348015610ae457600080fd5b5060205460ff16610608565b6000610afc8383611792565b90505b92915050565b610b6060405180610120016040528060006001600160a01b0316815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b039081166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e08301526008015461010082015290565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6791906129c2565b15610c8557604051632b37d9d160e21b815260040160405180910390fd5b610c8f82826117ca565b5050565b610cc56040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b610cf76040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000610d038585611b68565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b60006001610d4683611bec565b6002811115610d5757610d576127cd565b1492915050565b6001600160a01b038084166000908152601c60209081526040808320938616835292905290812081836002811115610d9857610d986127cd565b6002811115610da957610da96127cd565b81526020019081526020016000205490505b9392505050565b600080610dcf8585611792565b90506000610ddd8686611c45565b90506000610df163ffffffff8616846129fa565b90506000610dff8383611c70565b9050610e0b8185612a11565b98975050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9991906129c2565b15610eb757604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038116610ef65760405162461bcd60e51b815260206004820152600660248201526521616c6c6f6360d01b6044820152606401610225565b6000610f0182611bec565b90506000816002811115610f1757610f176127cd565b03610f4f5760405162461bcd60e51b81526020600482015260086024820152670858dbdb1b1958dd60c21b6044820152606401610225565b82600003610f5c57505050565b6001600160a01b0382166000908152600f60205260408120600181015490918590808080610fb633867f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190611c87565b600d54610fd1908690600160401b900463ffffffff16611d44565b9350610fdd8486612a24565b600d54909550610ffe9087908790640100000000900463ffffffff16611d7d565b925061100a8386612a24565b945084876005015461101c9190612a11565b6005880155600287015460009015806110425750601954600160a01b900463ffffffff16155b61110d5760058801546002890154600d546019546040516349484d8160e01b81526004810194909452602484019290925263ffffffff600160a01b80830482166044860152600160c01b928390048216606486015283048116608485015291041660a482015273A966fedEE46EbfA9B2390986aa19fab5aE018e87906349484d819060c401602060405180830381865af41580156110e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111089190612a37565b611110565b60005b9050611120818960080154611f90565b925061112c8387611c70565b925061116c61113b8488612a24565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031690611faa565b82156111d4578288600801546111829190612a11565b6008890155875461119c906001600160a01b031684611ff2565b91506111a88284612a24565b88546001600160a01b039081166000818152601760205260409020549295506111d49286921615612084565b5086546001600160a01b038a8116918891167ff5ded07502b6feba4c13b19a0c6646efd4b4119f439bcbd49076e4f0ed1eec4b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128a9190612a37565b604080516001600160a01b039093168352602083019190915281018f9052606081018990526080810188905260a081018a905260c0810187905260e081018690526101000160405180910390a450505050505050505050565b6001600160a01b038084166000908152601e6020908152604080832086851684528252808320938516835292905290812060038101548203611329576000915050610dbb565b6001600160a01b038086166000908152601b60209081526040808320938816835292905290812082545b80156113bf576000818152601d602052604090206001810154426001600160401b03909116116113ae5760028301546001840154825461139391906129fa565b61139d9190612a50565b6113a79085612a11565b93506113b4565b506113bf565b600201549050611353565b50909695505050505050565b6000610aff82611bec565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611417573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143b9190612a72565b6001600160a01b0316336001600160a01b03161461149b5760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610225565b60405163623faf6160e01b81526001600160a01b0385169063623faf61906114c99086908690600401612a8f565b600060405180830381600087803b1580156114e357600080fd5b505af11580156114f7573d6000803e3d6000fd5b5050505050505050565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611542573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115669190612a72565b6001600160a01b0316336001600160a01b0316146115c65760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610225565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561160157600080fd5b505af1158015611615573d6000803e3d6000fd5b505050505050565b6000610aff826120fa565b604080516000815260208101909152606090826001600160401b0381111561165257611652612abe565b60405190808252806020026020018201604052801561168557816020015b60608152602001906001900390816116705790505b50915060005b83811015611707576116e2308686848181106116a9576116a9612ad4565b90506020028101906116bb9190612aea565b856040516020016116ce93929190612b37565b604051602081830303815290604052612145565b8382815181106116f4576116f4612ad4565b602090810291909101015260010161168b565b505092915050565b60408051602081019091526000815260408051602081019091526000815260006117398686611b68565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b60008061176d83611bec565b600281111561177e5761177e6127cd565b141592915050565b6000610afc8383611c45565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610afc9190612a24565b60006117d583611bec565b905060018160028111156117eb576117eb6127cd565b146118225760405162461bcd60e51b81526020600482015260076024820152662161637469766560c81b6044820152606401610225565b6001600160a01b038381166000908152600f6020908152604091829020825161012081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c0830152600781015460e0830152600801546101008201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015611901573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119259190612a37565b60808201819052606082015160009161193d91611f90565b9050600082600001516001600160a01b0316336001600160a01b031614806119ae575082516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600090815260156020908152604080832093909416825291909152205460ff165b600d54909150600160801b900463ffffffff16821115806119d157506040830151155b15611a0b5780611a0b5760405162461bcd60e51b8152602060048201526005602482015264042c2eae8d60db1b6044820152606401610225565b60808301516001600160a01b0387166000908152600f6020526040908190206004019190915583015115611aef57808015611a4557508415155b15611a5d57611a588684600001516121bb565b611a6c565b611a6a83602001516122a8565b505b60408084015184516001600160a01b03166000908152600e6020529190912060010154611a999190612a24565b83516001600160a01b03166000908152600e602090815260408083206001019390935582860151818701518352601090915291902054611ad99190612a24565b6020808501516000908152601090915260409020555b60208084015184516080808701516040808901518151928352958201959095523394810194909452606084018990528415908401526001600160a01b03808a16939116907ff6725dd105a6fc88bb79a6e4627f128577186c567a17c94818d201c2a4ce14039060a00160405180910390a4505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611bc157506001600160a01b0382166000908152601460205260409020610aff565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610aff565b6001600160a01b038082166000908152600f6020526040812080549192909116611c195750600092915050565b600381015415801590611c2e57506004810154155b15611c3c5750600192915050565b50600292915050565b600080611c528484611b68565b905080600501548160020154611c689190612a24565b949350505050565b600081831115611c805781610afc565b5090919050565b8015611d3f576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af1158015611ce3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0791906129c2565b611d3f5760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610225565b505050565b600080611d518484612336565b9050610afc817f000000000000000000000000000000000000000000000000000000000000000061115d565b600082600003611d8f57506000610dbb565b7f000000000000000000000000000000000000000000000000000000000000000060008315801590611dc957506001600160a01b03821615155b9050808015611e3c5750604051634c4ea0ed60e01b8152600481018790526001600160a01b03831690634c4ea0ed90602401602060405180830381865afa158015611e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3c91906129c2565b15611f84576000611e4d8686612336565b90508015611f7a576040516307470bfb60e21b8152600481018890526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631d1c2fec906024016020604051808303816000875af1158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee09190612a37565b50611f1883827f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190612388565b60405163102ae65160e31b815260048101889052602481018290526001600160a01b03841690638157328890604401600060405180830381600087803b158015611f6157600080fd5b505af1158015611f75573d6000803e3d6000fd5b505050505b9250610dbb915050565b50600095945050505050565b6000818311611fa0576000610afc565b610afc8284612a24565b8015610c8f57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561160157600080fd5b6001600160a01b038216600090815260146020526040812060028101548291901580159061203157508054600160401b900463ffffffff16620f424010155b1561207c5780546000906120579063ffffffff600160401b90910481169087906123c316565b90506120638186612a24565b92508282600201546120759190612a11565b6002830155505b509392505050565b8260000361209157505050565b80156120a157611d3f828461242a565b6001600160a01b03808316600090815260176020526040902054166120f481156120cb57816120cd565b835b857f0000000000000000000000000000000000000000000000000000000000000000611f08565b50505050565b6001600160a01b0381166000908152600e602052604081206002810154600182015460048301549254919290916121319190612a24565b61213b9190612a24565b610aff9190612a24565b6060600080846001600160a01b0316846040516121629190612b5e565b600060405180830381855af49150503d806000811461219d576040519150601f19603f3d011682016040523d82523d6000602084013e6121a2565b606091505b50915091506121b28583836124a9565b95945050505050565b60007f0000000000000000000000000000000000000000000000000000000000000000604051636dba849360e11b81526001600160a01b038581166004830152919091169063db750926906024016020604051808303816000875af1158015612228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224c9190612a37565b90508060000361225b57505050565b60006122678383612505565b905060006122758284612a24565b6001600160a01b038086166000908152601760205260409020549192506122a191839187911615612084565b5050505050565b6040516377561f0760e11b8152600481018290526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063eeac3e0e906024016020604051808303816000875af1158015612312573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aff9190612a37565b600061234582620f4240101590565b829061236757604051633dc311df60e01b815260040161022591815260200190565b5061237e8361237984620f4240612a24565b6123c3565b610afc9084612a24565b8015611d3f5760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401611cc4565b60006123d283620f4240101590565b806123e557506123e582620f4240101590565b8383909161240f5760405163768bf0eb60e11b815260048101929092526024820152604401610225565b50620f4240905061242083856129fa565b610afc9190612a50565b6001600160a01b0382166000908152600e602052604090205461244e908290612a11565b6001600160a01b0383166000818152600e6020526040908190209290925590517f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc29061249d9084815260200190565b60405180910390a25050565b6060826124be576124b98261256c565b610dbb565b81511580156124d557506001600160a01b0384163b155b156124fe57604051639996b31560e01b81526001600160a01b0385166004820152602401610225565b5080610dbb565b6001600160a01b038216600090815260146020526040812060028101548291901580159061254557508054640100000000900463ffffffff16620f424010155b1561207c5780546000906120579063ffffffff64010000000090910481169087906123c316565b80511561257c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b038116811461259557600080fd5b600080604083850312156125c057600080fd5b82356125cb81612598565b915060208301356125db81612598565b809150509250929050565b6000602082840312156125f857600080fd5b8135610afc81612598565b60006101208201905082518252602083015160208301526040830151604083015263ffffffff60608401511660608301526001600160401b03608084015116608083015260a083015161266160a08401826001600160401b03169052565b5060c083015161267960c084018263ffffffff169052565b5060e083015161269460e08401826001600160401b03169052565b5061010092830151919092015290565b600080604083850312156126b757600080fd5b82356126c281612598565b946020939093013593505050565b6000806000606084860312156126e557600080fd5b83356126f081612598565b9250602084013561270081612598565b915060408401356003811061271457600080fd5b809150509250925092565b60008060006060848603121561273457600080fd5b833561273f81612598565b9250602084013561274f81612598565b9150604084013563ffffffff8116811461271457600080fd5b6000806040838503121561277b57600080fd5b8235915060208301356125db81612598565b6000806000606084860312156127a257600080fd5b83356127ad81612598565b925060208401356127bd81612598565b9150604084013561271481612598565b634e487b7160e01b600052602160045260246000fd5b602081016003831061280557634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006040848603121561282057600080fd5b833561282b81612598565b925060208401356001600160401b0381111561284657600080fd5b8401601f8101861361285757600080fd5b80356001600160401b0381111561286d57600080fd5b86602082840101111561287f57600080fd5b939660209190910195509293505050565b600080602083850312156128a357600080fd5b82356001600160401b038111156128b957600080fd5b8301601f810185136128ca57600080fd5b80356001600160401b038111156128e057600080fd5b8560208260051b84010111156128f557600080fd5b6020919091019590945092505050565b60005b83811015612920578181015183820152602001612908565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561299d57603f198786030184528151805180875261297a816020890160208501612905565b601f01601f19169590950160209081019550938401939190910190600101612951565b50929695505050505050565b6000602082840312156129bb57600080fd5b5035919050565b6000602082840312156129d457600080fd5b81518015158114610afc57600080fd5b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610aff57610aff6129e4565b80820180821115610aff57610aff6129e4565b81810381811115610aff57610aff6129e4565b600060208284031215612a4957600080fd5b5051919050565b600082612a6d57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612a8457600080fd5b8151610afc81612598565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112612b0157600080fd5b8301803591506001600160401b03821115612b1b57600080fd5b602001915036819003821315612b3057600080fd5b9250929050565b828482376000838201600081528351612b54818360208801612905565b0195945050505050565b60008251612b70818460208701612905565b919091019291505056fea26469706673582212202248057a8bce81db640fbc5d05cef1efff890ddbde3697383b1612b453370f4364736f6c634300081b003300000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c000000000000000000000000bc53a58f03917a88174c2795b674734eceeec05f","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonStakingExtension#HorizonStakingExtension","networkInteractionId":1,"nonce":721,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x8a378086ba3ff7a7b025b0a3f4960e3076365c2d0202cef53b4fa9d9ca049585"},"type":"TRANSACTION_SEND"} -{"artifactId":"PaymentsEscrow#PaymentsEscrow","constructorArgs":["0x59c3CA02528054C6337f63eb367a374Ac45C292C",10000,10000],"contractName":"PaymentsEscrow","dependencies":["Controller#Controller","GraphHorizon_Periphery#Dummy","HorizonProxies#RegisteredDummy"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"PaymentsEscrow#PaymentsEscrow","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"PaymentsEscrow#PaymentsEscrow","networkInteraction":{"data":"0x61020060405234801561001157600080fd5b506040516121d83803806121d88339810160408190526100309161046b565b826001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b2906103a1565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e5906103a1565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e906103a1565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b6020820152610158906103a1565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610190906103a1565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb906103a1565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b6020820152610209906103a1565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b6020820152610245906103a1565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a906103a1565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450816276a7008082111561035c57604051635c0f65a160e01b815260048101929092526024820152604401610071565b508190506276a7008082111561038e57604051635c0f65a160e01b815260048101929092526024820152604401610071565b50506101c0919091526101e05250610510565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b81526004016103dc91815260200190565b602060405180830381865afa1580156103f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041d91906104a0565b9050826001600160a01b0382166104485760405163218f5add60e11b815260040161007191906104c2565b5092915050565b80516001600160a01b038116811461046657600080fd5b919050565b60008060006060848603121561048057600080fd5b6104898461044f565b602085015160409095015190969495509392505050565b6000602082840312156104b257600080fd5b6104bb8261044f565b9392505050565b602081526000825180602084015260005b818110156104f057602081860181015160408684010152016104d3565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051611be36105f56000396000818161020801526111c801526000818161015001526103a401526000505060005050600050506000505060005050600081816103010152818161041d01528181610590015281816106d90152818161078b015281816109cf01528181610a8001528181611049015261124d01526000505060008181610cbd0152610d6501526000505060008181610c0101528181610c8e01528181610ddb015281816113c5015261148f0152611be36000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638129fc1c116100a2578063b2168b6b11610071578063b2168b6b14610278578063beb6eceb14610282578063d6bd603c146102c6578063f93f1cd0146102d9578063f940e385146102ec57600080fd5b80638129fc1c1461022a5780638340f5491461023257806387dbfe8214610245578063ac9650d81461025857600080fd5b806372eb521e116100de57806372eb521e1461018557806378a24c54146101985780637a8df28b146101ab5780637b8ae6cf1461020357600080fd5b80630ee36be31461011057806332825b81146101255780634f9d392e146101385780636cd476561461014b575b600080fd5b61012361011e366004611762565b6102ff565b005b610123610133366004611762565b61041b565b61012361014636600461177d565b61058e565b6101727f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6101236101933660046117a7565b6106d7565b6101236101a6366004611762565b610789565b6101e86101b93660046117f2565b600160208181526000948552604080862082529385528385209052908352912080549181015460029091015483565b6040805193845260208401929092529082015260600161017c565b6101727f000000000000000000000000000000000000000000000000000000000000000081565b6101236108bf565b610123610240366004611835565b6109cd565b610123610253366004611872565b610a7e565b61026b6102663660046118e0565b610f0f565b60405161017c919061197b565b6101726276a70081565b6102b16102903660046119fb565b60006020818152928152604080822090935290815220805460019091015482565b6040805192835260208301919091520161017c565b6101726102d43660046117f2565b610ff8565b6101236102e7366004611835565b611047565b6101236102fa3660046119fb565b61124b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103819190611a2e565b1561039f57604051639e68cf0b60e01b815260040160405180910390fd5b6103c97f000000000000000000000000000000000000000000000000000000000000000042611a66565b336000818152602081815260408083206001600160a01b03871680855292528083206001019490945592517f47c16ea40fc834cf4be3dc9ec160a1ff77ba18b1231e9e6886e3231c708326ff9190a350565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190611a2e565b156104bb57604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03851684529091528120600181015490910361050157604051638cbd172f60e01b815260040160405180910390fd5b6001810154429081811061053657604051633c50db7960e11b8152600481019290925260248201526044015b60405180910390fd5b5050336000818152602081815260408083206001600160a01b0387168085529252808320838155600101839055519092917f3d7c3b7414bb2ce0675b85ea842ee937d10fe3b291f1cb2dc3361510bd113d9091a35050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106109190611a2e565b1561062e57604051639e68cf0b60e01b815260040160405180910390fd5b8060000361064f57604051633aff1f3760e21b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b03861684529091528120805490918391839190610684908490611a66565b909155505080546040805184815260208101929092526001600160a01b0385169133917f61715ac91d89f310ff71b2ccccdce0ebbd98d1ae31e8482559060139ac54a69d910160405180910390a3505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610735573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107599190611a2e565b1561077757604051639e68cf0b60e01b815260040160405180910390fd5b6107838484848461143b565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190611a2e565b1561082957604051639e68cf0b60e01b815260040160405180910390fd5b336000908152602081815260408083206001600160a01b0385168452909152812060010154900361086d57604051638cbd172f60e01b815260040160405180910390fd5b336000818152602081815260408083206001600160a01b0386168085529252808320600101839055519092917f988de7a3afe0d801be198872279c1fd9771d8013712ee4f00652354c8a6ec27d91a350565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156109055750825b905060008267ffffffffffffffff1660011480156109225750303b155b905081158015610930575080155b1561094e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561097857845460ff60401b1916600160401b1785555b610980611505565b83156109c657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4f9190611a2e565b15610a6d57604051639e68cf0b60e01b815260040160405180910390fd5b610a793384848461143b565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b009190611a2e565b15610b1e57604051639e68cf0b60e01b815260040160405180910390fd5b6001600160a01b038516600090815260208181526040808320338452909152902080548480821015610b6c5760405163b0b503e760e01b81526004810192909252602482015260440161052d565b50506001600160a01b038087166000908152600160209081526040808320338452825280832093891683529290522080548580821015610bc857604051633db4e69160e01b81526004810192909252602482015260440161052d565b505084826000016000828254610bde9190611a79565b9091555050805485908290600090610bf7908490611a79565b90915550600090507f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a9190611a8c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018990526044016020604051808303816000875af1158015610d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4d9190611a2e565b50604051633634bc1d60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636c69783a90610da2908c908b908b908b908b90600401611aa5565b600060405180830381600087803b158015610dbc57600080fd5b505af1158015610dd0573d6000803e3d6000fd5b505050506000610dfd7f000000000000000000000000000000000000000000000000000000000000000090565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e679190611a8c565b9050610e738188611a66565b8214828289909192610ea957604051631f82726b60e21b815260048101939093526024830191909152604482015260640161052d565b505050876001600160a01b0316336001600160a01b03168a6001600160a01b03167fedeef164a6af3d5877b558880222d022aafee6e9787cafd3e5055f7d33306dd68a604051610efb91815260200190565b60405180910390a450505050505050505050565b6040805160008152602081019091526060908267ffffffffffffffff811115610f3a57610f3a611af0565b604051908082528060200260200182016040528015610f6d57816020015b6060815260200190600190039081610f585790505b50915060005b83811015610fef57610fca30868684818110610f9157610f91611b06565b9050602002810190610fa39190611b1c565b85604051602001610fb693929190611b6a565b60405160208183030381529060405261150f565b838281518110610fdc57610fdc611b06565b6020908102919091010152600101610f73565b50505b92915050565b6001600160a01b03808416600090815260016020818152604080842087861685528252808420948616845293905291812091820154825491929161103c9190611a79565b9150505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c99190611a2e565b156110e757604051639e68cf0b60e01b815260040160405180910390fd5b3360009081526001602090815260408083206001600160a01b038781168552908352818420908616845290915281209082900361118d57806001015460000361114357604051638cbd172f60e01b815260040160405180910390fd5b600060018201819055600282018190556040516001600160a01b0385169133917fb2486c13d5da6cdbddffe9f9ec53350f7f15033cec803877fd75ff89d734c9489190a350505050565b805482808210156111ba57604051633db4e69160e01b81526004810192909252602482015260440161052d565b5050600181018290556111ed7f000000000000000000000000000000000000000000000000000000000000000042611a66565b600282018190556040516001600160a01b03808616929087169133917fba109e8a47e57c895aa1802554cd51025499c2b07c3c9b467c70413a4434ffbc9161123d91888252602082015260400190565b60405180910390a450505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cd9190611a2e565b156112eb57604051639e68cf0b60e01b815260040160405180910390fd5b3360009081526001602090815260408083206001600160a01b03868116855290835281842090851684529091528120600281015490910361133f57604051638cbd172f60e01b815260040160405180910390fd5b6002810154429081811061136f57604051633c50db7960e11b81526004810192909252602482015260440161052d565b50506000816000015482600101541161138c57816001015461138f565b81545b9050808260000160008282546113a59190611a79565b909155505060006001830181905560028301556113ec6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611585565b826001600160a01b0316846001600160a01b0316336001600160a01b03167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f78460405161123d91815260200190565b6001600160a01b038085166000908152600160209081526040808320878516845282528083209386168352929052908120805483929061147c908490611a66565b909155506114b690506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163383611637565b816001600160a01b0316836001600160a01b0316856001600160a01b03167f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a968460405161123d91815260200190565b61150d611678565b565b6060600080846001600160a01b03168460405161152c9190611b91565b600060405180830381855af49150503d8060008114611567576040519150601f19603f3d011682016040523d82523d6000602084013e61156c565b606091505b509150915061157c8583836116c1565b95945050505050565b8015610a795760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af11580156115db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ff9190611a2e565b610a795760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161052d565b8015610a79576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064016115bc565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661150d57604051631afcd79f60e31b815260040160405180910390fd5b6060826116d6576116d18261171d565b611040565b81511580156116ed57506001600160a01b0384163b155b1561171657604051639996b31560e01b81526001600160a01b038516600482015260240161052d565b5080611040565b80511561172d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461175d57600080fd5b919050565b60006020828403121561177457600080fd5b61104082611746565b6000806040838503121561179057600080fd5b61179983611746565b946020939093013593505050565b600080600080608085870312156117bd57600080fd5b6117c685611746565b93506117d460208601611746565b92506117e260408601611746565b9396929550929360600135925050565b60008060006060848603121561180757600080fd5b61181084611746565b925061181e60208501611746565b915061182c60408501611746565b90509250925092565b60008060006060848603121561184a57600080fd5b61185384611746565b925061186160208501611746565b929592945050506040919091013590565b60008060008060008060c0878903121561188b57600080fd5b86356003811061189a57600080fd5b95506118a860208801611746565b94506118b660408801611746565b9350606087013592506118cb60808801611746565b9598949750929591949360a090920135925050565b600080602083850312156118f357600080fd5b823567ffffffffffffffff81111561190a57600080fd5b8301601f8101851361191b57600080fd5b803567ffffffffffffffff81111561193257600080fd5b8560208260051b840101111561194757600080fd5b6020919091019590945092505050565b60005b8381101561197257818101518382015260200161195a565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156119ef57603f19878603018452815180518087526119cc816020890160208501611957565b601f01601f191695909501602090810195509384019391909101906001016119a3565b50929695505050505050565b60008060408385031215611a0e57600080fd5b611a1783611746565b9150611a2560208401611746565b90509250929050565b600060208284031215611a4057600080fd5b8151801515811461104057600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610ff257610ff2611a50565b81810381811115610ff257610ff2611a50565b600060208284031215611a9e57600080fd5b5051919050565b60a0810160038710611ac757634e487b7160e01b600052602160045260246000fd5b9581526001600160a01b0394851660208201526040810193909352921660608201526080015290565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112611b3357600080fd5b83018035915067ffffffffffffffff821115611b4e57600080fd5b602001915036819003821315611b6357600080fd5b9250929050565b828482376000838201600081528351611b87818360208801611957565b0195945050505050565b60008251611ba3818460208701611957565b919091019291505056fea2646970667358221220a2310128f8eef1d4020c2e25f9c893bf4089333983224daab65c35fcea8e45cd64736f6c634300081b003300000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c00000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002710","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"PaymentsEscrow#PaymentsEscrow","networkInteractionId":1,"nonce":722,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xe5c2784fecb4826c373aca8f28dd673073155bcaf609889d3ab04ee5eaa9e581"},"type":"TRANSACTION_SEND"} -{"futureId":"PaymentsEscrow#PaymentsEscrow","hash":"0xe5c2784fecb4826c373aca8f28dd673073155bcaf609889d3ab04ee5eaa9e581","networkInteractionId":1,"receipt":{"blockHash":"0xb33afb8521d96be6bf65dd981f36311c17dfade7473576ac00906f59c9db580a","blockNumber":97665974,"contractAddress":"0x69F0a00274f8211120a80D7aFdf9b0f2D76A02F6","logs":[{"address":"0x69F0a00274f8211120a80D7aFdf9b0f2D76A02F6","data":"0x000000000000000000000000dfee494c436613bafbfb80de4b19597fc69ec4fd0000000000000000000000007782536dac304b46e4eb60751e4021ab3b09abab000000000000000000000000cf27161ee08ca6087f9ff445a44474b89c10e5540000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf80000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c3000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c","logIndex":0,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000cf242b6e8d1a5883627049485bf2c1d3dcf56ba8","0x000000000000000000000000dabc7419aba5a47d368d008f42bb66c7d5801740","0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"PaymentsEscrow#PaymentsEscrow","result":{"address":"0x69F0a00274f8211120a80D7aFdf9b0f2D76A02F6","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"PaymentsEscrow#PaymentsEscrow_Instance","contractAddress":"0x7782536dac304b46E4Eb60751e4021ab3b09aBAb","contractName":"PaymentsEscrow","dependencies":["HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow"],"futureId":"PaymentsEscrow#PaymentsEscrow_Instance","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"TAPCollector#TAPCollector","constructorArgs":["TAPCollector","1","0x59c3CA02528054C6337f63eb367a374Ac45C292C",10000],"contractName":"TAPCollector","dependencies":["Controller#Controller","GraphHorizon_Periphery#Dummy","HorizonProxies#RegisteredDummy"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"TAPCollector#TAPCollector","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"TAPCollector#TAPCollector","networkInteraction":{"data":"0x6102c060405234801561001157600080fd5b50604051612162380380612162833981016040819052610030916105de565b81848461003e8260006103e0565b6101205261004d8160016103e0565b61014052815160208084019190912060e052815190820120610100524660a0526100da60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526001600160a01b03811661012c5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101e05260408051808201909152600a81526923b930b8342a37b5b2b760b11b602082015261016490610413565b6001600160a01b0316610160526040805180820190915260078152665374616b696e6760c81b602082015261019890610413565b6001600160a01b03166101805260408051808201909152600d81526c47726170685061796d656e747360981b60208201526101d290610413565b6001600160a01b03166101a05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261020d90610413565b6001600160a01b03166101c05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261024690610413565b6001600160a01b03166102005260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b602082015261028190610413565b6001600160a01b0316610220526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102bf90610413565b6001600160a01b03166102405260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102fb90610413565b6001600160a01b03166102605260408051808201909152600881526721bab930ba34b7b760c11b602082015261033090610413565b6001600160a01b039081166102808190526101e05161018051610160516101a0516101c0516102005161022051610240516102605160408051968c168752948b166020870152928a1685850152908916606085015288166080840152871660a083015260c0820195909552935192851694918216939116917fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a439181900360e00190a4506102a0525061082b915050565b60006020835110156103fc576103f5836104c1565b905061040d565b8161040784826106e8565b5060ff90505b92915050565b6000806101e0516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161044e91815260200190565b602060405180830381865afa15801561046b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048f91906107a6565b9050826001600160a01b0382166104ba5760405163218f5add60e11b815260040161012391906107f4565b5092915050565b600080829050601f815111156104ec578260405163305a27a960e01b815260040161012391906107f4565b80516104f782610807565b179392505050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015610530578181015183820152602001610518565b50506000910152565b600082601f83011261054a57600080fd5b81516001600160401b03811115610563576105636104ff565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610591576105916104ff565b6040528181528382016020018510156105a957600080fd5b6105ba826020830160208701610515565b949350505050565b80516001600160a01b03811681146105d957600080fd5b919050565b600080600080608085870312156105f457600080fd5b84516001600160401b0381111561060a57600080fd5b61061687828801610539565b602087015190955090506001600160401b0381111561063457600080fd5b61064087828801610539565b93505061064f604086016105c2565b6060959095015193969295505050565b600181811c9082168061067357607f821691505b60208210810361069357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156106e357806000526020600020601f840160051c810160208510156106c05750805b601f840160051c820191505b818110156106e057600081556001016106cc565b50505b505050565b81516001600160401b03811115610701576107016104ff565b6107158161070f845461065f565b84610699565b6020601f82116001811461074957600083156107315750848201515b600019600385901b1c1916600184901b1784556106e0565b600084815260208120601f198516915b828110156107795787850151825560209485019460019092019101610759565b50848210156107975786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6000602082840312156107b857600080fd5b6107c1826105c2565b9392505050565b600081518084526107e0816020860160208601610515565b601f01601f19169290920160200192915050565b6020815260006107c160208301846107c8565b805160208083015191908110156106935760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a0516118786108ea600039600081816101bf015261035e015260005050600050506000505060005050600050506000505060006107db015260005050600050506000505060006109900152600061095e01526000610f2101526000610ef901526000610e5401526000610e7e01526000610ea801526118786000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637f07d283116100715780637f07d2831461016b57806384b0196e1461018c5780638821603c146101a7578063960ba169146101ba578063cfdb35bd146101e1578063fee9f01f1461021257600080fd5b8063015cdd80146100ae5780631354f019146100c35780631ef518f2146100d657806339aa7416146101065780635d2b6a4e14610119575b600080fd5b6100c16100bc366004611081565b610225565b005b6100c16100d1366004611081565b610302565b6100e96100e436600461109e565b6103c7565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c1610114366004611081565b6103e0565b61014c610127366004611081565b600260205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b0390931683526020830191909152016100fd565b61017e6101793660046111e5565b6104f4565b6040519081526020016100fd565b6101946105cd565b6040516100fd9796959493929190611288565b61017e6101b5366004611320565b610613565b61017e7f000000000000000000000000000000000000000000000000000000000000000081565b61017e6101ef36600461135a565b600360209081526000938452604080852082529284528284209052825290205481565b6100c16102203660046113a5565b610626565b6001600160a01b038082166000908152600260205260409020805490913391849116821461027e57604051630ad827d360e41b81526001600160a01b039283166004820152911660248201526044015b60405180910390fd5b5050600081600101541182906102b357604051631885ecbd60e01b81526001600160a01b039091166004820152602401610275565b506000600182018190556040519081526001600160a01b0383169033907f3b4432b11b66b46d9a7b190aa989c0ae85a5395b543540220596dd94dd405ceb906020015b60405180910390a35050565b6001600160a01b038082166000908152600260205260409020805490913391849116821461035657604051630ad827d360e41b81526001600160a01b03928316600482015291166024820152604401610275565b5061038390507f000000000000000000000000000000000000000000000000000000000000000042611445565b600182018190556040519081526001600160a01b0383169033907fd939049941f6a15381248e4ac0010f15efdf0f3221923711244c200b5ff2cddf906020016102f6565b60006103da6103d583611515565b6106e2565b92915050565b6001600160a01b038082166000908152600260205260409020805490913391849116821461043457604051630ad827d360e41b81526001600160a01b03928316600482015291166024820152604401610275565b50506000816001015411829061046957604051631885ecbd60e01b81526001600160a01b039091166004820152602401610275565b50600181015442908181111561049b57604051631a42d0ab60e31b815260048101929092526024820152604401610275565b50506001600160a01b03821660008181526002602052604080822080546001600160a01b03191681556001018290555133917f2fc91dbd92d741cae16e0315578d7f6cf77043b771692c4bd993658ecfe8942291a35050565b60008060008380602001905181019061050d91906115d2565b815151919350915033906001600160a01b0381168214610553576040516347666ba360e11b81526001600160a01b03928316600482015291166024820152604401610275565b50506000610560836106e2565b6001600160a01b038082166000908152600260205260409020549192501661059b57604051630ef060dd60e01b815260040160405180910390fd5b6001600160a01b038082166000908152600260205260409020546105c3918891168585610709565b9695505050505050565b6000606080600080600060606105e1610957565b6105e9610989565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60006103da610621836116f8565b6109b6565b6001600160a01b03848116600090815260026020526040902054168481156106745760405163cb2320b760e01b81526001600160a01b03928316600482015291166024820152604401610275565b505061068282828587610a6d565b6001600160a01b03841660008181526002602052604080822080546001600160a01b0319163390811782556001909101839055905190917f6edcdd4150e63c6c36d965976c1c37375609c8b040c50d39e7156437b80e282891a350505050565b6000806106f283600001516109b6565b9050610702818460200151610b95565b9392505050565b815180516020808301516060909301516001600160a01b03808416600090815260038452604080822083881683528552808220928a168252919093528220549193916001600160801b03909116908181808211610782576040516308e467d960e31b815260048101929092526024820152604401610275565b50600090506107918284611704565b9050600061079f8289610bbf565b90508115610862576001600160a01b03868116600090815260036020908152604080832089851684528252808320938e168352929052208490557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166387dbfe828c8c88868b876040518763ffffffff1660e01b815260040161082f9695949392919061172d565b600060405180830381600087803b15801561084957600080fd5b505af115801561085d573d6000803e3d6000fd5b505050505b856001600160a01b03168a6001600160a01b03168c600281111561088857610888611717565b604080516001600160a01b038a168152602081018790529081018590527ffadd34108e3c00b000a046b272ee080bb1755b91078c0ef5200c0b7da6132bd19060600160405180910390a4846001600160a01b0316866001600160a01b03168b6001600160a01b03167f2d55f33a4a377f40129b217a6cf7a5022a112941b80cd589332abc245aa0a5c78c60000151604001518d60000151606001518e60000151608001518f602001516040516109419493929190611781565b60405180910390a4509998505050505050505050565b60606109847f00000000000000000000000000000000000000000000000000000000000000006000610c26565b905090565b60606109847f00000000000000000000000000000000000000000000000000000000000000006001610c26565b60006103da7fe502a96d6aaed328ceacc76a5f627b9823162f5a205dab5a702b40073a6778428360000151846020015185604001518660600151876080015180519060200120604051602001610a52969594939291909586526001600160a01b0394851660208701529290931660408501526001600160401b031660608401526001600160801b0391909116608083015260a082015260c00190565b60405160208183030381529060405280519060200120610cd1565b8142808211610a98576040516343c042b360e01b815260048101929092526024820152604401610275565b50506040805146602082015290810183905233606090811b6bffffffffffffffffffffffff1916908201526000906074016040516020818303038152906040528051906020012090506000610b1a827f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050826001600160a01b0316610b668288888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b9592505050565b6001600160a01b031614610b8d5760405163164f10af60e11b815260040160405180910390fd5b505050505050565b600080600080610ba58686610cfe565b925092509250610bb58282610d4b565b5090949350505050565b6000610bce83620f4240101590565b80610be15750610be182620f4240101590565b83839091610c0b5760405163768bf0eb60e11b815260048101929092526024820152604401610275565b50620f42409050610c1c83856117cf565b61070291906117e6565b606060ff8314610c4057610c3983610e08565b90506103da565b818054610c4c90611808565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7890611808565b8015610cc55780601f10610c9a57610100808354040283529160200191610cc5565b820191906000526020600020905b815481529060010190602001808311610ca857829003601f168201915b505050505090506103da565b60006103da610cde610e47565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008351604103610d385760208401516040850151606086015160001a610d2a88828585610f72565b955095509550505050610d44565b50508151600091506002905b9250925092565b6000826003811115610d5f57610d5f611717565b03610d68575050565b6001826003811115610d7c57610d7c611717565b03610d9a5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610dae57610dae611717565b03610dcf5760405163fce698f760e01b815260048101829052602401610275565b6003826003811115610de357610de3611717565b03610e04576040516335e2f38360e21b815260048101829052602401610275565b5050565b60606000610e1583611041565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610ea057507f000000000000000000000000000000000000000000000000000000000000000046145b15610eca57507f000000000000000000000000000000000000000000000000000000000000000090565b610984604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610fad5750600091506003905082611037565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611001573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661102d57506000925060019150829050611037565b9250600091508190505b9450945094915050565b600060ff8216601f8111156103da57604051632cd44ac360e21b815260040160405180910390fd5b6001600160a01b038116811461107e57600080fd5b50565b60006020828403121561109357600080fd5b813561070281611069565b6000602082840312156110b057600080fd5b81356001600160401b038111156110c657600080fd5b82016040818503121561070257600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715611110576111106110d8565b60405290565b604080519081016001600160401b0381118282101715611110576111106110d8565b604051601f8201601f191681016001600160401b0381118282101715611160576111606110d8565b604052919050565b60006001600160401b03821115611181576111816110d8565b50601f01601f191660200190565b600082601f8301126111a057600080fd5b81356111b36111ae82611168565b611138565b8181528460208386010111156111c857600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156111f857600080fd5b82356003811061120757600080fd5b915060208301356001600160401b0381111561122257600080fd5b61122e8582860161118f565b9150509250929050565b60005b8381101561125357818101518382015260200161123b565b50506000910152565b60008151808452611274816020860160208601611238565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e0602082015260006112a760e083018961125c565b82810360408401526112b9818961125c565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561130f5783518352602093840193909201916001016112f1565b50909b9a5050505050505050505050565b60006020828403121561133257600080fd5b81356001600160401b0381111561134857600080fd5b820160a0818503121561070257600080fd5b60008060006060848603121561136f57600080fd5b833561137a81611069565b9250602084013561138a81611069565b9150604084013561139a81611069565b809150509250925092565b600080600080606085870312156113bb57600080fd5b84356113c681611069565b93506020850135925060408501356001600160401b038111156113e857600080fd5b8501601f810187136113f957600080fd5b80356001600160401b0381111561140f57600080fd5b87602082840101111561142157600080fd5b949793965060200194505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103da576103da61142f565b6001600160401b038116811461107e57600080fd5b6001600160801b038116811461107e57600080fd5b600060a0828403121561149457600080fd5b61149c6110ee565b905081356114a981611069565b815260208201356114b981611069565b602082015260408201356114cc81611458565b604082015260608201356114df8161146d565b606082015260808201356001600160401b038111156114fd57600080fd5b6115098482850161118f565b60808301525092915050565b60006040823603121561152757600080fd5b61152f611116565b82356001600160401b0381111561154557600080fd5b61155136828601611482565b82525060208301356001600160401b0381111561156d57600080fd5b6115793682860161118f565b60208301525092915050565b600082601f83011261159657600080fd5b81516115a46111ae82611168565b8181528460208386010111156115b957600080fd5b6115ca826020830160208701611238565b949350505050565b600080604083850312156115e557600080fd5b82516001600160401b038111156115fb57600080fd5b83016040818603121561160d57600080fd5b611615611116565b81516001600160401b0381111561162b57600080fd5b820160a0818803121561163d57600080fd5b6116456110ee565b815161165081611069565b8152602082015161166081611069565b6020820152604082015161167381611458565b604082015260608201516116868161146d565b606082015260808201516001600160401b038111156116a457600080fd5b6116b089828501611585565b60808301525082525060208201516001600160401b038111156116d257600080fd5b6116de87828501611585565b602083810191909152959095015190969095509350505050565b60006103da3683611482565b818103818111156103da576103da61142f565b634e487b7160e01b600052602160045260246000fd5b60c081016003881061174f57634e487b7160e01b600052602160045260246000fd5b9681526001600160a01b03958616602082015293851660408501526060840192909252909216608082015260a0015290565b6001600160401b03851681526001600160801b03841660208201526080604082015260006117b2608083018561125c565b82810360608401526117c4818561125c565b979650505050505050565b80820281158282048414176103da576103da61142f565b60008261180357634e487b7160e01b600052601260045260246000fd5b500490565b600181811c9082168061181c57607f821691505b60208210810361183c57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220acb6bfec6d9c2f80f4ced26fd1055163ff8dce81039d2e933346d801e1bdbb3064736f6c634300081b0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c0000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000000c544150436f6c6c6563746f72000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013100000000000000000000000000000000000000000000000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"TAPCollector#TAPCollector","networkInteractionId":1,"nonce":723,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x3220df2a1ecc3785a9247ade399caffdf66bf5cbdfae697e6be889c60e18c60a"},"type":"TRANSACTION_SEND"} -{"futureId":"GraphPayments#GraphPayments","hash":"0x9e93b952fa3e6e7c60c2742ec2c37dc1906d247d589314b92124b926b4b943e7","networkInteractionId":1,"receipt":{"blockHash":"0x534dab1e5885f0def0197a5cfe63a7ddb7b62705dc6e66ade010694a784dfec5","blockNumber":97665952,"contractAddress":"0xB5DA0C077f45BD34964D4d94cf4FE0DFbbC8Ba42","logs":[{"address":"0xB5DA0C077f45BD34964D4d94cf4FE0DFbbC8Ba42","data":"0x000000000000000000000000dfee494c436613bafbfb80de4b19597fc69ec4fd0000000000000000000000007782536dac304b46e4eb60751e4021ab3b09abab000000000000000000000000cf27161ee08ca6087f9ff445a44474b89c10e5540000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf80000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c3000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c","logIndex":0,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000cf242b6e8d1a5883627049485bf2c1d3dcf56ba8","0x000000000000000000000000dabc7419aba5a47d368d008f42bb66c7d5801740","0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c"]},{"address":"0xB5DA0C077f45BD34964D4d94cf4FE0DFbbC8Ba42","data":"0x000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":1,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphPayments#GraphPayments","result":{"address":"0xB5DA0C077f45BD34964D4d94cf4FE0DFbbC8Ba42","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"HorizonStakingExtension#HorizonStakingExtension","hash":"0x8a378086ba3ff7a7b025b0a3f4960e3076365c2d0202cef53b4fa9d9ca049585","networkInteractionId":1,"receipt":{"blockHash":"0x8d77f10b142a5be0d1fe9384e74fd12e787dfe876d5fb6409b7417b9b0a31e8c","blockNumber":97665964,"contractAddress":"0x83e6689eDbc7e71861F2c1Eb273D1E0DF00C9f3c","logs":[{"address":"0x83e6689eDbc7e71861F2c1Eb273D1E0DF00C9f3c","data":"0x000000000000000000000000dfee494c436613bafbfb80de4b19597fc69ec4fd0000000000000000000000007782536dac304b46e4eb60751e4021ab3b09abab000000000000000000000000cf27161ee08ca6087f9ff445a44474b89c10e5540000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf80000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c3000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c","logIndex":12,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000cf242b6e8d1a5883627049485bf2c1d3dcf56ba8","0x000000000000000000000000dabc7419aba5a47d368d008f42bb66c7d5801740","0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonStakingExtension#HorizonStakingExtension","result":{"address":"0x83e6689eDbc7e71861F2c1Eb273D1E0DF00C9f3c","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"futureId":"TAPCollector#TAPCollector","hash":"0x3220df2a1ecc3785a9247ade399caffdf66bf5cbdfae697e6be889c60e18c60a","networkInteractionId":1,"receipt":{"blockHash":"0x527151a95244529c92e154f0f6ebb4e9daaf345185af2f42d0f2895183dae236","blockNumber":97665985,"contractAddress":"0x84149af521E4C32dDCCb7e9F1F63a187A964396c","logs":[{"address":"0x84149af521E4C32dDCCb7e9F1F63a187A964396c","data":"0x000000000000000000000000dfee494c436613bafbfb80de4b19597fc69ec4fd0000000000000000000000007782536dac304b46e4eb60751e4021ab3b09abab000000000000000000000000cf27161ee08ca6087f9ff445a44474b89c10e5540000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf80000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c3000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c","logIndex":0,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000cf242b6e8d1a5883627049485bf2c1d3dcf56ba8","0x000000000000000000000000dabc7419aba5a47d368d008f42bb66c7d5801740","0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"TAPCollector#TAPCollector","result":{"address":"0x84149af521E4C32dDCCb7e9F1F63a187A964396c","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"args":[],"artifactId":"GraphPayments#GraphPayments","dependencies":["GraphPayments#GraphPayments"],"functionName":"initialize","futureId":"GraphPayments#encodeFunctionCall(GraphPayments#GraphPayments.initialize)","result":"0x8129fc1c","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"HorizonStaking#HorizonStaking","constructorArgs":["0x59c3CA02528054C6337f63eb367a374Ac45C292C","0x83e6689eDbc7e71861F2c1Eb273D1E0DF00C9f3c","0xBc53a58f03917A88174C2795B674734eCEeec05F"],"contractName":"HorizonStaking","dependencies":["Controller#Controller","HorizonStakingExtension#HorizonStakingExtension","GraphHorizon_Periphery#Dummy","HorizonProxies#RegisteredDummy"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"HorizonStaking#HorizonStaking","futureType":"CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonStaking#HorizonStaking","networkInteraction":{"data":"0x61020060405234801561001157600080fd5b506040516160913803806160918339810160408190526100309161041b565b828181806001600160a01b03811661007d5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b590610351565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e890610351565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261012190610351565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015b90610351565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b602082015261019390610351565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101ce90610351565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020c90610351565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024890610351565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027d90610351565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103279790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b039081166101c052929092166101e052506104ce915050565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161038c91815260200190565b602060405180830381865afa1580156103a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cd919061045e565b9050826001600160a01b0382166103f85760405163218f5add60e11b81526004016100749190610480565b5092915050565b80516001600160a01b038116811461041657600080fd5b919050565b60008060006060848603121561043057600080fd5b610439846103ff565b9250610447602085016103ff565b9150610455604085016103ff565b90509250925092565b60006020828403121561047057600080fd5b610479826103ff565b9392505050565b602081526000825180602084015260005b818110156104ae5760208186018101516040868401015201610491565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615ae16105b06000396000610331015260008181610eb30152818161180b015281816118be015281816118e0015281816134240152818161425401526145900152600050506000505060005050600050506000505060006133dd015260005050600050506000505060008181610e7d01528181611a5c015281816129af01528181612cc601528181612d5d01528181612ef701528181613ec1015281816140d0015281816141e401526142fc0152615ae16000f3fe6080604052600436106102cd5760003560e01c80638cc01c8611610175578063b7ca7241116100dc578063e76fede611610095578063f93f1cd01161006f578063f93f1cd014610c83578063fb744cc014610ca3578063fc54fb2714610cc3578063fecc9cc114610cdb5761031f565b8063e76fede614610c2e578063ef58bd6714610c4e578063f64b359814610c635761031f565b8063b7ca724114610ac7578063ba7fb0b414610b8a578063bc735d9014610baa578063ca94b0e914610bca578063ccebcabb14610bea578063e473522a14610c195761031f565b8063a2a317221161012e578063a2a31722146109e1578063a694fc3a14610a01578063a784d49814610a21578063ac9650d814610a41578063ad4d35b514610a6e578063ae4fe67a14610a8e5761031f565b80638cc01c86146108105780639054e343146108915780639ce7abe5146108b1578063a02b9426146108d1578063a212daf8146108f1578063a2594d82146109c15761031f565b806342c516931161023457806374612092116101ed5780637c145cc7116101c75780637c145cc71461078057806381e21b56146107b057806382d66cb8146107d0578063872d0489146107f05761031f565b8063746120921461070a5780637573ef4f1461072a5780637a7664601461074a5761031f565b806342c51693146106085780634ca7ac22146106285780634d99dd161461064857806351a60b0214610668578063561285e4146106885780636230001a146106ea5761031f565b806325d9897e1161028657806325d9897e146104485780632e17de781461056b57806339514ad21461058b5780633993d849146105b35780633a78b732146105d35780633ccfd60b146105f35761031f565b8063010167e514610375578063026e402b1461039557806308ce5f68146103b5578063162ea5ed146103e85780632119537314610408578063259bc435146104285761031f565b3661031f5760405162461bcd60e51b815260206004820152601760248201527f524543454956455f4554485f4e4f545f414c4c4f57454400000000000000000060448201526064015b60405180910390fd5b34801561032b57600080fd5b506040517f00000000000000000000000000000000000000000000000000000000000000009036600082376000803683855af43d806000843e81801561036f578184f35b8184fd5b005b34801561038157600080fd5b50610373610390366004615110565b610cfb565b3480156103a157600080fd5b506103736103b0366004615172565b610dce565b3480156103c157600080fd5b506103d56103d036600461519e565b610ede565b6040519081526020015b60405180910390f35b3480156103f457600080fd5b506103d56104033660046151d7565b610ef3565b34801561041457600080fd5b5061037361042336600461522a565b610fb8565b34801561043457600080fd5b5061037361044336600461526b565b611088565b34801561045457600080fd5b5061055e61046336600461519e565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160a01b039182166000908152601b6020908152604080832093909416825291825282902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff808216606084015264010000000082046001600160401b039081166080850152600160601b8304811660a0850152600160a01b830490911660c0840152600160c01b9091041660e082015260049091015461010082015290565b6040516103df9190615286565b34801561057757600080fd5b50610373610586366004615327565b611177565b34801561059757600080fd5b50601a546040516001600160401b0390911681526020016103df565b3480156105bf57600080fd5b506103736105ce36600461522a565b61120a565b3480156105df57600080fd5b506103736105ee366004615340565b6112a6565b3480156105ff57600080fd5b50610373611441565b34801561061457600080fd5b5061037361062336600461536c565b6114d3565b34801561063457600080fd5b506103736106433660046153c9565b611684565b34801561065457600080fd5b50610373610663366004615172565b61177e565b34801561067457600080fd5b5061037361068336600461519e565b611831565b34801561069457600080fd5b506106a86106a336600461519e565b611907565b6040516103df9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b3480156106f657600080fd5b506103736107053660046153f7565b6119ad565b34801561071657600080fd5b5061037361072536600461522a565b611a92565b34801561073657600080fd5b506103d561074536600461543d565b611b2e565b34801561075657600080fd5b506103d5610765366004615340565b6001600160a01b03166000908152600e602052604090205490565b34801561078c57600080fd5b506107a061079b366004615484565b611b92565b60405190151581526020016103df565b3480156107bc57600080fd5b506103736107cb3660046154cf565b611ba7565b3480156107dc57600080fd5b506103736107eb366004615110565b611e20565b3480156107fc57600080fd5b506103d561080b366004615527565b611f31565b34801561081c57600080fd5b5061087661082b366004615340565b60408051808201825260008082526020918201819052825180840184528181528083018281526001600160a01b03959095168252600e90925291909120805482526004015490915290565b604080518251815260209283015192810192909252016103df565b34801561089d57600080fd5b506103d56108ac366004615484565b611f86565b3480156108bd57600080fd5b506103736108cc366004615565565b61206e565b3480156108dd57600080fd5b506103d56108ec36600461522a565b612199565b3480156108fd57600080fd5b5061098e61090c366004615484565b60408051608080820183526000808352602080840182905283850182905260609384018290526001600160a01b039788168252601e815284822096881682529586528381209490961686529284529381902081519283018252805483526001810154938301939093526002830154908201526003909101549181019190915290565b6040516103df91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b3480156109cd57600080fd5b506103736109dc366004615340565b61222e565b3480156109ed57600080fd5b506103736109fc366004615172565b612342565b348015610a0d57600080fd5b50610373610a1c366004615327565b6123d3565b348015610a2d57600080fd5b506103d5610a3c366004615340565b612464565b348015610a4d57600080fd5b50610a61610a5c3660046155ea565b61246f565b6040516103df9190615683565b348015610a7a57600080fd5b50610373610a89366004615703565b612556565b348015610a9a57600080fd5b506107a0610aa9366004615340565b6001600160a01b031660009081526022602052604090205460ff1690565b348015610ad357600080fd5b50610b4e610ae2366004615327565b6040805160808082018352600080835260208084018290528385018290526060938401829052948152601d8552839020835191820184528054825260018101546001600160401b0316948201949094526002840154928101929092526003909201549181019190915290565b6040516103df9190815181526020808301516001600160401b031690820152604080830151908201526060918201519181019190915260800190565b348015610b9657600080fd5b50610373610ba5366004615743565b61262f565b348015610bb657600080fd5b50610373610bc5366004615703565b612747565b348015610bd657600080fd5b50610373610be536600461522a565b6127d9565b348015610bf657600080fd5b50610c0a610c05366004615484565b612a27565b604051905181526020016103df565b348015610c2557600080fd5b50610373612a79565b348015610c3a57600080fd5b50610373610c49366004615784565b612b4b565b348015610c5a57600080fd5b5061037361306d565b348015610c6f57600080fd5b50610373610c7e3660046157c3565b613149565b348015610c8f57600080fd5b506103d5610c9e36600461522a565b61322c565b348015610caf57600080fd5b506103d5610cbe36600461519e565b613300565b348015610ccf57600080fd5b5060205460ff166107a0565b348015610ce757600080fd5b50610373610cf636600461522a565b61330c565b610d036133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d649190615831565b15610d8257604051632b37d9d160e21b815260040160405180910390fd5b8484610d8f8282336133ff565b828233909192610db557604051630c76b97b60e41b81526004016103169392919061584e565b505050610dc587868887876134c3565b50505050505050565b610dd66133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e379190615831565b15610e5557604051632b37d9d160e21b815260040160405180910390fd5b80600003610e7657604051630a2a4e5b60e11b815260040160405180910390fd5b610ead33827f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b03169190613842565b610eda827f00000000000000000000000000000000000000000000000000000000000000008360006138fa565b5050565b6000610eea8383613ad0565b90505b92915050565b6000610efd6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190615831565b15610f7c57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038216610fa357604051633dbb48ed60e21b815260040160405180910390fd5b610faf85858585613b08565b95945050505050565b8282610fc58282336133ff565b828233909192610feb57604051630c76b97b60e41b81526004016103169392919061584e565b505050610ff66133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611033573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110579190615831565b1561107557604051632b37d9d160e21b815260040160405180910390fd5b611080858585613d23565b505050505050565b6110906133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f19190615871565b6001600160a01b0316336001600160a01b03161461112257604051635d9044cd60e01b815260040160405180910390fd5b601a805467ffffffffffffffff19166001600160401b0383169081179091556040519081527fe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f9060200160405180910390a150565b61117f6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e09190615831565b156111fe57604051632b37d9d160e21b815260040160405180910390fd5b61120781613e21565b50565b6112126133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190615831565b1561129157604051632b37d9d160e21b815260040160405180910390fd5b6112a18383600080600086613ff4565b505050565b6112ae6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130f9190615831565b1561132d57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0381166000908152601b602090815260408083203380855292529091206003810154600160a01b810463ffffffff908116911614158061139357506003810154600160c01b81046001600160401b039081166401000000009092041614155b156112a1576003810180546401000000006001600160401b03600160c01b63ffffffff19841663ffffffff600160a01b8604811691821792909204831684026bffffffffffffffffffffffff199095161793909317938490556040805193851684529190930490921660208201526001600160a01b0384811692908616917fa4c005afae9298a5ca51e7710c334ac406fb3d914588ade970850f917cedb1c6910160405180910390a3505050565b6114496133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190615831565b156114c857604051632b37d9d160e21b815260040160405180910390fd5b6114d133614157565b565b6114db6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c9190615831565b1561155a57604051632b37d9d160e21b815260040160405180910390fd5b83836115678282336133ff565b82823390919261158d57604051630c76b97b60e41b81526004016103169392919061584e565b50505061159d83620f4240101590565b83906115bf57604051631504950160e21b815260040161031691815260200190565b506001600160a01b038087166000908152601c60209081526040808320938916835292905290812084918660028111156115fb576115fb61588e565b600281111561160c5761160c61588e565b815260208101919091526040016000205583600281111561162f5761162f61588e565b856001600160a01b0316876001600160a01b03167f3474eba30406cacbfbc5a596a7e471662bbcccf206f8d244dbb6f4cc578c52208660405161167491815260200190565b60405180910390a4505050505050565b61168c6133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ed9190615871565b6001600160a01b0316336001600160a01b03161461171e57604051635d9044cd60e01b815260040160405180910390fd5b6001600160a01b038216600081815260226020908152604091829020805460ff191685151590811790915591519182527f4542960abc7f2d26dab244fc440acf511e3dd0f5cefad571ca802283b4751bbb91015b60405180910390a25050565b6117866133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e79190615831565b1561180557604051632b37d9d160e21b815260040160405180910390fd5b6112a1827f00000000000000000000000000000000000000000000000000000000000000008333613b08565b6118396133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611876573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189a9190615831565b156118b857604051632b37d9d160e21b815260040160405180910390fd5b610eda827f0000000000000000000000000000000000000000000000000000000000000000837f0000000000000000000000000000000000000000000000000000000000000000600080613ff4565b6119396040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b61196b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60006119778585614250565b60028101548352600381015460208401526005810154604084015260068101546060840152600701546080830152509392505050565b6119b56133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a169190615831565b15611a3457604051632b37d9d160e21b815260040160405180910390fd5b81600003611a5557604051630a2a4e5b60e11b815260040160405180910390fd5b611a8033837f0000000000000000000000000000000000000000000000000000000000000000610e9d565b611a8c848484846138fa565b50505050565b611a9a6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afb9190615831565b15611b1957604051632b37d9d160e21b815260040160405180910390fd5b611b2383826142d4565b6112a183838361432a565b6001600160a01b038084166000908152601c60209081526040808320938616835292905290812081836002811115611b6857611b6861588e565b6002811115611b7957611b7961588e565b81526020019081526020016000205490505b9392505050565b6000611b9f8484846133ff565b949350505050565b611baf6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c109190615831565b15611c2e57604051632b37d9d160e21b815260040160405180910390fd5b8383611c3b8282336133ff565b828233909192611c6157604051630c76b97b60e41b81526004016103169392919061584e565b50505063ffffffff8416620f424010158490611c99576040516329bff5f560e01b815263ffffffff9091166004820152602401610316565b50601a5483906001600160401b03908116908216811015611ce05760405163ee5602e160e01b81526001600160401b03928316600482015291166024820152604401610316565b50506001600160a01b038681166000908152601b60209081526040808320938916835292905220600381015487908790600160601b90046001600160401b0316611d3f576040516330acea0d60e11b81526004016103169291906158a4565b5050600381015463ffffffff868116600160a01b90920416141580611d7b575060038101546001600160401b03858116600160c01b9092041614155b15610dc5576003810180546001600160401b038616600160c01b026001600160c01b0363ffffffff8916600160a01b02166001600160a01b039283161717909155604051878216918916907fe89cbb9d63ba60af555547b12dde6817283e88cbdd45feb2059f2ba71ea346ba90611e0f908990899063ffffffff9290921682526001600160401b0316602082015260400190565b60405180910390a350505050505050565b611e286133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e899190615831565b15611ea757604051632b37d9d160e21b815260040160405180910390fd5b8484611eb48282336133ff565b828233909192611eda57604051630c76b97b60e41b81526004016103169392919061584e565b5050506001600160a01b038616600090815260226020526040902054869060ff16611f2357604051622920f760e21b81526001600160a01b039091166004820152602401610316565b50610dc587868887876134c3565b600080611f3e8585613ad0565b90506000611f4c8686614473565b90506000611f6063ffffffff8616846158d4565b90506000611f6e8383614496565b9050611f7a81856158eb565b98975050505050505050565b6001600160a01b038084166000908152601e6020908152604080832086851684528252808320938516835292905290812060038101548203611fcc576000915050611b8b565b6001600160a01b038086166000908152601b60209081526040808320938816835292905290812082545b8015612062576000818152601d602052604090206001810154426001600160401b03909116116120515760028301546001840154825461203691906158d4565b61204091906158fe565b61204a90856158eb565b9350612057565b50612062565b600201549050611ff6565b50909695505050505050565b82806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af11580156120af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d39190615871565b6001600160a01b0316336001600160a01b0316146121335760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610316565b60405163623faf6160e01b81526001600160a01b0385169063623faf61906121619086908690600401615920565b600060405180830381600087803b15801561217b57600080fd5b505af115801561218f573d6000803e3d6000fd5b5050505050505050565b60006121a36133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122049190615831565b1561222257604051632b37d9d160e21b815260040160405180910390fd5b611b9f84848433613b08565b80806001600160a01b031663f851a4406040518163ffffffff1660e01b81526004016020604051808303816000875af115801561226f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122939190615871565b6001600160a01b0316336001600160a01b0316146122f35760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206d757374206265207468652070726f78792061646d696e00006044820152606401610316565b816001600160a01b03166359fc20bb6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561232e57600080fd5b505af1158015611080573d6000803e3d6000fd5b61234a6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ab9190615831565b156123c957604051632b37d9d160e21b815260040160405180910390fd5b610eda82826142d4565b6123db6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243c9190615831565b1561245a57604051632b37d9d160e21b815260040160405180910390fd5b61120733826142d4565b6000610eed826144ad565b604080516000815260208101909152606090826001600160401b0381111561249957612499615962565b6040519080825280602002602001820160405280156124cc57816020015b60608152602001906001900390816124b75790505b50915060005b8381101561254e57612529308686848181106124f0576124f0615978565b9050602002810190612502919061598e565b85604051602001612515939291906159d4565b6040516020818303038152906040526144f8565b83828151811061253b5761253b615978565b60209081029190910101526001016124d2565b505092915050565b61255e6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561259b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125bf9190615831565b156125dd57604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b038316600090815260226020526040902054839060ff1661262357604051622920f760e21b81526001600160a01b039091166004820152602401610316565b506112a1838383614565565b6126376133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612674573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126989190615831565b156126b657604051632b37d9d160e21b815260040160405180910390fd5b83836126c38282336133ff565b8282339091926126e957604051630c76b97b60e41b81526004016103169392919061584e565b50505085846126f98282336133ff565b82823390919261271f57604051630c76b97b60e41b81526004016103169392919061584e565b505050600061272f898988613d23565b905061273c89888361432a565b505050505050505050565b61274f6133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561278c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b09190615831565b156127ce57604051632b37d9d160e21b815260040160405180910390fd5b6112a1838383614565565b6127e16133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128429190615831565b1561286057604051632b37d9d160e21b815260040160405180910390fd5b8060000361288157604051630a2a4e5b60e11b815260040160405180910390fd5b6001600160a01b038084166000908152601b6020908152604080832093861683529281529082902082516101208101845281548152600182015492810192909252600281015492820192909252600382015463ffffffff80821660608401526001600160401b03640100000000830481166080850152600160601b8304811660a08501819052600160a01b840490921660c0850152600160c01b90920490911660e08301526004909201546101008201529084908490612956576040516330acea0d60e11b81526004016103169291906158a4565b505060006129648585614250565b90506000816003015411858590916129915760405163b6a70b3b60e01b81526004016103169291906158a4565b50508281600201546129a391906158eb565b60028201556129d333847f0000000000000000000000000000000000000000000000000000000000000000610e9d565b836001600160a01b0316856001600160a01b03167f673007a04e501145e79f59aea5e0413b6e88344fdaf10326254530d6a151153085604051612a1891815260200190565b60405180910390a35050505050565b6040805160208101909152600081526040805160208101909152600081526000612a518686614250565b6001600160a01b03851660009081526004909101602052604090205482525090509392505050565b612a816133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa158015612abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae29190615871565b6001600160a01b0316336001600160a01b031614612b1357604051635d9044cd60e01b815260040160405180910390fd5b600d805463ffffffff191690556040517f93be484d290d119d9cf99cce69d173c732f9403333ad84f69c807b590203d10990600090a1565b612b536133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb49190615831565b15612bd257604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166000908152601b6020908152604080832033808552925282209091612c018784614250565b9050600081600201548360000154612c1991906158eb565b9050808781612c445760405163587ab9ab60e11b815260048101929092526024820152604401610316565b50506000612c528883614496565b90506000612c64856000015483614496565b90508015612ed4576003850154600090612c8990839063ffffffff9081169061469516565b9050888181811015612cb757604051632f514d5760e21b815260048101929092526024820152604401610316565b50508815612d4e57612cf6888a7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031691906146fc565b876001600160a01b0316876001600160a01b03168c6001600160a01b03167f95ff4196cd75fa49180ba673948ea43935f59e7c4ba101fa09b9fe0ec266d5828c604051612d4591815260200190565b60405180910390a45b612d8c612d5b8a8461594f565b7f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b031690614737565b8554600090612da3670de0b6b3a7640000856158d4565b612dad91906158fe565b9050670de0b6b3a7640000612dc2828261594f565b8860010154612dd191906158d4565b612ddb91906158fe565b60018801558654612ded90849061594f565b8755600287015415801590612e0457506001870154155b15612e285760006002880181905560048801805491612e22836159fb565b91905055505b6001600160a01b038c166000908152600e6020526040902060040154612e4f90849061594f565b6001600160a01b038d166000908152600e60205260409020600481019190915554612e7b90849061594f565b6001600160a01b038d81166000818152600e60209081526040918290209490945551868152918b169290917fe7b110f13cde981d5079ab7faa4249c5f331f5c292dbc6031969d2ce694188a3910160405180910390a350505b612ede818361594f565b915081156130615760205460ff161561301357612f1b827f0000000000000000000000000000000000000000000000000000000000000000612d7d565b6002840154600090612f35670de0b6b3a7640000856158d4565b612f3f91906158fe565b9050828560020154612f51919061594f565b6002860155670de0b6b3a7640000612f69828261594f565b8660050154612f7891906158d4565b612f8291906158fe565b6005860155600685015415801590612f9c57506005850154155b15612fc05760006006860181905560078601805491612fba836159fb565b91905055505b866001600160a01b03168b6001600160a01b03167fc5d16dbb577cf07678b577232717c9a606197a014f61847e623d47fc6bf6b7718560405161300591815260200190565b60405180910390a350613061565b856001600160a01b03168a6001600160a01b03167fdce44f0aeed2089c75db59f5a517b9a19a734bf0213412fa129f0d0434126b248460405161305891815260200190565b60405180910390a35b50505050505050505050565b6130756133db565b6001600160a01b0316634fc07d756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d69190615871565b6001600160a01b0316336001600160a01b03161461310757604051635d9044cd60e01b815260040160405180910390fd5b6020805460ff1916600190811782556040519081527f78bd9090b1ff40fc9c2d6056a25fb880530a766f5b0595d77f3cf33fe189c194910160405180910390a1565b6131516133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b29190615831565b156131d057604051632b37d9d160e21b815260040160405180910390fd5b6001600160a01b0384166131f7576040516322347d6760e21b815260040160405180910390fd5b6001600160a01b03831661321e5760405163a962605960e01b815260040160405180910390fd5b611080868686868686613ff4565b60006132366133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132979190615831565b156132b557604051632b37d9d160e21b815260040160405180910390fd5b83836132c28282336133ff565b8282339091926132e857604051630c76b97b60e41b81526004016103169392919061584e565b5050506132f686868661477f565b9695505050505050565b6000610eea8383614473565b6133146133db565b6001600160a01b0316635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133759190615831565b1561339357604051632b37d9d160e21b815260040160405180910390fd5b82826133a08282336133ff565b8282339091926133c657604051630c76b97b60e41b81526004016103169392919061584e565b5050506133d485858561432a565b5050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000836001600160a01b0316826001600160a01b03160361342257506001611b8b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03160361348a57506001600160a01b0380841660009081526015602090815260408083209385168352929052205460ff16611b8b565b506001600160a01b038084166000908152601f60209081526040808320868516845282528083209385168352929052205460ff16611b8b565b600084116134e457604051630a2a4e5b60e11b815260040160405180910390fd5b8163ffffffff8116620f42401015613518576040516329bff5f560e01b815263ffffffff9091166004820152602401610316565b50601a5481906001600160401b0390811690821681101561355f5760405163ee5602e160e01b81526001600160401b03928316600482015291166024820152604401610316565b50506001600160a01b038581166000908152601b6020908152604080832093871683529290522060030154600160601b90046001600160401b0316156135b857604051632b542c0d60e11b815260040160405180910390fd5b60006135c3866144ad565b90508481808211156135f15760405163ccaf28a960e01b815260048101929092526024820152604401610316565b505060405180610120016040528086815260200160008152602001600081526020018463ffffffff168152602001836001600160401b03168152602001426001600160401b031681526020018463ffffffff168152602001836001600160401b031681526020016000815250601b6000886001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548163ffffffff021916908363ffffffff16021790555060808201518160030160046101000a8154816001600160401b0302191690836001600160401b0316021790555060a082015181600301600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160030160146101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160186101000a8154816001600160401b0302191690836001600160401b0316021790555061010082015181600401559050506000600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002090508581600401546137df91906158eb565b60048201556040805187815263ffffffff861660208201526001600160401b038516918101919091526001600160a01b0380871691908916907f88b4c2d08cea0f01a24841ff5d14814ddb5b14ac44b05e0835fcc0dcd8c7bc2590606001611e0f565b80156112a1576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd906064015b6020604051808303816000875af115801561389e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c29190615831565b6112a15760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610316565b6001600160a01b038481166000908152601b602090815260408083209387168352929052206003015484908490600160601b90046001600160401b0316613956576040516330acea0d60e11b81526004016103169291906158a4565b505060006139648585614250565b336000908152600482016020526040902060028201549192509015158061398d57506003820154155b868690916139b057604051631984edef60e31b81526004016103169291906158a4565b505060008260020154600014806139ce575082600501548360020154145b9050600081613a0957836005015484600201546139eb919061594f565b60038501546139fa90886158d4565b613a0491906158fe565b613a0b565b855b90508015801590613a1c5750848110155b81869091613a4657604051635d88e8d160e01b815260048101929092526024820152604401610316565b5050858460020154613a5891906158eb565b60028501556003840154613a6d9082906158eb565b60038501558254613a7f9082906158eb565b835560405186815233906001600160a01b0389811691908b16907feaefa9a428d7aa0b99b7ac8aec4885d6304a78cc8d6a78a6c99dd29e9693cdf49060200160405180910390a45050505050505050565b6001600160a01b038281166000908152601b60209081526040808320938516835292905290812060018101549054610eea919061594f565b6000808311613b2a57604051637318ad9960e01b815260040160405180910390fd5b6000613b368686614250565b33600090815260048201602052604090208054919250908580821015613b785760405163ab99793560e01b815260048101929092526024820152604401610316565b5050600282015487908790613ba257604051631984edef60e31b81526004016103169291906158a4565b50506000826003015483600501548460020154613bbf919061594f565b613bc990886158d4565b613bd391906158fe565b905060008360050154600014613c065760058401546006850154613bf790846158d4565b613c0191906158fe565b613c08565b815b6001600160a01b038a81166000908152601b60209081526040808320938d1683529290529081206003015491925090613c529064010000000090046001600160401b0316426158eb565b9050828560050154613c6491906158eb565b60058601556006850154613c799083906158eb565b60068601556003850154613c8e90899061594f565b60038601558354613ca090899061594f565b84600001819055506000613cbc8b8b8a86868b600701546148fc565b9050336001600160a01b03168a6001600160a01b03168c6001600160a01b03167f50d19209821f5d69c0884b007c6ba9ffde612c0cff5dd3234d0c6baf2c4556aa87604051613d0d91815260200190565b60405180910390a49a9950505050505050505050565b6001600160a01b038084166000908152601b60209081526040808320938616835292905290812060028101546001820154600483015484929190613d7290899089908290859087908c90614aa4565b865492955093509150613d8690849061594f565b845560028401829055600184018190556001600160a01b0388166000908152600e602052604081206004018054859290613dc190849061594f565b92505081905550866001600160a01b0316886001600160a01b03167f9008d731ddfbec70bc364780efd63057c6877bee8027c4708a104b365395885d85604051613e0d91815260200190565b60405180910390a350909695505050505050565b336000829003613e4457604051630a2a4e5b60e11b815260040160405180910390fd5b6000613e4f826144ad565b9050828180821115613e7d5760405163ccaf28a960e01b815260048101929092526024820152604401610316565b50506001600160a01b0382166000908152600e602052604081208054600d549192909163ffffffff1690819003613f2d57613eb8868361594f565b8355613ee585877f0000000000000000000000000000000000000000000000000000000000000000612ce6565b846001600160a01b03167f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc87604051613f2091815260200190565b60405180910390a2611080565b600283015415801590613f44575082600301544310155b15613f5257613f5285614157565b600283015415613f7c57613f79613f6d846003015443614bec565b84600201548389614c06565b90505b858360020154613f8c91906158eb565b6002840155613f9b81436158eb565b6003840181905560028401546040805191825260208201929092526001600160a01b038716917fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01910160405180910390a2505050505050565b60006140008787614250565b90508060020154600014158061401857506003810154155b8787909161403b57604051631984edef60e31b81526004016103169291906158a4565b5050600080826006015490506000836005015490506140638a8a3384868a8a60070154614aa4565b60028701549295509350915061407a90849061594f565b6002850155600684018290556005840181905582156140f4576001600160a01b038816158015906140b357506001600160a01b03871615155b156140c9576140c4888885896138fa565b6140f4565b6140f433847f0000000000000000000000000000000000000000000000000000000000000000612ce6565b336001600160a01b0316896001600160a01b03168b6001600160a01b03167f305f519d8909c676ffd870495d4563032eb0b506891a6dd9827490256cc9914e8660405161414391815260200190565b60405180910390a450505050505050505050565b6001600160a01b0381166000908152600e602052604081206002810154909181900361419657604051630a2a4e5b60e11b815260040160405180910390fd5b6003820154438111156141bf57604051631d222f1b60e31b815260040161031691815260200190565b50600060028301819055600383015581546141db90829061594f565b825561420883827f0000000000000000000000000000000000000000000000000000000000000000612ce6565b826001600160a01b03167f8108595eb6bad3acefa9da467d90cc2217686d5c5ac85460f8b7849c840645fc8260405161424391815260200190565b60405180910390a2505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036142a957506001600160a01b0382166000908152601460205260409020610eed565b506001600160a01b038083166000908152602160209081526040808320938516835292905220610eed565b806000036142f557604051630a2a4e5b60e11b815260040160405180910390fd5b61432033827f0000000000000000000000000000000000000000000000000000000000000000610e9d565b610eda8282614c5a565b6001600160a01b038084166000908152601b6020908152604080832093861683529290529081209082900361437257604051630a2a4e5b60e11b815260040160405180910390fd5b600381015484908490600160601b90046001600160401b03166143aa576040516330acea0d60e11b81526004016103169291906158a4565b505060006143b7856144ad565b90508281808211156143e55760405163ccaf28a960e01b815260048101929092526024820152604401610316565b505081546143f49084906158eb565b82556001600160a01b0385166000908152600e602052604090206004015461441d9084906158eb565b6001600160a01b038681166000818152600e602090815260409182902060040194909455518681529187169290917feaf6ea3a42ed2fd1b6d575f818cbda593af9524aa94bd30e65302ac4dc2347459101612a18565b6000806144808484614250565b905080600501548160020154611b9f919061594f565b6000818311156144a65781610eea565b5090919050565b6001600160a01b0381166000908152600e602052604081206002810154600182015460048301549254919290916144e4919061594f565b6144ee919061594f565b610eed919061594f565b6060600080846001600160a01b0316846040516145159190615a14565b600060405180830381855af49150503d8060008114614550576040519150601f19603f3d011682016040523d82523d6000602084013e614555565b606091505b5091509150610faf858383614ccd565b336001600160a01b0383160361458e57604051630123065360e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036145fb573360009081526015602090815260408083206001600160a01b03861684529091529020805460ff1916821515179055614637565b336000908152601f602090815260408083206001600160a01b03878116855290835281842090861684529091529020805460ff19168215151790555b816001600160a01b0316836001600160a01b0316336001600160a01b03167faa5a59b38e8f68292982382bf635c2f263ca37137bbc52956acd808fd7bf976f84604051614688911515815260200190565b60405180910390a4505050565b60006146a483620f4240101590565b806146b757506146b782620f4240101590565b838390916146e15760405163768bf0eb60e11b815260048101929092526024820152604401610316565b50620f424090506146f283856158d4565b610eea91906158fe565b80156112a15760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb9060440161387f565b8015610eda57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561232e57600080fd5b6000816000036147a257604051630a2a4e5b60e11b815260040160405180910390fd5b60006147ae8585613ad0565b90508083808210156147dc5760405163587ab9ab60e11b815260048101929092526024820152604401610316565b50506001600160a01b038086166000908152601b60209081526040808320938816835292905290812060018101549091901561483657816001015485836002015461482791906158d4565b61483191906158fe565b614838565b845b600383015490915060009061485e9064010000000090046001600160401b0316426158eb565b905081836002015461487091906158eb565b600284015560018301546148859087906158eb565b836001018190555060006148a189898b868689600401546148fc565b9050876001600160a01b0316896001600160a01b03167f3b81913739097ced1e7fa748c6058d34e2c00b961fb501094543b397b198fdaa896040516148e891815260200190565b60405180910390a398975050505050505050565b6001600160a01b038087166000908152601e6020908152604080832089851684528252808320938816835292905290812060038101546064116149525760405163332b852b60e11b815260040160405180910390fd5b60028101546040516bffffffffffffffffffffffff1960608b811b821660208401528a811b8216603484015289901b166048820152605c810191909152600090607c0160408051808303601f1901815282825280516020918201206080840183528984526001600160401b038981168386019081526000868601818152606088018c8152858352601d909652959020955186555160018601805467ffffffffffffffff19169190921617905591516002840155516003928301559083015490915015614a325760018201546000908152601d602052604090206002018190555b614a3c8282614d29565b604080518781526001600160401b03871660208201529081018290526001600160a01b03808916918a8216918c16907f434422e55cc9ab3bcca23cbf515724bbad83af8dd645832a1abd3db5e641dea59060600160405180910390a498975050505050505050565b6001600160a01b038088166000908152601e602090815260408083208a8516845282528083209389168352929052908120600381015482918291614afb576040516307e332c560e31b815260040160405180910390fd5b60008080614b53614dbc614dd1614f30868f8f8e604051602001614b38949392919093845260208401929092526040830152606082015260800190565b60408051601f1981840301815291905288939291908e614f61565b9150915080806020019051810190614b6b9190615a30565b809c50819d508295505050508b6001600160a01b03168d6001600160a01b03168f6001600160a01b03167f9de822a9c144d03cad4a18bc322e9a3d91ffa99463d22e5c25da2a41d4c354d58587604051614bcf929190918252602082015260400190565b60405180910390a450909c989b5096995096975050505050505050565b6000818311614bfc576000610eea565b610eea828461594f565b6000614c1282856158eb565b6001614c1e84876158eb565b614c28919061594f565b614c3284866158d4565b614c3c87896158d4565b614c4691906158eb565b614c5091906158eb565b610faf91906158fe565b6001600160a01b0382166000908152600e6020526040902054614c7e9082906158eb565b6001600160a01b0383166000818152600e6020526040908190209290925590517f0a7bb2e28cc4698aac06db79cf9163bfcc20719286cf59fa7d492ceda1b8edc2906117729084815260200190565b606082614ce257614cdd8261501b565b611b8b565b8151158015614cf957506001600160a01b0384163b155b15614d2257604051639996b31560e01b81526001600160a01b0385166004820152602401610316565b5080611b8b565b612710826003015410614d4f576040516303a8c56b60e61b815260040160405180910390fd5b80614d6d57604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d899084906158eb565b90915550506003820154600003614d9e578082555b6001826003016000828254614db391906158eb565b90915550505050565b6000908152601d602052604090206002015490565b6000828152601d60205260408120600181015460609190426001600160401b039091161115614e1457505060408051602081019091526000815260019150614f29565b60008060008087806020019051810190614e2e9190615a5e565b93509350935093506000808287600301541490508015614e8b5786548490614e579087906158d4565b614e6191906158fe565b9150614e6d828661594f565b8754909550614e7c908561594f565b9350614e8882876158eb565b95505b865460018801546040805185815260208101939093526001600160401b039091169082015281151560608201528b907fbe7f1ad13b07d1f0e9574e97c844204d5433e4ab98133a1f0ce257764a6abeb79060800160405180910390a26040805160208101889052908101869052606081018590526080810184905260a001604051602081830303815290604052995060008a98509850505050505050505b9250929050565b6000908152601d6020526040812081815560018101805467ffffffffffffffff191690556002810182905560030155565b600060608760030154831115614f8a57604051634a411b9d60e11b815260040160405180910390fd5b60008315614f985783614f9e565b88600301545b89549094505b8015801590614fb35750600085115b1561500c57600080614fc983898c63ffffffff16565b915091508115614fda57505061500c565b965086614fe88c8c8b615044565b925086614ff481615a94565b9750508380615002906159fb565b9450505050614fa4565b50989397509295505050505050565b80511561502b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008084600301541161506a5760405163ddaf8f2160e01b815260040160405180910390fd5b600061507d85600001548563ffffffff16565b905061509085600001548463ffffffff16565b60018560030160008282546150a5919061594f565b909155505080855560038501546000036150c157600060018601555b5050915492915050565b6001600160a01b038116811461120757600080fd5b803563ffffffff811681146150f457600080fd5b919050565b80356001600160401b03811681146150f457600080fd5b600080600080600060a0868803121561512857600080fd5b8535615133816150cb565b94506020860135615143816150cb565b935060408601359250615158606087016150e0565b9150615166608087016150f9565b90509295509295909350565b6000806040838503121561518557600080fd5b8235615190816150cb565b946020939093013593505050565b600080604083850312156151b157600080fd5b82356151bc816150cb565b915060208301356151cc816150cb565b809150509250929050565b600080600080608085870312156151ed57600080fd5b84356151f8816150cb565b93506020850135615208816150cb565b925060408501359150606085013561521f816150cb565b939692955090935050565b60008060006060848603121561523f57600080fd5b833561524a816150cb565b9250602084013561525a816150cb565b929592945050506040919091013590565b60006020828403121561527d57600080fd5b610eea826150f9565b60006101208201905082518252602083015160208301526040830151604083015263ffffffff60608401511660608301526001600160401b03608084015116608083015260a08301516152e460a08401826001600160401b03169052565b5060c08301516152fc60c084018263ffffffff169052565b5060e083015161531760e08401826001600160401b03169052565b5061010092830151919092015290565b60006020828403121561533957600080fd5b5035919050565b60006020828403121561535257600080fd5b8135611b8b816150cb565b8035600381106150f457600080fd5b6000806000806080858703121561538257600080fd5b843561538d816150cb565b9350602085013561539d816150cb565b92506153ab6040860161535d565b9396929550929360600135925050565b801515811461120757600080fd5b600080604083850312156153dc57600080fd5b82356153e7816150cb565b915060208301356151cc816153bb565b6000806000806080858703121561540d57600080fd5b8435615418816150cb565b93506020850135615428816150cb565b93969395505050506040820135916060013590565b60008060006060848603121561545257600080fd5b833561545d816150cb565b9250602084013561546d816150cb565b915061547b6040850161535d565b90509250925092565b60008060006060848603121561549957600080fd5b83356154a4816150cb565b925060208401356154b4816150cb565b915060408401356154c4816150cb565b809150509250925092565b600080600080608085870312156154e557600080fd5b84356154f0816150cb565b93506020850135615500816150cb565b925061550e604086016150e0565b915061551c606086016150f9565b905092959194509250565b60008060006060848603121561553c57600080fd5b8335615547816150cb565b92506020840135615557816150cb565b915061547b604085016150e0565b60008060006040848603121561557a57600080fd5b8335615585816150cb565b925060208401356001600160401b038111156155a057600080fd5b8401601f810186136155b157600080fd5b80356001600160401b038111156155c757600080fd5b8660208284010111156155d957600080fd5b939660209190910195509293505050565b600080602083850312156155fd57600080fd5b82356001600160401b0381111561561357600080fd5b8301601f8101851361562457600080fd5b80356001600160401b0381111561563a57600080fd5b8560208260051b840101111561564f57600080fd5b6020919091019590945092505050565b60005b8381101561567a578181015183820152602001615662565b50506000910152565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156156f757603f19878603018452815180518087526156d481602089016020850161565f565b601f01601f191695909501602090810195509384019391909101906001016156ab565b50929695505050505050565b60008060006060848603121561571857600080fd5b8335615723816150cb565b92506020840135615733816150cb565b915060408401356154c4816153bb565b6000806000806080858703121561575957600080fd5b8435615764816150cb565b93506020850135615774816150cb565b925060408501356153ab816150cb565b6000806000806080858703121561579a57600080fd5b84356157a5816150cb565b93506020850135925060408501359150606085013561521f816150cb565b60008060008060008060c087890312156157dc57600080fd5b86356157e7816150cb565b955060208701356157f7816150cb565b94506040870135615807816150cb565b93506060870135615817816150cb565b9598949750929560808101359460a0909101359350915050565b60006020828403121561584357600080fd5b8151611b8b816153bb565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561588357600080fd5b8151611b8b816150cb565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610eed57610eed6158be565b80820180821115610eed57610eed6158be565b60008261591b57634e487b7160e01b600052601260045260246000fd5b500490565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b81810381811115610eed57610eed6158be565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126159a557600080fd5b8301803591506001600160401b038211156159bf57600080fd5b602001915036819003821315614f2957600080fd5b8284823760008382016000815283516159f181836020880161565f565b0195945050505050565b600060018201615a0d57615a0d6158be565b5060010190565b60008251615a2681846020870161565f565b9190910192915050565b600080600060608486031215615a4557600080fd5b5050815160208301516040909301519094929350919050565b60008060008060808587031215615a7457600080fd5b505082516020840151604085015160609095015191969095509092509050565b600081615aa357615aa36158be565b50600019019056fea2646970667358221220a984158462a19071d33f0c9b0b8967a96b4b64feb78c617c0635061568508fff64736f6c634300081b003300000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c00000000000000000000000083e6689edbc7e71861f2c1eb273d1e0df00c9f3c000000000000000000000000bc53a58f03917a88174c2795b674734eceeec05f","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonStaking#HorizonStaking","networkInteractionId":1,"nonce":724,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x0b2ad822ad72df01ea02d1440acafa9d8e03c4aaae4d8913dfce65950d5e355e"},"type":"TRANSACTION_SEND"} -{"args":[],"artifactId":"PaymentsEscrow#PaymentsEscrow","dependencies":["PaymentsEscrow#PaymentsEscrow"],"functionName":"initialize","futureId":"PaymentsEscrow#encodeFunctionCall(PaymentsEscrow#PaymentsEscrow.initialize)","result":"0x8129fc1c","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} -{"futureId":"HorizonStaking#HorizonStaking","hash":"0x0b2ad822ad72df01ea02d1440acafa9d8e03c4aaae4d8913dfce65950d5e355e","networkInteractionId":1,"receipt":{"blockHash":"0x7e8030153ee0c6ac844050c223e9cd869bc2d6a97dd3618433048565e24a3091","blockNumber":97666006,"contractAddress":"0x5DF9C2eFB1206d11C50Ad130446364c88934a17E","logs":[{"address":"0x5DF9C2eFB1206d11C50Ad130446364c88934a17E","data":"0x000000000000000000000000dfee494c436613bafbfb80de4b19597fc69ec4fd0000000000000000000000007782536dac304b46e4eb60751e4021ab3b09abab000000000000000000000000cf27161ee08ca6087f9ff445a44474b89c10e5540000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf80000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c3000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c","logIndex":3,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000cf242b6e8d1a5883627049485bf2c1d3dcf56ba8","0x000000000000000000000000dabc7419aba5a47d368d008f42bb66c7d5801740","0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonStaking#HorizonStaking","result":{"address":"0x5DF9C2eFB1206d11C50Ad130446364c88934a17E","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"args":["0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD","0xB5DA0C077f45BD34964D4d94cf4FE0DFbbC8Ba42","0x8129fc1c"],"artifactId":"HorizonProxies#ProxyAdmin_GraphPayments","contractAddress":"0x191308fb34b4d18487bC323FfE5ef7B2dd2449e9","dependencies":["HorizonProxies#ProxyAdmin_GraphPayments","HorizonProxies#TransparentUpgradeableProxy_GraphPayments","GraphPayments#GraphPayments","GraphPayments#encodeFunctionCall(GraphPayments#GraphPayments.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"upgradeAndCall","futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.upgradeAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.upgradeAndCall","networkInteraction":{"data":"0x9623609d000000000000000000000000dfee494c436613bafbfb80de4b19597fc69ec4fd000000000000000000000000b5da0c077f45bd34964d4d94cf4fe0dfbbc8ba42000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000","id":1,"to":"0x191308fb34b4d18487bC323FfE5ef7B2dd2449e9","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.upgradeAndCall","networkInteractionId":1,"nonce":725,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x48ce5bf2a7a7946fa46cb08b938f65d055c9ab405ddd145047fab559d861b90c"},"type":"TRANSACTION_SEND"} -{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.upgradeAndCall","hash":"0x48ce5bf2a7a7946fa46cb08b938f65d055c9ab405ddd145047fab559d861b90c","networkInteractionId":1,"receipt":{"blockHash":"0xb195a6f83aab96ccb5eba8a3d96408470717d7d45c14275f607b932be78415b7","blockNumber":97666020,"logs":[{"address":"0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000b5da0c077f45bd34964d4d94cf4fe0dfbbc8ba42"]},{"address":"0xdFEe494C436613BafbfB80de4b19597fc69Ec4fD","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":1,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"GraphPayments#HorizonProxies~ProxyAdmin_GraphPayments.upgradeAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"args":["0xdabc7419aba5A47d368d008f42bb66c7D5801740","0x5DF9C2eFB1206d11C50Ad130446364c88934a17E"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","dependencies":["GraphProxyAdmin#GraphProxyAdmin","HorizonProxies#GraphProxy_HorizonStaking","HorizonStaking#HorizonStaking"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"upgrade","futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.upgrade","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.upgrade","networkInteraction":{"data":"0x99a88ec4000000000000000000000000dabc7419aba5a47d368d008f42bb66c7d58017400000000000000000000000005df9c2efb1206d11c50ad130446364c88934a17e","id":1,"to":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.upgrade","networkInteractionId":1,"nonce":726,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x81143e8bb21cbc2317da05173fd931ed787127cb7ac75f500dfbfd648819e4ea"},"type":"TRANSACTION_SEND"} -{"args":["0x7782536dac304b46E4Eb60751e4021ab3b09aBAb","0x69F0a00274f8211120a80D7aFdf9b0f2D76A02F6","0x8129fc1c"],"artifactId":"HorizonProxies#ProxyAdmin_PaymentsEscrow","contractAddress":"0xB3eD0202b929Cef59B0e2668a68F06FE996e8419","dependencies":["HorizonProxies#ProxyAdmin_PaymentsEscrow","HorizonProxies#TransparentUpgradeableProxy_PaymentsEscrow","PaymentsEscrow#PaymentsEscrow","PaymentsEscrow#encodeFunctionCall(PaymentsEscrow#PaymentsEscrow.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"upgradeAndCall","futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.upgradeAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.upgradeAndCall","networkInteraction":{"data":"0x9623609d0000000000000000000000007782536dac304b46e4eb60751e4021ab3b09abab00000000000000000000000069f0a00274f8211120a80d7afdf9b0f2d76a02f6000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000048129fc1c00000000000000000000000000000000000000000000000000000000","id":1,"to":"0xB3eD0202b929Cef59B0e2668a68F06FE996e8419","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.upgradeAndCall","networkInteractionId":1,"nonce":727,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x32b4bbcdacd219fa708ba9fd58fbb98123cc33186b309fd1fc11f600d52d777d"},"type":"TRANSACTION_SEND"} -{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.upgrade","hash":"0x81143e8bb21cbc2317da05173fd931ed787127cb7ac75f500dfbfd648819e4ea","networkInteractionId":1,"receipt":{"blockHash":"0xc517348d8cd18b7483f14d529927aad1f12fa4e1bcc1c10171d338692009501b","blockNumber":97666032,"logs":[{"address":"0xdabc7419aba5A47d368d008f42bb66c7D5801740","data":"0x","logIndex":0,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000005df9c2efb1206d11c50ad130446364c88934a17e"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.upgrade","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.upgradeAndCall","hash":"0x32b4bbcdacd219fa708ba9fd58fbb98123cc33186b309fd1fc11f600d52d777d","networkInteractionId":1,"receipt":{"blockHash":"0x70b6e83e417987050209e72e57662d612e2e85356f58d583d13c6b445380ae30","blockNumber":97666043,"logs":[{"address":"0x7782536dac304b46E4Eb60751e4021ab3b09aBAb","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000069f0a00274f8211120a80d7afdf9b0f2d76a02f6"]},{"address":"0x7782536dac304b46E4Eb60751e4021ab3b09aBAb","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":1,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"PaymentsEscrow#HorizonProxies~ProxyAdmin_PaymentsEscrow.upgradeAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"args":["0x5DF9C2eFB1206d11C50Ad130446364c88934a17E","0xdabc7419aba5A47d368d008f42bb66c7D5801740"],"artifactId":"GraphProxyAdmin#GraphProxyAdmin","contractAddress":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","dependencies":["GraphProxyAdmin#GraphProxyAdmin","HorizonStaking#HorizonStaking","HorizonProxies#GraphProxy_HorizonStaking","HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.upgrade"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"acceptProxy","futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.acceptProxy","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.acceptProxy","networkInteraction":{"data":"0xeb451a020000000000000000000000005df9c2efb1206d11c50ad130446364c88934a17e000000000000000000000000dabc7419aba5a47d368d008f42bb66c7d5801740","id":1,"to":"0xdA053Da930D61a2a69E00Ff7AaFa11c13cb19d45","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.acceptProxy","networkInteractionId":1,"nonce":728,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x8dc462902d97eb17529894458a9293405cd9d6ee81228a13630f5f05de8d33cc"},"type":"TRANSACTION_SEND"} -{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.acceptProxy","hash":"0x8dc462902d97eb17529894458a9293405cd9d6ee81228a13630f5f05de8d33cc","networkInteractionId":1,"receipt":{"blockHash":"0x5cc13c1c69f5bed6de0daaa39985ff4e524a96ba26e8c97f8d5e0b7c3f458c4c","blockNumber":97666058,"logs":[{"address":"0xdabc7419aba5A47d368d008f42bb66c7D5801740","data":"0x","logIndex":0,"topics":["0xaa3f731066a578e5f39b4215468d826cdd15373cbc0dfc9cb9bdc649718ef7da","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000005df9c2efb1206d11c50ad130446364c88934a17e"]},{"address":"0xdabc7419aba5A47d368d008f42bb66c7D5801740","data":"0x","logIndex":1,"topics":["0x980c0d30fe97457c47903527d88b7009a1643be6de24d2af664214919f0540a1","0x0000000000000000000000005df9c2efb1206d11c50ad130446364c88934a17e","0x0000000000000000000000000000000000000000000000000000000000000000"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.acceptProxy","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"HorizonStaking#HorizonStaking_Instance","contractAddress":"0xdabc7419aba5A47d368d008f42bb66c7D5801740","contractName":"HorizonStaking","dependencies":["HorizonStaking#GraphProxyAdmin~GraphProxyAdmin.acceptProxy","HorizonProxies#GraphProxy_HorizonStaking"],"futureId":"HorizonStaking#HorizonStaking_Instance","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"args":[2419200],"artifactId":"HorizonStaking#HorizonStaking_Instance","contractAddress":"0xdabc7419aba5A47d368d008f42bb66c7D5801740","dependencies":["HorizonStaking#HorizonStaking_Instance"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"setMaxThawingPeriod","futureId":"HorizonStaking#HorizonStaking_Instance.setMaxThawingPeriod","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"HorizonStaking#HorizonStaking_Instance.setMaxThawingPeriod","networkInteraction":{"data":"0x259bc435000000000000000000000000000000000000000000000000000000000024ea00","id":1,"to":"0xdabc7419aba5A47d368d008f42bb66c7D5801740","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"HorizonStaking#HorizonStaking_Instance.setMaxThawingPeriod","networkInteractionId":1,"nonce":729,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x1c16b43dbb76c48cf13fdae859d9cbe3aada5bf42ca4b0f46a7823c423271a86"},"type":"TRANSACTION_SEND"} -{"futureId":"HorizonStaking#HorizonStaking_Instance.setMaxThawingPeriod","hash":"0x1c16b43dbb76c48cf13fdae859d9cbe3aada5bf42ca4b0f46a7823c423271a86","networkInteractionId":1,"receipt":{"blockHash":"0xfb550b0cd988a9383520bd6466d4371534898c8839c17a6fca131d252ae41f78","blockNumber":97666073,"logs":[{"address":"0xdabc7419aba5A47d368d008f42bb66c7D5801740","data":"0x000000000000000000000000000000000000000000000000000000000024ea00","logIndex":0,"topics":["0xe8526be46fa99b6313d439293c9be3491ffb067741bc8fce9d30c270cbb8459f"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"HorizonStaking#HorizonStaking_Instance.setMaxThawingPeriod","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"DisputeManager#DisputeManager","constructorArgs":["0x59c3CA02528054C6337f63eb367a374Ac45C292C"],"contractName":"DisputeManager","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"DisputeManager#DisputeManager","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"DisputeManager#DisputeManager","networkInteraction":{"data":"0x6101c060405234801561001157600080fd5b506040516138243803806138248339810160408190526100309161049b565b806001600160a01b03811661007a5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b29061033b565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100e59061033b565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b602082015261011e9061033b565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b60208201526101589061033b565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b60208201526101909061033b565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101cb9061033b565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b60208201526102099061033b565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b60208201526102459061033b565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027a9061033b565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103249790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a4506103356103e9565b50610519565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161037691815260200190565b602060405180830381865afa158015610393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b7919061049b565b9050826001600160a01b0382166103e25760405163218f5add60e11b815260040161007191906104cb565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104395760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146104985780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6000602082840312156104ad57600080fd5b81516001600160a01b03811681146104c457600080fd5b9392505050565b602081526000825180602084015260005b818110156104f957602081860181015160408684010152016104dc565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516132a861057c60003960005050600050506000505060005050600050506000505060005050600050506000611fe30152600061160e01526132a86000f3fe608060405234801561001057600080fd5b50600436106101b05760003560e01c806376c993ae116100ef578063be41f38411610092578063be41f3841461040b578063c133b4291461042e578063c50a77b114610441578063c894222e14610454578063c9747f511461047c578063d36fc9d41461048f578063d76f62d1146104a2578063f2fde38b146104b557600080fd5b806376c993ae1461038657806384633713146103995780638da5cb5b146103a7578063902a4938146103af5780639334ea52146103bf57806393a90a1e146103d25780639f81a7cf146103e5578063b0eefabe146103f857600080fd5b806336167e031161015757806336167e03146102d95780634bc5839a146102ec5780635aea0ec4146102ff5780635bf31d4d1461032b5780635ed2c96c146103455780636369df6b146103585780636cc6cde11461036b578063715018a61461037e57600080fd5b8063050b17ad146101b55780630533e1ba146101ca57806311be1997146101fb578063169729781461027257806317337b46146102855780631792f1941461028f57806326058249146102a257806329e03ff1146102c2575b600080fd5b6101c86101c3366004612a74565b6104c8565b005b6036546101e190600160201b900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b61025e610209366004612a96565b60376020526000908152604090208054600182015460028301546003840154600485015460058601546006909601546001600160a01b039586169695909416949293919260ff80831693610100909304169188565b6040516101f2989796959493929190612ad9565b6101c8610280366004612a96565b61074b565b6101e16207a12081565b6101c861029d366004612a96565b61075f565b6033546102b5906001600160a01b031681565b6040516101f29190612b39565b6102cb60355481565b6040519081526020016101f2565b6101c86102e7366004612a96565b610a07565b6102cb6102fa366004612b62565b610bef565b603454600160a01b90046001600160401b03165b6040516001600160401b0390911681526020016101f2565b60345461031390600160a01b90046001600160401b031681565b6101c8610353366004612bb5565b610c10565b6102cb610366366004612cb5565b610d43565b6034546102b5906001600160a01b031681565b6101c8610d4e565b6101c8610394366004612d20565b610d62565b60365463ffffffff166101e1565b6102b5610d73565b6036546101e19063ffffffff1681565b6101c86103cd366004612a96565b610d8e565b6101c86103e0366004612d3d565b610fae565b6101c86103f3366004612d20565b610fbf565b6101c8610406366004612d3d565b610fd0565b61041e610419366004612a96565b610fe1565b60405190151581526020016101f2565b6102cb61043c366004612d3d565b611017565b6102cb61044f366004612da2565b6110af565b610467610462366004612de3565b61113b565b604080519283526020830191909152016101f2565b6102b561048a366004612eb9565b611320565b61041e61049d366004612ed5565b611411565b6101c86104b0366004612f0b565b61141d565b6101c86104c3366004612d3d565b61142e565b6034546001600160a01b031633146104f35760405163a8baf3bb60e01b815260040160405180910390fd5b816104fd81610fe1565b8190610528576040516314a03bbd60e21b815260040161051f91815260200190565b60405180910390fd5b506004600082815260376020526040902060040154610100900460ff16600581111561055657610556612aaf565b600083815260376020526040902060040154610100900460ff1691146105905760405163146e540f60e21b815260040161051f9190612f28565b50600083815260376020526040812060048101805461ff001916610100179055805460068201549192916105cf916001600160a01b0316908690611469565b6001830154600284015491925061060e916001600160a01b03909116906105f69084612f4c565b6105fe61160c565b6001600160a01b03169190611630565b604080516101008101825283546001600160a01b0390811682526001850154166020820152600280850154928201929092526003840154606082015260048401546106d6928591608084019160ff9091169081111561066f5761066f612aaf565b600281111561068057610680612aaf565b81526020016004820160019054906101000a900460ff1660058111156106a8576106a8612aaf565b60058111156106b9576106b9612aaf565b8152602001600582015481526020016006820154815250506116e7565b156106e8576106e88260030154610a07565b6001820154825460028401546001600160a01b03928316929091169087907f6d800aaaf64b9a1f321dcd63da04369d33d8a0d49ad0fbba085aab4a98bf31c490610733908690612f4c565b60405190815260200160405180910390a45050505050565b61075361172e565b61075c81611760565b50565b8061076981610fe1565b819061078b576040516314a03bbd60e21b815260040161051f91815260200190565b506000818152603760205260409020600101546001600160a01b031633146107c65760405163082c005560e41b815260040160405180910390fd5b816107d081610fe1565b81906107f2576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff16600581111561082057610820612aaf565b600083815260376020526040902060040154610100900460ff16911461085a5760405163146e540f60e21b815260040161051f9190612f28565b5060008381526037602052604090206034546005820154429161088e91600160a01b9091046001600160401b031690612f4c565b106108ac57604051631d7753d560e11b815260040160405180910390fd5b6002810154156108d657600181015460028201546108d6916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b03908116825260018401541660208201526002808401549282019290925260038301546060820152600483015461099e928491608084019160ff9091169081111561093757610937612aaf565b600281111561094857610948612aaf565b81526020016004820160019054906101000a900460ff16600581111561097057610970612aaf565b600581111561098157610981612aaf565b8152602001600582015481526020016006820154815250506117bf565b5060048101805461ff00191661050017905560018101548154600283015460408051918252516001600160a01b03938416939092169187917f223103f8eb52e5f43a75655152acd882a605d70df57a5c0fefd30f516b1756d2919081900360200190a450505050565b6034546001600160a01b03163314610a325760405163a8baf3bb60e01b815260040160405180910390fd5b80610a3c81610fe1565b8190610a5e576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610a8c57610a8c612aaf565b600083815260376020526040902060040154610100900460ff169114610ac65760405163146e540f60e21b815260040161051f9190612f28565b5060008281526037602090815260409182902060048101805461020061ff001982161790915583516101008101855282546001600160a01b0390811682526001840154169381019390935260028083015494840194909452600382015460608401529092610b4992918491608084019160ff169081111561066f5761066f612aaf565b6003820154849115610b7757604051634137159360e11b81526004810192909252602482015260440161051f565b5050610b988160020154610b8961160c565b6001600160a01b03169061180d565b6001810154815460028301546040519081526001600160a01b03928316929091169085907f2226ebd23625a7938fb786df2248bd171d2e6ad70cb2b654ea1be830ca17224d906020015b60405180910390a4505050565b6000610bf9611872565b610c07336035548585611891565b90505b92915050565b6000610c1a611bd3565b805490915060ff600160401b82041615906001600160401b0316600081158015610c415750825b90506000826001600160401b03166001148015610c5d5750303b155b905081158015610c6b575080155b15610c895760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610cb357845460ff60401b1916600160401b1785555b610cbc33611bf7565b610cc4611c08565b610ccd8a611c18565b610cd689611c89565b610cdf88611760565b610ce887611d0e565b610cf186611d8b565b8315610d3757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6000610c0a82611e18565b610d5661172e565b610d606000611eb5565b565b610d6a61172e565b61075c81611d0e565b600080610d7e611f11565b546001600160a01b031692915050565b6034546001600160a01b03163314610db95760405163a8baf3bb60e01b815260040160405180910390fd5b80610dc381610fe1565b8190610de5576040516314a03bbd60e21b815260040161051f91815260200190565b506004600082815260376020526040902060040154610100900460ff166005811115610e1357610e13612aaf565b600083815260376020526040902060040154610100900460ff169114610e4d5760405163146e540f60e21b815260040161051f9190612f28565b506000828152603760205260409020600281015415610e865760018101546002820154610e86916001600160a01b0316906105fe61160c565b604080516101008101825282546001600160a01b039081168252600184015416602082015260028084015492820192909252600383015460608201526004830154610f4e928491608084019160ff90911690811115610ee757610ee7612aaf565b6002811115610ef857610ef8612aaf565b81526020016004820160019054906101000a900460ff166005811115610f2057610f20612aaf565b6005811115610f3157610f31612aaf565b815260200160058201548152602001600682015481525050611f35565b5060048101805461ff0019166103001790556001810154815460028301546040519081526001600160a01b03928316929091169085907ff0912efb86ea1d65a17d64d48393cdb1ca0ea5220dd2bbe438621199d30955b790602001610be2565b610fb661172e565b61075c81611f70565b610fc761172e565b61075c81611d8b565b610fd861172e565b61075c81611c18565b600080600083815260376020526040902060040154610100900460ff16600581111561100f5761100f612aaf565b141592915050565b600080611022611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e9261105692889290911690600401612f5f565b61012060405180830381865afa158015611074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110989190612f94565b90506110a8838260000151612005565b9392505050565b60006110b9611872565b610c07336035546110ff86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b6000806000339050600061118488888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b905060006111c787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061213692505050565b90506111d38282612532565b8251602080850151604080870151865193870151918701519495929490939261123257604051636aba529760e11b81526004810196909652602486019490945260448501929092526064840152608483015260a482015260c40161051f565b505050505050600061127d846000858d8d8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b905060006112c4856000858c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061227d92505050565b60008381526037602052604080822060039081018490558383528183200185905551919250829184917ffec135a4cf8e5c6e13dea23be058bf03a8bf8f1f6fb0a021b0a5aeddfba8140791a3909a909950975050505050505050565b60008061132c83612563565b603354604051630e02292360e01b81529192506000916001600160a01b0390911690630e02292390611362908590600401612b39565b61010060405180830381865afa158015611380573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a49190613036565b805190915082906001600160a01b03166113d2576040516334789d8b60e21b815260040161051f9190612b39565b50604084015160208201519081811461140757604051630a24cfe560e21b81526004810192909252602482015260440161051f565b5050519392505050565b6000610c078383612532565b61142561172e565b61075c81611c89565b61143661172e565b6001600160a01b038116611460576000604051631e4fbdf760e01b815260040161051f9190612b39565b61075c81611eb5565b600080611474611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926114a8928a9290911690600401612f5f565b61012060405180830381865afa1580156114c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ea9190612f94565b60365490915060009061150f90859063ffffffff600160201b9091048116906125f416565b905084158015906115205750808511155b8582909161154a5760405163cc6b7c4160e01b81526004810192909252602482015260440161051f565b5050600061155c86846000015161265b565b60365490915060009061157a9063ffffffff9081169084906125f416565b60335460408051602081018b905280820184905281518082038301815260608201928390526365c1a3ff60e11b9092529293506001600160a01b039091169163cb8347fe916115ce918c91906064016130f9565b600060405180830381600087803b1580156115e857600080fd5b505af11580156115fc573d6000803e3d6000fd5b50929a9950505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b80156116e25760405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044015b6020604051808303816000875af1158015611686573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116aa919061311d565b6116e25760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b604482015260640161051f565b505050565b606081015160009080158015906110a857506004600082815260376020526040902060040154610100900460ff16600581111561172657611726612aaf565b149392505050565b33611737610d73565b6001600160a01b031614610d60573360405163118cdaa760e01b815260040161051f9190612b39565b80806117825760405163033f4e0560e01b815260040161051f91815260200190565b5060358190556040518181527f97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f8906020015b60405180910390a150565b60006117ca826116e7565b1561180557606082015160008181526037602052604090206004810180546005919061ff001916610100835b02179055506001949350505050565b506000919050565b801561186e57604051630852cd8d60e31b8152600481018290526001600160a01b038316906342966c6890602401600060405180830381600087803b15801561185557600080fd5b505af1158015611869573d6000803e3d6000fd5b505050505b5050565b610d603360355461188161160c565b6001600160a01b03169190612671565b6040516001600160601b0319606084901b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506118d881610fe1565b1581906118fb5760405163124a23f160e11b815260040161051f91815260200190565b50603354604051630e02292360e01b81526000916001600160a01b031690630e0229239061192d908890600401612b39565b61010060405180830381865afa15801561194b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196f9190613036565b8051909150856001600160a01b03821661199d576040516334789d8b60e21b815260040161051f9190612b39565b5060006119a8611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926119dc92879290911690600401612f5f565b61012060405180830381865afa1580156119fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1e9190612f94565b8051909150600003611a435760405163307efdb760e11b815260040160405180910390fd5b6000611a53838360000151612005565b604080516101008101825286516001600160a01b0390811682528d1660208201529081018b905260006060820152909150608081016001815260200160048152426020808301919091526040918201849052600088815260378252829020835181546001600160a01b039182166001600160a01b031991821617835592850151600180840180549290931691909416179055918301516002808401919091556060840151600384015560808401516004840180549193909260ff19909216918490811115611b2357611b23612aaf565b021790555060a082015160048201805461ff001916610100836005811115611b4d57611b4d612aaf565b021790555060c0820151600582015560e0909101516006909101558351604080518b81526001600160a01b038b811660208301529181018a905260608101849052818d16929091169087907fbfd6e5f61b4aa04b088a513a833705c7c703b907516c1dbfa66f93d1f725d33d9060800160405180910390a4509298975050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611bff6126b2565b61075c816126d7565b611c106126b2565b610d606126df565b6001600160a01b038116611c3f5760405163616bc44160e11b815260040160405180910390fd5b603480546001600160a01b0319166001600160a01b0383169081179091556040517f51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e90600090a250565b806001600160401b0316600003611cb35760405163c4411f1160e01b815260040160405180910390fd5b6034805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416908102919091179091556040519081527f310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e6906020016117b4565b806207a12063ffffffff82161115611d425760405163432e664360e11b815263ffffffff909116600482015260240161051f565b506036805463ffffffff191663ffffffff83169081179091556040519081527fc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab906020016117b4565b8063ffffffff8116620f42401015611dbf57604051634e9374fb60e11b815263ffffffff909116600482015260240161051f565b506036805467ffffffff000000001916600160201b63ffffffff8481168202929092179283905560405192041681527f7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d680502906020016117b4565b600054815160208084015160409485015185517f32dd026408194a0d7e54cc66a2ab6c856efc55cfcd4dd258fde5b1a55222baa6818501528087019490945260608401919091526080808401919091528451808403909101815260a08301855280519082012061190160f01b60c084015260c283019390935260e28083019390935283518083039093018352610102909101909252805191012090565b6000611ebf611f11565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000611f40826116e7565b1561180557606082015160008181526037602052604090206004810180546003919061ff001916610100836117f6565b6001600160a01b038116611f975760405163616bc44160e11b815260040160405180910390fd5b603380546001600160a01b0319166001600160a01b0383169081179091556040517f81dcb738da3dabd5bb2adbc7dd107fbbfca936e9c8aecab25f5b17a710a784c790600090a250565b7f000000000000000000000000000000000000000000000000000000000000000090565b600080612010611fe1565b603354604051631584a17960e21b81526001600160a01b039283169263561285e49261204492899290911690600401612f5f565b60a060405180830381865afa158015612061573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612085919061313f565b6000015190506000603360009054906101000a90046001600160a01b03166001600160a01b0316631ebb7c306040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210491906131be565b6121149063ffffffff16856131db565b9050600061212283836127b1565b61212c9086612f4c565b9695505050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091526001612175602080612f4c565b61217f9190612f4c565b61218a906060612f4c565b825190811490600161219d602080612f4c565b6121a79190612f4c565b6121b2906060612f4c565b90916121da57604051633fdf342360e01b81526004810192909252602482015260440161051f565b50506000806000848060200190518101906121f591906131f2565b92509250925060006122088660606127c1565b905060006122218761221c60206060612f4c565b6127c1565b90506000612245886020612236816060612f4c565b6122409190612f4c565b612813565b6040805160c081018252978852602088019690965294860193909352606085019190915260808401525060ff1660a082015292915050565b60008061228984611320565b90506000612295611fe1565b6033546040516312ecc4bf60e11b81526001600160a01b03928316926325d9897e926122c992879290911690600401612f5f565b61012060405180830381865afa1580156122e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061230b9190612f94565b80519091506000036123305760405163307efdb760e11b815260040160405180910390fd5b84516020808701516040808901518151938401949094528201526060808201929092526001600160601b031984831b811660808301529189901b909116609482015260009060a80160405160208183030381529060405280519060200120905061239981610fe1565b1581906123bc5760405163124a23f160e11b815260040161051f91815260200190565b5060006123cd848460000151612005565b60408051610100810182526001600160a01b0387811682528c811660208084019182528385018e8152600060608601818152600260808801818152600460a08a018190524260c08b015260e08a018c90528d8552603790965298909220875181549088166001600160a01b031991821617825595516001808301805492909916919097161790965591518582015590516003850155945190830180549697509395929490939260ff19169190849081111561248a5761248a612aaf565b021790555060a082015160048201805461ff0019166101008360058111156124b4576124b4612aaf565b021790555060c0820151816005015560e08201518160060155905050886001600160a01b0316846001600160a01b0316837ffb609a7fd5eb7947365d2f96d051030cac33a27e3e4923f97ea4e03aaa2bcb148b8b604001518b8760405161251e9493929190613220565b60405180910390a450979650505050505050565b8051825160009114801561254d575081604001518360400151145b8015610c07575050602090810151910151141590565b60408051606081018252825181526020808401519082015282820151918101919091526000908161259382611e18565b90506125ec81856060015186608001518760a001516040516020016125d893929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b604051602081830303815290604052612865565b949350505050565b600061260383620f4240101590565b80612616575061261682620f4240101590565b838390916126405760405163768bf0eb60e11b81526004810192909252602482015260440161051f565b50620f4240905061265183856131db565b610c079190613250565b600081831061266a5781610c07565b5090919050565b80156116e2576040516323b872dd60e01b81526001600160a01b038381166004830152306024830152604482018390528416906323b872dd90606401611667565b6126ba61288f565b610d6057604051631afcd79f60e31b815260040160405180910390fd5b6114366126b2565b6126e76126b2565b604080517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647260208201527f171a7fa058648750a8c5aae430f30db8d0100efc3a5e1b2e8054b1c1ce28b6b4918101919091527f044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d60608201524660808201523060a08201527fa070ffb1cd7409649bf77822cce74495468e06dbfaef09556838bf188679b9c260c082015260e00160408051601f198184030181529190528051602090910120600055565b60008183111561266a5781610c07565b60006127ce602083612f4c565b835190811015906127e0602085612f4c565b909161280857604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016020015190565b6000612820600183612f4c565b83519081101590612832600185612f4c565b909161285a57604051633fdf342360e01b81526004810192909252602482015260440161051f565b505050016001015190565b60008060008061287586866128a9565b92509250925061288582826128f6565b5090949350505050565b6000612899611bd3565b54600160401b900460ff16919050565b600080600083516041036128e35760208401516040850151606086015160001a6128d5888285856129af565b9550955095505050506128ef565b50508151600091506002905b9250925092565b600082600381111561290a5761290a612aaf565b03612913575050565b600182600381111561292757612927612aaf565b036129455760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561295957612959612aaf565b0361297a5760405163fce698f760e01b81526004810182905260240161051f565b600382600381111561298e5761298e612aaf565b0361186e576040516335e2f38360e21b81526004810182905260240161051f565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156129e05750600091506003905082612a6a565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612a34573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612a6057506000925060019150829050612a6a565b9250600091508190505b9450945094915050565b60008060408385031215612a8757600080fd5b50508035926020909101359150565b600060208284031215612aa857600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60068110612ad557612ad5612aaf565b9052565b6001600160a01b038981168252881660208201526040810187905260608101869052610100810160038610612b1057612b10612aaf565b856080830152612b2360a0830186612ac5565b60c082019390935260e001529695505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461075c57600080fd5b60008060408385031215612b7557600080fd5b8235612b8081612b4d565b946020939093013593505050565b6001600160401b038116811461075c57600080fd5b63ffffffff8116811461075c57600080fd5b600080600080600060a08688031215612bcd57600080fd5b8535612bd881612b4d565b94506020860135612be881612b8e565b9350604086013592506060860135612bff81612ba3565b91506080860135612c0f81612ba3565b809150509295509295909350565b60405160c081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b0381118282101715612c4d57634e487b7160e01b600052604160045260246000fd5b60006060828403128015612cc857600080fd5b50604051600090606081016001600160401b0381118282101715612cfa57634e487b7160e01b83526041600452602483fd5b604090815284358252602080860135908301529384013593810193909352509092915050565b600060208284031215612d3257600080fd5b81356110a881612ba3565b600060208284031215612d4f57600080fd5b81356110a881612b4d565b60008083601f840112612d6c57600080fd5b5081356001600160401b03811115612d8357600080fd5b602083019150836020828501011115612d9b57600080fd5b9250929050565b60008060208385031215612db557600080fd5b82356001600160401b03811115612dcb57600080fd5b612dd785828601612d5a565b90969095509350505050565b60008060008060408587031215612df957600080fd5b84356001600160401b03811115612e0f57600080fd5b612e1b87828801612d5a565b90955093505060208501356001600160401b03811115612e3a57600080fd5b612e4687828801612d5a565b95989497509550505050565b600060c08284031215612e6457600080fd5b612e6c612c1d565b8235815260208084013590820152604080840135908201526060808401359082015260808084013590820152905060a082013560ff81168114612eae57600080fd5b60a082015292915050565b600060c08284031215612ecb57600080fd5b610c078383612e52565b6000806101808385031215612ee957600080fd5b612ef38484612e52565b9150612f028460c08501612e52565b90509250929050565b600060208284031215612f1d57600080fd5b81356110a881612b8e565b60208101610c0a8284612ac5565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c0a57610c0a612f36565b6001600160a01b0392831681529116602082015260400190565b8051612f8481612ba3565b919050565b8051612f8481612b8e565b6000610120828403128015612fa857600080fd5b506000612fb3612c53565b835181526020808501519082015260408085015190820152612fd760608501612f79565b6060820152612fe860808501612f89565b6080820152612ff960a08501612f89565b60a082015261300a60c08501612f79565b60c082015261301b60e08501612f89565b60e08201526101009384015193810193909352509092915050565b600061010082840312801561304a57600080fd5b506000613055612c84565b835161306081612b4d565b81526020848101519082015260408085015190820152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e09384015193810193909352509092915050565b6000815180845260005b818110156130d9576020818501810151868301820152016130bd565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190526000906125ec908301846130b3565b60006020828403121561312f57600080fd5b815180151581146110a857600080fd5b600060a082840312801561315257600080fd5b5060405160009060a081016001600160401b038111828210171561318457634e487b7160e01b83526041600452602483fd5b6040908152845182526020808601519083015284810151908201526060808501519082015260809384015193810193909352509092915050565b6000602082840312156131d057600080fd5b81516110a881612ba3565b8082028115828204841417610c0a57610c0a612f36565b60008060006060848603121561320757600080fd5b5050815160208301516040909301519094929350919050565b84815283602082015260806040820152600061323f60808301856130b3565b905082606083015295945050505050565b60008261326d57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122015fc51a79247a9edf26bdaf727ea63de7398a97bc3a27ad1e74c0ff8bf34282e64736f6c634300081b003300000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"DisputeManager#DisputeManager","networkInteractionId":1,"nonce":730,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xf02f773d37fe324131e62a7356fa40507b12c6095b5f672d9a4ed4a63c80b307"},"type":"TRANSACTION_SEND"} -{"artifactId":"DisputeManager#DisputeManager_Instance","contractAddress":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","contractName":"DisputeManager","dependencies":[],"futureId":"DisputeManager#DisputeManager_Instance","futureType":"NAMED_ARTIFACT_CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"DisputeManager#ProxyAdmin","contractAddress":"0xe002DE2C9C6b7aebD9e275C1234B68b917a2B13e","contractName":"ProxyAdmin","dependencies":[],"futureId":"DisputeManager#ProxyAdmin","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"futureId":"DisputeManager#DisputeManager","hash":"0xf02f773d37fe324131e62a7356fa40507b12c6095b5f672d9a4ed4a63c80b307","networkInteractionId":1,"receipt":{"blockHash":"0x8bf842806ab89320556d4cd8f5ddf73fd4868e00209224aa77add59a46d76bdc","blockNumber":97666098,"contractAddress":"0x8e436E815226C8Bd5e775C7FF693DAe6a94bE7d1","logs":[{"address":"0x8e436E815226C8Bd5e775C7FF693DAe6a94bE7d1","data":"0x000000000000000000000000dfee494c436613bafbfb80de4b19597fc69ec4fd0000000000000000000000007782536dac304b46e4eb60751e4021ab3b09abab000000000000000000000000cf27161ee08ca6087f9ff445a44474b89c10e5540000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf80000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c3000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c","logIndex":4,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000cf242b6e8d1a5883627049485bf2c1d3dcf56ba8","0x000000000000000000000000dabc7419aba5a47d368d008f42bb66c7d5801740","0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c"]},{"address":"0x8e436E815226C8Bd5e775C7FF693DAe6a94bE7d1","data":"0x000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":5,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"DisputeManager#DisputeManager","result":{"address":"0x8e436E815226C8Bd5e775C7FF693DAe6a94bE7d1","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"args":["0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0",2419200,"10000000000000000000000",500000,1000000],"artifactId":"DisputeManager#DisputeManager","dependencies":["DisputeManager#DisputeManager"],"functionName":"initialize","futureId":"DisputeManager#encodeFunctionCall(DisputeManager#DisputeManager.initialize)","result":"0x5ed2c96c000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0000000000000000000000000000000000000000000000000000000000024ea0000000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000007a12000000000000000000000000000000000000000000000000000000000000f4240","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} -{"args":["0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","0x8e436E815226C8Bd5e775C7FF693DAe6a94bE7d1","0x5ed2c96c000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0000000000000000000000000000000000000000000000000000000000024ea0000000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000007a12000000000000000000000000000000000000000000000000000000000000f4240"],"artifactId":"DisputeManager#ProxyAdmin","contractAddress":"0xe002DE2C9C6b7aebD9e275C1234B68b917a2B13e","dependencies":["DisputeManager#ProxyAdmin","DisputeManager#DisputeManager","DisputeManager#encodeFunctionCall(DisputeManager#DisputeManager.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"upgradeAndCall","futureId":"DisputeManager#ProxyAdmin.upgradeAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"DisputeManager#ProxyAdmin.upgradeAndCall","networkInteraction":{"data":"0x9623609d0000000000000000000000008f2f7801f4bbdcaeabfd18ee671b1874b1dc59d50000000000000000000000008e436e815226c8bd5e775c7ff693dae6a94be7d1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a45ed2c96c000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0000000000000000000000000000000000000000000000000000000000024ea0000000000000000000000000000000000000000000000021e19e0c9bab2400000000000000000000000000000000000000000000000000000000000000007a12000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000","id":1,"to":"0xe002DE2C9C6b7aebD9e275C1234B68b917a2B13e","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"DisputeManager#ProxyAdmin.upgradeAndCall","networkInteractionId":1,"nonce":731,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x2dd77b6988019198c5c5c7d2cc696716139d7825b5ff7ec2e3c8ce5de1032125"},"type":"TRANSACTION_SEND"} -{"futureId":"DisputeManager#ProxyAdmin.upgradeAndCall","hash":"0x2dd77b6988019198c5c5c7d2cc696716139d7825b5ff7ec2e3c8ce5de1032125","networkInteractionId":1,"receipt":{"blockHash":"0x605ed3bd10e731864ba11f2fe559988fd8840e79f451d9e204b40e7acc40cdab","blockNumber":97666115,"logs":[{"address":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000008e436e815226c8bd5e775c7ff693dae6a94be7d1"]},{"address":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000e002de2c9c6b7aebd9e275c1234b68b917a2b13e"]},{"address":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","data":"0x","logIndex":2,"topics":["0x51744122301b50e919f4e3d22adf8c53abc92195b8c667eda98c6ef20375672e","0x000000000000000000000000ffcf8fdee72ac11b5c542428b35eef5769c409f0"]},{"address":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","data":"0x000000000000000000000000000000000000000000000000000000000024ea00","logIndex":3,"topics":["0x310462a9bf49fff4a57910ec647c77cbf8aaf2f13394554ac6cdf14fc68db7e6"]},{"address":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","data":"0x00000000000000000000000000000000000000000000021e19e0c9bab2400000","logIndex":4,"topics":["0x97896b9da0f97f36bf3011570bcff930069299de4b1e89c9cb44909841cac2f8"]},{"address":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","data":"0x000000000000000000000000000000000000000000000000000000000007a120","logIndex":5,"topics":["0xc573dc0f869f6a1d0a74fc7712a63baabcb5567131d2d98005e163924eddcbab"]},{"address":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","data":"0x00000000000000000000000000000000000000000000000000000000000f4240","logIndex":6,"topics":["0x7efaf01bec3cda8d104163bb466d01d7e16f68848301c7eb0749cfa59d680502"]},{"address":"0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":7,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"DisputeManager#ProxyAdmin.upgradeAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} -{"artifactId":"SubgraphService#ProxyAdmin","contractAddress":"0x4f1c68dd0c1CB5bd75C431f94c8734A5067a0b2F","contractName":"ProxyAdmin","dependencies":[],"futureId":"SubgraphService#ProxyAdmin","futureType":"CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"artifactId":"SubgraphService#SubgraphService","constructorArgs":["0x59c3CA02528054C6337f63eb367a374Ac45C292C","0x8F2f7801f4BBDcaeabFD18Ee671B1874b1dC59d5","0x84149af521E4C32dDCCb7e9F1F63a187A964396c","0x345Fc25633aeBE518Ad42047fCB210eC01b8de7C"],"contractName":"SubgraphService","dependencies":[],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","futureId":"SubgraphService#SubgraphService","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"SubgraphService#SubgraphService","networkInteraction":{"data":"0x61024060405234801561001157600080fd5b5060405161668f38038061668f83398101604081905261003091610541565b3083838387806001600160a01b03811661007f5760405163218f5add60e11b815260206004820152600a60248201526921b7b73a3937b63632b960b11b60448201526064015b60405180910390fd5b6001600160a01b0381166101005260408051808201909152600a81526923b930b8342a37b5b2b760b11b60208201526100b7906103c5565b6001600160a01b03166080526040805180820190915260078152665374616b696e6760c81b60208201526100ea906103c5565b6001600160a01b031660a05260408051808201909152600d81526c47726170685061796d656e747360981b6020820152610123906103c5565b6001600160a01b031660c05260408051808201909152600e81526d5061796d656e7473457363726f7760901b602082015261015d906103c5565b6001600160a01b031660e05260408051808201909152600c81526b22b837b1b426b0b730b3b2b960a11b6020820152610195906103c5565b6001600160a01b03166101205260408051808201909152600e81526d2932bbb0b93239a6b0b730b3b2b960911b60208201526101d0906103c5565b6001600160a01b0316610140526040805180820190915260118152704772617068546f6b656e4761746577617960781b602082015261020e906103c5565b6001600160a01b03166101605260408051808201909152600f81526e23b930b834283937bc3ca0b236b4b760891b602082015261024a906103c5565b6001600160a01b03166101805260408051808201909152600881526721bab930ba34b7b760c11b602082015261027f906103c5565b6001600160a01b039081166101a08190526101005160a05160805160c05160e05161012051610140516101605161018051604051988b169a9788169996909716977fef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43976103299790916001600160a01b03978816815295871660208701529386166040860152918516606085015284166080840152831660a083015290911660c082015260e00190565b60405180910390a450506001600160a01b038481166101c08190528482166101e08190528483166102008190529284166102208190526040805193845260208401929092529082019290925260608101919091527f4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda79060800160405180910390a1505050506103bc61047360201b60201c565b50505050610605565b600080610100516001600160a01b031663f7641a5e84805190602001206040518263ffffffff1660e01b815260040161040091815260200190565b602060405180830381865afa15801561041d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104419190610595565b9050826001600160a01b03821661046c5760405163218f5add60e11b815260040161007691906105b7565b5092915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156104c35760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146105225780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461053c57600080fd5b919050565b6000806000806080858703121561055757600080fd5b61056085610525565b935061056e60208601610525565b925061057c60408601610525565b915061058a60608601610525565b905092959194509250565b6000602082840312156105a757600080fd5b6105b082610525565b9392505050565b602081526000825180602084015260005b818110156105e557602081860181015160408684010152016105c8565b506000604082850101526040601f19601f83011684010191505092915050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051615ff161069e60003960006143f801526000612fa9015260008181611a1801526138d00152600050506000505060005050600050506000613fe6015260006137fd01526000505060005050600050506000612045015260006143d40152615ff16000f3fe608060405234801561001057600080fd5b50600436106102ce5760003560e01c80638180083b1161017e578063a827a90c116100df578063a827a90c146108f6578063ac9650d814610909578063b15d2a2c14610929578063ba38f67d1461093c578063bfdfa7af1461094f578063cb8347fe14610966578063cbe5f3f214610979578063ce0fc0cc14610999578063ce56c98b146109ac578063d07a7a84146109bf578063dedf6726146109c8578063e2e1e8e9146109db578063e6f50054146109fb578063eff0f59214610a0e578063f2fde38b14610a4357600080fd5b80638180083b14610795578063819ba366146107a857806381e777a7146107c5578063832bc923146107d85780638456cb59146107eb57806384b0196e146107f357806385e82baf1461080e57806388812583146108175780638d2f29481461082e5780638da5cb5b146108595780639249c5c1146108615780639384e0781461087857806393d4e7cb1461089b5780639aafa5d1146108dc57600080fd5b80634f793cdc116102335780634f793cdc146104b157806352a9039c146104d357806355c85269146105735780635c975abb146106365780636234e2161461063e5780636a3ca3831461065e5780636d9a395114610671578063715018a6146106ec57806371ce020a146106f45780637203ca781461070a5780637337182314610740578063772495c3146107495780637aa31bce1461075c5780637dfe6d281461076f5780637e89bac31461078257600080fd5b80630e022923146102d3578063138dea081461035457806313c474c91461036b5780631cafa218146103c05780631dd42f60146103d55780631ebb7c30146103e857806324b8fbf61461040e578063355779621461042157806336fdd28a146104345780633afd23fe1461043d5780633f0ed79d1461045d5780633f4ba83a1461048057806345f5448514610488578063482468b71461049b575b600080fd5b6102e66102e1366004615151565b610a56565b60405161034b919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0828101519082015260c0808301519082015260e091820151918101919091526101000190565b60405180910390f35b61035d60d75481565b60405190815260200161034b565b6103a0610379366004615151565b606a6020526000908152604090208054600182015460028301546003909301549192909184565b60408051948552602085019390935291830152606082015260800161034b565b6103d36103ce366004615180565b610ad8565b005b6103d36103e33660046151b8565b610c56565b600254600160c01b900463ffffffff165b60405163ffffffff909116815260200161034b565b6103d361041c366004615216565b610c6f565b6103d361042f366004615278565b610e9a565b61035d60005481565b61035d61044b3660046152b1565b60a26020526000908152604090205481565b61047061046b366004615151565b610eb0565b604051901515815260200161034b565b6103d3610ed1565b6103d36104963660046152b1565b610f15565b6104a3610f1f565b60405161034b9291906152ca565b6104c46104bf366004615151565b610f32565b60405161034b93929190615331565b61052e6104e1366004615151565b609d60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701546001600160a01b03909616969495939492939192909188565b604080516001600160a01b0390991689526020890197909752958701949094526060860192909252608085015260a084015260c083015260e08201526101000161034b565b610604610581366004615151565b6001600160a01b039081166000908152609d60209081526040918290208251610100810184528154909416808552600182015492850183905260028201549385018490526003820154606086015260048201546080860152600582015460a0860152600682015460c0860181905260079092015460e09095018590529491939091565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a00161034b565b610470611065565b61035d61064c366004615151565b609f6020526000908152604090205481565b61047061066c366004615151565b61107a565b6106c861067f366004615151565b604080518082018252600080825260209182018190526001600160a01b039384168152609e82528290208251808401909352805490931682526001909201549181019190915290565b6040805182516001600160a01b03168152602092830151928101929092520161034b565b6103d36110f6565b6106fc611108565b60405161034b929190615366565b610733610718366004615151565b60a1602052600090815260409020546001600160a01b031681565b60405161034b9190615380565b61035d60015481565b6103d3610757366004615151565b611113565b6103d361076a3660046152b1565b61111d565b6103d361077d366004615394565b61112e565b6103d36107903660046152b1565b611146565b6103d36107a3366004615216565b6111ba565b6107b0611345565b6040805192835260208301919091520161034b565b6103d36107d3366004615394565b611355565b6103d36107e63660046152b1565b6114bb565b6103d36114cf565b6107fb611511565b60405161034b97969594939291906153c4565b61035d60a05481565b6002546103f990600160801b900463ffffffff1681565b600254610841906001600160401b031681565b6040516001600160401b03909116815260200161034b565b6107336115ba565b6002546103f990600160a01b900463ffffffff1681565b610470610886366004615151565b60676020526000908152604090205460ff1681565b6108ce6108a9366004615151565b609e60205260009081526040902080546001909101546001600160a01b039091169082565b60405161034b92919061545c565b60025461084190600160401b90046001600160401b031681565b6103d3610904366004615151565b6115d5565b61091c610917366004615475565b611682565b60405161034b91906154ea565b61035d61093736600461554f565b611769565b61047061094a366004615151565b6119f7565b6002546103f990600160c01b900463ffffffff1681565b6103d3610974366004615216565b611a15565b61035d610987366004615151565b60686020526000908152604090205481565b6103d36109a7366004615216565b611b54565b61035d6109ba3660046155b7565b611c83565b61035d60d65481565b6103d36109d6366004615216565b611c96565b61035d6109e93660046152b1565b600090815260a2602052604090205490565b6103d3610a093660046152b1565b611e24565b6103a0610a1c3660046152b1565b60696020526000908152604090208054600182015460028301546003909301549192909184565b6103d3610a51366004615151565b611e35565b610a5e6150eb565b506001600160a01b039081166000908152609d6020908152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015290565b6000610ae2611e70565b805490915060ff600160401b82041615906001600160401b0316600081158015610b095750825b90506000826001600160401b03166001148015610b255750303b155b905081158015610b33575080155b15610b515760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7b57845460ff60401b1916600160401b1785555b610b8433611e94565b610b8c611ea5565b610b94611ead565b610b9c611ec5565b610be86040518060400160405280600f81526020016e53756267726170685365727669636560881b815250604051806040016040528060038152602001620312e360ec1b815250611ed5565b610bf488600019611ef1565b610bfd87611f67565b610c0686611fbb565b8315610c4c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610c5e612011565b610c6781611f67565b50565b905090565b82610c78612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401610ca7939291906155e5565b602060405180830381865afa158015610cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce89190615608565b81339091610d145760405163cc5d3c8b60e01b8152600401610d0b929190615625565b60405180910390fd5b5050836000610d2282612067565b9050610d2d81612162565b610d38816000612194565b610d40612274565b60008080610d5087890189615756565b9250925092506000835111610d7857604051630783843960e51b815260040160405180910390fd5b6000825111610d9a57604051631e63bd9560e21b815260040160405180910390fd5b6001600160a01b038916600090815260d5602052604090205415610dd157604051630d06866d60e21b815260040160405180910390fd5b6040805160608101825242815260208082018681528284018690526001600160a01b038d16600090815260d59092529290208151815591519091906001820190610e1b9082615852565b5060408201516002820190610e309082615852565b5050506001600160a01b03811615610e4c57610e4c898261229a565b886001600160a01b03167f159567bea25499a91f60e1fbb349ff2a1f8c1b2883198f25c1e12c99eddb44fa8989604051610e87929190615910565b60405180910390a2505050505050505050565b610ea2612011565b610eac82826122f1565b5050565b60a054600090610ecb90610ec5609d85612358565b906123d2565b92915050565b3360008181526067602052604090205460ff16610f02576040516372e3ef9760e01b8152600401610d0b9190615380565b50610f0b61240f565b610f13612434565b565b610c673382612480565b600080610f2a61252d565b915091509091565b60d56020526000908152604090208054600182018054919291610f54906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f80906157d1565b8015610fcd5780601f10610fa257610100808354040283529160200191610fcd565b820191906000526020600020905b815481529060010190602001808311610fb057829003601f168201915b505050505090806002018054610fe2906157d1565b80601f016020809104026020016040519081016040528092919081815260200182805461100e906157d1565b801561105b5780601f106110305761010080835404028352916020019161105b565b820191906000526020600020905b81548152906001019060200180831161103e57829003601f168201915b5050505050905083565b6000806110706125a4565b5460ff1692915050565b6001600160a01b038082166000908152609d60209081526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c08401526007015460e083015290610ecb906125c8565b6110fe612011565b610f1360006125e7565b600080610f2a612643565b610c67338261229a565b611125612011565b610c67816126be565b611136612011565b6111418383836126f3565b505050565b61114e612011565b61115b81620f4240101590565b819061117d57604051631c9c717b60e01b8152600401610d0b91815260200190565b5060d78190556040518181527f6deef78ffe3df79ae5cd8e40b842c36ac6077e13746b9b68a9f327537b01e4e9906020015b60405180910390a150565b826111c3612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016111f2939291906155e5565b602060405180830381865afa15801561120f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112339190615608565b813390916112565760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d56020526040902054849081906112935760405163ee27189960e01b8152600401610d0b9190615380565b5061129c612274565b60006112aa84860186615151565b90506001600160a01b0386166112c1609d83612358565b51879183916001600160a01b0316146112ef5760405163c0bbff1360e01b8152600401610d0b929190615625565b50506112fa81612746565b856001600160a01b03167f73330c218a680717e9eee625c262df66eddfdf99ecb388d25f6b32d66b9a318a8686604051611335929190615910565b60405180910390a2505050505050565b600080610f2a6000546001549091565b8261135e612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b815260040161138d939291906155e5565b602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190615608565b813390916113f15760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50508360006113ff82612067565b905061140a81612162565b611415816000612194565b6001600160a01b038616600090815260d56020526040902054869081906114505760405163ee27189960e01b8152600401610d0b9190615380565b50611459612274565b6001600160a01b03871661146e609d88612358565b51889188916001600160a01b03161461149c5760405163c0bbff1360e01b8152600401610d0b929190615625565b5050610c4c8686600260189054906101000a900463ffffffff1661289c565b6114c3612011565b610c6781600019611ef1565b3360008181526067602052604090205460ff16611500576040516372e3ef9760e01b8152600401610d0b9190615380565b50611509612274565b610f13612c28565b6000606080600080600060606000611527612c6f565b805490915015801561153b57506001810154155b61157f5760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610d0b565b611587612c93565b61158f612d34565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b6000806115c5612d51565b546001600160a01b031692915050565b60006115e2609d83612358565b905060006115fb60a054836123d290919063ffffffff16565b825160025491925060009161161d9190600160c01b900463ffffffff16612d75565b905081806116285750805b849061164757604051623477b560e51b8152600401610d0b9190615380565b5061165183612d94565b158490611672576040516317c7b35d60e31b8152600401610d0b9190615380565b5061167c84612746565b50505050565b604080516000815260208101909152606090826001600160401b038111156116ac576116ac61563f565b6040519080825280602002602001820160405280156116df57816020015b60608152602001906001900390816116ca5790505b50915060005b838110156117615761173c3086868481811061170357611703615968565b9050602002810190611715919061597e565b85604051602001611728939291906159c4565b604051602081830303815290604052612db3565b83828151811061174e5761174e615968565b60209081029190910101526001016116e5565b505092915050565b600084611774612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b81526004016117a3939291906155e5565b602060405180830381865afa1580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e49190615608565b813390916118075760405163cc5d3c8b60e01b8152600401610d0b929190615625565b505085600061181582612067565b905061182081612162565b61182b816000612194565b6001600160a01b038816600090815260d56020526040902054889081906118665760405163ee27189960e01b8152600401610d0b9190615380565b5061186f612274565b600080896002811115611884576118846159eb565b036118e2576000611897888a018a615a16565b8051602001519091508b6001600160a01b03828116908216146118cf57604051631a071d0760e01b8152600401610d0b929190615625565b50506118da81612e29565b915050611995565b60028960028111156118f6576118f66159eb565b0361197a5760008061190a898b018b615b3b565b90925090506001600160a01b038c16611924609d84612358565b518d9184916001600160a01b0316146119525760405163c0bbff1360e01b8152600401610d0b929190615625565b50506119718282600260189054906101000a900463ffffffff1661332e565b92505050611995565b8860405163047031cf60e41b8152600401610d0b9190615b89565b8860028111156119a7576119a76159eb565b8a6001600160a01b03167f54fe682bfb66381a9382e13e4b95a3dd4f960eafbae063fdea3539d144ff3ff5836040516119e291815260200190565b60405180910390a39998505050505050505050565b6000610ecb82600260189054906101000a900463ffffffff16612d75565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381168214611a625760405163cdc0567f60e01b8152600401610d0b929190615625565b506000905080611a7483850185615b97565b91509150611a80612043565b6001600160a01b031663e76fede6868484611a996138ce565b60405160e086901b6001600160e01b03191681526001600160a01b039485166004820152602481019390935260448301919091529091166064820152608401600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b50505050846001600160a01b03167f02f2e74a11116e05b39159372cceb6739257b08d72f7171d208ff27bb6466c5883604051611b4591815260200190565b60405180910390a25050505050565b82611b5d612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611b8c939291906155e5565b602060405180830381865afa158015611ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bcd9190615608565b81339091611bf05760405163cc5d3c8b60e01b8152600401610d0b929190615625565b50506001600160a01b038416600090815260d5602052604090205484908190611c2d5760405163ee27189960e01b8152600401610d0b9190615380565b50611c36612274565b611c3f856138f2565b611c4885613908565b6040516001600160a01b038616907ff53cf6521a1b5fc0c04bffa70374a4dc2e3474f2b2ac1643c3bcc54e2db4a93990600090a25050505050565b6000611c8f838361397b565b9392505050565b82611c9f612043565b6001600160a01b0316637c145cc78230336040518463ffffffff1660e01b8152600401611cce939291906155e5565b602060405180830381865afa158015611ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0f9190615608565b81339091611d325760405163cc5d3c8b60e01b8152600401610d0b929190615625565b5050836000611d4082612067565b9050611d4b81612162565b611d56816000612194565b6001600160a01b038616600090815260d5602052604090205486908190611d915760405163ee27189960e01b8152600401610d0b9190615380565b50611d9a612274565b6000808080611dab898b018b615bb9565b9350935093509350611dd38b83868685600260189054906101000a900463ffffffff166139ea565b508a6001600160a01b03167fd3803eb82ef5b4cdff8646734ebbaf5b37441e96314b27ffd3d0940f12a038e78b8b604051611e0f929190615910565b60405180910390a25050505050505050505050565b611e2c612011565b610c6781611fbb565b611e3d612011565b6001600160a01b038116611e67576000604051631e4fbdf760e01b8152600401610d0b9190615380565b610c67816125e7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b611e9c613b73565b610c6781613b98565b610f13613b73565b611eb5613b73565b611ebd613ba0565b610f13611ea5565b611ecd613b73565b611ebd613bd5565b611edd613b73565b611ee78282613bf2565b610eac8282613c04565b818180821115611f1d5760405163ccccdafb60e01b815260048101929092526024820152604401610d0b565b50506000829055600181905560408051838152602081018390527f90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f56884991015b60405180910390a15050565b6002805463ffffffff60c01b1916600160c01b63ffffffff8416908102919091179091556040519081527f472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f906020016111af565b80600003611fdc5760405163bc71a04360e01b815260040160405180910390fd5b60d68190556040518181527f2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23906020016111af565b3361201a6115ba565b6001600160a01b031614610f13573360405163118cdaa760e01b8152600401610d0b9190615380565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052906120b8612043565b6001600160a01b03166325d9897e84306040518363ffffffff1660e01b81526004016120e5929190615625565b61012060405180830381865afa158015612103573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121279190615c36565b90508060a001516001600160401b031660001415839061215b57604051637b3c09bf60e01b8152600401610d0b9190615380565b5092915050565b610c67816000015160005460015460405180604001604052806006815260200165746f6b656e7360d01b815250613c0c565b60008061219f612643565b915091506000836121b45784608001516121ba565b8460e001515b9050612208816001600160401b0316846001600160401b0316846001600160401b03166040518060400160405280600d81526020016c1d1a185dda5b99d4195c9a5bd9609a1b815250613c0c565b60008061221361252d565b9150915060008661222857876060015161222e565b8760c001515b9050610c4c8163ffffffff168463ffffffff168463ffffffff166040518060400160405280600e81526020016d1b585e15995c9a599a595c90dd5d60921b815250613c0c565b61227c611065565b15610f135760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b03828116600081815260a1602052604080822080546001600160a01b0319169486169485179055517f3349d2e561f8c23a3ff42257745c8fb53e4bf3cbd4046672a3c4a0c7ee8a7b319190a35050565b6122f9612274565b6001600160a01b038216600081815260676020908152604091829020805460ff191685151590811790915591519182527fa95bac2f3df0d40e8278281c1d39d53c60e4f2bf3550ca5665738d0916e89789910160405180910390a25050565b6123606150eb565b61236a8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e08201529392505050565b6000806123e784606001518560a00151613ce8565b6123f19042615955565b90506123fc846125c8565b801561240757508281115b949350505050565b612417611065565b610f1357604051638dfc202b60e01b815260040160405180910390fd5b61243c61240f565b60006124466125a4565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516111af9190615380565b6001600160a01b0382166000818152606a602090815260408083208151928301849052828201949094528051808303820181526060909201905281906124d4908490613cfe90613d6990613e629089613e87565b91509150846001600160a01b03167f13f3fa9f0e54af1af76d8b5d11c3973d7c2aed6312b61efff2f7b49d73ad67eb83838060200190518101906125189190615cd8565b60408051928352602083019190915201611b45565b6000806125386138ce565b6001600160a01b031663846337136040518163ffffffff1660e01b8152600401602060405180830381865afa158015612575573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125999190615cf1565b92620f424092509050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b60006125d78260600151151590565b8015610ecb575050608001511590565b60006125f1612d51565b80546001600160a01b038481166001600160a01b031983168117845560405193945091169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60008061264e6138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561268b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126af9190615d0e565b926001600160401b0392509050565b60a08190556040518181527f21774046e2611ddb52c8c46e1ad97524eeb2e3fda7dcd9428867868b4c4d06ba906020016111af565b612700609e848484613f41565b80826001600160a01b0316846001600160a01b03167fd54c7abc930f6d506da2d08aa7aead4f2443e1db6d5f560384a2f652ff893e1960405160405180910390a4505050565b6000612753609d83612358565b90506127de82612761613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161279291815260200190565b6020604051808303816000875af11580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d59190615cd8565b609d9190614008565b6127e9609d836140b0565b805160408201516127fc91609f9161415b565b806040015160a2600083602001518152602001908152602001600020546128239190615955565b60a2600083602001518152602001908152602001600020819055508060200151826001600160a01b031682600001516001600160a01b03167f663a6f978de61dc3e2441026c082be709377b083ab642a8ce71386f8b91c710b846040015160405161289091815260200190565b60405180910390a45050565b6128a46150eb565b60006128b1609d86612358565b90506128bc816125c8565b85906128dc57604051631eb5ff9560e01b8152600401610d0b9190615380565b508060400151841415858590916129085760405163f32518cd60e01b8152600401610d0b92919061545c565b505060408101518085111561293e57612939612922612043565b835161292e8489615955565b609f929190886141e0565b612957565b81516129579061294e8784615955565b609f919061415b565b6000612961613fe4565b6001600160a01b031663eeac3e0e84602001516040518263ffffffff1660e01b815260040161299291815260200190565b6020604051808303816000875af11580156129b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d59190615cd8565b905060006129e284612d94565b156129ee5760006129fd565b60c08401516129fd9083615955565b6001600160a01b0389166000908152609d60205260409020600281018990556006018390559050612a2c613fe4565b604051636452fc0f60e11b815260048101859052602481018390526001600160a01b03919091169063c8a5f81e90604401602060405180830381865afa158015612a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9e9190615cd8565b6001600160a01b0389166000908152609d602052604081206007018054909190612ac9908490615d2b565b909155505082871115612b1157612ae08388615955565b60a26000866020015181526020019081526020016000206000828254612b069190615d2b565b90915550612b479050565b612b1b8784615955565b60a26000866020015181526020019081526020016000206000828254612b419190615955565b90915550505b8360200151886001600160a01b031685600001516001600160a01b03167f6db4a6f9be2d5e72eb2a2af2374ac487971bf342a261ba0bc1cf471bf2a2c31f8a87604051612b9e929190918252602082015260400190565b60405180910390a4505050506001600160a01b039384166000908152609d6020908152604091829020825161010081018452815490971687526001810154918701919091526002810154918601919091526003810154606086015260048101546080860152600581015460a0860152600681015460c08601526007015460e0850152509192915050565b612c30612274565b6000612c3a6125a4565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586124733390565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10090565b60606000612c9f612c6f565b9050806002018054612cb0906157d1565b80601f0160208091040260200160405190810160405280929190818152602001828054612cdc906157d1565b8015612d295780601f10612cfe57610100808354040283529160200191612d29565b820191906000526020600020905b815481529060010190602001808311612d0c57829003601f168201915b505050505091505090565b60606000612d40612c6f565b9050806003018054612cb0906157d1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090565b6000612d8c612d82612043565b609f9085856142e5565b159392505050565b6000612da38260600151151590565b8015610ecb575050604001511590565b6060600080846001600160a01b031684604051612dd09190615d3e565b600060405180830381855af49150503d8060008114612e0b576040519150601f19603f3d011682016040523d82523d6000602084013e612e10565b606091505b5091509150612e2085838361437f565b95945050505050565b80516020808201516080909201518051600093928492612e4e92810182019101615d5a565b90506000612e5d609d83612358565b805190915083906001600160a01b0381811690831614612e9257604051634508fbf760e11b8152600401610d0b929190615625565b50506020810151612ea4846000612480565b6000612eae6143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612ed99190615380565b602060405180830381865afa158015612ef6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f1a9190615cd8565b90506000612f266143f6565b6001600160a01b0316634c4ea0ed846040518263ffffffff1660e01b8152600401612f5391815260200190565b602060405180830381865afa158015612f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f949190615608565b612f9f576000612fa3565b60d7545b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637f07d28360008b85604051602001612feb929190615d77565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401613017929190615e16565b6020604051808303816000875af1158015613036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305a9190615cd8565b90506000613068828461441a565b905060006130746143d2565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161309f9190615380565b602060405180830381865afa1580156130bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130e09190615cd8565b9050806130ed8387615d2b565b1485828490919261312257604051631b0d791f60e11b8152600481019390935260248301919091526044820152606401610d0b565b5050831590506132db57600060d6548461313c9190615e36565b905060006131486138ce565b6001600160a01b0316635aea0ec46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a99190615d0e565b6131bc906001600160401b031642615d2b565b90506131c98b8383614481565b83156132d8576131d7613fe4565b6001600160a01b0316631d1c2fec896040518263ffffffff1660e01b815260040161320491815260200190565b6020604051808303816000875af1158015613223573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132479190615cd8565b5061326c6132536143f6565b8561325c6143d2565b6001600160a01b031691906145f3565b6132746143f6565b60405163102ae65160e31b8152600481018a9052602481018690526001600160a01b039190911690638157328890604401600060405180830381600087803b1580156132bf57600080fd5b505af11580156132d3573d6000803e3d6000fd5b505050505b50505b60408051848152602081018490526001600160a01b038b16917f60a56d4d503735b4848feb6f491f14d7415262346b820d3b5a3d2733201bda36910160405180910390a250909998505050505050505050565b60008061333c609d86612358565b9050613347816125c8565b859061336757604051631eb5ff9560e01b8152600401610d0b9190615380565b50600061337f60a054836123d290919063ffffffff16565b158015613392575061339082612d94565b155b801561339d57508415155b6133a857600061341e565b6133b0613fe4565b6001600160a01b031663db750926876040518263ffffffff1660e01b81526004016133db9190615380565b6020604051808303816000875af11580156133fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341e9190615cd8565b905061345d8661342c613fe4565b6001600160a01b031663eeac3e0e85602001516040518263ffffffff1660e01b815260040161279291815260200190565b613468609d876146a2565b613473609d8761474d565b60008082156137c2576000613486612043565b8551604051637573ef4f60e01b81526001600160a01b039290921691637573ef4f916134b9913090600290600401615e4d565b602060405180830381865afa1580156134d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134fa9190615cd8565b90506000613506612043565b8651604051631584a17960e21b81526001600160a01b03929092169163561285e491613536913090600401615625565b60a060405180830381865afa158015613553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135779190615e72565b9050600081602001511161358c576000613596565b613596858361441a565b9250821561368b576135a66143d2565b6001600160a01b031663095ea7b36135bc612043565b856040518363ffffffff1660e01b81526004016135da92919061545c565b6020604051808303816000875af11580156135f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361d9190615608565b50613626612043565b865160405163ca94b0e960e01b81526001600160a01b03929092169163ca94b0e9916136589130908890600401615ec7565b600060405180830381600087803b15801561367257600080fd5b505af1158015613686573d6000803e3d6000fd5b505050505b6136958386615955565b935083156137bf5785516001600160a01b03908116600090815260a1602052604090205416806137b0576136c76143d2565b6001600160a01b031663095ea7b36136dd612043565b876040518363ffffffff1660e01b81526004016136fb92919061545c565b6020604051808303816000875af115801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190615608565b50613747612043565b8751604051633a30904960e11b81526001600160a01b0392909216916374612092916137799130908a90600401615ec7565b600060405180830381600087803b15801561379357600080fd5b505af11580156137a7573d6000803e3d6000fd5b505050506137bd565b6137bd818661325c6143d2565b505b50505b602084015184516001600160a01b038a811691167f7df4dbb3b3c999ca3e143d3fe67abfa22078fd572d49d411278648c773912e318686868d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015613859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061387d9190615cd8565b604080519586526020860194909452928401919091526060830152608082015260a00160405180910390a483516138b49087612d75565b156138c2576138c288612746565b50909695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006138fd82612067565b9050610eac81612162565b6139138160016147f9565b61391b612043565b6001600160a01b0316633a78b732826040518263ffffffff1660e01b81526004016139469190615380565b600060405180830381600087803b15801561396057600080fd5b505af1158015613974573d6000803e3d6000fd5b5050505050565b6000611c8f7f4bdee85c4b4a268f4895d1096d553c3e57bb2433c380e7b7ec8cb56cc4f7467384846040516020016139cf939291909283526001600160a01b03918216602084015216604082015260600190565b60405160208183030381529060405280519060200120614810565b6139f26150eb565b6001600160a01b038616613a1957604051634ffdf5ef60e11b815260040160405180910390fd5b613a2487878561483d565b613a2f609e8761488c565b6000613abc88888888613a40613fe4565b6001600160a01b031663eeac3e0e8c6040518263ffffffff1660e01b8152600401613a6d91815260200190565b6020604051808303816000875af1158015613a8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ab09190615cd8565b609d94939291906148e1565b9050613ad4613ac9612043565b609f908a88876141e0565b806040015160a260008360200151815260200190815260200160002054613afb9190615d2b565b60a26000836020015181526020019081526020016000208190555085876001600160a01b0316896001600160a01b03167f3bd4419f8defec88dd042e31b8e8743f00803aed288fe7c31c9cf0689d295cf28460400151604051613b6091815260200190565b60405180910390a4979650505050505050565b613b7b614a2e565b610f1357604051631afcd79f60e31b815260040160405180910390fd5b611e3d613b73565b613ba8613b73565b613bb56000600019611ef1565b613bc36000620f4240614a48565b610f1360006001600160401b03614b1a565b613bdd613b73565b6000613be76125a4565b805460ff1916905550565b613bfa613b73565b610eac8282614ba7565b610eac613b73565b613c17848484614be8565b8185858590919293610c4c57604051630871e13d60e01b8152600401610d0b9493929190615eeb565b6001600160a01b03808216600090815260208481526040808320815161010081018352815490951685526001810154928501929092526002820154908401526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401529091613cc09060600151151590565b8390613ce0576040516342daadaf60e01b8152600401610d0b9190615380565b509392505050565b6000818311613cf75781611c8f565b5090919050565b60008181526069602090815260408083208151608081018352815481526001820154938101849052600282015492810192909252600301546060820152908390613d5e5760405163107349a960e21b8152600401610d0b91815260200190565b506060015192915050565b600060606000613d7885614bff565b90504281604001511115613da057505060408051602081019091526000815260019150613e5b565b60008085806020019051810190613db79190615f1a565b84519193509150613dcc90606890839061415b565b82516040808501518151928352602083015288916001600160a01b038416917f4c06b68820628a39c787d2db1faa0eeacd7b9474847b198b1e871fe6e5b93f44910160405180910390a38251613e229083615d2b565b6040805160208101929092526001600160a01b038316908201526060016040516020818303038152906040529550600086945094505050505b9250929050565b6000908152606960205260408120818155600181018290556002810182905560030155565b600060608760030154831115613eb057604051634a411b9d60e11b815260040160405180910390fd5b60008315613ebe5783613ec4565b88600301545b89549094505b8015801590613ed95750600085115b15613f3257600080613eef83898c63ffffffff16565b915091508115613f00575050613f32565b965086613f0e8c8c8b614c8d565b925086613f1a81615f40565b9750508380613f2890615f57565b9450505050613eca565b50989397509295505050505050565b6001600160a01b038281166000908152602086815260409182902082518084019093528054909316808352600190930154910152829015613f9657604051632d3e5fb960e01b8152600401610d0b9190615380565b506040805180820182526001600160a01b0394851681526020808201938452938516600090815295909352909320905181546001600160a01b03191692169190911781559051600190910155565b7f000000000000000000000000000000000000000000000000000000000000000090565b60006140148484613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614080906125c8565b600482015484916140a6576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050600601555050565b60006140bc8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152909150614128906125c8565b6004820154839161414e576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426004909101555050565b8060000361416857505050565b6001600160a01b03821660009081526020849052604090205481808210156141ac57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038216600090815260208490526040812080548392906141d6908490615955565b9091555050505050565b8115613974576001600160a01b03831660009081526020869052604081205461420a908490615d2b565b90506000856001600160a01b031663872d04898630866040518463ffffffff1660e01b815260040161423e93929190615f70565b602060405180830381865afa15801561425b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061427f9190615cd8565b90508082818111156142ad57604051635f8ec70960e01b815260048101929092526024820152604401610d0b565b50506001600160a01b038516600090815260208890526040812080548692906142d7908490615d2b565b909155505050505050505050565b600080846001600160a01b031663872d04898530866040518463ffffffff1660e01b815260040161431893929190615f70565b602060405180830381865afa158015614335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143599190615cd8565b6001600160a01b0385166000908152602088905260409020541115915050949350505050565b6060826143945761438f82614d14565b611c8f565b81511580156143ab57506001600160a01b0384163b155b156143cb5783604051639996b31560e01b8152600401610d0b9190615380565b5080611c8f565b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b600061442983620f4240101590565b8061443c575061443c82620f4240101590565b838390916144665760405163768bf0eb60e11b815260048101929092526024820152604401610d0b565b50620f424090506144778385615e36565b611c8f9190615f99565b816000036144a257604051638f4c63d960e01b815260040160405180910390fd5b6144ce6144ad612043565b600254606891908690869063ffffffff600160c01b9091048116906141e016565b6001600160a01b0383166000908152606a6020908152604080832060028082015483516001600160601b031930606090811b8216838901528b901b166034820152604880820192909252845180820390920182526068810180865282519287019290922060e882018652898352426088830190815260a883018a815260c8909301898152828a52606990985295909720915182559351600182015592519083015591516003918201558101549091901561459c57600182015460009081526069602052604090206003018190555b6145a68282614d3d565b604080518581526020810185905282916001600160a01b038816917f5d9e2c5278e41138269f5f980cfbea016d8c59816754502abc4d2f87aaea987f910160405180910390a35050505050565b80156111415760405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90614627908590859060040161545c565b6020604051808303816000875af1158015614646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061466a9190615608565b6111415760405162461bcd60e51b815260206004820152600960248201526810ba3930b739b332b960b91b6044820152606401610d0b565b60006146ae8383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015290915061471a906125c8565b60048201548391614740576040516361b66e0d60e01b8152600401610d0b92919061545c565b5050426005909101555050565b60006147598383613c40565b604080516101008101825282546001600160a01b03168152600183015460208201526002830154918101919091526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201529091506147c5906125c8565b600482015483916147eb576040516361b66e0d60e01b8152600401610d0b92919061545c565b505060006007909101555050565b600061480483612067565b90506111418183612194565b6000610ecb61481d614dd0565b8360405161190160f01b8152600281019290925260228201526042902090565b600061485261484c858561397b565b83614dda565b905080836001600160a01b038083169082161461488457604051638c5b935d60e01b8152600401610d0b929190615625565b505050505050565b6001600160a01b03818116600090815260208481526040918290208251808401909352805490931680835260019093015491015281901561114157604051638173627160e01b8152600401610d0b9190615380565b6148e96150eb565b6001600160a01b0380861660009081526020898152604091829020825161010081018452815490941684526001810154918401919091526002810154918301919091526003810154606083015260048101546080830152600581015460a0830152600681015460c08301526007015460e082015261496a9060600151151590565b15859061498b57604051630bc4def560e01b8152600401610d0b9190615380565b505060408051610100810182526001600160a01b0396871681526020808201958652818301948552426060830190815260006080840181815260a0850182815260c0860197885260e086018381529a8c1683529b90935293909320825181546001600160a01b0319169916989098178855945160018801559251600287015551600386015591516004850155935160058401555160068301555160079091015590565b6000614a38611e70565b54600160401b900460ff16919050565b818163ffffffff8082169083161115614a765760405163ccccdafb60e01b8152600401610d0b9291906152ca565b508290508163ffffffff8116620f42401015614aa75760405163ccccdafb60e01b8152600401610d0b9291906152ca565b50506002805463ffffffff838116600160a01b0263ffffffff60a01b19918616600160801b029190911667ffffffffffffffff60801b19909216919091171790556040517f2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a3690611f5b90849084906152ca565b81816001600160401b038082169083161115614b4b5760405163ccccdafb60e01b8152600401610d0b929190615366565b5050600280546001600160401b03838116600160401b026001600160801b0319909216908516171790556040517f2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d190611f5b9084908490615366565b614baf613b73565b6000614bb9612c6f565b905060028101614bc98482615852565b5060038101614bd88382615852565b5060008082556001909101555050565b600082841015801561240757505090911115919050565b614c2d6040518060800160405280600081526020016000815260200160008152602001600080191681525090565b6000828152606960209081526040918290208251608081018452815481526001820154928101839052600282015493810193909352600301546060830152839061215b5760405163107349a960e21b8152600401610d0b91815260200190565b600080846003015411614cb35760405163ddaf8f2160e01b815260040160405180910390fd5b6000614cc685600001548563ffffffff16565b9050614cd985600001548463ffffffff16565b6001856003016000828254614cee9190615955565b90915550508085556003850154600003614d0a57600060018601555b5050915492915050565b805115614d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b612710826003015410614d63576040516303a8c56b60e61b815260040160405180910390fd5b80614d8157604051638f4a893d60e01b815260040160405180910390fd5b6001808301829055600283018054600090614d9d908490615d2b565b90915550506003820154600003614db2578082555b6001826003016000828254614dc79190615d2b565b90915550505050565b6000610c6a614e04565b600080600080614dea8686614e78565b925092509250614dfa8282614ec5565b5090949350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614e2f614f7e565b614e37614fe5565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008060008351604103614eb25760208401516040850151606086015160001a614ea488828585615026565b955095509550505050614ebe565b50508151600091506002905b9250925092565b6000826003811115614ed957614ed96159eb565b03614ee2575050565b6001826003811115614ef657614ef66159eb565b03614f145760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115614f2857614f286159eb565b03614f495760405163fce698f760e01b815260048101829052602401610d0b565b6003826003811115614f5d57614f5d6159eb565b03610eac576040516335e2f38360e21b815260048101829052602401610d0b565b600080614f89612c6f565b90506000614f95612c93565b805190915015614fad57805160209091012092915050565b81548015614fbc579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600080614ff0612c6f565b90506000614ffc612d34565b80519091501561501457805160209091012092915050565b60018201548015614fbc579392505050565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0384111561505757506000915060039050826150e1565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156150ab573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166150d7575060009250600191508290506150e1565b9250600091508190505b9450945094915050565b60405180610100016040528060006001600160a01b03168152602001600080191681526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0381168114610c6757600080fd5b60006020828403121561516357600080fd5b8135611c8f8161513c565b63ffffffff81168114610c6757600080fd5b60008060006060848603121561519557600080fd5b8335925060208401356151a78161516e565b929592945050506040919091013590565b6000602082840312156151ca57600080fd5b8135611c8f8161516e565b60008083601f8401126151e757600080fd5b5081356001600160401b038111156151fe57600080fd5b602083019150836020828501011115613e5b57600080fd5b60008060006040848603121561522b57600080fd5b83356152368161513c565b925060208401356001600160401b0381111561525157600080fd5b61525d868287016151d5565b9497909650939450505050565b8015158114610c6757600080fd5b6000806040838503121561528b57600080fd5b82356152968161513c565b915060208301356152a68161526a565b809150509250929050565b6000602082840312156152c357600080fd5b5035919050565b63ffffffff92831681529116602082015260400190565b60005b838110156152fc5781810151838201526020016152e4565b50506000910152565b6000815180845261531d8160208601602086016152e1565b601f01601f19169290920160200192915050565b83815260606020820152600061534a6060830185615305565b828103604084015261535c8185615305565b9695505050505050565b6001600160401b0392831681529116602082015260400190565b6001600160a01b0391909116815260200190565b6000806000606084860312156153a957600080fd5b83356153b48161513c565b925060208401356151a78161513c565b60ff60f81b8816815260e0602082015260006153e360e0830189615305565b82810360408401526153f58189615305565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561544b57835183526020938401939092019160010161542d565b50909b9a5050505050505050505050565b6001600160a01b03929092168252602082015260400190565b6000806020838503121561548857600080fd5b82356001600160401b0381111561549e57600080fd5b8301601f810185136154af57600080fd5b80356001600160401b038111156154c557600080fd5b8560208260051b84010111156154da57600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b8281101561554357603f1987860301845261552e858351615305565b94506020938401939190910190600101615512565b50929695505050505050565b6000806000806060858703121561556557600080fd5b84356155708161513c565b935060208501356003811061558457600080fd5b925060408501356001600160401b0381111561559f57600080fd5b6155ab878288016151d5565b95989497509550505050565b600080604083850312156155ca57600080fd5b82356155d58161513c565b915060208301356152a68161513c565b6001600160a01b0393841681529183166020830152909116604082015260600190565b60006020828403121561561a57600080fd5b8151611c8f8161526a565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156156775761567761563f565b60405290565b60405160a081016001600160401b03811182821017156156775761567761563f565b60405161012081016001600160401b03811182821017156156775761567761563f565b600082601f8301126156d357600080fd5b8135602083016000806001600160401b038411156156f3576156f361563f565b50604051601f19601f85018116603f011681018181106001600160401b03821117156157215761572161563f565b60405283815290508082840187101561573957600080fd5b838360208301376000602085830101528094505050505092915050565b60008060006060848603121561576b57600080fd5b83356001600160401b0381111561578157600080fd5b61578d868287016156c2565b93505060208401356001600160401b038111156157a957600080fd5b6157b5868287016156c2565b92505060408401356157c68161513c565b809150509250925092565b600181811c908216806157e557607f821691505b60208210810361580557634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561114157806000526020600020601f840160051c810160208510156158325750805b601f840160051c820191505b81811015613974576000815560010161583e565b81516001600160401b0381111561586b5761586b61563f565b61587f8161587984546157d1565b8461580b565b6020601f8211600181146158b3576000831561589b5750848201515b600019600385901b1c1916600184901b178455613974565b600084815260208120601f198516915b828110156158e357878501518255602094850194600190920191016158c3565b50848210156159015786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ecb57610ecb61593f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261599557600080fd5b8301803591506001600160401b038211156159af57600080fd5b602001915036819003821315613e5b57600080fd5b8284823760008382016000815283516159e18183602088016152e1565b0195945050505050565b634e487b7160e01b600052602160045260246000fd5b6001600160401b0381168114610c6757600080fd5b600060208284031215615a2857600080fd5b81356001600160401b03811115615a3e57600080fd5b820160408185031215615a5057600080fd5b615a58615655565b81356001600160401b03811115615a6e57600080fd5b820160a08187031215615a8057600080fd5b615a8861567d565b8135615a938161513c565b81526020820135615aa38161513c565b60208201526040820135615ab681615a01565b604082015260608201356001600160801b0381168114615ad557600080fd5b606082015260808201356001600160401b03811115615af357600080fd5b615aff888285016156c2565b60808301525082525060208201356001600160401b03811115615b2157600080fd5b615b2d868285016156c2565b602083015250949350505050565b60008060408385031215615b4e57600080fd5b8235615b598161513c565b946020939093013593505050565b60038110615b8557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610ecb8284615b67565b60008060408385031215615baa57600080fd5b50508035926020909101359150565b60008060008060808587031215615bcf57600080fd5b84359350602085013592506040850135615be88161513c565b915060608501356001600160401b03811115615c0357600080fd5b615c0f878288016156c2565b91505092959194509250565b8051615c268161516e565b919050565b8051615c2681615a01565b6000610120828403128015615c4a57600080fd5b506000615c5561569f565b835181526020808501519082015260408085015190820152615c7960608501615c1b565b6060820152615c8a60808501615c2b565b6080820152615c9b60a08501615c2b565b60a0820152615cac60c08501615c1b565b60c0820152615cbd60e08501615c2b565b60e08201526101009384015193810193909352509092915050565b600060208284031215615cea57600080fd5b5051919050565b600060208284031215615d0357600080fd5b8151611c8f8161516e565b600060208284031215615d2057600080fd5b8151611c8f81615a01565b80820180821115610ecb57610ecb61593f565b60008251615d508184602087016152e1565b9190910192915050565b600060208284031215615d6c57600080fd5b8151611c8f8161513c565b604081526000835160408084015260018060a01b03815116608084015260018060a01b0360208201511660a08401526001600160401b0360408201511660c084015260018060801b0360608201511660e08401526080810151905060a0610100840152615de8610120840182615305565b90506020850151603f19848303016060850152615e058282615305565b925050508260208301529392505050565b615e208184615b67565b6040602082015260006124076040830184615305565b8082028115828204841417610ecb57610ecb61593f565b6001600160a01b03848116825283166020820152606081016124076040830184615b67565b600060a0828403128015615e8557600080fd5b506000615e9061567d565b8351815260208085015190820152604080850151908201526060808501519082015260809384015193810193909352509092915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b608081526000615efe6080830187615305565b6020830195909552506040810192909252606090910152919050565b60008060408385031215615f2d57600080fd5b825160208401519092506152a68161513c565b600081615f4f57615f4f61593f565b506000190190565b600060018201615f6957615f6961593f565b5060010190565b6001600160a01b03938416815291909216602082015263ffffffff909116604082015260600190565b600082615fb657634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212209c05e49a7d3d7f3015873a2c41e2f68419180f16cef8fd91645f14bc8e8b733264736f6c634300081b003300000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c0000000000000000000000008f2f7801f4bbdcaeabfd18ee671b1874b1dc59d500000000000000000000000084149af521e4c32ddccb7e9f1f63a187a964396c000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SubgraphService#SubgraphService","networkInteractionId":1,"nonce":732,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0xb27877abe206e77e750e818c99fc51080fdb8452a378ce53c7ebf04add36f63a"},"type":"TRANSACTION_SEND"} -{"futureId":"SubgraphService#SubgraphService","hash":"0xb27877abe206e77e750e818c99fc51080fdb8452a378ce53c7ebf04add36f63a","networkInteractionId":1,"receipt":{"blockHash":"0x2752fbab44e4099519b2990f42ca7e6dddb2637baa2ade461605250adb3923e8","blockNumber":97666132,"contractAddress":"0x2268247782f4b7AdB2DA810EFD6e43B27a37af54","logs":[{"address":"0x2268247782f4b7AdB2DA810EFD6e43B27a37af54","data":"0x000000000000000000000000dfee494c436613bafbfb80de4b19597fc69ec4fd0000000000000000000000007782536dac304b46e4eb60751e4021ab3b09abab000000000000000000000000cf27161ee08ca6087f9ff445a44474b89c10e5540000000000000000000000001c0f92202cfc66b160972d54c513a7354f507bf80000000000000000000000002679f1a908f1b241d6bd10b1898762c70e0a24c3000000000000000000000000da053da930d61a2a69e00ff7aafa11c13cb19d45000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c","logIndex":0,"topics":["0xef5021414834d86e36470f5c1cecf6544fb2bb723f2ca51a4c86fcd8c5919a43","0x000000000000000000000000cf242b6e8d1a5883627049485bf2c1d3dcf56ba8","0x000000000000000000000000dabc7419aba5a47d368d008f42bb66c7d5801740","0x00000000000000000000000059c3ca02528054c6337f63eb367a374ac45c292c"]},{"address":"0x2268247782f4b7AdB2DA810EFD6e43B27a37af54","data":"0x0000000000000000000000002268247782f4b7adb2da810efd6e43b27a37af540000000000000000000000008f2f7801f4bbdcaeabfd18ee671b1874b1dc59d500000000000000000000000084149af521e4c32ddccb7e9f1f63a187a964396c000000000000000000000000345fc25633aebe518ad42047fcb210ec01b8de7c","logIndex":1,"topics":["0x4175b2c37456dbac494e08de8666d31bb8f3f2aee36ea5d9e06894ff3e4ddda7"]},{"address":"0x2268247782f4b7AdB2DA810EFD6e43B27a37af54","data":"0x000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":2,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SubgraphService#SubgraphService","result":{"address":"0x2268247782f4b7AdB2DA810EFD6e43B27a37af54","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} -{"artifactId":"SubgraphService#SubgraphService_Instance","contractAddress":"0xBc53a58f03917A88174C2795B674734eCEeec05F","contractName":"SubgraphService","dependencies":[],"futureId":"SubgraphService#SubgraphService_Instance","futureType":"NAMED_ARTIFACT_CONTRACT_AT","strategy":"basic","strategyConfig":{},"type":"CONTRACT_AT_EXECUTION_STATE_INITIALIZE"} -{"args":["100000000000000000000000",16,2],"artifactId":"SubgraphService#SubgraphService","dependencies":["SubgraphService#SubgraphService"],"functionName":"initialize","futureId":"SubgraphService#encodeFunctionCall(SubgraphService#SubgraphService.initialize)","result":"0x1cafa21800000000000000000000000000000000000000000000152d02c7e14af680000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000002","strategy":"basic","strategyConfig":{},"type":"ENCODE_FUNCTION_CALL_EXECUTION_STATE_INITIALIZE"} -{"args":["0xBc53a58f03917A88174C2795B674734eCEeec05F","0x2268247782f4b7AdB2DA810EFD6e43B27a37af54","0x1cafa21800000000000000000000000000000000000000000000152d02c7e14af680000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000002"],"artifactId":"SubgraphService#ProxyAdmin","contractAddress":"0x4f1c68dd0c1CB5bd75C431f94c8734A5067a0b2F","dependencies":["SubgraphService#ProxyAdmin","SubgraphService#SubgraphService","SubgraphService#encodeFunctionCall(SubgraphService#SubgraphService.initialize)"],"from":"0xade6b8eb69a49b56929c1d4f4b428d791861db6f","functionName":"upgradeAndCall","futureId":"SubgraphService#ProxyAdmin.upgradeAndCall","strategy":"basic","strategyConfig":{},"type":"CALL_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"SubgraphService#ProxyAdmin.upgradeAndCall","networkInteraction":{"data":"0x9623609d000000000000000000000000bc53a58f03917a88174c2795b674734eceeec05f0000000000000000000000002268247782f4b7adb2da810efd6e43b27a37af54000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641cafa21800000000000000000000000000000000000000000000152d02c7e14af68000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000","id":1,"to":"0x4f1c68dd0c1CB5bd75C431f94c8734A5067a0b2F","type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"SubgraphService#ProxyAdmin.upgradeAndCall","networkInteractionId":1,"nonce":733,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"200000000"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"0"}},"hash":"0x0993cd6bb738f22c34f1a94f1866552b635a791f3c3e9172dc24398d24a6c2e8"},"type":"TRANSACTION_SEND"} -{"futureId":"SubgraphService#ProxyAdmin.upgradeAndCall","hash":"0x0993cd6bb738f22c34f1a94f1866552b635a791f3c3e9172dc24398d24a6c2e8","networkInteractionId":1,"receipt":{"blockHash":"0x2d540ae6e3726ba85e2f00c09c9dc57f5f485a4a57bb5712e1f0a9c1eea3ead0","blockNumber":97666148,"logs":[{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000002268247782f4b7adb2da810efd6e43b27a37af54"]},{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","data":"0x","logIndex":1,"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000004f1c68dd0c1cb5bd75c431f94c8734a5067a0b2f"]},{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","data":"0x0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","logIndex":2,"topics":["0x90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f568849"]},{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f4240","logIndex":3,"topics":["0x2fe5a7039987697813605cc0b9d6db7aab575408e3fc59e8a457bef8d7bc0a36"]},{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff","logIndex":4,"topics":["0x2867e04c500e438761486b78021d4f9eb97c77ff45d10c1183f5583ba4cbf7d1"]},{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","data":"0x00000000000000000000000000000000000000000000152d02c7e14af6800000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff","logIndex":5,"topics":["0x90699b8b4bf48918fea1129c85f9bc7b51285df7ecc982910813c7805f568849"]},{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","data":"0x0000000000000000000000000000000000000000000000000000000000000010","logIndex":6,"topics":["0x472aba493f9fd1d136ec54986f619f3aa5caff964f0e731a9909fb9a1270211f"]},{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","data":"0x0000000000000000000000000000000000000000000000000000000000000002","logIndex":7,"topics":["0x2aaaf20b08565eebc0c962cd7c568e54c3c0c2b85a1f942b82cd1bd730fdcd23"]},{"address":"0xBc53a58f03917A88174C2795B674734eCEeec05F","data":"0x0000000000000000000000000000000000000000000000000000000000000001","logIndex":8,"topics":["0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"SubgraphService#ProxyAdmin.upgradeAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/packages/subgraph-service/package.json b/packages/subgraph-service/package.json index 9fcee897d..9ca8f3481 100644 --- a/packages/subgraph-service/package.json +++ b/packages/subgraph-service/package.json @@ -24,12 +24,12 @@ "@nomicfoundation/hardhat-chai-matchers": "^2.0.0", "@nomicfoundation/hardhat-ethers": "^3.0.8", "@nomicfoundation/hardhat-foundry": "^1.1.1", - "@nomicfoundation/hardhat-ignition": "^0.15.5", - "@nomicfoundation/hardhat-ignition-ethers": "^0.15.5", + "@nomicfoundation/hardhat-ignition": "^0.15.8", + "@nomicfoundation/hardhat-ignition-ethers": "^0.15.8", "@nomicfoundation/hardhat-network-helpers": "^1.0.0", "@nomicfoundation/hardhat-toolbox": "^4.0.0", "@nomicfoundation/hardhat-verify": "^2.0.10", - "@nomicfoundation/ignition-core": "^0.15.5", + "@nomicfoundation/ignition-core": "^0.15.8", "@openzeppelin/contracts": "^5.0.2", "@openzeppelin/contracts-upgradeable": "^5.0.2", "@typechain/ethers-v6": "^0.5.0", @@ -47,6 +47,7 @@ "hardhat-graph-protocol": "workspace:^0.0.1", "hardhat-secure-accounts": "^1.0.4", "hardhat-storage-layout": "^0.1.7", + "json5": "^2.2.3", "lint-staged": "^15.2.2", "prettier": "^3.2.5", "prettier-plugin-solidity": "^1.3.1", diff --git a/packages/subgraph-service/scripts/deploy.ts b/packages/subgraph-service/scripts/deploy.ts index 17ff2feb2..ee774861c 100644 --- a/packages/subgraph-service/scripts/deploy.ts +++ b/packages/subgraph-service/scripts/deploy.ts @@ -2,6 +2,8 @@ /* eslint-disable @typescript-eslint/no-unsafe-return */ /* eslint-disable @typescript-eslint/no-unused-vars */ /* eslint-disable @typescript-eslint/no-explicit-any */ +require('json5/lib/register') + import { ignition } from 'hardhat' import DisputeManagerModule from '../ignition/modules/DisputeManager' @@ -17,8 +19,8 @@ import SubgraphServiceProxiesModule from '../ignition/modules/Proxies' // - Deploy SubgraphService and DisputeManager implementations async function main() { // TODO: Dynamically load config file based on the hardhat --network value - const HorizonConfig = removeNFromBigInts(require('@graphprotocol/horizon/ignition/configs/horizon.hardhat.json')) - const SubgraphServiceConfig = removeNFromBigInts(require('../ignition/configs/subgraph-service.hardhat.json')) + const HorizonConfig = removeNFromBigInts(require('@graphprotocol/horizon/ignition/configs/horizon.hardhat.json5')) + const SubgraphServiceConfig = removeNFromBigInts(require('../ignition/configs/subgraph-service.hardhat.json5')) // Deploy proxies const { DisputeManagerProxy, DisputeManagerProxyAdmin, SubgraphServiceProxy, SubgraphServiceProxyAdmin } = await ignition.deploy(SubgraphServiceProxiesModule) diff --git a/packages/subgraph-service/test/SubgraphBaseTest.t.sol b/packages/subgraph-service/test/SubgraphBaseTest.t.sol index 099164473..663442e1f 100644 --- a/packages/subgraph-service/test/SubgraphBaseTest.t.sol +++ b/packages/subgraph-service/test/SubgraphBaseTest.t.sol @@ -113,7 +113,6 @@ abstract contract SubgraphBaseTest is Utils, Constants { vm.getCode("PaymentsEscrow.sol:PaymentsEscrow"), abi.encode( address(controller), - revokeCollectorThawingPeriod, withdrawEscrowThawingPeriod ) )); @@ -174,7 +173,6 @@ abstract contract SubgraphBaseTest is Utils, Constants { ); escrow = new PaymentsEscrow{salt: saltEscrow}( address(controller), - revokeCollectorThawingPeriod, withdrawEscrowThawingPeriod ); diff --git a/packages/subgraph-service/test/disputeManager/DisputeManager.t.sol b/packages/subgraph-service/test/disputeManager/DisputeManager.t.sol index 0d99aec0b..0349fe7da 100644 --- a/packages/subgraph-service/test/disputeManager/DisputeManager.t.sol +++ b/packages/subgraph-service/test/disputeManager/DisputeManager.t.sol @@ -3,8 +3,6 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import { TokenUtils } from "@graphprotocol/contracts/contracts/utils/TokenUtils.sol"; import { PPMMath } from "@graphprotocol/horizon/contracts/libraries/PPMMath.sol"; import { IDisputeManager } from "../../contracts/interfaces/IDisputeManager.sol"; import { Attestation } from "../../contracts/libraries/Attestation.sol"; @@ -26,7 +24,7 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { vm.stopPrank(); } - modifier useFisherman { + modifier useFisherman() { vm.startPrank(users.fisherman); _; vm.stopPrank(); @@ -64,6 +62,13 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { assertEq(disputeManager.disputeDeposit(), _disputeDeposit, "Dispute deposit should be set."); } + function _setSubgraphService(address _subgraphService) internal { + vm.expectEmit(address(disputeManager)); + emit IDisputeManager.SubgraphServiceSet(_subgraphService); + disputeManager.setSubgraphService(_subgraphService); + assertEq(address(disputeManager.subgraphService()), _subgraphService, "Subgraph service should be set."); + } + function _createIndexingDispute(address _allocationId, bytes32 _poi) internal returns (bytes32) { (, address fisherman, ) = vm.readCallers(); bytes32 expectedDisputeId = keccak256(abi.encodePacked(_allocationId, _poi)); @@ -88,7 +93,7 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { // Create the indexing dispute bytes32 _disputeId = disputeManager.createIndexingDispute(_allocationId, _poi); - + // Check that the dispute was created and that it has the correct ID assertTrue(disputeManager.isDisputeCreated(_disputeId), "Dispute should be created."); assertEq(expectedDisputeId, _disputeId, "Dispute ID should match"); @@ -99,20 +104,32 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { assertEq(dispute.fisherman, fisherman, "Fisherman should match"); assertEq(dispute.deposit, disputeDeposit, "Deposit should match"); assertEq(dispute.relatedDisputeId, bytes32(0), "Related dispute ID should be empty"); - assertEq(uint8(dispute.disputeType), uint8(IDisputeManager.DisputeType.IndexingDispute), "Dispute type should be indexing"); - assertEq(uint8(dispute.status), uint8(IDisputeManager.DisputeStatus.Pending), "Dispute status should be pending"); + assertEq( + uint8(dispute.disputeType), + uint8(IDisputeManager.DisputeType.IndexingDispute), + "Dispute type should be indexing" + ); + assertEq( + uint8(dispute.status), + uint8(IDisputeManager.DisputeStatus.Pending), + "Dispute status should be pending" + ); assertEq(dispute.createdAt, block.timestamp, "Created at should match"); assertEq(dispute.stakeSnapshot, stakeSnapshot, "Stake snapshot should match"); // Check that the fisherman was charged the dispute deposit uint256 afterFishermanBalance = token.balanceOf(fisherman); - assertEq(afterFishermanBalance, beforeFishermanBalance - disputeDeposit, "Fisherman should be charged the dispute deposit"); + assertEq( + afterFishermanBalance, + beforeFishermanBalance - disputeDeposit, + "Fisherman should be charged the dispute deposit" + ); return _disputeId; } function _createQueryDispute(bytes memory _attestationData) internal returns (bytes32) { - (, address fisherman,) = vm.readCallers(); + (, address fisherman, ) = vm.readCallers(); Attestation.State memory attestation = Attestation.parse(_attestationData); address indexer = disputeManager.getAttestationIndexer(attestation); bytes32 expectedDisputeId = keccak256( @@ -130,7 +147,7 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { // Approve the dispute deposit token.approve(address(disputeManager), disputeDeposit); - + vm.expectEmit(address(disputeManager)); emit IDisputeManager.QueryDisputeCreated( expectedDisputeId, @@ -141,9 +158,9 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { _attestationData, stakeSnapshot ); - + bytes32 _disputeID = disputeManager.createQueryDispute(_attestationData); - + // Check that the dispute was created and that it has the correct ID assertTrue(disputeManager.isDisputeCreated(_disputeID), "Dispute should be created."); assertEq(expectedDisputeId, _disputeID, "Dispute ID should match"); @@ -154,15 +171,27 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { assertEq(dispute.fisherman, fisherman, "Fisherman should match"); assertEq(dispute.deposit, disputeDeposit, "Deposit should match"); assertEq(dispute.relatedDisputeId, bytes32(0), "Related dispute ID should be empty"); - assertEq(uint8(dispute.disputeType), uint8(IDisputeManager.DisputeType.QueryDispute), "Dispute type should be query"); - assertEq(uint8(dispute.status), uint8(IDisputeManager.DisputeStatus.Pending), "Dispute status should be pending"); + assertEq( + uint8(dispute.disputeType), + uint8(IDisputeManager.DisputeType.QueryDispute), + "Dispute type should be query" + ); + assertEq( + uint8(dispute.status), + uint8(IDisputeManager.DisputeStatus.Pending), + "Dispute status should be pending" + ); assertEq(dispute.createdAt, block.timestamp, "Created at should match"); assertEq(dispute.stakeSnapshot, stakeSnapshot, "Stake snapshot should match"); // Check that the fisherman was charged the dispute deposit uint256 afterFishermanBalance = token.balanceOf(fisherman); - assertEq(afterFishermanBalance, beforeFishermanBalance - disputeDeposit, "Fisherman should be charged the dispute deposit"); - + assertEq( + afterFishermanBalance, + beforeFishermanBalance - disputeDeposit, + "Fisherman should be charged the dispute deposit" + ); + return _disputeID; } @@ -174,11 +203,12 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { uint256 stakeSnapshot1; uint256 stakeSnapshot2; } + function _createQueryDisputeConflict( bytes memory attestationData1, bytes memory attestationData2 ) internal returns (bytes32, bytes32) { - (, address fisherman,) = vm.readCallers(); + (, address fisherman, ) = vm.readCallers(); BeforeValues_CreateQueryDisputeConflict memory beforeValues; beforeValues.attestation1 = Attestation.parse(attestationData1); @@ -188,6 +218,11 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { beforeValues.stakeSnapshot1 = disputeManager.getStakeSnapshot(beforeValues.indexer1); beforeValues.stakeSnapshot2 = disputeManager.getStakeSnapshot(beforeValues.indexer2); + uint256 beforeFishermanBalance = token.balanceOf(fisherman); + + // Approve the dispute deposit + token.approve(address(disputeManager), disputeDeposit); + bytes32 expectedDisputeId1 = keccak256( abi.encodePacked( beforeValues.attestation1.requestCID, @@ -213,7 +248,7 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { expectedDisputeId1, beforeValues.indexer1, fisherman, - 0, + disputeDeposit / 2, beforeValues.attestation1.subgraphDeploymentId, attestationData1, beforeValues.stakeSnapshot1 @@ -223,13 +258,16 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { expectedDisputeId2, beforeValues.indexer2, fisherman, - 0, + disputeDeposit / 2, beforeValues.attestation2.subgraphDeploymentId, attestationData2, beforeValues.stakeSnapshot2 ); - (bytes32 _disputeId1, bytes32 _disputeId2) = disputeManager.createQueryDisputeConflict(attestationData1, attestationData2); + (bytes32 _disputeId1, bytes32 _disputeId2) = disputeManager.createQueryDisputeConflict( + attestationData1, + attestationData2 + ); // Check that the disputes were created and that they have the correct IDs assertTrue(disputeManager.isDisputeCreated(_disputeId1), "Dispute 1 should be created."); @@ -241,23 +279,47 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { IDisputeManager.Dispute memory dispute1 = _getDispute(_disputeId1); assertEq(dispute1.indexer, beforeValues.indexer1, "Indexer 1 should match"); assertEq(dispute1.fisherman, fisherman, "Fisherman 1 should match"); - assertEq(dispute1.deposit, 0, "Deposit 1 should match"); + assertEq(dispute1.deposit, disputeDeposit / 2, "Deposit 1 should match"); assertEq(dispute1.relatedDisputeId, _disputeId2, "Related dispute ID 1 should be the id of the other dispute"); - assertEq(uint8(dispute1.disputeType), uint8(IDisputeManager.DisputeType.QueryDispute), "Dispute type 1 should be query"); - assertEq(uint8(dispute1.status), uint8(IDisputeManager.DisputeStatus.Pending), "Dispute status 1 should be pending"); + assertEq( + uint8(dispute1.disputeType), + uint8(IDisputeManager.DisputeType.QueryDispute), + "Dispute type 1 should be query" + ); + assertEq( + uint8(dispute1.status), + uint8(IDisputeManager.DisputeStatus.Pending), + "Dispute status 1 should be pending" + ); assertEq(dispute1.createdAt, block.timestamp, "Created at 1 should match"); assertEq(dispute1.stakeSnapshot, beforeValues.stakeSnapshot1, "Stake snapshot 1 should match"); IDisputeManager.Dispute memory dispute2 = _getDispute(_disputeId2); assertEq(dispute2.indexer, beforeValues.indexer2, "Indexer 2 should match"); assertEq(dispute2.fisherman, fisherman, "Fisherman 2 should match"); - assertEq(dispute2.deposit, 0, "Deposit 2 should match"); + assertEq(dispute2.deposit, disputeDeposit / 2, "Deposit 2 should match"); assertEq(dispute2.relatedDisputeId, _disputeId1, "Related dispute ID 2 should be the id of the other dispute"); - assertEq(uint8(dispute2.disputeType), uint8(IDisputeManager.DisputeType.QueryDispute), "Dispute type 2 should be query"); - assertEq(uint8(dispute2.status), uint8(IDisputeManager.DisputeStatus.Pending), "Dispute status 2 should be pending"); + assertEq( + uint8(dispute2.disputeType), + uint8(IDisputeManager.DisputeType.QueryDispute), + "Dispute type 2 should be query" + ); + assertEq( + uint8(dispute2.status), + uint8(IDisputeManager.DisputeStatus.Pending), + "Dispute status 2 should be pending" + ); assertEq(dispute2.createdAt, block.timestamp, "Created at 2 should match"); assertEq(dispute2.stakeSnapshot, beforeValues.stakeSnapshot2, "Stake snapshot 2 should match"); + // Check that the fisherman was charged the dispute deposit + uint256 afterFishermanBalance = token.balanceOf(fisherman); + assertEq( + afterFishermanBalance, + beforeFishermanBalance - disputeDeposit, + "Fisherman should be charged the dispute deposit" + ); + return (_disputeId1, _disputeId2); } @@ -271,14 +333,25 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { uint256 fishermanReward = _tokensSlash.mulPPM(fishermanRewardPercentage); vm.expectEmit(address(disputeManager)); - emit IDisputeManager.DisputeAccepted(_disputeId, dispute.indexer, dispute.fisherman, dispute.deposit + fishermanReward); + emit IDisputeManager.DisputeAccepted( + _disputeId, + dispute.indexer, + dispute.fisherman, + dispute.deposit + fishermanReward + ); // Accept the dispute disputeManager.acceptDispute(_disputeId, _tokensSlash); // Check fisherman's got their reward and their deposit (if any) back - uint256 fishermanExpectedBalance = fishermanPreviousBalance + fishermanReward + disputeDeposit; - assertEq(token.balanceOf(fisherman), fishermanExpectedBalance, "Fisherman should get their reward and deposit back"); + uint256 fishermanExpectedBalance = fishermanPreviousBalance + + fishermanReward + + disputeDeposit; + assertEq( + token.balanceOf(fisherman), + fishermanExpectedBalance, + "Fisherman should get their reward and deposit back" + ); // Check indexer was slashed by the correct amount uint256 expectedIndexerTokensAvailable; @@ -287,21 +360,157 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { } else { expectedIndexerTokensAvailable = indexerTokensAvailable - _tokensSlash; } - assertEq(staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)), expectedIndexerTokensAvailable, "Indexer should be slashed by the correct amount"); + assertEq( + staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)), + expectedIndexerTokensAvailable, + "Indexer should be slashed by the correct amount" + ); // Check dispute status dispute = _getDispute(_disputeId); - assertEq(uint8(dispute.status), uint8(IDisputeManager.DisputeStatus.Accepted), "Dispute status should be accepted"); + assertEq( + uint8(dispute.status), + uint8(IDisputeManager.DisputeStatus.Accepted), + "Dispute status should be accepted" + ); + } - // If there's a related dispute, check that it was rejected - if (dispute.relatedDisputeId != bytes32(0)) { - IDisputeManager.Dispute memory relatedDispute = _getDispute(dispute.relatedDisputeId); - assertEq(uint8(relatedDispute.status), uint8(IDisputeManager.DisputeStatus.Rejected), "Related dispute status should be rejected"); + struct FishermanParams { + address fisherman; + uint256 previousBalance; + uint256 disputeDeposit; + uint256 relatedDisputeDeposit; + uint256 rewardPercentage; + uint256 rewardFirstDispute; + uint256 rewardRelatedDispute; + uint256 totalReward; + uint256 expectedBalance; + } + + function _acceptDisputeConflict(bytes32 _disputeId, uint256 _tokensSlash, bool _acceptRelatedDispute, uint256 _tokensRelatedSlash) internal { + IDisputeManager.Dispute memory dispute = _getDispute(_disputeId); + IDisputeManager.Dispute memory relatedDispute = _getDispute(dispute.relatedDisputeId); + uint256 indexerTokensAvailable = staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)); + uint256 relatedIndexerTokensAvailable = staking.getProviderTokensAvailable(relatedDispute.indexer, address(subgraphService)); + + FishermanParams memory params; + params.fisherman = dispute.fisherman; + params.previousBalance = token.balanceOf(params.fisherman); + params.disputeDeposit = dispute.deposit; + params.relatedDisputeDeposit = relatedDispute.deposit; + params.rewardPercentage = disputeManager.fishermanRewardCut(); + params.rewardFirstDispute = _tokensSlash.mulPPM(params.rewardPercentage); + params.rewardRelatedDispute = (_acceptRelatedDispute) ? _tokensRelatedSlash.mulPPM(params.rewardPercentage) : 0; + params.totalReward = params.rewardFirstDispute + params.rewardRelatedDispute; + + vm.expectEmit(address(disputeManager)); + emit IDisputeManager.DisputeAccepted( + _disputeId, + dispute.indexer, + params.fisherman, + params.disputeDeposit + params.rewardFirstDispute + ); + + if (_acceptRelatedDispute) { + emit IDisputeManager.DisputeAccepted( + dispute.relatedDisputeId, + relatedDispute.indexer, + relatedDispute.fisherman, + relatedDispute.deposit + params.rewardRelatedDispute + ); + } else { + emit IDisputeManager.DisputeDrawn( + dispute.relatedDisputeId, + relatedDispute.indexer, + relatedDispute.fisherman, + relatedDispute.deposit + ); } + + // Accept the dispute + disputeManager.acceptDisputeConflict(_disputeId, _tokensSlash, _acceptRelatedDispute, _tokensRelatedSlash); + + // Check fisherman's got their reward and their deposit back + params.expectedBalance = params.previousBalance + + params.totalReward + + params.disputeDeposit + + params.relatedDisputeDeposit; + assertEq( + token.balanceOf(params.fisherman), + params.expectedBalance, + "Fisherman should get their reward and deposit back" + ); + + // If both disputes are for the same indexer, check that the indexer was slashed by the correct amount + if (dispute.indexer == relatedDispute.indexer) { + uint256 tokensToSlash = (_acceptRelatedDispute) ? _tokensSlash + _tokensRelatedSlash : _tokensSlash; + uint256 expectedIndexerTokensAvailable; + if (tokensToSlash > indexerTokensAvailable) { + expectedIndexerTokensAvailable = 0; + } else { + expectedIndexerTokensAvailable = indexerTokensAvailable - tokensToSlash; + } + assertEq( + staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)), + expectedIndexerTokensAvailable, + "Indexer should be slashed by the correct amount" + ); + } else { + // Check indexer for first dispute was slashed by the correct amount + uint256 expectedIndexerTokensAvailable; + uint256 tokensToSlash = (_acceptRelatedDispute) ? _tokensSlash : _tokensSlash; + if (tokensToSlash > indexerTokensAvailable) { + expectedIndexerTokensAvailable = 0; + } else { + expectedIndexerTokensAvailable = indexerTokensAvailable - tokensToSlash; + } + assertEq( + staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)), + expectedIndexerTokensAvailable, + "Indexer should be slashed by the correct amount" + ); + + // Check indexer for related dispute was slashed by the correct amount if it was accepted + if (_acceptRelatedDispute) { + uint256 expectedRelatedIndexerTokensAvailable; + if (_tokensRelatedSlash > relatedIndexerTokensAvailable) { + expectedRelatedIndexerTokensAvailable = 0; + } else { + expectedRelatedIndexerTokensAvailable = relatedIndexerTokensAvailable - _tokensRelatedSlash; + } + assertEq( + staking.getProviderTokensAvailable(relatedDispute.indexer, address(subgraphService)), + expectedRelatedIndexerTokensAvailable, + "Indexer should be slashed by the correct amount" + ); + } + } + + + // Check dispute status + dispute = _getDispute(_disputeId); + assertEq( + uint8(dispute.status), + uint8(IDisputeManager.DisputeStatus.Accepted), + "Dispute status should be accepted" + ); + + // If there's a related dispute, check it + relatedDispute = _getDispute(dispute.relatedDisputeId); + assertEq( + uint8(relatedDispute.status), + _acceptRelatedDispute + ? uint8(IDisputeManager.DisputeStatus.Accepted) + : uint8(IDisputeManager.DisputeStatus.Drawn), + "Related dispute status should be drawn" + ); } function _drawDispute(bytes32 _disputeId) internal { IDisputeManager.Dispute memory dispute = _getDispute(_disputeId); + bool isConflictingDispute = dispute.relatedDisputeId != bytes32(0); + IDisputeManager.Dispute memory relatedDispute; + if (isConflictingDispute) relatedDispute = _getDispute(dispute.relatedDisputeId); address fisherman = dispute.fisherman; uint256 fishermanPreviousBalance = token.balanceOf(fisherman); uint256 indexerTokensAvailable = staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)); @@ -309,15 +518,29 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { vm.expectEmit(address(disputeManager)); emit IDisputeManager.DisputeDrawn(_disputeId, dispute.indexer, dispute.fisherman, dispute.deposit); + if (isConflictingDispute) { + emit IDisputeManager.DisputeDrawn( + dispute.relatedDisputeId, + relatedDispute.indexer, + relatedDispute.fisherman, + relatedDispute.deposit + ); + } // Draw the dispute disputeManager.drawDispute(_disputeId); // Check that the fisherman got their deposit back - uint256 fishermanExpectedBalance = fishermanPreviousBalance + dispute.deposit; + uint256 fishermanExpectedBalance = fishermanPreviousBalance + + dispute.deposit + + (isConflictingDispute ? relatedDispute.deposit : 0); assertEq(token.balanceOf(fisherman), fishermanExpectedBalance, "Fisherman should receive their deposit back."); // Check that indexer was not slashed - assertEq(staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)), indexerTokensAvailable, "Indexer should not be slashed"); + assertEq( + staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)), + indexerTokensAvailable, + "Indexer should not be slashed" + ); // Check dispute status dispute = _getDispute(_disputeId); @@ -325,8 +548,12 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { // If there's a related dispute, check that it was drawn too if (dispute.relatedDisputeId != bytes32(0)) { - IDisputeManager.Dispute memory relatedDispute = _getDispute(dispute.relatedDisputeId); - assertEq(uint8(relatedDispute.status), uint8(IDisputeManager.DisputeStatus.Drawn), "Related dispute status should be drawn"); + relatedDispute = _getDispute(dispute.relatedDisputeId); + assertEq( + uint8(relatedDispute.status), + uint8(IDisputeManager.DisputeStatus.Drawn), + "Related dispute status should be drawn" + ); } } @@ -346,17 +573,28 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { assertEq(token.balanceOf(users.fisherman), fishermanPreviousBalance, "Fisherman should lose the deposit."); // Check that indexer was not slashed - assertEq(staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)), indexerTokensAvailable, "Indexer should not be slashed"); + assertEq( + staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)), + indexerTokensAvailable, + "Indexer should not be slashed" + ); // Check dispute status dispute = _getDispute(_disputeId); - assertEq(uint8(dispute.status), uint8(IDisputeManager.DisputeStatus.Rejected), "Dispute status should be rejected"); + assertEq( + uint8(dispute.status), + uint8(IDisputeManager.DisputeStatus.Rejected), + "Dispute status should be rejected" + ); // Checl related id is empty assertEq(dispute.relatedDisputeId, bytes32(0), "Related dispute ID should be empty"); } function _cancelDispute(bytes32 _disputeId) internal { IDisputeManager.Dispute memory dispute = _getDispute(_disputeId); + bool isDisputeInConflict = dispute.relatedDisputeId != bytes32(0); + IDisputeManager.Dispute memory relatedDispute; + if (isDisputeInConflict) relatedDispute = _getDispute(dispute.relatedDisputeId); address fisherman = dispute.fisherman; uint256 fishermanPreviousBalance = token.balanceOf(fisherman); uint256 disputePeriod = disputeManager.disputePeriod(); @@ -368,24 +606,50 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { vm.expectEmit(address(disputeManager)); emit IDisputeManager.DisputeCancelled(_disputeId, dispute.indexer, dispute.fisherman, dispute.deposit); + if (isDisputeInConflict) { + emit IDisputeManager.DisputeCancelled( + dispute.relatedDisputeId, + relatedDispute.indexer, + relatedDispute.fisherman, + relatedDispute.deposit + ); + } + // Cancel the dispute disputeManager.cancelDispute(_disputeId); // Check that the fisherman got their deposit back - uint256 fishermanExpectedBalance = fishermanPreviousBalance + dispute.deposit; - assertEq(token.balanceOf(users.fisherman), fishermanExpectedBalance, "Fisherman should receive their deposit back."); + uint256 fishermanExpectedBalance = fishermanPreviousBalance + + dispute.deposit + + (isDisputeInConflict ? relatedDispute.deposit : 0); + assertEq( + token.balanceOf(users.fisherman), + fishermanExpectedBalance, + "Fisherman should receive their deposit back." + ); // Check that indexer was not slashed - assertEq(staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)), indexerTokensAvailable, "Indexer should not be slashed"); + assertEq( + staking.getProviderTokensAvailable(dispute.indexer, address(subgraphService)), + indexerTokensAvailable, + "Indexer should not be slashed" + ); // Check dispute status dispute = _getDispute(_disputeId); - assertEq(uint8(dispute.status), uint8(IDisputeManager.DisputeStatus.Cancelled), "Dispute status should be cancelled"); + assertEq( + uint8(dispute.status), + uint8(IDisputeManager.DisputeStatus.Cancelled), + "Dispute status should be cancelled" + ); - // If there's a related dispute, check that it was cancelled too - if (dispute.relatedDisputeId != bytes32(0)) { - IDisputeManager.Dispute memory relatedDispute = _getDispute(dispute.relatedDisputeId); - assertEq(uint8(relatedDispute.status), uint8(IDisputeManager.DisputeStatus.Cancelled), "Related dispute status should be cancelled"); + if (isDisputeInConflict) { + relatedDispute = _getDispute(dispute.relatedDisputeId); + assertEq( + uint8(relatedDispute.status), + uint8(IDisputeManager.DisputeStatus.Cancelled), + "Related dispute status should be cancelled" + ); } } @@ -398,11 +662,12 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { bytes32 responseCID, bytes32 subgraphDeploymentId ) internal pure returns (Attestation.Receipt memory receipt) { - return Attestation.Receipt({ - requestCID: requestCID, - responseCID: responseCID, - subgraphDeploymentId: subgraphDeploymentId - }); + return + Attestation.Receipt({ + requestCID: requestCID, + responseCID: responseCID, + subgraphDeploymentId: subgraphDeploymentId + }); } function _createConflictingAttestations( @@ -446,15 +711,20 @@ contract DisputeManagerTest is SubgraphServiceSharedTest { uint256 createdAt, uint256 stakeSnapshot ) = disputeManager.disputes(_disputeId); - return IDisputeManager.Dispute({ - indexer: indexer, - fisherman: fisherman, - deposit: deposit, - relatedDisputeId: relatedDisputeId, - disputeType: disputeType, - status: status, - createdAt: createdAt, - stakeSnapshot: stakeSnapshot - }); + return + IDisputeManager.Dispute({ + indexer: indexer, + fisherman: fisherman, + deposit: deposit, + relatedDisputeId: relatedDisputeId, + disputeType: disputeType, + status: status, + createdAt: createdAt, + stakeSnapshot: stakeSnapshot + }); + } + + function _setStorage_SubgraphService(address _subgraphService) internal { + vm.store(address(disputeManager), bytes32(uint256(51)), bytes32(uint256(uint160(_subgraphService)))); } } diff --git a/packages/subgraph-service/test/disputeManager/disputes/indexing/accept.t.sol b/packages/subgraph-service/test/disputeManager/disputes/indexing/accept.t.sol index 49bee9e26..f1d1dc24f 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/indexing/accept.t.sol +++ b/packages/subgraph-service/test/disputeManager/disputes/indexing/accept.t.sol @@ -27,6 +27,36 @@ contract DisputeManagerIndexingAcceptDisputeTest is DisputeManagerTest { _acceptDispute(disputeID, tokensSlash); } + function test_Indexing_Accept_Dispute_RevertWhen_SubgraphServiceNotSet( + uint256 tokens, + uint256 tokensSlash + ) public useIndexer useAllocation(tokens) { + tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); + + resetPrank(users.fisherman); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + + resetPrank(users.arbitrator); + // clear subgraph service address from storage + _setStorage_SubgraphService(address(0)); + + vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerSubgraphServiceNotSet.selector)); + disputeManager.acceptDispute(disputeID, tokensSlash); + } + + function test_Indexing_Accept_Dispute_OptParam( + uint256 tokens, + uint256 tokensSlash + ) public useIndexer useAllocation(tokens) { + tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); + + resetPrank(users.fisherman); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); + + resetPrank(users.arbitrator); + _acceptDispute(disputeID, tokensSlash); + } + function test_Indexing_Accept_RevertIf_CallerIsNotArbitrator( uint256 tokens, uint256 tokensSlash diff --git a/packages/subgraph-service/test/disputeManager/disputes/indexing/create.t.sol b/packages/subgraph-service/test/disputeManager/disputes/indexing/create.t.sol index 8d1b75c21..3b1df5011 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/indexing/create.t.sol +++ b/packages/subgraph-service/test/disputeManager/disputes/indexing/create.t.sol @@ -7,16 +7,28 @@ import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManage import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { - /* * TESTS */ - function test_Indexing_Create_Dispute( + function test_Indexing_Create_Dispute(uint256 tokens) public useIndexer useAllocation(tokens) { + resetPrank(users.fisherman); + _createIndexingDispute(allocationID, bytes32("POI1")); + } + + function test_Indexing_Create_Dispute_RevertWhen_SubgraphServiceNotSet( uint256 tokens ) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - _createIndexingDispute(allocationID, bytes32("POI1")); + + // clear subgraph service address from storage + _setStorage_SubgraphService(address(0)); + + // // Approve the dispute deposit + token.approve(address(disputeManager), disputeDeposit); + + vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerSubgraphServiceNotSet.selector)); + disputeManager.createIndexingDispute(allocationID, bytes32("POI2")); } function test_Indexing_Create_MultipleDisputes() public { @@ -33,7 +45,12 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { _createProvision(indexer, tokens, maxSlashingPercentage, disputePeriod); _register(indexer, abi.encode("url", "geoHash", address(0))); uint256 allocationIDPrivateKey = uint256(keccak256(abi.encodePacked(i))); - bytes memory data = _createSubgraphAllocationData(indexer, subgraphDeployment, allocationIDPrivateKey, tokens); + bytes memory data = _createSubgraphAllocationData( + indexer, + subgraphDeployment, + allocationIDPrivateKey, + tokens + ); _startService(indexer, data); allocationIDPrivateKeys[i] = allocationIDPrivateKey; } @@ -48,7 +65,7 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { uint256 tokens ) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); - bytes32 disputeID =_createIndexingDispute(allocationID, bytes32("POI1")); + bytes32 disputeID = _createIndexingDispute(allocationID, bytes32("POI1")); // Create another dispute with different fisherman address otherFisherman = makeAddr("otherFisherman"); @@ -78,9 +95,7 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { vm.stopPrank(); } - function test_Indexing_Create_RevertIf_AllocationDoesNotExist( - uint256 tokens - ) public useFisherman { + function test_Indexing_Create_RevertIf_AllocationDoesNotExist(uint256 tokens) public useFisherman { tokens = bound(tokens, disputeDeposit, 10_000_000_000 ether); token.approve(address(disputeManager), tokens); bytes memory expectedError = abi.encodeWithSelector( @@ -92,9 +107,7 @@ contract DisputeManagerIndexingCreateDisputeTest is DisputeManagerTest { vm.stopPrank(); } - function test_Indexing_Create_RevertIf_IndexerIsBelowStake( - uint256 tokens - ) public useIndexer useAllocation(tokens) { + function test_Indexing_Create_RevertIf_IndexerIsBelowStake(uint256 tokens) public useIndexer useAllocation(tokens) { // Close allocation bytes memory data = abi.encode(allocationID); _stopService(users.indexer, data); diff --git a/packages/subgraph-service/test/disputeManager/disputes/query/accept.t.sol b/packages/subgraph-service/test/disputeManager/disputes/query/accept.t.sol index 7670d381e..7262dadb9 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/query/accept.t.sol +++ b/packages/subgraph-service/test/disputeManager/disputes/query/accept.t.sol @@ -34,6 +34,39 @@ contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { _acceptDispute(disputeID, tokensSlash); } + function test_Query_Accept_Dispute_RevertWhen_SubgraphServiceNotSet( + uint256 tokens, + uint256 tokensSlash + ) public useIndexer useAllocation(tokens) { + tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); + + resetPrank(users.fisherman); + Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); + bytes32 disputeID = _createQueryDispute(attestationData); + + resetPrank(users.arbitrator); + // clear subgraph service address from storage + _setStorage_SubgraphService(address(0)); + vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerSubgraphServiceNotSet.selector)); + disputeManager.acceptDispute(disputeID, tokensSlash); + } + + function test_Query_Accept_Dispute_OptParam( + uint256 tokens, + uint256 tokensSlash + ) public useIndexer useAllocation(tokens) { + tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); + + resetPrank(users.fisherman); + Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); + bytes32 disputeID = _createQueryDispute(attestationData); + + resetPrank(users.arbitrator); + _acceptDispute(disputeID, tokensSlash); + } + function test_Query_Accept_RevertIf_CallerIsNotArbitrator( uint256 tokens, uint256 tokensSlash @@ -72,4 +105,23 @@ contract DisputeManagerQueryAcceptDisputeTest is DisputeManagerTest { vm.expectRevert(expectedError); disputeManager.acceptDispute(disputeID, tokensSlash); } + + function test_Query_Accept_RevertWhen_UsingConflictAccept( + uint256 tokens, + uint256 tokensSlash + ) public useIndexer useAllocation(tokens) { + tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); + + resetPrank(users.fisherman); + Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); + bytes32 disputeID = _createQueryDispute(attestationData); + + resetPrank(users.arbitrator); + vm.expectRevert(abi.encodeWithSelector( + IDisputeManager.DisputeManagerDisputeNotInConflict.selector, + disputeID + )); + disputeManager.acceptDisputeConflict(disputeID, tokensSlash, true, 0); + } } diff --git a/packages/subgraph-service/test/disputeManager/disputes/query/create.t.sol b/packages/subgraph-service/test/disputeManager/disputes/query/create.t.sol index 4eba11744..3dd4f7bbf 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/query/create.t.sol +++ b/packages/subgraph-service/test/disputeManager/disputes/query/create.t.sol @@ -17,13 +17,28 @@ contract DisputeManagerQueryCreateDisputeTest is DisputeManagerTest { * TESTS */ - function test_Query_Create_Dispute(uint256 tokens) public useIndexer useAllocation(tokens) { + function test_Query_Create_Dispute_Only(uint256 tokens) public useIndexer useAllocation(tokens) { resetPrank(users.fisherman); Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); _createQueryDispute(attestationData); } + function test_Query_Create_Dispute_RevertWhen_SubgraphServiceNotSet(uint256 tokens) public useIndexer useAllocation(tokens) { + resetPrank(users.fisherman); + Attestation.Receipt memory receipt = _createAttestationReceipt(requestCID, responseCID, subgraphDeploymentId); + bytes memory attestationData = _createAtestationData(receipt, allocationIDPrivateKey); + + // clear subgraph service address from storage + _setStorage_SubgraphService(address(0)); + + // // Approve the dispute deposit + token.approve(address(disputeManager), disputeDeposit); + + vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerSubgraphServiceNotSet.selector)); + disputeManager.createQueryDispute(attestationData); + } + function test_Query_Create_MultipleDisputes_DifferentFisherman( uint256 tokens ) public useIndexer useAllocation(tokens) { diff --git a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/accept.t.sol b/packages/subgraph-service/test/disputeManager/disputes/queryConflict/accept.t.sol index 46a6d4bdd..f145277af 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/accept.t.sol +++ b/packages/subgraph-service/test/disputeManager/disputes/queryConflict/accept.t.sol @@ -18,7 +18,7 @@ contract DisputeManagerQueryConflictAcceptDisputeTest is DisputeManagerTest { * TESTS */ - function test_Query_Conflict_Accept_Dispute( + function test_Query_Conflict_Accept_Dispute_Draw_Other( uint256 tokens, uint256 tokensSlash ) public useIndexer useAllocation(tokens) { @@ -33,11 +33,53 @@ contract DisputeManagerQueryConflictAcceptDisputeTest is DisputeManagerTest { allocationIDPrivateKey ); + uint256 fishermanBalanceBefore = token.balanceOf(users.fisherman); + resetPrank(users.fisherman); - (bytes32 disputeID1,) = _createQueryDisputeConflict(attestationData1, attestationData2); + (bytes32 disputeID1, ) = _createQueryDisputeConflict(attestationData1, attestationData2); resetPrank(users.arbitrator); - _acceptDispute(disputeID1, tokensSlash); + _acceptDisputeConflict(disputeID1, tokensSlash, false, 0); + + uint256 fishermanRewardPercentage = disputeManager.fishermanRewardCut(); + uint256 fishermanReward = tokensSlash.mulPPM(fishermanRewardPercentage); + uint256 fishermanBalanceAfter = token.balanceOf(users.fisherman); + + assertEq(fishermanBalanceAfter, fishermanBalanceBefore + fishermanReward); + } + + function test_Query_Conflict_Accept_Dispute_Accept_Other( + uint256 tokens, + uint256 tokensSlash, + uint256 tokensSlashRelatedDispute + ) public useIndexer useAllocation(tokens) { + tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); + tokensSlashRelatedDispute = bound(tokensSlashRelatedDispute, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); + + (bytes memory attestationData1, bytes memory attestationData2) = _createConflictingAttestations( + requestCID, + subgraphDeployment, + responseCID1, + responseCID2, + allocationIDPrivateKey, + allocationIDPrivateKey + ); + + uint256 fishermanBalanceBefore = token.balanceOf(users.fisherman); + + resetPrank(users.fisherman); + (bytes32 disputeID1, ) = _createQueryDisputeConflict(attestationData1, attestationData2); + + resetPrank(users.arbitrator); + _acceptDisputeConflict(disputeID1, tokensSlash, true, tokensSlashRelatedDispute); + + uint256 fishermanRewardPercentage = disputeManager.fishermanRewardCut(); + uint256 fishermanRewardFirstDispute = tokensSlash.mulPPM(fishermanRewardPercentage); + uint256 fishermanRewardRelatedDispute = tokensSlashRelatedDispute.mulPPM(fishermanRewardPercentage); + uint256 fishermanReward = fishermanRewardFirstDispute + fishermanRewardRelatedDispute; + uint256 fishermanBalanceAfter = token.balanceOf(users.fisherman); + + assertEq(fishermanBalanceAfter, fishermanBalanceBefore + fishermanReward); } function test_Query_Conflict_Accept_RevertIf_CallerIsNotArbitrator( @@ -56,12 +98,12 @@ contract DisputeManagerQueryConflictAcceptDisputeTest is DisputeManagerTest { ); resetPrank(users.fisherman); - (bytes32 disputeID1,) = _createQueryDisputeConflict(attestationData1, attestationData2); + (bytes32 disputeID1, ) = _createQueryDisputeConflict(attestationData1, attestationData2); // attempt to accept dispute as fisherman resetPrank(users.fisherman); vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerNotArbitrator.selector)); - disputeManager.acceptDispute(disputeID1, tokensSlash); + disputeManager.acceptDisputeConflict(disputeID1, tokensSlash, false, 0); } function test_Query_Conflict_Accept_RevertWhen_SlashingOverMaxSlashPercentage( @@ -80,17 +122,85 @@ contract DisputeManagerQueryConflictAcceptDisputeTest is DisputeManagerTest { ); resetPrank(users.fisherman); - (bytes32 disputeID1,) = _createQueryDisputeConflict(attestationData1, attestationData2); + (bytes32 disputeID1, ) = _createQueryDisputeConflict(attestationData1, attestationData2); // max slashing percentage is 50% resetPrank(users.arbitrator); uint256 maxTokensToSlash = uint256(maxSlashingPercentage).mulPPM(tokens); bytes memory expectedError = abi.encodeWithSelector( - IDisputeManager.DisputeManagerInvalidTokensSlash.selector, + IDisputeManager.DisputeManagerInvalidTokensSlash.selector, tokensSlash, maxTokensToSlash ); vm.expectRevert(expectedError); + disputeManager.acceptDisputeConflict(disputeID1, tokensSlash, false, 0); + } + + function test_Query_Conflict_Accept_AcceptRelated_DifferentIndexer( + uint256 tokensFirstIndexer, + uint256 tokensSecondIndexer, + uint256 tokensSlash, + uint256 tokensSlashRelatedDispute + ) public useIndexer useAllocation(tokensFirstIndexer) { + tokensSecondIndexer = bound(tokensSecondIndexer, minimumProvisionTokens, 10_000_000_000 ether); + tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokensFirstIndexer)); + + // Setup different indexer for related dispute + address differentIndexer = makeAddr("DifferentIndexer"); + mint(differentIndexer, tokensSecondIndexer); + uint256 differentIndexerAllocationIDPrivateKey = uint256(keccak256(abi.encodePacked(differentIndexer))); + resetPrank(differentIndexer); + _createProvision(differentIndexer, tokensSecondIndexer, maxSlashingPercentage, disputePeriod); + _register(differentIndexer, abi.encode("url", "geoHash", address(0))); + bytes memory data = _createSubgraphAllocationData( + differentIndexer, + subgraphDeployment, + differentIndexerAllocationIDPrivateKey, + tokensSecondIndexer + ); + _startService(differentIndexer, data); + tokensSlashRelatedDispute = bound( + tokensSlashRelatedDispute, + 1, + uint256(maxSlashingPercentage).mulPPM(tokensSecondIndexer) + ); + + (bytes memory attestationData1, bytes memory attestationData2) = _createConflictingAttestations( + requestCID, + subgraphDeployment, + responseCID1, + responseCID2, + allocationIDPrivateKey, + differentIndexerAllocationIDPrivateKey + ); + + resetPrank(users.fisherman); + (bytes32 disputeID1, ) = _createQueryDisputeConflict(attestationData1, attestationData2); + + resetPrank(users.arbitrator); + _acceptDisputeConflict(disputeID1, tokensSlash, true, tokensSlashRelatedDispute); + } + + function test_Query_Conflict_Accept_RevertWhen_UsingSingleAccept( + uint256 tokens, + uint256 tokensSlash + ) public useIndexer useAllocation(tokens) { + tokensSlash = bound(tokensSlash, 1, uint256(maxSlashingPercentage).mulPPM(tokens)); + + (bytes memory attestationData1, bytes memory attestationData2) = _createConflictingAttestations( + requestCID, + subgraphDeployment, + responseCID1, + responseCID2, + allocationIDPrivateKey, + allocationIDPrivateKey + ); + + resetPrank(users.fisherman); + (bytes32 disputeID1, ) = _createQueryDisputeConflict(attestationData1, attestationData2); + + resetPrank(users.arbitrator); + vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerDisputeInConflict.selector, disputeID1)); disputeManager.acceptDispute(disputeID1, tokensSlash); } } diff --git a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/reject.t.sol b/packages/subgraph-service/test/disputeManager/disputes/queryConflict/reject.t.sol index ff347f7d2..3b56a05d8 100644 --- a/packages/subgraph-service/test/disputeManager/disputes/queryConflict/reject.t.sol +++ b/packages/subgraph-service/test/disputeManager/disputes/queryConflict/reject.t.sol @@ -7,14 +7,11 @@ import { IDisputeManager } from "../../../../contracts/interfaces/IDisputeManage import { DisputeManagerTest } from "../../DisputeManager.t.sol"; contract DisputeManagerQueryConflictRejectDisputeTest is DisputeManagerTest { - /* * TESTS */ - function test_Query_Conflict_Reject_Revert( - uint256 tokens - ) public useIndexer useAllocation(tokens) { + function test_Query_Conflict_Reject_Revert(uint256 tokens) public useIndexer useAllocation(tokens) { bytes32 requestCID = keccak256(abi.encodePacked("Request CID")); bytes32 responseCID1 = keccak256(abi.encodePacked("Response CID 1")); bytes32 responseCID2 = keccak256(abi.encodePacked("Response CID 2")); @@ -29,14 +26,10 @@ contract DisputeManagerQueryConflictRejectDisputeTest is DisputeManagerTest { ); resetPrank(users.fisherman); - (bytes32 disputeID1, bytes32 disputeID2) = _createQueryDisputeConflict(attestationData1, attestationData2); + (bytes32 disputeID1, ) = _createQueryDisputeConflict(attestationData1, attestationData2); resetPrank(users.arbitrator); - vm.expectRevert(abi.encodeWithSelector( - IDisputeManager.DisputeManagerMustAcceptRelatedDispute.selector, - disputeID1, - disputeID2 - )); + vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerDisputeInConflict.selector, disputeID1)); disputeManager.rejectDispute(disputeID1); } } diff --git a/packages/subgraph-service/test/disputeManager/governance/disputeDeposit.t.sol b/packages/subgraph-service/test/disputeManager/governance/disputeDeposit.t.sol index 1df13acb2..bfd97f731 100644 --- a/packages/subgraph-service/test/disputeManager/governance/disputeDeposit.t.sol +++ b/packages/subgraph-service/test/disputeManager/governance/disputeDeposit.t.sol @@ -14,12 +14,12 @@ contract DisputeManagerGovernanceDisputeDepositTest is DisputeManagerTest { */ function test_Governance_SetDisputeDeposit(uint256 disputeDeposit) public useGovernor { - vm.assume(disputeDeposit > 0); + vm.assume(disputeDeposit >= MIN_DISPUTE_DEPOSIT); _setDisputeDeposit(disputeDeposit); } - function test_Governance_RevertWhen_ZeroValue() public useGovernor { - uint256 disputeDeposit = 0; + function test_Governance_RevertWhen_DepositTooLow(uint256 disputeDeposit) public useGovernor { + vm.assume(disputeDeposit < MIN_DISPUTE_DEPOSIT); vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerInvalidDisputeDeposit.selector, disputeDeposit)); disputeManager.setDisputeDeposit(disputeDeposit); } diff --git a/packages/subgraph-service/test/disputeManager/governance/subgraphService.t.sol b/packages/subgraph-service/test/disputeManager/governance/subgraphService.t.sol new file mode 100644 index 000000000..8f39d48c3 --- /dev/null +++ b/packages/subgraph-service/test/disputeManager/governance/subgraphService.t.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.27; + +import "forge-std/Test.sol"; + +import { IDisputeManager } from "../../../contracts/interfaces/IDisputeManager.sol"; +import { DisputeManagerTest } from "../DisputeManager.t.sol"; + +contract DisputeManagerGovernanceSubgraphService is DisputeManagerTest { + + /* + * TESTS + */ + + function test_Governance_SetSubgraphService(address subgraphService) public useGovernor { + vm.assume(subgraphService != address(0)); + _setSubgraphService(subgraphService); + } + + function test_Governance_SetSubgraphService_RevertWhenZero() public useGovernor { + vm.expectRevert(abi.encodeWithSelector(IDisputeManager.DisputeManagerInvalidZeroAddress.selector)); + disputeManager.setSubgraphService(address(0)); + } +} diff --git a/packages/subgraph-service/test/mocks/MockGRTToken.sol b/packages/subgraph-service/test/mocks/MockGRTToken.sol index 7d21fd00a..c54f4e24c 100644 --- a/packages/subgraph-service/test/mocks/MockGRTToken.sol +++ b/packages/subgraph-service/test/mocks/MockGRTToken.sol @@ -7,7 +7,9 @@ import "@graphprotocol/contracts/contracts/token/IGraphToken.sol"; contract MockGRTToken is ERC20, IGraphToken { constructor() ERC20("Graph Token", "GRT") {} - function burn(uint256 amount) external {} + function burn(uint256 amount) external { + _burn(msg.sender, amount); + } function burnFrom(address _from, uint256 amount) external { _burn(_from, amount); diff --git a/packages/subgraph-service/test/shared/HorizonStakingShared.t.sol b/packages/subgraph-service/test/shared/HorizonStakingShared.t.sol index e07516903..abe425793 100644 --- a/packages/subgraph-service/test/shared/HorizonStakingShared.t.sol +++ b/packages/subgraph-service/test/shared/HorizonStakingShared.t.sol @@ -5,11 +5,11 @@ import "forge-std/Test.sol"; import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; import { IHorizonStakingTypes } from "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingTypes.sol"; +import { IHorizonStakingExtension } from "@graphprotocol/horizon/contracts/interfaces/internal/IHorizonStakingExtension.sol"; import { SubgraphBaseTest } from "../SubgraphBaseTest.t.sol"; abstract contract HorizonStakingSharedTest is SubgraphBaseTest { - /* * HELPERS */ @@ -45,11 +45,11 @@ abstract contract HorizonStakingSharedTest is SubgraphBaseTest { function _thawDeprovisionAndUnstake(address _indexer, address _verifier, uint256 _tokens) internal { // Initiate thaw request staking.thaw(_indexer, _verifier, _tokens); - + // Skip thawing period IHorizonStakingTypes.Provision memory provision = staking.getProvision(_indexer, _verifier); skip(provision.thawingPeriod + 1); - + // Deprovision and unstake staking.deprovision(_indexer, _verifier, 0); staking.unstake(_tokens); @@ -64,6 +64,67 @@ abstract contract HorizonStakingSharedTest is SubgraphBaseTest { staking.setProvisionParameters(_indexer, _verifier, _maxVerifierCut, _thawingPeriod); } + function _setStorage_allocation_hardcoded(address indexer, address allocationId, uint256 tokens) internal { + IHorizonStakingExtension.Allocation memory allocation = IHorizonStakingExtension.Allocation({ + indexer: indexer, + subgraphDeploymentID: bytes32("0x12344321"), + tokens: tokens, + createdAtEpoch: 1234, + closedAtEpoch: 1235, + collectedFees: 1234, + __DEPRECATED_effectiveAllocation: 1222234, + accRewardsPerAllocatedToken: 1233334, + distributedRebates: 1244434 + }); + + // __DEPRECATED_allocations + uint256 allocationsSlot = 15; + bytes32 allocationBaseSlot = keccak256(abi.encode(allocationId, allocationsSlot)); + vm.store(address(staking), allocationBaseSlot, bytes32(uint256(uint160(allocation.indexer)))); + vm.store(address(staking), bytes32(uint256(allocationBaseSlot) + 1), allocation.subgraphDeploymentID); + vm.store(address(staking), bytes32(uint256(allocationBaseSlot) + 2), bytes32(tokens)); + vm.store(address(staking), bytes32(uint256(allocationBaseSlot) + 3), bytes32(allocation.createdAtEpoch)); + vm.store(address(staking), bytes32(uint256(allocationBaseSlot) + 4), bytes32(allocation.closedAtEpoch)); + vm.store(address(staking), bytes32(uint256(allocationBaseSlot) + 5), bytes32(allocation.collectedFees)); + vm.store( + address(staking), + bytes32(uint256(allocationBaseSlot) + 6), + bytes32(allocation.__DEPRECATED_effectiveAllocation) + ); + vm.store( + address(staking), + bytes32(uint256(allocationBaseSlot) + 7), + bytes32(allocation.accRewardsPerAllocatedToken) + ); + vm.store(address(staking), bytes32(uint256(allocationBaseSlot) + 8), bytes32(allocation.distributedRebates)); + + // _serviceProviders + uint256 serviceProviderSlot = 14; + bytes32 serviceProviderBaseSlot = keccak256(abi.encode(allocation.indexer, serviceProviderSlot)); + uint256 currentTokensStaked = uint256(vm.load(address(staking), serviceProviderBaseSlot)); + uint256 currentTokensProvisioned = uint256( + vm.load(address(staking), bytes32(uint256(serviceProviderBaseSlot) + 1)) + ); + vm.store( + address(staking), + bytes32(uint256(serviceProviderBaseSlot) + 0), + bytes32(currentTokensStaked + tokens) + ); + vm.store( + address(staking), + bytes32(uint256(serviceProviderBaseSlot) + 1), + bytes32(currentTokensProvisioned + tokens) + ); + + // __DEPRECATED_subgraphAllocations + uint256 subgraphsAllocationsSlot = 16; + bytes32 subgraphAllocationsBaseSlot = keccak256( + abi.encode(allocation.subgraphDeploymentID, subgraphsAllocationsSlot) + ); + uint256 currentAllocatedTokens = uint256(vm.load(address(staking), subgraphAllocationsBaseSlot)); + vm.store(address(staking), subgraphAllocationsBaseSlot, bytes32(currentAllocatedTokens + tokens)); + } + /* * PRIVATE */ diff --git a/packages/subgraph-service/test/subgraphService/SubgraphService.t.sol b/packages/subgraph-service/test/subgraphService/SubgraphService.t.sol index b417f30bf..5aafa3507 100644 --- a/packages/subgraph-service/test/subgraphService/SubgraphService.t.sol +++ b/packages/subgraph-service/test/subgraphService/SubgraphService.t.sol @@ -151,7 +151,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { assertEq(afterSubgraphAllocatedTokens, _tokens); } - function _forceCloseAllocation(address _allocationId) internal { + function _closeStaleAllocation(address _allocationId) internal { assertTrue(subgraphService.isActiveAllocation(_allocationId)); Allocation.State memory allocation = subgraphService.getAllocation(_allocationId); @@ -168,7 +168,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { ); // close stale allocation - subgraphService.forceCloseAllocation(_allocationId); + subgraphService.closeStaleAllocation(_allocationId); // update allocation allocation = subgraphService.getAllocation(_allocationId); @@ -232,7 +232,7 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { ITAPCollector.SignedRAV memory signedRav = abi.decode(_data, (ITAPCollector.SignedRAV)); allocationId = abi.decode(signedRav.rav.metadata, (address)); allocation = subgraphService.getAllocation(allocationId); - (address payer, ) = tapCollector.authorizedSigners(_recoverRAVSigner(signedRav)); + (address payer, , ) = tapCollector.authorizedSigners(_recoverRAVSigner(signedRav)); // Total amount of tokens collected for indexer uint256 tokensCollected = tapCollector.tokensCollected(address(subgraphService), _indexer, payer); @@ -242,7 +242,8 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { // Calculate curation cut uint256 curationFeesCut = subgraphService.curationFeesCut(); queryFeeData.curationCut = curation.isCurated(allocation.subgraphDeploymentId) ? curationFeesCut : 0; - uint256 tokensCurators = paymentCollected.mulPPM(queryFeeData.curationCut); + uint256 tokensProtocol = paymentCollected.mulPPMRoundUp(queryFeeData.protocolPaymentCut); + uint256 tokensCurators = (paymentCollected - tokensProtocol).mulPPMRoundUp(queryFeeData.curationCut); vm.expectEmit(address(subgraphService)); emit ISubgraphService.QueryFeesCollected(_indexer, paymentCollected, tokensCurators); @@ -302,8 +303,8 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { if (_paymentType == IGraphPayments.PaymentTypes.QueryFee) { // Check indexer got paid the correct amount { - uint256 tokensProtocol = paymentCollected.mulPPM(protocolPaymentCut); - uint256 curationTokens = paymentCollected.mulPPM(queryFeeData.curationCut); + uint256 tokensProtocol = paymentCollected.mulPPMRoundUp(protocolPaymentCut); + uint256 curationTokens = (paymentCollected - tokensProtocol).mulPPMRoundUp(queryFeeData.curationCut); uint256 expectedIndexerTokensPayment = paymentCollected - tokensProtocol - curationTokens; assertEq( collectPaymentDataAfter.indexerBalance, @@ -379,6 +380,17 @@ contract SubgraphServiceTest is SubgraphServiceSharedTest { } } + function _migrateLegacyAllocation(address _indexer, address _allocationId, bytes32 _subgraphDeploymentID) internal { + vm.expectEmit(address(subgraphService)); + emit AllocationManager.LegacyAllocationMigrated(_indexer, _allocationId, _subgraphDeploymentID); + + subgraphService.migrateLegacyAllocation(_indexer, _allocationId, _subgraphDeploymentID); + + (address afterIndexer, bytes32 afterSubgraphDeploymentId) = subgraphService.legacyAllocations(_allocationId); + assertEq(afterIndexer, _indexer); + assertEq(afterSubgraphDeploymentId, _subgraphDeploymentID); + } + /* * HELPERS */ diff --git a/packages/subgraph-service/test/subgraphService/allocation/forceClose.t.sol b/packages/subgraph-service/test/subgraphService/allocation/forceClose.t.sol index 8817355f6..5b35f8d4e 100644 --- a/packages/subgraph-service/test/subgraphService/allocation/forceClose.t.sol +++ b/packages/subgraph-service/test/subgraphService/allocation/forceClose.t.sol @@ -3,38 +3,30 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; -import { IDataService } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol"; import { IGraphPayments } from "@graphprotocol/horizon/contracts/interfaces/IGraphPayments.sol"; -import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; -import { ProvisionTracker } from "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol"; import { Allocation } from "../../../contracts/libraries/Allocation.sol"; -import { AllocationManager } from "../../../contracts/utilities/AllocationManager.sol"; import { ISubgraphService } from "../../../contracts/interfaces/ISubgraphService.sol"; -import { LegacyAllocation } from "../../../contracts/libraries/LegacyAllocation.sol"; import { SubgraphServiceTest } from "../SubgraphService.t.sol"; contract SubgraphServiceAllocationForceCloseTest is SubgraphServiceTest { - address private permissionlessBob = makeAddr("permissionlessBob"); /* * TESTS */ - function test_SubgraphService_Allocation_ForceClose_Stale( - uint256 tokens - ) public useIndexer useAllocation(tokens) { + function test_SubgraphService_Allocation_ForceClose_Stale(uint256 tokens) public useIndexer useAllocation(tokens) { // Skip forward skip(maxPOIStaleness + 1); resetPrank(permissionlessBob); - _forceCloseAllocation(allocationID); + _closeStaleAllocation(allocationID); } function test_SubgraphService_Allocation_ForceClose_Stale_AfterCollecting( uint256 tokens - ) public useIndexer useAllocation(tokens) { + ) public useIndexer useAllocation(tokens) { // Simulate POIs being submitted uint8 numberOfPOIs = 5; uint256 timeBetweenPOIs = 5 days; @@ -52,43 +44,10 @@ contract SubgraphServiceAllocationForceCloseTest is SubgraphServiceTest { // Close the stale allocation resetPrank(permissionlessBob); - _forceCloseAllocation(allocationID); - } - - function test_SubgraphService_Allocation_ForceClose_OverAllocated( - uint256 tokens - ) public useIndexer useAllocation(tokens) { - // thaw some tokens to become over allocated - staking.thaw(users.indexer, address(subgraphService), tokens / 2); - - resetPrank(permissionlessBob); - _forceCloseAllocation(allocationID); - } - - function test_SubgraphService_Allocation_ForceClose_OverAllocated_AfterCollecting( - uint256 tokens - ) public useIndexer useAllocation(tokens) { - // Simulate POIs being submitted - uint8 numberOfPOIs = 5; - uint256 timeBetweenPOIs = 5 days; - - for (uint8 i = 0; i < numberOfPOIs; i++) { - // Skip forward - skip(timeBetweenPOIs); - - bytes memory data = abi.encode(allocationID, bytes32("POI1")); - _collect(users.indexer, IGraphPayments.PaymentTypes.IndexingRewards, data); - } - - // thaw some tokens to become over allocated - staking.thaw(users.indexer, address(subgraphService), tokens / 2); - - // Close the over allocated allocation - resetPrank(permissionlessBob); - _forceCloseAllocation(allocationID); + _closeStaleAllocation(allocationID); } - function test_SubgraphService_Allocation_ForceClose_RevertIf_NotStaleOrOverAllocated( + function test_SubgraphService_Allocation_ForceClose_RevertIf_NotStale( uint256 tokens ) public useIndexer useAllocation(tokens) { // Simulate POIs being submitted @@ -98,12 +57,12 @@ contract SubgraphServiceAllocationForceCloseTest is SubgraphServiceTest { for (uint8 i = 0; i < numberOfPOIs; i++) { // Skip forward skip(timeBetweenPOIs); - + resetPrank(users.indexer); bytes memory data = abi.encode(allocationID, bytes32("POI1")); _collect(users.indexer, IGraphPayments.PaymentTypes.IndexingRewards, data); - + resetPrank(permissionlessBob); vm.expectRevert( abi.encodeWithSelector( @@ -111,13 +70,11 @@ contract SubgraphServiceAllocationForceCloseTest is SubgraphServiceTest { allocationID ) ); - subgraphService.forceCloseAllocation(allocationID); + subgraphService.closeStaleAllocation(allocationID); } } - function test_SubgraphService_Allocation_ForceClose_RevertIf_Altruistic( - uint256 tokens - ) public useIndexer { + function test_SubgraphService_Allocation_ForceClose_RevertIf_Altruistic(uint256 tokens) public useIndexer { tokens = bound(tokens, minimumProvisionTokens, MAX_TOKENS); _createProvision(users.indexer, tokens, maxSlashingPercentage, disputePeriod); @@ -130,11 +87,8 @@ contract SubgraphServiceAllocationForceCloseTest is SubgraphServiceTest { resetPrank(permissionlessBob); vm.expectRevert( - abi.encodeWithSelector( - ISubgraphService.SubgraphServiceAllocationIsAltruistic.selector, - allocationID - ) + abi.encodeWithSelector(ISubgraphService.SubgraphServiceAllocationIsAltruistic.selector, allocationID) ); - subgraphService.forceCloseAllocation(allocationID); + subgraphService.closeStaleAllocation(allocationID); } } diff --git a/packages/subgraph-service/test/subgraphService/allocation/start.t.sol b/packages/subgraph-service/test/subgraphService/allocation/start.t.sol index f5d76a350..a7df1f1a8 100644 --- a/packages/subgraph-service/test/subgraphService/allocation/start.t.sol +++ b/packages/subgraph-service/test/subgraphService/allocation/start.t.sol @@ -4,7 +4,6 @@ pragma solidity 0.8.27; import "forge-std/Test.sol"; import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; -import { IDataService } from "@graphprotocol/horizon/contracts/data-service/interfaces/IDataService.sol"; import { ProvisionManager } from "@graphprotocol/horizon/contracts/data-service/utilities/ProvisionManager.sol"; import { ProvisionTracker } from "@graphprotocol/horizon/contracts/data-service/libraries/ProvisionTracker.sol"; @@ -137,35 +136,52 @@ contract SubgraphServiceAllocationStartTest is SubgraphServiceTest { subgraphService.startService(users.indexer, data); } - function test_SubgraphService_Allocation_Start_RevertWhen_ArealdyExists(uint256 tokens) public useIndexer { + function test_SubgraphService_Allocation_Start_RevertWhen_AlreadyExists_SubgraphService(uint256 tokens) public useIndexer { tokens = bound(tokens, minimumProvisionTokens, MAX_TOKENS); _createProvision(users.indexer, tokens, maxSlashingPercentage, disputePeriod); _register(users.indexer, abi.encode("url", "geoHash", address(0))); - bytes32 slot = keccak256(abi.encode(allocationID, uint256(158))); - vm.store(address(subgraphService), slot, bytes32(uint256(uint160(users.indexer)))); - vm.store(address(subgraphService), bytes32(uint256(slot) + 1), subgraphDeployment); - bytes memory data = _generateData(tokens); + _startService(users.indexer, data); + vm.expectRevert(abi.encodeWithSelector( - LegacyAllocation.LegacyAllocationExists.selector, + Allocation.AllocationAlreadyExists.selector, allocationID )); subgraphService.startService(users.indexer, data); } - function test_SubgraphService_Allocation_Start_RevertWhen_ReusingAllocationId(uint256 tokens) public useIndexer { + function test_SubgraphService_Allocation_Start_RevertWhen_AlreadyExists_Migrated(uint256 tokens) public useIndexer { tokens = bound(tokens, minimumProvisionTokens, MAX_TOKENS); _createProvision(users.indexer, tokens, maxSlashingPercentage, disputePeriod); _register(users.indexer, abi.encode("url", "geoHash", address(0))); + resetPrank(users.governor); + _migrateLegacyAllocation(users.indexer, allocationID, subgraphDeployment); + + resetPrank(users.indexer); bytes memory data = _generateData(tokens); - _startService(users.indexer, data); + vm.expectRevert(abi.encodeWithSelector( + LegacyAllocation.LegacyAllocationAlreadyExists.selector, + allocationID + )); + subgraphService.startService(users.indexer, data); + } + + function test_SubgraphService_Allocation_Start_RevertWhen_AlreadyExists_Staking(uint256 tokens) public useIndexer { + tokens = bound(tokens, minimumProvisionTokens, MAX_TOKENS); + _createProvision(users.indexer, tokens, maxSlashingPercentage, disputePeriod); + _register(users.indexer, abi.encode("url", "geoHash", address(0))); + + // create dummy allo in staking contract + _setStorage_allocation_hardcoded(users.indexer, allocationID, tokens); + + bytes memory data = _generateData(tokens); vm.expectRevert(abi.encodeWithSelector( - Allocation.AllocationAlreadyExists.selector, + LegacyAllocation.LegacyAllocationAlreadyExists.selector, allocationID )); subgraphService.startService(users.indexer, data); diff --git a/packages/subgraph-service/test/subgraphService/collect/query/query.t.sol b/packages/subgraph-service/test/subgraphService/collect/query/query.t.sol index 93972679f..d42c36f65 100644 --- a/packages/subgraph-service/test/subgraphService/collect/query/query.t.sol +++ b/packages/subgraph-service/test/subgraphService/collect/query/query.t.sol @@ -46,6 +46,7 @@ contract SubgraphServiceRegisterTest is SubgraphServiceTest { ) private view returns (ITAPCollector.ReceiptAggregateVoucher memory rav) { return ITAPCollector.ReceiptAggregateVoucher({ + payer: users.gateway, dataService: address(subgraphService), serviceProvider: indexer, timestampNs: 0, @@ -54,8 +55,7 @@ contract SubgraphServiceRegisterTest is SubgraphServiceTest { }); } - function _approveCollector(uint256 tokens) private { - escrow.approveCollector(address(tapCollector), tokens); + function _deposit(uint256 tokens) private { token.approve(address(escrow), tokens); escrow.deposit(address(tapCollector), users.indexer, tokens); } @@ -91,7 +91,7 @@ contract SubgraphServiceRegisterTest is SubgraphServiceTest { tokensPayment = bound(tokensPayment, minimumProvisionTokens, maxTokensPayment); resetPrank(users.gateway); - _approveCollector(tokensPayment); + _deposit(tokensPayment); _authorizeSigner(); resetPrank(users.indexer); @@ -108,7 +108,7 @@ contract SubgraphServiceRegisterTest is SubgraphServiceTest { uint256 tokensPayment = tokensAllocated / stakeToFeesRatio / numPayments; resetPrank(users.gateway); - _approveCollector(tokensAllocated); + _deposit(tokensAllocated); _authorizeSigner(); resetPrank(users.indexer); diff --git a/packages/subgraph-service/test/subgraphService/governance/legacy.t.sol b/packages/subgraph-service/test/subgraphService/governance/legacy.t.sol new file mode 100644 index 000000000..d1b5dd124 --- /dev/null +++ b/packages/subgraph-service/test/subgraphService/governance/legacy.t.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.27; + +import "forge-std/Test.sol"; + +import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; + +import { SubgraphServiceTest } from "../SubgraphService.t.sol"; + +contract SubgraphServiceLegacyAllocation is SubgraphServiceTest { + /* + * TESTS + */ + + function test_MigrateAllocation() public useGovernor { + _migrateLegacyAllocation(users.indexer, allocationID, subgraphDeployment); + } + + function test_MigrateAllocation_WhenNotGovernor() public useIndexer { + vm.expectRevert(abi.encodeWithSelector(OwnableUpgradeable.OwnableUnauthorizedAccount.selector, users.indexer)); + subgraphService.migrateLegacyAllocation(users.indexer, allocationID, subgraphDeployment); + } +} diff --git a/packages/subgraph-service/test/utils/Constants.sol b/packages/subgraph-service/test/utils/Constants.sol index 76f864da1..0c6419f3e 100644 --- a/packages/subgraph-service/test/utils/Constants.sol +++ b/packages/subgraph-service/test/utils/Constants.sol @@ -7,6 +7,7 @@ abstract contract Constants { uint256 internal constant EPOCH_LENGTH = 1; // Dispute Manager uint64 internal constant disputePeriod = 7 days; + uint256 internal constant MIN_DISPUTE_DEPOSIT = 1 ether; // 1 GRT uint256 internal constant disputeDeposit = 100 ether; // 100 GRT uint32 internal constant fishermanRewardPercentage = 500000; // 50% uint32 internal constant maxSlashingPercentage = 500000; // 50% @@ -21,7 +22,6 @@ abstract contract Constants { uint64 internal constant MAX_WAIT_PERIOD = 28 days; // GraphEscrow parameters uint256 internal constant withdrawEscrowThawingPeriod = 60; - uint256 internal constant revokeCollectorThawingPeriod = 60; // GraphPayments parameters uint256 internal constant protocolPaymentCut = 10000; // RewardsMananger parameters diff --git a/yarn.lock b/yarn.lock index 8abf407bc..927c703e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2933,12 +2933,12 @@ __metadata: "@nomicfoundation/hardhat-chai-matchers": "npm:^2.0.0" "@nomicfoundation/hardhat-ethers": "npm:^3.0.8" "@nomicfoundation/hardhat-foundry": "npm:^1.1.1" - "@nomicfoundation/hardhat-ignition": "npm:^0.15.5" - "@nomicfoundation/hardhat-ignition-ethers": "npm:^0.15.5" + "@nomicfoundation/hardhat-ignition": "npm:^0.15.8" + "@nomicfoundation/hardhat-ignition-ethers": "npm:^0.15.8" "@nomicfoundation/hardhat-network-helpers": "npm:^1.0.0" "@nomicfoundation/hardhat-toolbox": "npm:^4.0.0" "@nomicfoundation/hardhat-verify": "npm:^2.0.10" - "@nomicfoundation/ignition-core": "npm:^0.15.5" + "@nomicfoundation/ignition-core": "npm:^0.15.8" "@openzeppelin/contracts": "npm:^5.0.2" "@openzeppelin/contracts-upgradeable": "npm:^5.0.2" "@typechain/ethers-v6": "npm:^0.5.0" @@ -3028,12 +3028,12 @@ __metadata: "@nomicfoundation/hardhat-chai-matchers": "npm:^2.0.0" "@nomicfoundation/hardhat-ethers": "npm:^3.0.8" "@nomicfoundation/hardhat-foundry": "npm:^1.1.1" - "@nomicfoundation/hardhat-ignition": "npm:^0.15.5" - "@nomicfoundation/hardhat-ignition-ethers": "npm:^0.15.5" + "@nomicfoundation/hardhat-ignition": "npm:^0.15.8" + "@nomicfoundation/hardhat-ignition-ethers": "npm:^0.15.8" "@nomicfoundation/hardhat-network-helpers": "npm:^1.0.0" "@nomicfoundation/hardhat-toolbox": "npm:^4.0.0" "@nomicfoundation/hardhat-verify": "npm:^2.0.10" - "@nomicfoundation/ignition-core": "npm:^0.15.5" + "@nomicfoundation/ignition-core": "npm:^0.15.8" "@openzeppelin/contracts": "npm:^5.0.2" "@openzeppelin/contracts-upgradeable": "npm:^5.0.2" "@typechain/ethers-v6": "npm:^0.5.0" @@ -3051,6 +3051,7 @@ __metadata: hardhat-graph-protocol: "workspace:^0.0.1" hardhat-secure-accounts: "npm:^1.0.4" hardhat-storage-layout: "npm:^0.1.7" + json5: "npm:^2.2.3" lint-staged: "npm:^15.2.2" prettier: "npm:^3.2.5" prettier-plugin-solidity: "npm:^1.3.1" @@ -4745,33 +4746,34 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/hardhat-ignition-ethers@npm:^0.15.5": - version: 0.15.5 - resolution: "@nomicfoundation/hardhat-ignition-ethers@npm:0.15.5" +"@nomicfoundation/hardhat-ignition-ethers@npm:^0.15.8": + version: 0.15.8 + resolution: "@nomicfoundation/hardhat-ignition-ethers@npm:0.15.8" peerDependencies: "@nomicfoundation/hardhat-ethers": ^3.0.4 - "@nomicfoundation/hardhat-ignition": ^0.15.5 - "@nomicfoundation/ignition-core": ^0.15.5 + "@nomicfoundation/hardhat-ignition": ^0.15.8 + "@nomicfoundation/ignition-core": ^0.15.8 ethers: ^6.7.0 hardhat: ^2.18.0 - checksum: 19f0e029a580dd4d27048f1e87f8111532684cf7f0a2b5c8d6ae8d811ff489629305e3a616cb89702421142c7c628f1efa389781414de1279689018c463cce60 + checksum: 480825fa20d24031b330f96ff667137b8fdb67db0efea8cb3ccd5919c3f93e2c567de6956278e36c399311fd61beef20fae6e7700f52beaa813002cbee482efa languageName: node linkType: hard -"@nomicfoundation/hardhat-ignition@npm:^0.15.5": - version: 0.15.5 - resolution: "@nomicfoundation/hardhat-ignition@npm:0.15.5" +"@nomicfoundation/hardhat-ignition@npm:^0.15.8": + version: 0.15.8 + resolution: "@nomicfoundation/hardhat-ignition@npm:0.15.8" dependencies: - "@nomicfoundation/ignition-core": "npm:^0.15.5" - "@nomicfoundation/ignition-ui": "npm:^0.15.5" + "@nomicfoundation/ignition-core": "npm:^0.15.8" + "@nomicfoundation/ignition-ui": "npm:^0.15.8" chalk: "npm:^4.0.0" debug: "npm:^4.3.2" fs-extra: "npm:^10.0.0" + json5: "npm:^2.2.3" prompts: "npm:^2.4.2" peerDependencies: "@nomicfoundation/hardhat-verify": ^2.0.1 hardhat: ^2.18.0 - checksum: b3d9755f2bf89157b6ae0cb6cebea264f76f556ae0b3fc5a62afb5e0f6ed70b3d82d8f692b1c49b2ef2d60cdb45ee28fb148cfca1aa5a53bfe37772c71e75a08 + checksum: 59b82470ff5b38451c0bd7b19015eeee2f3db801addd8d67e0b28d6cb5ae3f578dfc998d184cb9c71895f6106bbb53c9cdf28df1cb14917df76cf3db82e87c32 languageName: node linkType: hard @@ -4830,9 +4832,9 @@ __metadata: languageName: node linkType: hard -"@nomicfoundation/ignition-core@npm:^0.15.5": - version: 0.15.5 - resolution: "@nomicfoundation/ignition-core@npm:0.15.5" +"@nomicfoundation/ignition-core@npm:^0.15.8": + version: 0.15.8 + resolution: "@nomicfoundation/ignition-core@npm:0.15.8" dependencies: "@ethersproject/address": "npm:5.6.1" "@nomicfoundation/solidity-analyzer": "npm:^0.1.1" @@ -4843,14 +4845,14 @@ __metadata: immer: "npm:10.0.2" lodash: "npm:4.17.21" ndjson: "npm:2.0.0" - checksum: ff14724d8e992dc54291da6e6a864f6b3db268b6725d0af6ecbf3f81ed65f6824441421b23129d118cd772efc8ab0275d1decf203019cb3049a48b37f9c15432 + checksum: ebb16e092bd9a39e48cc269d3627430656f558c814cea435eaf06f2e7d9a059a4470d1186c2a7d108efed755ef34d88d2aa74f9d6de5bb73e570996a53a7d2ef languageName: node linkType: hard -"@nomicfoundation/ignition-ui@npm:^0.15.5": - version: 0.15.5 - resolution: "@nomicfoundation/ignition-ui@npm:0.15.5" - checksum: 7d10e30c3078731e4feb91bd7959dfb5a0eeac6f34f6261fada2bf330ff8057ecd576ce0fb3fe856867af2d7c67f31bd75a896110b58d93ff3f27f04f6771278 +"@nomicfoundation/ignition-ui@npm:^0.15.8": + version: 0.15.8 + resolution: "@nomicfoundation/ignition-ui@npm:0.15.8" + checksum: c5e7b41631824a048160b8d5400f5fb0cb05412a9d2f3896044f7cfedea4298d31a8d5b4b8be38296b5592db4fa9255355843dcb3d781bc7fa1200fb03ea8476 languageName: node linkType: hard